2016-12-30 103 views
1

我無法完成身份驗證階段。 我使用的是什麼: SAM模塊由NXP的Mifare PICC DESFIRE身份驗證錯誤:使用3DES算法對SAM進行DESfire

我之後的下一個步驟:

  1. 獲得PICC的SerialNumber(或UID)與GetVersion。

    GET VERSION: TX:90 60 00 00 00 的Rx:04 01 01 00 02 18 05 91 AF

    GET VERSION 2: TX:90 AF 00 00 00 00 的Rx:04 01 01 00 06 18 05 91 AF

    GET VERSION 3: TX:90 AF 00 00 00 00 接收:04 65 41 49 65 1B 80 8E 65 58 51 30 46 07 91 00

  2. 從PICC獲得加密(RndB)。

    TX:90 0A 00 00 01 00 00 接收:31 15 19 1A DB ED CD 5A 91 AF

  3. 發送給SAM PICC_SN + EK(RndB)。

    TX:80 41 01 03 0F 80 1B 65 49 41 65 04 31 15 1A 19 DB ED CD 5A 接收:61 20

  4. 從SAM獲取加密的(RndA + RndB_rotated)+第一半會話密鑰

    的Tx:00 C0 00 00 20 接收:F3 10 55 B1 D3 18 91 5B 92 48 16 1F E1 58 D5 CB E9 F3 51 04 41 8A 4E A5 A2 B5 67 CA FF D8 D2 35 90 00

  5. 發送PICC加密(RndA + RndB_rotated)。

    TX:90 AF 00 00 10 F3 10 55 B1 D3 18 91 5B 92 48 16 1F E1 58 D5 CB 00 接收:91 AE

所以,這是我已經從接收到的導我的支持者,並且我沒有解釋使用的apdus;有些我在互聯網上找到了他們,還有一些我猜到了。

我需要知道什麼是什麼是下一個命令我使用: 到SAM模塊:80 41 01 03 LC數據 我需要知道它部署何種加密,爲什麼它需要PICC的UID(是這樣的IV),我如何知道RndB,以及期待PICC結束認證的內容。

感謝

PD:對不起,文本的格式,似乎我無法正確地使用這些工具的發佈,一切變得在它的噁心同一行...

回答

1

我解決了這個問題並完成認證。 錯誤是我要求使用keyNo = 0加密的RndB,而來自SAM密鑰加密的相應密鑰應該是keyNo = 2。 所以:

--> 90 0A 00 00 01 02 00 
<-- 91 B6 08 CE 9F B5 34 3B 91 AF 

的進行,我的芬蘭認證:

--> 90 AF 00 00 10 0F DC FA B6 37 5F 30 34 D7 93 2D A1 3D D6 11 10 00 
<-- E9 C2 F2 69 FE 38 78 28 91 00 

但現在我有一個問題。我已經過身份驗證,可以閱讀PICC的數據,但我擔心它會被加密。我想它是用會話密鑰加密的,所以我需要用一些apdu命令將數據和會話密鑰發送給SAM,以解密從PICC檢索到的數據。 我對不對?如果那是...那將是那個SAM APDU?