使用 SAM 模块存储安全密钥

Posted

技术标签:

【中文标题】使用 SAM 模块存储安全密钥【英文标题】:Using SAM modules for storing secure keys 【发布时间】:2016-06-28 11:31:42 【问题描述】:

据我了解,SAM 模块是一种通过 ISO 7816 协议连接到 MCU 的智能卡。

    除了存储安全之外,还有其他应用程序吗? 钥匙? 我可以使用普通的移动 sim 卡而不是 SAM 模块来存储 钥匙? 据我所知,当我们在 SAM 模块中存储密钥时,几乎 无法检索密钥,& SAM 使用了随机序列 挑战和多相身份验证以验证卡。然后如何 SAM 将此验证发送到 MCU?SAM 和之间是否有直接访问 读者?或者他们通过MCU连接?哪个命令用于存储密钥 在 SAM 中? 是否有任何特殊的标准协议用于此安全 传送? (将密钥存储在 SAM/身份验证中 CARD-SAM-MCU/验证过程 & ...) 为什么芯片制造商没有为他们的 MCU 配备这种安全性 内部元素?

【问题讨论】:

Mahmoud,当我回答时,#6 并不在场,而且这确实不是一个问题。有一张“太广泛”的票很接近,这也可能是投反对票的原因。扩大已经很多的问题对你没有任何好处。除此之外,它仅对编程本身的适用性有限,因此至少与主题无关。请注意,还有security SE 站点。 投反对票的人,这个问题有什么问题?如果我问错了问题,也许最好弄清楚! 【参考方案1】:

除了存储安全密钥之外,它们还有其他应用吗?

智能卡包含一个通用 CPU,因此您可以想到任何东西。但是对存储的密钥进行操作确实是它们的主要目的。

我可以使用普通的移动 sim 卡而不是 SAM 模块来存储密钥吗?

通用 (Java) 卡会更有意义。

据我所知,当我们将密钥存储在 SAM 模块中时,几乎不可能检索到密钥,并且 SAM 使用一系列随机挑战和多相身份验证来验证卡。那么SAM如何将此验证发送到MCU? SAM 和 Reader 之间有直接访问吗?或者他们通过MCU连接?哪个命令用于在 SAM 中存储密钥?

这真的取决于实现。

这种安全传输是否有任何特殊的标准协议? (在 SAM 中存储密钥/CARD-SAM-MCU 之间的身份验证/验证过程和...)

据我所知没有。可能有许多“标准”确实适用,但据我所知,没有一个可以概括地描述 SAM 卡的使用。

为什么芯片制造商没有在内部为这个安全元件配备他们的 MCU?

有时他们会这样做。

然而,保护芯片非常棘手。基本上,您将密钥存储在您知道攻击者将获得的设备中。所以你必须使用地址总线加扰、屏蔽等等等。

使用之前获得认证并经受住渗透测试的标准智能卡更具成本效益。

【讨论】:

感谢您的帮助,但我不知道在哪里可以获得有关此主题的足够信息。我设计了一个 RFID 非接触式阅读器,它可以很好地读取/写入标签,目前我想将 SAM 模块添加到该项目中,以便在 SAM 中安全地存储密钥。但是没有任何关于我必须如何连接到 SAM、存储密钥和验证 PICC 的信息。& 我仍然不知道我的否定的原因,WBR。

以上是关于使用 SAM 模块存储安全密钥的主要内容,如果未能解决你的问题,请参考以下文章

Linux内核安全模块学习-内核密钥管理子系统

psam用途是啥

什么叫安全芯片

如何安全地存储和使用客户的 AWS 密钥

使用 TPM2 安全地存储密钥

在 Android 密钥库中安全地存储密钥