Security 锁定/解锁智能卡&;安全影响
我已经开始使用javacard为智能卡开发小程序。 编译小程序时,必须通过全局平台规范()中定义的安全协议将其加载到javacard 特别是,在卡上加载小程序需要知道用于在主机和智能卡之间设置安全通道的加密密钥。空白卡通常带有默认键,如“404142434445464748494A4B4C4D4F”。要“锁定”卡并确保其不被篡改,必须将这些密钥更改为仅发卡机构知道的密钥 我的问题如下: 使用默认测试密钥发卡有哪些风险 以下是我能想到的威胁列表:Security 锁定/解锁智能卡&;安全影响,security,applet,smartcard,javacard,globalplatform,Security,Applet,Smartcard,Javacard,Globalplatform,我已经开始使用javacard为智能卡开发小程序。 编译小程序时,必须通过全局平台规范()中定义的安全协议将其加载到javacard 特别是,在卡上加载小程序需要知道用于在主机和智能卡之间设置安全通道的加密密钥。空白卡通常带有默认键,如“404142434445464748494A4B4C4D4F”。要“锁定”卡并确保其不被篡改,必须将这些密钥更改为仅发卡机构知道的密钥 我的问题如下: 使用默认测试密钥发卡有哪些风险 以下是我能想到的威胁列表: 用户可以删除小程序并将卡重新用于其他用途 恶意软
- 用户可以删除小程序并将卡重新用于其他用途
- 恶意软件可能会卸载小程序(拒绝服务)
- 恶意软件可能会删除小程序并安装后门程序,以在将来使用时窃取用户凭据
我想了解使用带有安全通道默认密钥的智能卡的确切安全含义。小程序的数据应受到“防火墙”的保护,该防火墙是根据Java卡运行时规范(JCRE)第6章:“小程序隔离和对象共享”实施的: 基于Java卡技术的防火墙(Java卡防火墙)提供保护 针对最常见的安全问题:开发人员错误和 可能导致敏感数据“泄漏”到另一个小程序的设计疏忽。小程序可以从公开访问的位置获取对象引用。但是,如果对象属于受其自身防火墙保护的小程序,则请求的小程序必须满足某些访问规则,才能使用引用访问对象 防火墙还提供防止错误代码的保护。如果输入的代码不正确 加载到卡上,防火墙仍然保护对象不被此代码访问 为了允许共享,共享类必须实现
javacard.framework.Shareable
接口(6.2.6可共享接口详细信息)
请注意,如果允许运行不受信任的小程序,攻击面会大大增强。安全约束无法满足的可能性肯定会增加。这些密钥被认为是Java卡安全性的关键,应该始终替换默认密钥。如果您订购的卡数量较大,通常可以将默认密钥替换为特定于客户的密钥
请注意,在撰写本文时,Oracle的网站部分关闭,我无法访问文档。本文摘自我存储在个人电脑上的3.0.1规范。奇怪的问题,因为通过更改按键可以很容易地避免这种情况;考虑到任何小程序都可能被安装,我看到了大量威胁,窃取其他小程序数据不在其中,因为它们应该是私有的。@guidot的确,智能卡应该始终被锁定,但如果小程序代码打开,任何用户都可以加载它(并且忽略锁定卡),我们的目标是对用户的安全影响有一个清晰的了解。订购一套带有众所周知的默认密钥的卡。有没有保证它在运输过程中没有被篡改?不,我不这么认为,这是缺点之一;大多数安全性取决于GP密钥集。我会确保实际生产的卡有一套单独的钥匙。如果这完全是客户特定的密钥集,则可能取决于订单大小,但最好向您的供应商提出这个问题(如果有足够的激励,他们可能会替换正常的GP密钥集)。