我正在努力了解安全访问模块(SAM)。他们为什么需要?与RFID读卡器一起使用时,基于SAM和SAM的方法有什么区别?
安全访问模块(SAM)是存储用于访问智能卡上的内容/应用程序的敏感密钥材料的安全位置。通常,SAM本身就是智能卡。使用SAM背后的想法是存储密钥以访问其上的某些智能卡应用程序等,并且密钥永远不会再次离开SAM(即攻击者无法从中提取原始密钥材料)。相反,每当阅读器应用程序访问智能卡应用程序时,它实际上让SAM与智能卡通信。这可以通过将SAM作为读取器应用程序和智能卡应用程序之间的代理来完成,这样未加密/未经验证的读取器端通信将被包装到加密/认证通信中,然后转发到智能卡应用程序:
unencrypted/ encrypted/ unauthenticated authenticated/ READER APPLICATION <-----------------> SAM <=================> SMARTCARD APPLICATION
请注意,事实上,实际的APDU可能会以稍微不同的方式路由:
+--------------------+ +--------+ +-----+ | READER APPLICATION | <----------------> | | <----------------> | | +--------------------+ | SAM | | | | READER | | SAM | +-------------+ | | | | | | <================> | | <================> | | | PROXY | +--------+ +-----+ | APPLICATION | | | +------------------+ +-----------------------+ | | <===========> | SMARTCARD READER | <===========> | SMARTCARD APPLICATION | +-------------+ +------------------+ +-----------------------+
或者,SAM仅可用于计算用于认证和加密的短暂挑战,响应,会话密钥等,然后由读取器应用程序集成到实际通信协议中。
在无SAM方法中,访问智能卡应用程序的关键材料需要可供读取器应用程序本身使用。由于应用程序通常在无法充分保护秘密密钥材料的平台上运行,这将导致安全风险。