MIFARE 感應門禁卡應用
感應卡(Proximity card)適用於ISO/IEC 14443標準與ISO/IEC 15693標準。它也可以用來指那些使用125 kHz或13.56 MHz的非接觸型RFID感應卡,這些技術通常被使用於非接觸型智慧卡之上。
每張卡片第一區段的第一區塊(sector 0,block 0)只能讀取無法寫入資料,稱為製造商代碼(Manufacturer Code)
Classic with 4 UID:
Byte | Length | Content |
---|---|---|
0 | 4 | UID |
4 | 1 | bit count check |
5 | 1 | SAK (08:一般加密卡, 28:特殊加密卡如銀行卡) |
卡機三重認證步驟:
- 1.卡片產生一個亂數RB傳送到讀卡機。
- 2.讀卡機會將接收到的亂數RB依公式加密編碼後的TokenAB數值並傳送回卡片。
- 3.卡片接 收到TokenAB後,會把加密部份解譯出來然後比對參數B、亂數RB。同時並依據收到的亂數RA,參照公式編碼後產生TokenBA傳送回讀卡機。
- 4.讀卡機接收到TokenBA後,又把加密過的部份解譯,比較亂數RB,RA與TokenBA中解出之RB、RA是否相符,正確的就可以完成指令(扣款、打 開門鎖或是登記其他事項)。
加解密驗證原理建立在讀卡機使用的Key與卡片的Key相同
Key | Purpose | Description |
---|---|---|
FF:FF:FF:FF:FF:FF | Factory default key | No NDEF data for Key A & Key B |
A0:A1:A2:A3:A4:A5 | Public NDEF key | NDEF message for key A with MAD sector (sector 0 ) |
D3:F7:D3:F7:D3:F7 | Public NDEF key | NDEF message for key A with sectors 1~15 |
讀取部分只需要裝置晶片支援,手機app可使用如MifareClassicTool利用Key Brute attack掃出Sector內容。
寫入部分一般晶片會禁止對
Sector 0 - Block 0
寫入,支援該需寫入的如ACR122U讀寫器
現行 global 手機的 NFC Tag UID 都是每次讀取動態改變,只能透過 root 才能使用 Emulator,而中國出廠的手機則支援自家 Wallet App 複製模擬 UID。
不 root 情況下的門禁應用,目前 Samsung Pay 的悠 遊卡服務創建卡片後其手機 NFC Tag UID 就會固定跟隨該卡。
Last modified 2mo ago