这就是智能卡的工作方式。如果需要USB记忆棒,则知道在哪里可以找到它。
智能卡旨在确保安全性。它们的目的是防篡改。他们旨在存储秘密并自杀,而不是放弃他们的秘密。您不能(通过合理的努力,除非实现缺陷)从数据中提取或克隆数据。
智能卡的设计(假定是)使您如果尝试绕过软件界面并直接读取其内存,则不会。唯一的外部接口是电源线和串行线。其他所有东西都在法拉第笼中(用于抵抗排放测量),该笼由一层腐蚀性化学物质(我认为是酸)保护着,因此,如果您试图在保护层上打洞,则芯片(尤其是内存)会被破坏,无法恢复。
该芯片经过设计,可以消耗恒定的功率,从而避免由于功耗而泄漏信息。它的设计还允许操作花费恒定的时间。因此,智能卡芯片没有诸如指令流水线或电源管理之类的硬件优化来减少散热。智能卡芯片通常包含的部件实际上并没有任何作用,从而使排放和功耗变得更恒定或更难以分析,并使逆向工程变得困难。
许多因素使智能卡比不对安全敏感的芯片慢。由于智能卡没有自己的电源,因此它们需要相当频繁地写入闪存-它们负担不起在RAM中缓存内容。否则,对手可能会在有利的时候(对他而言)切断权力。软件必须使用固定时间算法(以避免计时攻击),而不是最快的算法。万一对手在卡上发出雷射以翻转内存中的某些位并使软件处于无法访问的状态(是的,这是真正的攻击),则必须冗余编写软件。
诸如此类的安全措施是有成本的。此外,由于攻击持续改善,因此芯片的设计必须跟上。遵循摩尔定律,大多数类型的芯片变得越来越强大,但是对于智能卡,工程上的改进大部分被抵抗新攻击的需要所吸收。
还有是支持4K RSA密钥卡。但它们并不常见。几年前,引入了Java Card 3来支持Java语言的几乎所有功能。我认为能够执行此操作的卡可以使用4k RSA签名。但是它们并没有真正采用,部分原因是工程改进是通过增加安全保护来进行的,部分原因是非接触卡已经进行了许多工程改进,从而需要更少的功耗和更快的响应时间。
但是4k RSA的市场并不多。随着智能卡达到这一点,ECC变得广泛可用。您可以使用更小的ECC密钥获得与4k RSA相同的安全级别。从RSA切换到ECC的唯一缺点是在整个基础架构中都支持该算法,但是嵌入式设备(例如智能卡)是最困难的部分:如今,服务器端几乎所有支持ECC的东西。
如果您确实需要更强大的功能,则可以使用具有“真正”计算能力的USB软件狗,该软件狗可以存储加密密钥并通过PKCS#11接口执行加密操作。这些加密狗的物理防篡改能力与典型的PKCS#11几乎没有相同。这是安全性和性能之间的折衷。
进一步阅读: