Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SORACOM SIM Inside ― SORACOM SIMの中身のハナシ

SORACOM SIM Inside ― SORACOM SIMの中身のハナシ

2022年4月6日(水)開催のSORACOM UG Online #11 ~ SIMの日記念で、ソラコム ソリューションアーキテクト 松本悠輔 (ysk) が発表した資料「SORACOM SIM Inside ― SORACOM SIMの中身のハナシ」を公開

7cd783377515bdf8207062840b7b2f4e?s=128

SORACOM
PRO

April 06, 2022
Tweet

More Decks by SORACOM

Other Decks in Technology

Transcript

  1. SORACOM SIM Inside 株式会社ソラコム 2022/4/6 SORACOM SIMの中身のハナシ

  2. 自己紹介 松本悠輔(Yusuke Matsumoto) ソリューションアーキテクト 経歴: • インフラエンジニア • Webエンジニア •

    IoTエンジニア 好きなサービス:SORACOM Junction SORACOM本の一部執筆を 担当しています!
  3. SIMとは 認証 ローミング ユーザデータ USIM=Universal Subscriber Identity Module USIMとは、欧州の2G(GSM)の移動機に採用されていた SIMカードを拡張したもの。

    CPUを内蔵したICチップ(UICC)で、3G/LTE移動機において 不可欠なデバイスの1つ。
  4. FLASH / EEPROM ROM RAM CPU • CPU : 32bit

    • メモリー: FLASH • 標準規格: ISO / 3GPP / ETSI / GP • 電気特性: 1.8 / 3 / 5 v • クロック: 1~5MHz • 形状 : 2FF(plug-in)/3FF(micro) • 4FF(nano)/embedded • 機能 • Java Card (ver. 3.0.1) or later • OTA(RFM/RAM) • SAT/USAT • Secure Element • PKI • Crypt ベースのSecure ICは Infineon/Samsung/ST Microsystemsな どの半導体ベンダが供給 UICC (Universal Integrated Circuit Card)
  5. 3G/LTE のSIM認証 VPC 加入者情報DB 1.認証リクエスト 2.認証レスポンス Auth Token(AUTN), Random(RAND) 3.ネットワーク

    の認証 4.ユーザー認証レスポンス RES 5.SIMの認証 Integrity Key Ciphering key Secret Key Sequence Number N Secret Key Sequence Number N 6.鍵の生成 6.鍵の生成 Integrity Key Ciphering key 鍵の交換が ない
  6. SORACOM SIMアプレット SORACOM SIM Applet 1 SORACOM SIM Applet 2

    SIM基本機能 (認証等) SIM OS Java Applet実行環境 • SIM上で動作して様々な拡張機能を実行 • SORACOMプラットフォームとセキュアな通信路を確立可
  7. UICCの論理構造 Core O.S UICC Card Manager and Security domains Remote

    Applet Management Core Applications (USIM) File System servers Toolkit and Java Card runtime environment UICC API and USIM API Java Card Toolkit Applet Java Card packages Java Card Applet
  8. Javaアプレット……

  9. http://www.oracle.com/technetwork/java/javacard/javacard1-139251.html Java Card • UICC上でセキュアにアプリケーションを動作さ せるための環境 • 非常に限られたメモリと処理能力で動作 • Java

    Card上のJava VMで動作するバイトコード は、通常のJava VMのサブセット • エンコーディングや最適化は異なる • アプレット内で生成したオブジェクトは、永続 化メモリに保存される • RAMは非常に少ないので、一時的なデータも しくはセキュリティセンシティブなデータの みに利用 • ガベージコレクションは基本的にない
  10. スマートカードリーダー モデム

  11. 実際にはこんな感じ カードリーダ モデム アンテナ APDUの世界 ※詳細はのちほど

  12. Java Cardアプレットの実装サンプル package io.soracom.jc_hello_pkg; import javacard.framework.*; public class jc_hello extends

    javacard.framework.Applet{ public static void install(byte[] bArray, short bOffset, byte bLength) { // call Applet.register() } public void process(APDU apdu) { //Insert your code here } } javacard.framework.Applet を継承して実装 installメソッドを実装して、 アプレットのインスタンスを登録する デバイスでアプレットを選択して、 APDUコマンドを投げるとこのprocessメソッドが呼ばれる http://www.javaworld.com/article/2076450/client-side-java/how-to-write-a-java-card-applet--a-developer-s-guide.html
  13. APDU 例:IMSIの読み取り 00 B0 00 00 3F 00 7F 20

    6F 07 (Application Protocol Data Unit) • 端末とJava Cardアプレットがやり取りするためのバイト列 CLA INS P1 P2 P3 SW1 SW2 Command APDU Response APDU Data Read Binary ディレクトリ ファイル
  14. 開発ツールなど • 開発とコンパイル • Eclipse or Netbeans IDE • コンバージョン

    • JCDK - Javacard Development Kit • アプレットのインストール • SIM Alliance CAT loader 2.0 とカードリーダー • 実機のテスト • APDUコマンドのキャプチャツールを利用
  15. None
  16. Appletで実装されている機能の例

  17. IoT SIMに組み込み済みのアプレット • SIMアプレットによるLocal Infoの取得 • Local Info = デバイス側の情報

    • Plan01s/Plan01sLDVのSIMにはSIMアプレットがインストール済み • カード型SIM/チップ型SIMいずれも対応 SORACOM SIM Applet Local Info
  18. SIM Local Info 取得詳細 1. Local infoレポートを要求 2. Accepted 5.

    Update local info (TLS接続) 4. デバイスに情報問い合せ Local info: - MCC, MNC, Location Area Code - Cell Id - ネットワークの種類(GSM/3G/LTE) - IMEI - セルの電界情報 - バッテリ残量 3. Local infoレポートをSMSで 要求 6. Get subscriber 7. Subscriber w/ Local Info デバイス側でしか取得できな い情報を取得可能に!
  19. 取得成功後

  20. Soracom eUICC with Soraseed Applet https://devices.amazonaws.com/detail/a3G0L00000AAOBeUAP/Soracom-eUICC-with-Soraseed-Applet AWS Greengrass (IoTデバイス用のデバイスクライアント) 用の証明書ストアとして利用可能

  21. plan01s planX1 planP1 世界130の国と地域をカバー 多くの地域で複数キャリア対応 欧米で特に割安な通信料金 KDDI回線に対応 日本の通信料金 90% off

    (plans01s比) APAC主要キャリアでの割安な通信に対応 APACの通信料金最大 99% off (plans01s比) サブスクリプション(通信契約)
  22. サブスクリプションコンテナ SORACOM ユーザーコンソール SIM OS サブスクリプション コンテナエンジン サ ブ ス

    ク リ プ シ ョ ン A サ ブ ス ク リ プ シ ョ ン B SORACOM IoT SIM OTAでサブスクリプションを追加可能 サ ブ ス ク リ プ シ ョ ン C (無線経由) (契約回線)
  23. サブスクリプション追加のAPIを提供 1. planP1の追加をリクエスト 管理者 2. ネットワーク接続 3. OTA更新で planP1を追加 plan01s

    + planP1
  24. •デバイスがいる国や地域に応じて自動的に切り替え サブスクリプション追加時の動作 国境 0. 普段は plan01s 2. 自動でplanP1が有効化 plan01s planP1

    plan01s planP1 1. 接続先キャリアの国 コードがplanP1対応国 に 複数のサブスクリプションのいいとこ取りが可能
  25. UICC OTA OTA key eUICC ISD-2 DOCOMO ISD-3 KDDI ISD-R

    ECASD OTA OTA key Subscription Manager ISD-R key サブスクリプション コンテナエンジン plan01s planX1 サブスクリプション コンテナエンジン plan01s planX1 サブスクリプションコンテナ
  26. • 答え : NO • アプレットをSIMに入れるには、OTA鍵が必要 • DOCOMOのSIMのOTA鍵は、DOCOMOのみが保持 • MVNOは利用不可

    • ソラコム発行のグローバルSIMは、加入者情報DBをソラコム が持っていて、OTA鍵を持っているため plan-DのSIMにアプレットを入れられる? SIM Applet 1 OTA鍵
  27. •SIMは小さなコンピュータです •SORACOMではコアネットワークと SIMの両方を開発しています •SIMを開発しているので様々な付加価値を 付けることが可能です まとめ ©2022 SORACOM, INC

  28. None