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