我正在努力理解安全访问模块 (SAM)。为什么需要它们?与 RFID 读卡器一起使用时,基于 SAM 和无 SAM 的方法有什么区别?
最佳答案
安全访问模块 (SAM) 是存储用于访问智能卡上的内容/应用程序的敏感 key Material 的安全位置。通常,SAM 本身就是智能卡。使用 SAM 背后的想法是,您将访问某些智能卡应用程序等的 key 存储在其上,并且 key 永远不会再次离开 SAM(即攻击者将无法从中提取原始 key Material )。相反,每当阅读器应用程序访问智能卡应用程序时,它实际上让 SAM 与智能卡通信。这可以通过将 SAM 作为读卡器应用程序和智能卡应用程序之间的代理来完成,这样未加密/未经身份验证的读卡器端通信将被包装到加密/身份验证通信中,然后转发到智能卡应用程序:
未加密/加密/
未经身份验证的身份验证/
阅读器应用程序 <-----------------> SAM <==================> 智能卡应用程序
请注意,实际上,实际的 APDU 可能会以稍微不同的方式路由:
+--------------------+ +--------+ +-----+
|阅读器申请 | <----------------> | | <----------------> | |
+--------------------+ |山姆 | | |
|读者 | |山姆 |
+--------------+ | | | |
| | <================> | | <================> | |
|代理 | +--------+ +-----+
|应用 |
| | +------------------+ +----------+
| | <============> |智能卡阅读器 | <============> |智能卡应用 |
+--------------+ +------------------+ +-------------- ---------+
或者,SAM 只能用于计算临时质询、响应、 session key 等,以进行身份验证和加密,然后由阅读器应用程序集成到实际通信协议(protocol)中。
在无 SAM 方法中,访问智能卡应用程序的 key Material 需要对读卡器应用程序本身可用。由于该应用程序通常会在无法充分保护 key Material 的平台上运行,这将导致安全风险。
关于security - 需要什么安全访问模块 (SAM)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52108439/