SORACOM
Endorse
認証サービス
SIM を使用した認証サービス
SORACOM Endorse(以下、Endorse) は、IoT SIM を使用しているデバイスに対して、SORACOM が認証プロバイダーとしてデバイスの認証サービスを提供します。 SIM を使用した認証を Wi-Fi などの SIM 以外の通信にも使うことが可能となります。
現在、多くの Web サービスのユーザー認証では、ユーザー ID とパスワードを使用した認証が広く用いられています。 ユーザー ID とパスワードは、ユーザーの記憶に頼ることから、簡単な単語の組み合わせが用いられたり、パスワードを紙に書き出されることもあります。 また、認証のたびに入力を必要とすることからユーザーにとって利便性も高くありません。
一方、モバイル通信を行うために SIM が提供されます。SIM には以下のような特徴があります。
- 高い耐タンパ性 (SIM の内部データを不正に読み取ったり改ざんしたりすることが困難な性質)を備えており、複製を作ることは非常に困難です。
- SIM には、International Mobile Subscriber Identity (IMSI) と呼ばれる世界で固有の ID が書き込まれています。IMSI はモバイルネットワーク事業者ごとに発行され、モバイルネットワーク事業者側に登録されていなければ、データ通信は有効となりません。
- IMSI を基に通信元を特定し、SIM 内にしかない秘密情報を使った鍵交換を行って認証や通信の暗号化を行います。
Endorse では、IoT SIM を使用した認証機能を提供します。
認証結果をモバイルネットワーク内のみならず、Wi-Fi などを使用したネットワークサービスでも利用可能とすることで、複数のサービスを使い分けたり、連携させたりする際に、利便性を損なうことなく、SIM の特性を活かした強固な認証の仕組みを適用可能にします。
Endorse によるデバイス認証サービス
Endorse は、IoT SIM を使用しているデバイスに対して、デバイス認証サービスを提供します。
SORACOM Beam(以降、Beam)を使用した場合、IoT SIM を使ったデータ通信に、IMSI を付与して指定のサーバーに送信することができます。このため、Beam で転送されたデータを受信したサーバーは、データに付与された IMSI を使用し、接続元の SIM を特定することができます。
Beam を使用しない場合、通信データには IMSI が付与されていません。そのため、Beam からデータを受信したサーバーは、「どの SIM からの接続なのか?」を特定することはできません。
次の接続ケースを考えてみます。
- IoT SIM を使用し、Beam 経由でサーバーに接続するケース
- IoT SIM を使用し、SORACOM Canal/Direct で接続されたネットワークのサーバーに接続するケース
- IoT SIM を使用し、インターネットを介してサーバーに接続するケース
- Wi-Fi など、SORACOM Air 以外の通信手段でインターネットを介してサーバーに接続するケース
「1.」のケースでは、Beam により付与された IMSI から、SIM を特定することができます。
「2.」では、Canal/Direct で接続できる SIM は、利用者により制限することができます。IoT SIM で接続する際に認証が行われるため、Canal/Direct で接続される通信は、利用者が設定した SIM(設定したグループに含まれる SIM)からであると確認できています。ただし、通信データには「どの SIM からの接続なのか」という情報は含まれていません。
「3.」および「4.」のケースでは、接続を受けるサーバーは、接続元が IoT SIM を使用しているのか、そうでないのかを確認することができません。
Endorse は、「2.〜4.」のようなケースでも、「どの SIM からの接続なのか?」の認証を可能とするサービスです。
Endorse を使用した認証の流れは以下のようになります。
IoT SIM で接続後、Endorse に対して認証トークンの発行リクエストを送ると、Endorse が IMSI、IMEI (*1) などのデータを含んだ認証トークンを発行します。このトークンは SORACOM の秘密鍵で署名がされています。
デバイスがこのトークンをサーバーに送信すると、サーバー側はこのトークンが SORACOM が発行した正しいものかどうかを、SORACOM の公開鍵で検証することができます。一旦トークンの受け渡しが終われば、サーバーは接続元のデバイスがどの SIM を持っているかを把握できるため、例えばそのままサーバーにログインするような仕組みを作ることもできます。そして一旦認証トークンの受け渡しが終わり認証が完了すれば、接続経路が IoT SIM ではなく、Wi-Fi を使用していても、利用者のシステムではどの SIM から接続されているのかを確かなものとして扱うことができます。
(*1)
IMEI:International Mobile Equipment Identity、国際移動体装置識別番号
一台一台のモバイル端末に付与される国際的な識別番号です。
SIM に割当てられる IMSI に加えて、IMEI を使用することで、SIM だけではなくモバイル端末との組み合わせを含めた強固な認証が可能となります。これにより、SIM の盗難時の悪用を防止することができます。
主な用途
Wi-Fi オフロード
デバイスの認証は SIM 経由で行い、Wi-Fi が使える場合は Wi-Fi を使ってデータをアップロードするような仕組みを作ることができます。
例えば、3G/LTE モジュールと Wi-Fi のインターフェイスの両方を持つデバイスにおいて、Wi-Fi 経由でストレージサービスにアクセスして大きなファイルをアップロードする際、Endorse のトークンを提示することで、トークンに含まれる IMSI および IMEI によりデバイスを認証し、アクセスを認可してもらうことが可能となります。
業務システムへのログイン
業務システムへのログインの際、Endorse より取得したトークンを提示します。業務システムではそのトークンを検証し、対応する IMSI と IMEI の組み合わせが登録された内容と一致したらシステムへのアクセスを認可します。
SORACOM Canal/Direct と組み合わせて企業システムを作れば、SIM を使ったシングルサインオンの仕組みを構築することができます。一度認証を行えば Wi-Fi 経由でも認証を引き継げるため、スマートフォンやタブレットでも便利に使うことができます。
多要素認証の要素の1つとして利用
認証システムにおいて、プライマリの認証手段による認証のあと、Endorseのエンドポイントにリダイレクトし、予め登録された IMSI と IMEI を含む有効な Endorse トークンを持って再度認証サーバーに戻ってきたらシステムへのアクセスを認可する。