智能卡中的身份验证密钥
Posted
技术标签:
【中文标题】智能卡中的身份验证密钥【英文标题】:Authentication keys in smart cards 【发布时间】:2014-10-04 12:42:32 【问题描述】:我在我的 java 卡上使用 JCManager 工具加载小程序。该软件顶部有三个字段用于验证密钥,分别名为S_ENC
、S_MAC
和DEK
。
据我所知,ENC
代表加密,MAC
代表消息验证码,DEK
代表数据加密密钥 em>。
我想知道他们什么时候使用的(沟通中的哪一步?INITIAL UPDATE,EXTERNAL AUTHENTICATION?...)?
在每次通信中使用的所有这三个键,还是其中一些是可选的?
在哪里? (卡或终端或两者兼而有之?)
另外,我想知道KEK
是什么?智能卡中有KEK
吗?
【问题讨论】:
这次我已经回答过了,但我感觉到你强烈不愿意进行任何类型的研究。请不要立即将您不理解的任何内容变成问题。 【参考方案1】:阅读Global Platform Card specifications(需要注册)了解如何使用密钥。它们在身份验证期间的使用方式在全球平台规范中有所不同,因此最好直接访问源代码。例如 E.4.2。 GPC 2.2 规定:
生成或验证 身份验证密码使用 S-ENC session 密钥和附录中描述的签名方法 B.1.2.1 - 完整的三重 DES。
DEK(或从给定 DEK 派生的密钥)用于对机密数据(例如密钥)进行额外加密。例如,它允许在硬件安全模块中包装密钥,然后通过安全消息通道发送它(请注意,它可能根本不加密)。对于较旧的方案,还需要派生 DEK 会话密钥,这与笨拙的专有密钥派生配对,几乎不可能在不对 HSM 进行编程的情况下这样做。
DEK 只是一个比 KEK 更通用的术语。
【讨论】:
以上是关于智能卡中的身份验证密钥的主要内容,如果未能解决你的问题,请参考以下文章