首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >锁定/解锁智能卡&安全问题

锁定/解锁智能卡&安全问题
EN

Stack Overflow用户
提问于 2020-11-23 13:27:29
回答 1查看 149关注 0票数 2

我已经开始使用javacard为智能卡开发applet。在编译applet时,必须通过全局平台规范(https://globalplatform.org/wp-content/uploads/2018/05/GPC_CardSpecification_v2.3.1_PublicRelease_CC.pdf)中定义的安全协议将其加载到javacard。

特别是,在卡上加载applet需要知道用于在主机和智能卡之间建立安全通道的密码密钥。空白卡通常提供默认密钥,如“40414243444445464748494A4B4C4D4E4F”。若要“锁定”卡并确保其不能被篡改,必须将这些密钥更改为只有发行者才知道的内容。

我的问题是:使用默认测试密钥发行卡的风险是什么?

以下是我能想到的威胁清单:

  • 用户可以删除该小程序,并将该卡用于另一目的--
  • 恶意软件可以卸载applet (拒绝服务)
  • 恶意软件可以删除该小程序并安装一个备份的小程序,以在今后的使用中窃取用户的凭据。

还有其他威胁吗?特别是,是否有可能恢复存储在已安装在卡上的applet中的敏感数据(例如加密密钥)?

我想了解使用带有安全通道默认密钥的智能卡的确切安全含义。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-25 10:28:52

applet的数据应该由根据Java Card运行时规范(JCRE)实现的“防火墙”保护,第6章:"Applet隔离和对象共享“:

--基于Java技术的防火墙(Java防火墙)--为防范最常见的安全问题提供了保护:开发人员的错误和可能导致敏感数据被“泄漏”到另一个applet的设计疏忽。applet可以从可公开访问的位置获取对象引用。但是,如果对象由受自己防火墙保护的applet拥有,则请求applet必须满足特定的访问规则,才能使用引用访问对象。

防火墙还提供不正确代码的保护。如果将不正确的代码加载到卡上,防火墙仍将保护对象不被此代码访问。

要允许共享,共享类必须实现javacard.framework.Shareable接口(6.2.6共享接口详细信息)。

不过,请注意,如果允许运行不受信任的小程序,则攻击面将大大增强。不能满足安全限制的可能性肯定会增加。这些密钥被认为对Java Card安全至关重要,应该始终替换默认密钥。如果您订购了大量的卡,通常可以用特定于客户的卡替换默认的密钥。

请注意,在编写本报告时,Oracle的站点部分关闭,我无法访问文档。本文摘自我在个人电脑上存储的3.0.1规范。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64969364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档