2017-02-23 51 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接口/回調。 –