javacard - UICC : How to change ARA?

标签 javacard apdu sim-card globalplatform

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

所以我需要更改这些规则。

我试过以下:

  1. 直接向 ARA 小程序发送“存储数据 - 存储 AR-DO”命令 => 我收到状态词“不满足安全状态”

  2. 向颁发者安全域进行身份验证,向颁发者安全域发送个性化安装命令,然后通过 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 PlatformETSI 规范。

  • 正确验证后,发送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/

相关文章:

smartcard - 尝试选择 Applet 时收到 6E00

smartcard - setATRHistBytes() 方法始终返回 false

android - 安卓应用与ACR122U卡仿真交互

smartcard - 有没有办法在不使用 select APDU 命令的情况下选择 javacard 小程序?

java - 如何使用我们在SD卡中创建的 key (符合全局平台的智能卡)

python - 智能卡:pyscard 从 apdu 获取剩余字节

android - 从 SIM 卡获取 TMSI

android - UICC : Can I trust proactive TIMER MANAGEMENT?

android - 仅从 SIM 卡获取本地电话簿联系人 android

java - 解密时出现 RSA BadPaddingException