智能卡中的身份验证密钥

Posted

技术标签:

【中文标题】智能卡中的身份验证密钥【英文标题】:Authentication keys in smart cards 【发布时间】:2014-10-04 12:42:32 【问题描述】:

我在我的 java 卡上使用 JCManager 工具加载小程序。该软件顶部有三个字段用于验证密钥,分别名为S_ENCS_MACDEK

据我所知,ENC 代表加密MAC 代表消息验证码DEK 代表数据加密密钥 em>。

我想知道他们什么时候使用的(沟通中的哪一步?INITIAL UPDATEEXTERNAL 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 更通用的术语。

【讨论】:

以上是关于智能卡中的身份验证密钥的主要内容,如果未能解决你的问题,请参考以下文章

github中的Jenkinsfile和terraform模块:如何通过密钥进行身份验证?

剪影身份验证器密码密钥,cookie 签名者密钥

Bitstamp - C# 中的新身份验证 - 签名

Google身份验证器怎么用

转换到 APNS 身份验证密钥的过程是啥?

开放式身份验证需要密码。 预共享密钥不需要密码。