- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
Stackoverflow 上有很多关于 Desfire EV1 卡的问题。
但是如果你搜索一些示例数据,你会发现几个字节的唯一地方是 Ridrix Blog .但这很不完整。
很多人在为 Desfire 卡开发代码时在那里写了他们的问题。但大多数情况下,当他们解决问题时,他们懒得发布解决方案。所以你会发现很多问题,但很少有数据示例的答案。
即使您有 Desfire EV1 文档(我没有,我研究了 easypay 代码),您也需要更多。文档只是理论。但是您的卡返回身份验证错误或完整性错误或意外 CMAC 的原因是什么?
最佳答案
在 Desfire EV1 开发上花费了数周时间后,我决定为所有需要输入数据来提供复杂密码功能并将输出与预期数据进行比较的人发布一些示例。我知道这非常有帮助。
在这里您可以找到一些来自最重要的 Desfire EV1 操作的调试输出。
目前您无法在互联网上找到此信息。
如果我有这些例子,我会节省很多时间来开发我的代码。
ISO 和 AES 身份验证 session 的陷阱
在 ISO 和 AES 模式下,每个加密/解密都经过 加拿大广播公司 .
四 仅在身份验证后创建 key 时将 session key 重置为零一次。
身份验证开始时,身份验证 key 的 IV 仅重置一次。
身份验证期间:
*** Authenticate(KeyNo= 0, Key= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (DES))
Sending: <1A 00>
Response: <AF B8 90 04 7F 2D C8 D6 8B>
* RndB_enc: B8 90 04 7F 2D C8 D6 8B
* RndB: 74 B8 43 5F CB A0 B6 75
* RndB_rot: B8 43 5F CB A0 B6 75 74
* RndA: 92 31 34 8B 66 35 A8 AF
* RndAB: 92 31 34 8B 66 35 A8 AF B8 43 5F CB A0 B6 75 74
* RndAB_enc: 7C 84 6A 50 7B 9B 6E 68 64 BC 33 72 A3 06 A8 C1
Sending: <AF 7C 84 6A 50 7B 9B 6E 68 64 BC 33 72 A3 06 A8 C1>
Response: <00 B7 96 DD 3F 81 15 45 F3>
* RndA_enc: B7 96 DD 3F 81 15 45 F3
* RndA_dec: 31 34 8B 66 35 A8 AF 92
* RndA_rot: 31 34 8B 66 35 A8 AF 92
* SessKey: 92 30 34 8A 74 B8 42 5E 92 30 34 8A 74 B8 42 5E (DES)
更改 2K3DES 默认 key #0
*** ChangeKey(KeyNo= 0)
* SessKey: B4 28 2E FA 9E B8 2C AE B4 28 2E FA 9E B8 2C AE (DES)
* SessKey IV: 00 00 00 00 00 00 00 00
* New Key: 00 10 20 31 40 50 60 70 80 90 A0 B0 B0 A0 90 80 (2K3DES)
* CRC Crypto: 0x5001FFC5
* Cryptogram: 00 10 20 31 40 50 60 70 80 90 A0 B0 B0 A0 90 80 C5 FF 01 50 00 00 00 00
* CryptogrEnc: 87 99 59 11 8B D7 7C 70 10 7B CD B0 C0 9C C7 DA 82 15 04 AA 1E 36 04 9C
Sending: <C4 00 87 99 59 11 8B D7 7C 70 10 7B CD B0 C0 9C C7 DA 82 15 04 AA 1E 36 04 9C>
Response: <00>
更改 2K3DES 默认 key #1
*** ChangeKey(KeyNo= 1)
* SessKey: 9C 70 56 82 5C 08 9E C8 9C 70 56 82 5C 08 9E C8 (DES)
* SessKey IV: 00 00 00 00 00 00 00 00
* New Key: 00 10 20 31 40 50 60 70 80 90 A0 B0 B0 A0 90 80 (2K3DES)
* Cur Key: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (DES)
* CRC Crypto: 0xD7A73486
* CRC New Key: 0xC4EF3A3A
* Cryptogram: 00 10 20 31 40 50 60 70 80 90 A0 B0 B0 A0 90 80 86 34 A7 D7 3A 3A EF C4
* CryptogrEnc: 7D 83 D3 4E FB 6C 84 98 48 E2 D6 37 AD A2 D0 87 14 36 1A E6 C4 63 14 52
Sending: <C4 01 7D 83 D3 4E FB 6C 84 98 48 E2 D6 37 AD A2 D0 87 14 36 1A E6 C4 63 14 52>
Response: <00 1D 5C 27 97 10 86 30 8D>
CMAC: 1D 5C 27 97 10 86 30 8D
使用 3K3DES 默认 key 的 ISO 身份验证 #0
*** Authenticate(KeyNo= 0, Key= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (3K3DES))
Sending: <1A 00>
Response: <AF 14 65 76 AC 1B 7D B8 CA 24 84 C5 69 7F 80 12 E1>
* RndB_enc: 14 65 76 AC 1B 7D B8 CA 24 84 C5 69 7F 80 12 E1
* RndB: BA 91 37 BB 7A 18 33 E7 39 F0 5E 8F 07 87 D0 C4
* RndB_rot: 91 37 BB 7A 18 33 E7 39 F0 5E 8F 07 87 D0 C4 BA
* RndA: F5 68 6F 3A 39 1C D3 8E BD 10 77 22 81 44 5B F6
* RndAB: F5 68 6F 3A 39 1C D3 8E BD 10 77 22 81 44 5B F6 91 37 BB 7A 18 33 E7 39 F0 5E 8F 07 87 D0 C4 BA
* RndAB_enc: D0 55 BD 5E A0 1E BF C3 02 93 D4 8A 54 A0 51 B4 0A 66 57 7A 38 3C 58 ED 77 5C 51 BC 97 D4 FA BD
Sending: <AF D0 55 BD 5E A0 1E BF C3 02 93 D4 8A 54 A0 51 B4 0A 66 57 7A 38 3C 58 ED 77 5C 51 BC 97 D4 FA BD>
Response: <00 E1 EE 93 F0 12 C8 D6 72 11 D4 33 7C AD 56 6A 40>
* RndA_enc: E1 EE 93 F0 12 C8 D6 72 11 D4 33 7C AD 56 6A 40
* RndA_dec: 68 6F 3A 39 1C D3 8E BD 10 77 22 81 44 5B F6 F5
* RndA_rot: 68 6F 3A 39 1C D3 8E BD 10 77 22 81 44 5B F6 F5
* SessKey: F4 68 6E 3A BA 90 36 BA D2 8E BC 10 32 E6 38 F0 80 44 5A F6 06 86 D0 C4 (3K3DES)
更改 3K3DES 默认 key #0
*** ChangeKey(KeyNo= 0)
* SessKey: F4 68 6E 3A BA 90 36 BA D2 8E BC 10 32 E6 38 F0 80 44 5A F6 06 86 D0 C4 (3K3DES)
* SessKey IV: 00 00 00 00 00 00 00 00
* New Key: 00 10 20 31 40 50 60 70 80 90 A0 B0 B0 A0 90 80 70 60 50 40 30 20 10 00 (3K3DES)
* CRC Crypto: 0xA2003ED6
* Cryptogram: 00 10 20 31 40 50 60 70 80 90 A0 B0 B0 A0 90 80 70 60 50 40 30 20 10 00 D6 3E 00 A2 00 00 00 00
* CryptogrEnc: 7F 88 90 C7 CA B9 A4 22 81 73 A6 41 B6 5F 0F 43 FD 40 4A 01 13 71 A9 90 4A 62 9E 3C 20 B2 FF 63
Sending: <C4 00 7F 88 90 C7 CA B9 A4 22 81 73 A6 41 B6 5F 0F 43 FD 40 4A 01 13 71 A9 90 4A 62 9E 3C 20 B2 FF 63>
Response: <00>
更改 3K3DES 默认 key #1
*** ChangeKey(KeyNo= 1)
* SessKey: 9C 52 0E 3C B4 5A B2 A4 A2 00 C4 DA 72 2C 0E F4 38 FE 8A 48 F8 18 9E 56 (3K3DES)
* SessKey IV: 00 00 00 00 00 00 00 00
* New Key: 00 10 20 31 40 50 60 70 80 90 A0 B0 B0 A0 90 80 70 60 50 40 30 20 10 00 (3K3DES)
* Cur Key: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (3K3DES)
* CRC Crypto: 0x078BAED8
* CRC New Key: 0x12A6733E
* Cryptogram: 00 10 20 31 40 50 60 70 80 90 A0 B0 B0 A0 90 80 70 60 50 40 30 20 10 00 D8 AE 8B 07 3E 73 A6 12
* CryptogrEnc: 72 18 2F 5B 0C F1 7E A0 86 A5 AE A5 64 ED 98 7A F3 90 CD B3 78 36 4E 2B C2 45 8B 3A E3 23 98 4D
Sending: <C4 01 72 18 2F 5B 0C F1 7E A0 86 A5 AE A5 64 ED 98 7A F3 90 CD B3 78 36 4E 2B C2 45 8B 3A E3 23 98 4D>
Response: <00 D2 E3 BD 0D 09 47 72 ED>
CMAC: D2 E3 BD 0D 09 47 72 ED
使用 AES 默认 key 的 AES 身份验证 #0
*** Authenticate(KeyNo= 0, Key= 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (AES))
Sending: <AA 00>
Response: <AF FF 0A FB 10 B4 3F 3B 34 23 36 57 0F 7A 0E 8B 74>
* RndB_enc: FF 0A FB 10 B4 3F 3B 34 23 36 57 0F 7A 0E 8B 74
* RndB: 1F 45 19 27 E7 C0 FC DE 60 9E E8 02 EF 69 76 04
* RndB_rot: 45 19 27 E7 C0 FC DE 60 9E E8 02 EF 69 76 04 1F
* RndA: 73 AE 5D 30 17 42 21 64 FB 16 25 D8 1F 2A 69 8C
* RndAB: 73 AE 5D 30 17 42 21 64 FB 16 25 D8 1F 2A 69 8C 45 19 27 E7 C0 FC DE 60 9E E8 02 EF 69 76 04 1F
* RndAB_enc: B3 11 34 03 F5 73 95 35 CA 1A 5D 4B D4 38 BE 03 2B 54 28 32 3D 0A 83 4D 11 8F 35 06 C4 2C 5B 01
Sending: <AF B3 11 34 03 F5 73 95 35 CA 1A 5D 4B D4 38 BE 03 2B 54 28 32 3D 0A 83 4D 11 8F 35 06 C4 2C 5B 01>
Response: <00 E2 AE 7D 31 29 48 19 69 E9 A0 C7 CC 89 1E DF 58>
* RndA_enc: E2 AE 7D 31 29 48 19 69 E9 A0 C7 CC 89 1E DF 58
* RndA_dec: AE 5D 30 17 42 21 64 FB 16 25 D8 1F 2A 69 8C 73
* RndA_rot: AE 5D 30 17 42 21 64 FB 16 25 D8 1F 2A 69 8C 73
* SessKey: 73 AE 5D 30 1F 45 19 27 1F 2A 69 8C EF 69 76 04 (AES)
更改 AES 默认 key #0
*** ChangeKey(KeyNo= 0)
* SessKey: 73 AE 5D 30 1F 45 19 27 1F 2A 69 8C EF 69 76 04 (AES)
* SessKey IV: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
* New Key: 00 10 20 30 40 50 60 70 80 90 A0 B0 B0 A0 90 80 (AES)
* CRC Crypto: 0x6BE6C6D2
* Cryptogram: 00 10 20 30 40 50 60 70 80 90 A0 B0 B0 A0 90 80 10 D2 C6 E6 6B 00 00 00 00 00 00 00 00 00 00 00
* CryptogrEnc: 97 41 8E 6C C0 1C 4E 6F AD 4D 87 4D 8D 42 5C EA 32 51 36 11 47 2C DA 04 E3 5E FB 77 9A 7D A0 E4
Sending: <C4 00 97 41 8E 6C C0 1C 4E 6F AD 4D 87 4D 8D 42 5C EA 32 51 36 11 47 2C DA 04 E3 5E FB 77 9A 7D A0 E4>
Response: <00>
更改 AES 默认 key #1
*** ChangeKey(KeyNo= 1)
* SessKey: 1C D3 8E BD 95 F3 1C 8A B8 7F 0A C9 C4 EB 64 C6 (AES)
* SessKey IV: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
* New Key: 00 10 20 30 40 50 60 70 80 90 A0 B0 B0 A0 90 80 (AES)
* Cur Key: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 (AES)
* CRC Crypto: 0x84B47033
* CRC New Key: 0x1979E3BF
* Cryptogram: 00 10 20 30 40 50 60 70 80 90 A0 B0 B0 A0 90 80 10 33 70 B4 84 BF E3 79 19 00 00 00 00 00 00 00
* CryptogrEnc: 30 23 FA 06 2D 25 0A 04 35 BA E9 45 CA BE 96 5D 62 2A 47 1D 32 5D 1D 42 EA 81 44 41 CB 1A 20 C3
Sending: <C4 01 30 23 FA 06 2D 25 0A 04 35 BA E9 45 CA BE 96 5D 62 2A 47 1D 32 5D 1D 42 EA 81 44 41 CB 1A 20 C3>
Response: <00 9B 68 30 91 50 E0 72 5E>
CMAC: 9B 68 30 91 50 E0 72 5E
AES 128 的 CMAC 计算
AES Key: 2b 7e 15 16 28 ae d2 a6 ab f7 15 88 09 cf 4f 3c
SubKey1: fb ee d6 18 35 71 33 66 7c 85 e0 8f 72 36 a8 de
SubKey2: f7 dd ac 30 6a e2 66 cc f9 0b c1 1e e4 6d 51 3b
Message: <empty>
CMAC: bb 1d 69 29 e9 59 37 28 7f a3 7d 12 9b 75 67 46
Message: 6b c1 be e2 2e 40 9f 96 e9 3d 7e 11 73 93 17 2a
CMAC: 07 0a 16 b4 6b 4d 41 44 f7 9b dd 9d d0 4a 28 7c
Message: 6b c1 be e2 2e 40 9f 96 e9 3d 7e 11 73 93 17 2a ae 2d 8a 57 1e 03 ac 9c 9e b7 6f ac 45 af 8e 51 30 c8 1c 46 a3 5c e4 11
CMAC: df a6 67 47 de 9a e6 30 30 ca 32 61 14 97 c8 27
如果您需要
更多示例 (也适用于 CreateApplication、SelectApplication、DeleteApplication、GetApplicationIDs、GetKeyVersion、GetKeySettings、ChangeKeySettings、GetCardVersion、FormatCard、CreateStdDataFile、GetFileIDs、GetFileSettings、WriteFileData、ReadFileData、DeleteFile)下载 ZIP 文件
Codeproject 您可以在其中找到一个 HTML 文件,其中包含测试所有这些命令的整个自检。
关于arduino - Desfire EV1 通信示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38283998/
我有一张非接触式卡,并且我知道它是 MIFARE 卡。我没有文件,也没有身份验证 key 。重置后,我收到以下 ATS: myubuntu@lol-MS-7693:~$ nfc-list nfc-li
在多个 Android 设备上,Mifare DESFire 通信被路由到 HCE 而不是脱离主机 (UICC)。 通过基于 OMAPI 与脱离主机安全元素的通信,我已经学会了如何将 AID 添加到
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 想改进这个问题?将问题更新为 on-topic对于堆栈溢出。 6年前关闭。 Improve this qu
Stackoverflow 上有很多关于 Desfire EV1 卡的问题。 但是如果你搜索一些示例数据,你会发现几个字节的唯一地方是 Ridrix Blog .但这很不完整。 很多人在为 Desfi
有没有办法将 DESFire 卡重置为原始状态?是否有格式化和删除所有内容的命令? 我读到 DeleteApplication apdu 命令删除了应用程序及其文件,但空间仍然不可用。 谢谢。 最佳答
我需要在 Android 设备上模拟 DESFire EV1 卡。但是,我对如何将 Mifare SDK(精简版或高级版)与 HCE 结合使用感到困惑。 这可能吗?我需要开始这个项目,我对数据如何在
我知道如何从 Mifare DESFire 标签读取和写入 ndef 消息,但在与 Android 进行通信时,我很难理解如何使用 DESFire 支持的命令集。 我知道它与 transceive(b
上周我一直在尝试使用具有默认 key (00000000h) 的 MIFARE DESFire EV1 卡进行身份验证,但无济于事。我关注了this blog对信的指示。我实现了Send mode C
我已经实现了 AES key 多样化 AV2,现在我想知道什么是 SAM AV1,它是如何工作的?任何人都可以分享链接或提供一些信息吗? 只是为了分享一些知识,以 AV2 为例: /*
当使用 Desfire 原生包装的 APDU 与卡通信时,必须使用命令和响应的哪些部分来计算 CMAC? 身份验证成功后,我有以下 session key : Session Key: 7CCEBF7
我现在有一张新的 Desfire EV1 卡。我想用 AES 加密设置 PICC 主 key 。我怎么能那样做?到目前为止,我可以使用单个 DES 获取 session key 。 最佳答案 您需要从
我有一个使用 MIFARE DESFIRE EV1 卡创建考勤系统的项目。 我需要用于此项目的读卡器品牌仅支持 ISO 7816-x,因此我需要使用 DESFIRE ISO7816-4 APDU Wr
我正在尝试使用我的 Android 应用程序验证 DESFire 卡。我用 the example in this link解密我从卡上得到的字节。为此,我排除了解密中的填充(在下面注释掉),因为 D
我在使用 MIFARE DESFire 时遇到了一个非常奇怪的问题。当我写入少量数据(例如11字节)时,写入操作成功。然而,当我尝试写例如50字节,响应为917E,说明命令存在长度问题。 尝试写入11
有没有人知道如何解密从卡发送的第一条消息?我的意思是在身份验证成功之后,然后你发送一个命令(例如 0x51 (GetRealTagUID)。它返回 00+random32bits(总是不同的)。我尝试
哪种类型的 CRC 用于更改 Desfire 卡中的 key ?CRC 字节的顺序是否应该颠倒。我无法更改 PICC 应用程序的 key 。任何人都可以帮忙吗? 最佳答案 CRC16/32 和 MAC
我正在尝试使用以下几行将一些数据写入带有 Galaxy S3 的 Mifare DesFire 卡: private byte[] wrapMessage (byte command, byte[]
从 DESFire EVO1 卡(AES 加密)读取数据时,出现 InvalidResponseLengthException。我正在使用 taplinx 库版本 1.5 我的代码如下所示: priv
我有一个 DESfire Ev1 1.3 版卡,我正在尝试使用 ISO7816 apdu 样式选择一个文件。 我有一个文件,有帮助 A0 A1 A2我可以使用 native 或包装模式选择它: 本国的
我想在本地模式下使用 desfire 卡进行身份验证。这是我目前的步骤: 我选择主应用程序 (AID = 0×00 0×00 0×00) 我收到来自卡片的响应(一个“挑战”,randB) 然后,在第二
我是一名优秀的程序员,十分优秀!