MENU

Soracom

Users

SIM 認証を使用してバーチャル SIM/Subscriber をブートストラップする

soratun のサポートする 3 種類のブートストラップ方法 の 1 つである SORACOM Krypton の SIM 認証を使用する方法 のガイドです。SIM カードそのものを認証の手段としますので、デバイス側に認証情報を保存しておく必要がありません。また、SIM カードに保管された認証情報を使用しますので、plan01s または plan01s - Low Data Volume の挿入された SORACOM Onyx LTE USB ドングルが Raspberry Pi に取り付けられているだけで、SORACOM Air for セルラーの接続さえも無しにブートストラップできます。

前提条件

ステップ 1: SIM グループを作成し SORACOM Krypton を有効にする

  1. ユーザーコンソールの操作: SIM グループを設定する を参考に SIM グループを作成してください。
  2. 作成した SIM グループの SORACOM Krypton 設定 セクションでスイッチを ON に変更、 保存 ボタンをクリックしてください。
SORACOM Arc に加え SORACOM Krypton の料金が発生します。 SORACOM Krypton のご利用料金 をご確認ください。

ステップ 2: OS に必要なパッケージをインストールする

SIM カードへアクセスするためのライブラリをインストールしてください。

sudo apt install -y libpcsclite-dev pcscd libpcsclite1 && sudo reboot

ステップ 3: Krypton CLI をインストールする

SIM 認証を使ったブートストラップには SORACOM Krypton のコマンドラインインターフェースである Krypton CLI を使用します。Krypton CLI で読み取った SIM カード内の秘密情報を元に認証します。

  1. Krypton CLI を公開している GitHub レポジトリReleases セクションから SORACOM Arc のブートストラップをサポートする v0.3.0 以降のファイルをダウンロードします。Raspberry Pi 用のファイルは krypton-cli_0.3.0_linux_arm.tar.gz です。

  2. ダウンロードしたファイルを展開します。

    $ tar xvf krypton-cli_0.3.0_linux_arm.tar.gz
    
  3. 展開された krypton-cli をコピーします。

    $ sudo cp krypton-cli /usr/local/bin
    
  4. 以下のコマンドが実行できることを確認します。

    $ krypton-cli -h
    
Go 言語の環境がある場合 go install github.com/soracom/krypton-client-go/cmd/krypton-cli を実行しインストールすることもできます。

ステップ 4: SORACOM Onyx LTE USB ドングルを取り付ける

次に SORACOM Onyx LTE USB ドングルに SIM カードを取り付け Raspberry Pi へ接続します。この時 PC を SORACOM Air for セルラー経由ではなく Wi-Fi 等でインターネット接続するようにしてください。setup_air.sh を使って自動的にセルラー回線で通信するよう設定している場合は切断してください。

$ sudo ifdown wwan0
$ ping pong.soracom.io # 応答が返ってこないことを確認

ステップ 5: Krypton CLI の動作を確認する

$ krypton-cli -operation getSubscriberMetadata

以下のようにセルラー経由ではなくても SIM のメタデータを取得できることを確認してください。

{
  "imsi": "29510xxxxxxxxxx",
  "primaryImsi": "29510xxxxxxxxxx",
  "msisdn": "4236xxxxxxxx",
  "ipAddress": null,
  "operatorId": "OP00xxxxxxxx",
  "apn": "soracom.io",
  "type": "s1.4xfast",
  "groupId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxx",
  "createdAt": 1593045874595,
  "lastModifiedAt": 1623659486782,
  ...
}
Krypton CLI がエラーで終了する場合

SORACOM Onyx LTE USB ドングルの初期化のタイミングなどによっては以下のようなエラーが出力され実行に失敗する場合があります。

unexpected +CSIM response

その場合は cu コマンドなどで接続し、AT+CFUN=4 (機内モード) に変更したあとで再度お試しください。SIM 認証では SORACOM Air for セルラーの接続は不要で SIM カード内の情報が読み取れること、およびインターネット接続の 2 点が必要条件となりますので、USB ドングルが機内モードでもブートストラップできます。

$ cu -l /dev/ttyUSB3 -s 57600
Connected.
ATE1
OK
AT+CIMI
29510xxxxxxxxxx
OK
AT+CFUN=4
OK
~.<enter>

機内モードを解除するには上記と同様の手順で AT+CFUN=1 を実行してください。SORACOM Onyx LTE USB ドングル以外の SIM カードリーダーをご利用の場合は soratun コマンドリファレンス: soratun bootstrap sim コマンド を参考にポート名、ボーレート、データビットなどを変更してお試しください。

ステップ 6: ブートストラップする

ここまでで SIM 認証が正常に動作することが確認できましたので soratun bootstrap sim コマンドでブートストラップします。以下の例では設定ファイルを /path/to/arc.json に保存します。ご利用の環境にあわせて任意のパスを指定してください。

$ soratun --config /path/to/arc.json bootstrap sim
--config フラグで指定した設定ファイルがすでに存在する場合は秘密鍵(PrivateKey)、公開鍵(PublicKey)、および接続情報 (arcSessionStatus) を更新して終了します。

成功すると以下のように構成ファイルのパスが表示されます。

Created/updated configuration file: /path/to/arc.json

以上でブートストラップは完了です。ブートストラップ後は SORACOM Onyx LTE USB ドングルは取り外すことができます。生成された設定ファイルの詳細は soratun 設定ファイルリファレンス を参照してください。

ステップ 7: soratun を実行しバーチャル SIM/Subscriber で接続する

生成された設定ファイルを指定して soratun を実行し仮想インターフェースを作成、SORACOM プラットフォームへ接続します。

$ sudo soratun --config /path/to/arc.json up

ソラコムにアクセスできることを確認してください。

$ ping pong.soracom.io

soratun up コマンドで仮想インターフェースを作成したタイミングで以下のネットワーク宛の通信を soratun のネットワークインターフェース経由に設定します。すでに同じルートが定義されている場合は上書きします。

  • SORACOM Arc セッション作成時にサーバーから返却された arcAllowedIPs (通常は 100.127.0.0/16)
  • soratun の設定ファイルにお客様で定義する additionalAllowedIPs (デフォルトは設定無し)
ユーザーコンソールからセッションを切断した場合は再度ブートストラップを実施してください。--config フラグで指定した設定ファイル内の秘密鍵(PrivateKey)、公開鍵(PublicKey)、および接続情報 (arcSessionStatus) を更新します。