2017-02-23 108 views
4

据我所知,SIM卡是一个Java卡,它将执行ETSI/3GPP规范和UICC配置。SIM卡和JCRE混淆

  1. 如果SIM卡是一个Java卡 - 它包含了从太阳 JCRE规范JCRE?
  2. 如果SIM卡有JCRE - 它实际上是卡的操作系统还是 还有另一层?如果有,我可以在哪里阅读? 有一个选项可以与JCRE和APDU以及读卡器进行交互吗?
  3. JCRE和卡片管理器是同一个实体还是卡片管理器是原生小程序?如果这些不同,当通过SMS接收到OTA更新时,JCRE是否先处理它,然后将其转发给小程序,或者卡管理器是否直接接收它?

回答

3
  1. 如果SIM卡是一个Java卡 - 它包含了从JCRE太阳JCRE规范?

是的,JCRE符合 “太阳” JCRE规范反正(Sun不存在了,它是所有现在Oracle)。

2a。如果SIM卡具有JCRE - 它实际上是卡的操作系统还是有另一层?

可能有多个图层。通常你也会有本地的加密库和一个HAL - 硬件抽象(或适应)层。如果还有另一个/本地操作系统取决于该卡(但我没有看到它为SIM卡的任何理由)。

2b。如果有,我可以在哪里阅读?是否可以选择与JCRE和APDU以及读卡器进行互动?

您必须咨询操作系统/芯片的制造商。而且,如果这些不可用,请与经销商联系。

  1. JCRE和卡片管理器是同一个实体还是卡片管理器是原生小程序?

卡片管理器是全球平台规格的一部分。大多数Java卡都符合这些要求。该卡可以是本地,字节码或组合。再一次,这取决于制造商。

如果这些不同,当通过SMS接收到OTA更新时,JCRE是否先处理它,然后将其转发给小程序,或者卡管理器是直接接收它?

它们通常相互交织在一起。我认为HAL(见上文)处理直接通信和APDU缓冲区,但只要该卡符合相应的标准,什么都可以。

只要它很好地描述,如果没有,那么制造商可能会与FIPS或Common Criteria认证机构进行严厉的谈话。但设计文件通常不是由制造商发布的。

+0

谢谢你的真棒答案!我有2个后续问题 - SIM卡有JCRE。 JCRE可以调用任何applet的任何方法吗?如果是这样的话,可以使用RMI和INVOKE apdu(或使用apdu的任何其他方式)完成调用(任何方法)? – Bluestar

+1

从['Remote'](https://docs.oracle.com/javacard/3.0.5/api/java/rmi/Remote.html):只有那些在“remote interface”中指定的方法'java.rmi.Remote'远程可用。 –

+1

除了RMI,通常你只能使用'install'方法,'process'方法和'select'方法(但最后一个不带任何参数) - 除了附加的SIM接口/回调。 –