如何解决如何使用卡挑战和卡密码创建秘密会话密钥S-ENC,S-MAC和S-DEK?
我有一个微控制器(msp430)和一个智能卡(se050),并且正在使用Windows计算机上的Code Composer Studio将APDU从微控制器发送到智能卡。
我正在尝试使用AES对称密钥创建安全通道(SCP03)。我已经使用智能卡上的此AES密钥创建了一个会话,现在要执行相互身份验证,我已向智能卡发送了'INITIALIZE UPDATE'命令APDU
初始化更新APDU:
80 50 00 00 08 00 00 00 00 00 00 00 00 00
卡上的响应是:
00 00 00 00 00 00 00 00 00 00 00 03 60 7E 25 31 3D BE 63 59 BE 34 AA 4B C0 F2 B9 27 B4
其中
00 00 00 00 00 00 00 00 00 00
= 关键多元化数据
00 03 60
= 关键信息
7E 25 31 3D BE 63 59 BE
= 纸牌挑战
34 AA 4B C0 F2 B9 27 B4
= 卡密码
现在,我要检查卡密码是否正确?为此,我需要创建秘密会话密钥(S-ENC,S-MAC,S-DEK)和卡密码,以便对卡进行身份验证。
我还需要创建“主机密码” ,并需要使用“ EXTERNAL AUTHENTICATE ”命令重新发送到智能卡。
如何在代码编辑器中生成这些东西?我可以在代码中导入任何C库来生成这些密钥和密码吗?
解决方法
我已经开发了一段时间,最近更新了GlobhalPlatform C Library。这是Overview Page,这是API documentation。对于您的问题,mutual authentication是一个很好的起点。
请记住,您还可以使用cmake -G "..."
为Visual Studio或Eclipse生成更方便的项目文件,以提供一种浏览项目的好方法。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。