我有一个 UICC(由 Gemalto 开发),它有一些非常严格的 APDU 访问规则。我想从 Android 应用程序访问 UICC 上的小程序,但这些规则不允许我发送任何 APDU。
所以我需要更改这些规则。
我试过以下:
直接向 ARA 小程序发送“存储数据 - 存储 AR-DO”命令 => 我收到状态词“不满足安全状态”
向颁发者安全域进行身份验证,向颁发者安全域发送个性化安装命令,然后通过 ISD 发送存储数据。 => 同样的结果,“不满足安全状态”。
我做错了什么吗?任何想法?我是否需要任何额外的身份验证、密码或 key 才能更改访问规则?是否甚至可以在设置访问规则后更改它们?
最佳答案
Security Status Not Satisfied
错误代码仅在发送 APDU 命令之前不满足某些先决身份验证条件时出现。更新 APDU 访问规则(即存储在 ARA 中的访问规则)需要正确的
身份验证
,如果不进行正确的身份验证,您将无法更新 ARA 小程序中的 AR,因此只能选择小程序并发送存储数据命令是不够的,您需要进行适当的身份验证,因为在这种情况下,一旦命令从任何终端或服务器路由到UICC
(或 UICC 上存在的应用程序),那么首先是身份验证和完整性检查以验证命令来自经过身份验证的服务器或终端。如果身份验证失败,则 APDU 命令将失败并出现Security Status Not Satisfied
错误,您的情况就是这种情况。访问规则 (AR) 存储在 ARA 中,可以通过
标准化全局平台安全消息传递
或远程小程序管理功能
进行无线更新,即您需要在安全通道协议(protocol) (SCP02
) 或SCP80
的安全下发送 APDU 命令(即存储数据)。有关这些协议(protocol)的详细信息,请参阅Global Platform
和ETSI
规范。正确验证后,发送
Install[For Personalisation]
命令到安全域, (一般AR小程序是关联到ISD
的,所以这里的Security Domain可能是ISD),然后发送Store Data
命令改变ARA条目,如前命令Install[For Personalisation]
因此下一个Store Data
命令将路由到ARA Applet
。请确保所有这些 APDU 命令都应在建立适当的安全通道后传输(如果是
SCP02
)或在适当的安全信封内(如果是SCP80
).
谢谢,乐于助人。
关于javacard - UICC : How to change ARA?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27187737/