智能卡相互认证

朱利奥·钦奇利亚·瓦伦苏埃拉

嗨,我正在寻找有关使用SmartCard进行相互认证的信息,我想知道您是否能为我提供帮助。我正在研究逆向工程apdu命令,想知道如何计算MAC。例如,我有以下内容:

APPLET: A4 00 04 0C XX XX XX
APDU: 00 84 00 00 08 C9
TRX: 00 82 00 00 28 [seed bytes Transformed enc mac ...] 00
TRX: B0 0C 0D 81 00 97 01 5D 8E 08 [MAC] 00

前两个命令我完全理解它们,但是从第三个命令00 82开始,我想知道如何计算MAC及其后续内容,以便进行读取,我想知道信息和文档以阅读和学习更多关于共同认证

基多

总体上,相互认证的简短摘要(我同意,ISO 7816-4在集中于接口的含义上有点简洁):

  • 相互认证是内部认证和外部认证命令的组合。

  • 首先,主机应用程序从卡中请求一个随机数。

  • 然后,通常通过应用MAC算法,使用秘密密钥对该随机数进行加密

  • 计算结果将在Mutual Authenticate的命令数据字段中发送回卡,并在外部生成另一个随机数。

  • 该卡验证MAC结果,如果成功,则授予访问权限。它还使用不同的密钥根据外部提供的随机数计算MAC,并将其作为命令响应发送。如果不成功,则可以通过阻止计数器的错误计数器或相当大的延迟来制定防止暴力的措施。

  • 主机应用程序验证卡中的MAC。如果结果正确,则主机应用程序可以确定其为“合法”卡。

有两点很关键:

  • 如何分离和编码MAC和外部提供的随机数-例如使用两个数据对象的TLV结构
  • 如何识别两个密钥,因为在P2中只能指定一个。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章