我有一个UICC(由Gemalto开发),它具有一些非常严格的APDU访问规则。我想从Android应用程序访问UICC上的小程序,但是这些规则不允许我发送任何APDU。

因此,我需要更改这些规则。

我尝试了以下操作:

  • 直接向ARA applet发送“存储数据-存储AR-DO”命令=>我收到状态字“不满足安全状态”
  • 验证到Issuer安全域,将Install For Personalization命令发送到Issuer安全域,然后通过ISD发送商店数据。 =>结果相同,“安全状态未满足”。

  • 难道我做错了什么?任何的想法?我是否需要任何其他身份验证,密码或密钥才能更改访问规则?一旦设置访问规则,是否有可能更改它们?

    最佳答案

  • Security Status Not Satisfied错误代码仅在发送APDU命令之前不满足某些先决条件时才出现。
  • 更新APDU访问规则(即,存储在ARA中的访问规则)需要正确的authentication,如果不执行正确的身份验证,就无法更新ARA applet中的AR,因此仅选择applet并发送store data命令是不够的,您需要进行正确的身份验证,因为在这种情况下,一旦命令从任何终端或服务器路由到UICC(或UICC上的应用程序),那么首先要检查身份验证和完整性,以验证命令是否来自经过身份验证的服务器或终端。如果身份验证失败,则APDU命令将失败,并出现Security Status Not Satisfied错误,这种情况正在您的情况下发生。
  • 访问规则(AR)存储在ARA中,可以使用standardized Global Platform Secure MessagingRemote Applet Management functionality进行空中更新,即您需要在安全通道协议(protocol)(SCP02)或SCP80的安全下发送APDU命令(即存储数据)。有关这些协议(protocol)的详细信息,请参考Global PlatformETSI规范。
  • 经过正确身份验证后,将Install[For Personalisation]命令发送到安全域,
    (通常,AR小程序与ISD关联,因此此处的安全域可能是ISD),然后发送Store Data命令更改ARA条目,因为前一个命令是Install[For Personalisation],因此下一个Store Data命令将路由至ARA Applet
  • 请确保所有这些APDU命令都应在建立适当的安全通道(对于SCP02)或在适当的安全信封(对于SCP80)内进行传输。

  • 谢谢,乐于帮助。

    关于javacard - UICC:如何更改ARA?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27187737/

    10-12 05:38