我们都喜欢智能卡,因为它们可以保护私钥,因此它们不会暴露给外界。
但在生产环境中,智能卡通常会长时间(数小时)保持插入状态。
现在问题之前的两个场景如下:
- PIN 由(被攻击的?)应用程序(如 Firefox)存储。
- 每个关键操作都需要重新输入 PIN。
此外,可以假设私钥可以从卡中导出。
现在的问题
是:专业(有针对性的)攻击者是否有可能在远程攻击场景中从智能卡中获取私钥?
我们都喜欢智能卡,因为它们可以保护私钥,因此它们不会暴露给外界。
但在生产环境中,智能卡通常会长时间(数小时)保持插入状态。
现在问题之前的两个场景如下:
此外,可以假设私钥可以从卡中导出。
现在的问题
是:专业(有针对性的)攻击者是否有可能在远程攻击场景中从智能卡中获取私钥?
大多数智能卡应用中的薄弱环节是 PIN 输入。直接从卡中提取私钥几乎是不可能的。通过一些酸性包装破坏和电子显微镜工作,一个熟练的团队,以及足够的时间、金钱和运气,理论上你可以提取密钥,但它不仅涉及物理访问,还涉及卡片将被物理破坏的场景。
但是,如果主机系统受到威胁,并且用户的 PIN 输入被键盘记录并随后重放,智能卡将很高兴为攻击者和用户一样工作。如果您担心主机系统受到威胁,您应该查看直接 PIN 输入。使用带有键盘的智能卡读卡器,直接在键盘和读卡器之间进行通信。PIN 永远不会到达主机,因此无法拦截。虽然理论上阅读器本身可能存在缺陷,但我从未见过涉及直接 PIN 输入的漏洞,我认为它可能是特定于硬件的。有一些方法可以在没有专用键盘的情况下使用可编程智能卡和 OTP 而不是仅使用 PIN 来强化 PIN 输入,但不确定这是否是您感兴趣的替代方案。
还要记住很多还取决于用例。该卡是否用于数字签名? 攻击者获得欺诈性签名与窃取实际私钥所造成的损害是什么? 在某些情况下,这是一种显着的缓解,而在其他情况下,这是一个毫无意义的区别。后一种情况更难防御,因为保护密钥比保护未经授权的密钥使用更容易。
如果卡操作系统本身支持任何命令来导出/读出密钥 - 您可能会想象一些远程获取私钥的场景。但是大多数(如果不是全部……)根本没有这样的功能。故意。因此,无论使用何种主机安全/保护 - 卡都无法在任何情况下发回私钥。有些卡片更进一步——它们根本没有密钥导入功能。您只能在卡内生成密钥对并仅读取公钥。如果在导入卡之前已经复制了私钥,这种方法也可以消除任何争议。如果购物车本身已生成密钥对,或者您的卡中没有全部私钥,则您可以在卡中拥有私钥。
当然,所有提到的通过物理检查或基于功耗/时间/故障的分析对卡的攻击仍然存在,但它们很难通过远程方式导出(也许故障分析有时仍然可以远程导出)。
但是最危险的线程与提到的“远程使用 PIN 认证卡”有关,它不需要任何密钥提取:) 如果您可以远程使用智能卡中的密钥来提供签名操作,您通常会得到您想要的结果RSA 计算是目标,而不是私钥本身 ;)
不。
忘记远程部分。只需将您的智能卡交给攻击者并告诉他使用任何资源来获取私钥。他将无法在本地攻击中这样做,更不用说在远程攻击中了。这就是防篡改的全部内容。
至少这是制造商声称的。