# 其他
# YubiKey
YubiKey 是 [Yubico, Inc.](https://www.yubico.com/) 发行的,具有 OTP、TOTP、FIDO 2FA、静态密码、Challenge-Response、PIV、OpenPGP Card 等功能的便携密码学硬件。本文主要描述其智能卡相关功能,即 PIV 与 OpenPGP Card。
YubiKey Neo, YubiKey 5 NFC 具有 NFC 功能,其余的 YubiKey 均通过 USB 与主机进行通信。
详细的访问方式如下表所示:
**功能** | **接口** | **AID** |
OTP/静态密码(NDEF) | USB-HID/NFC | D2 76 00 00 85 01 01 |
U2F | USB-HID/NFC | A0 00 00 06 47 2F 00 01 |
OpenPGP | USB-CCID/NFC | D2 76 00 01 24 01 02 00 00 00 00 00 00 01 00 00 |
PIV | USB-CCID/NFC | A0 00 00 03 08 00 00 10 00 01 00 |
TOTP(OATH) | USB-CCID/NFC | A0 00 00 05 27 21 01 01 |
# FIDO U2F
# NXP JCOP Javacard
NXP JCOP 是由 NXP 公司开发的 Javacard 操作系统,NXP 公司的 Javacard 和一些安全芯片搭载了该系统。
其版本命名规则为:
J3 A 080 G dd(d) / T 0B rr ff o
- J = NXP JCOP
- J5=NFC(S2C)
- J3=Dual IF,CD=PKI+DES
- J2=CT,CD=PKI+DES
- J1=CT,DES
- A = JCOP version
- A=JCOP 2.4.1 R3(Java Card 2.2.2 GP 2.1.1)
- C=JCOP 2.4.2 R1
- D=JCOP 2.4.2 R2(Java Card 3.0.1 GP 2.2.1)
- E=JCOP 2.4.2 R3(Java Card 3.0.1 GP 2.2.1)
- G=JCOP 3.0
- H=JCOP3 P60-2
- O=JCOP 4.0
- Q=JCOP 4.2
- 080 = EEPROM Size 80K
- G = JCOP type
- G=Java Std-Generic
- V=Java Std-VISA
- C=Java Std-Customized
- M=Java Std-MasterCard
- C=Java Static-Generic
- U=Java Static-VISA
- T=Java Static-MasterCard
- dd(d) = Delivery type
- UA=sawn wafer 150u FFC
- X0=PDM module
- A4=MOB4
- A6=MOB6
- HN1=HVQFN32 package
- T = FAB ID
- 0B = HW Version
- rr = ROM code ID
- ff = FAB key ID
- o = Option
- 0=no Mifare
- 1=1k Mifare
- 4=4k Mifare
- 7=7k DESFire
- 8=8k DESFire
获取详细信息可以发送 IDENTIFY 命令:00A4040009A000000167413000FF00
返回信息格式如下:

# Canokey
Canokey是开源的安全认证USB设备,提供4个接口:U2F/FIDO2(HID)、OpenPGP Card(CCID)、PIV+OATH(CCID)和WebUSB。
# MIFARE Classic
MIFARE Classic 有 1K 和 4K 两种类型,1k 和 4k 代表存储空间的大小。
在 MIFARE Classic 中,有 Sector 和 Block 的概念,每个 Sector 有若干个 Block,其中最后一个 Block 是特殊的(称为 Sector Trailer),保存了这个 Sector 的一些信息:Key A、Access Bits、GPB 和 Key B。对于 Classic 4K,首先是 32 个有 4 blocks 的 sector,然后是 8 个 有 16 blocks 的 sector, 整体的内存布局大概是:
```
Sector 0:
Block 0
Block 1
Block 2
Block 3(Sector Trailer)
Sector 1:
Block 4
Block 5
Block 6
Block 7(Sector Trailer)
...
Sector 32:
Block 128
Block 129
...
Block 143(Sector Trailer)
...
Sector 39:
...
```
每个 Block 有 16 字节,一共 256 个 block,所以是 4K 大小的存储空间。Block 0 比较特殊,保存的是生产商写入的信息,不可更改(特殊的卡除外)。
见 [MIFARE Classic 配置 NDEF](https://jia.je/hardware/2020/05/10/mifare-classic-ndef/)