【发布时间】:2009-12-29 09:40:41
【问题描述】:
我想创建 J2ME 应用程序,其中该应用程序只能与安装期间使用的 SIM 卡一起使用。在 SIM 卡 (GSM) 上更改应用程序现在应该可以工作了。 为了实现这一点,我想到了 simcard 的签名并将其保存在持久存储中。在应用程序的每次启动时,都可以验证签名。关于如何实现这一点的任何想法。 提前致谢
【问题讨论】:
我想创建 J2ME 应用程序,其中该应用程序只能与安装期间使用的 SIM 卡一起使用。在 SIM 卡 (GSM) 上更改应用程序现在应该可以工作了。 为了实现这一点,我想到了 simcard 的签名并将其保存在持久存储中。在应用程序的每次启动时,都可以验证签名。关于如何实现这一点的任何想法。 提前致谢
【问题讨论】:
可以从您的 J2ME 应用程序中使用“SATSA”(安全和信任服务 API 又名 JSR177)与 SIM 进行通信。您可以发送“3GPP TS 11.11”命令来获取 IMSI(选择文件 DG_GSM,选择文件 EF_IMSI,读取二进制文件)。
缺点是:(1) 您在相对较低的抽象级别(ISO7816-4 层)上与 SIM 通信; (2) 目前并非所有手机都支持 JSR177。
【讨论】:
我相信这是不可能的。如果可以通过特定手机实现,那么就不可能以通用方式实现。
【讨论】:
对于美国的 ATT,对于 J2ME 应用,手机会在 Jad 文件中嵌入“CarrierDeviceId”。这是每张 SIM 卡唯一的。因此,如果您可以使用类似的东西,只需在应用程序第一次启动时读取此 Jad 参数,将其保存到 RMS 或发送到服务器。现在每次应用启动时,您都可以验证此号码是否匹配,从而验证 SIM 卡是否相同。
您也可以尝试获取与 SIM 卡绑定的电话号码,从而验证是否正在使用旧 SIM。
【讨论】: