如何找到带有 CLA 字节 0x80 的空白 SIM 卡

Posted

技术标签:

【中文标题】如何找到带有 CLA 字节 0x80 的空白 SIM 卡【英文标题】:How to find blank SIM card with CLA byte 0x80 【发布时间】:2019-07-16 17:03:51 【问题描述】:

我正在开发一个需要调用需要运营商权限的 API 的 android 应用。我已经购买了一些空白 SIM 卡并尝试将我的应用程序的证书哈希写入它们。

基于 Android 源代码,Android 使用带有 CLA 字节 0x80 的 APDU 来检查卡上的规则。但是,我拥有的所有卡都只支持 CLA 字节 0xA0。有没有办法找到我想要的 CLA 字节的 SIM 卡?

谢谢!

【问题讨论】:

【参考方案1】:

您正在寻找的是 GlobalPlatform“安全元素访问控制”规范,该规范可通过here 获得。

从技术上讲,您需要一张带有 ARA-M 小程序的 SIM 卡。有一个 MIT 许可的 JavaCard 实现 here 可用,您可以将其加载到您的卡中(使用例如 GlobalPlatformPro)——只要您的 SIM 卡是 JavaCard 并且您有适当的密钥。

然后您需要存储上述规范中描述的访问规则。幸运的是 GlobalPlatformPro 似乎是support rule loading,所以您可能不需要研究所有细节。

如果您的 SIM 卡不是 JavaCards,那么您必须询问您的供应商是否支持 ARA-M(您可以尝试选择 ARA-M AID,即A00000015141434C00)。

免责声明:我(勉强)处理这个问题已经有一段时间了,所以请验证我的想法。

祝你好运!

【讨论】:

以上是关于如何找到带有 CLA 字节 0x80 的空白 SIM 卡的主要内容,如果未能解决你的问题,请参考以下文章

UnicodeDecodeError:“utf8”编解码器无法解码位置 3131 中的字节 0x80:无效的起始字节

Spring,Hibernate:尝试保存图像时出现无效的 UTF-8 起始字节 0x80 错误

编码utf8中字节序列为0xe2 0x80 0xa6的字符在编码latin1时没有等效字符

if(input & 0x80)在I2C中是怎么样一步步写入数据的?

APDU命令与响应格式

APDU命令与响应格式