Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

自己紹介 松本悠輔(Yusuke Matsumoto) ソリューションアーキテクト 経歴: • インフラエンジニア • Webエンジニア • IoTエンジニア 好きなサービス:SORACOM Junction SORACOM本の一部執筆を 担当しています!

Slide 3

Slide 3 text

SIMとは 認証 ローミング ユーザデータ USIM=Universal Subscriber Identity Module USIMとは、欧州の2G(GSM)の移動機に採用されていた SIMカードを拡張したもの。 CPUを内蔵したICチップ(UICC)で、3G/LTE移動機において 不可欠なデバイスの1つ。

Slide 4

Slide 4 text

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)

Slide 5

Slide 5 text

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 鍵の交換が ない

Slide 6

Slide 6 text

SORACOM SIMアプレット SORACOM SIM Applet 1 SORACOM SIM Applet 2 SIM基本機能 (認証等) SIM OS Java Applet実行環境 • SIM上で動作して様々な拡張機能を実行 • SORACOMプラットフォームとセキュアな通信路を確立可

Slide 7

Slide 7 text

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

Slide 8

Slide 8 text

Javaアプレット……

Slide 9

Slide 9 text

http://www.oracle.com/technetwork/java/javacard/javacard1-139251.html Java Card • UICC上でセキュアにアプリケーションを動作さ せるための環境 • 非常に限られたメモリと処理能力で動作 • Java Card上のJava VMで動作するバイトコード は、通常のJava VMのサブセット • エンコーディングや最適化は異なる • アプレット内で生成したオブジェクトは、永続 化メモリに保存される • RAMは非常に少ないので、一時的なデータも しくはセキュリティセンシティブなデータの みに利用 • ガベージコレクションは基本的にない

Slide 10

Slide 10 text

スマートカードリーダー モデム

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

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 ディレクトリ ファイル

Slide 14

Slide 14 text

開発ツールなど • 開発とコンパイル • Eclipse or Netbeans IDE • コンバージョン • JCDK - Javacard Development Kit • アプレットのインストール • SIM Alliance CAT loader 2.0 とカードリーダー • 実機のテスト • APDUコマンドのキャプチャツールを利用

Slide 15

Slide 15 text

No content

Slide 16

Slide 16 text

Appletで実装されている機能の例

Slide 17

Slide 17 text

IoT SIMに組み込み済みのアプレット • SIMアプレットによるLocal Infoの取得 • Local Info = デバイス側の情報 • Plan01s/Plan01sLDVのSIMにはSIMアプレットがインストール済み • カード型SIM/チップ型SIMいずれも対応 SORACOM SIM Applet Local Info

Slide 18

Slide 18 text

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 デバイス側でしか取得できな い情報を取得可能に!

Slide 19

Slide 19 text

取得成功後

Slide 20

Slide 20 text

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

Slide 21

Slide 21 text

plan01s planX1 planP1 世界130の国と地域をカバー 多くの地域で複数キャリア対応 欧米で特に割安な通信料金 KDDI回線に対応 日本の通信料金 90% off (plans01s比) APAC主要キャリアでの割安な通信に対応 APACの通信料金最大 99% off (plans01s比) サブスクリプション(通信契約)

Slide 22

Slide 22 text

サブスクリプションコンテナ SORACOM ユーザーコンソール SIM OS サブスクリプション コンテナエンジン サ ブ ス ク リ プ シ ョ ン A サ ブ ス ク リ プ シ ョ ン B SORACOM IoT SIM OTAでサブスクリプションを追加可能 サ ブ ス ク リ プ シ ョ ン C (無線経由) (契約回線)

Slide 23

Slide 23 text

サブスクリプション追加のAPIを提供 1. planP1の追加をリクエスト 管理者 2. ネットワーク接続 3. OTA更新で planP1を追加 plan01s + planP1

Slide 24

Slide 24 text

•デバイスがいる国や地域に応じて自動的に切り替え サブスクリプション追加時の動作 国境 0. 普段は plan01s 2. 自動でplanP1が有効化 plan01s planP1 plan01s planP1 1. 接続先キャリアの国 コードがplanP1対応国 に 複数のサブスクリプションのいいとこ取りが可能

Slide 25

Slide 25 text

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 サブスクリプションコンテナ

Slide 26

Slide 26 text

• 答え : NO • アプレットをSIMに入れるには、OTA鍵が必要 • DOCOMOのSIMのOTA鍵は、DOCOMOのみが保持 • MVNOは利用不可 • ソラコム発行のグローバルSIMは、加入者情報DBをソラコム が持っていて、OTA鍵を持っているため plan-DのSIMにアプレットを入れられる? SIM Applet 1 OTA鍵

Slide 27

Slide 27 text

•SIMは小さなコンピュータです •SORACOMではコアネットワークと SIMの両方を開発しています •SIMを開発しているので様々な付加価値を 付けることが可能です まとめ ©2022 SORACOM, INC

Slide 28

Slide 28 text

No content