GlobalPlatform 的安全架构:发行者可以做什么?

Security architecture of GlobalPlatform: What can the issuer do?

我无法理解 GlobalPlatform 卡规范的高级安全架构,特别是发卡机构和发卡机构安全域的功能。

发卡行是否真的可以访问已安装应用程序的私人数据,或者这是不可能的事情?

换句话说,拥有卡发行者密钥相当于在卡上拥有完整的系统权限,还是仅限于安装新应用程序和删除已安装的应用程序、创建安全通道、禁用卡等?

(这是一个相当复杂的问题,下面的 "answer" 只是我在 java 卡片上下文中的个人意见 -- 没有 MULTOS)

ISD 密钥(发卡机构密钥)保护对 ISD 服务的访问。没有允许读取已安装小程序(应用程序)的任何私有数据的服务,因此简单的答案是 "No".

不幸的是,安装任何小程序的能力为进一步的攻击打开了大门(比如在非特权用户帐户下执行代码会增加任何 "standard" 计算系统的攻击面)。

已经发布了一些使用恶意小程序的攻击,并且可能还会有更多攻击,因此负责任的答案是 "There is some risk involved"。

一些额外的随机笔记:

  • ISD 密钥允许访问全局 PIN

  • (AFAIK) 任何小程序都可以随意访问其他小程序的静态 methods/fields。应用防火墙不保护它们

  • 在最简单的情况下,ISD 密钥允许模拟其他小程序(当没有适当的小程序身份验证时)——在 APDU 和 Shareable 级别

  • [假设 SCP(01/02/03)]:如果攻击者拥有 ISD 密钥并且能够获取受此密钥保护的任何通信的 APDU 日志(即使机密性安全消息传递使用模式)然后他能够解密此通信(例如,拥有卡个性化 APDU 日志 + 安全密钥 = 拥有在个性化期间发送到卡的所有秘密)。可能会使用一些非常不切实际的预防措施(例如,在卡上生成的 RSA public 密钥下加载机密)