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 密钥下加载机密)
我无法理解 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 密钥下加载机密)