(57)【要約】【課題】IPネットワーク上で提供されるサービスのための認証情報の設定を容易にする。【解決手段】IoT機器と当該IoT機器が利用するサービスのサービスプロバイダ装置との間で共有された認証情報がない状況において、双方との間で正当なアクセスのための認証が可能な介在装置を仲介させる。一例として、IoT機器が有するSIMのSIM認証の結果として介在装置及びIoT機器に記憶される暗号鍵CKをIoT機器が各サービスを利用するためのマスターキーとする。そして、介在装置及びIoT機器において、IoT機器が利用するサービス固有のアプリケーションキーをマスターキーに基づいて生成し、サービスプロバイダ装置に対しては介在装置からセキュアな接続を通じて送信することで、IoT機器及びサービスプロバイダ装置に対して共通の鍵を認証情報として設定する。暗号鍵を生成するSIM認証のプロセスは、不正なリクエストによるSQNに対する攻撃を抑制することができる。【選択図】図１
2020010099.tif 000002
【特許請求の範囲】
【請求項１】
IPネットワーク上でサービスを提供するサービスプロバイダ装置と、前記サービスを利用するIoT機器と、前記IoT機器と前記サービスプロバイダ装置との間の接続のための認証情報の設定を仲介する介在装置とを備えるシステムを構成する介在装置であって、
前記IoT機器が有するSIMの認証プロセスの中で生成され、前記IoT機器及び前記介在装置に鍵Idとともに記憶される暗号鍵又はこれに対応する鍵を第１の鍵として、鍵Idと前記第１の鍵に基づき計算された署名とを含む初期設定情報を受信し、
前記鍵Idにより取得可能な前記第１の鍵に基づいて前記署名を検証し、
前記第１の鍵及びナンスに基づき第２の鍵を計算し、
前記第２の鍵を前記認証情報として前記サービスプロバイダ装置に送信することを特徴とする介在装置。
【請求項２】
前記初期設定情報は、前記IoT機器から前記初期設定情報を含む初期設定要求を受信した前記サービスプロバイダ装置から受信することを特徴とする請求項１に記載の介在装置。
【請求項３】
前記サービスプロバイダ装置は、前記介在装置との接続のためのクレデンシャルを有することを特徴とする請求項１又は２に記載の介在装置。
【請求項４】
前記第２の鍵の送信の前に、前記クレデンシャルを用いた前記サービスプロバイダ装置の認証を行うことを特徴とする請求項３に記載の介在装置。
【請求項５】
前記ナンスは、前記介在装置が生成することを特徴とする請求項１から４のいずれかに記載の介在装置。
【請求項６】
前記介在装置は、前記SIMにより接続可能なセルラーネットワークのコアネットワーク内に存在することを特徴とする請求項１から５のいずれかに記載の介在装置。
【請求項７】
前記介在装置は、前記SIMに格納された秘密情報と同一の秘密情報を有し、
前記暗号鍵は、前記SIMの認証プロセスの中で前記秘密情報に基づき計算されることを特徴とする請求項６に記載の介在装置。
【請求項８】
前記SIMの前記認証プロセスの中で、前記SIMで生成されるAUTSに基づく、前記SIM及び前記介在装置に記憶されたSQNの再同期を行うことを特徴とする請求項１から７のいずれかに記載の介在装置。
【請求項９】
IPネットワーク上でサービスを提供するサービスプロバイダ装置と、前記サービスを利用するIoT機器と、前記IoT機器と前記サービスプロバイダ装置との間の接続のための認証情報の設定を仲介する介在装置とを備えるシステムを構成する介在装置における方法であって、
前記IoT機器が有するSIMの認証プロセスの中で生成され、前記IoT機器及び前記介在装置に鍵Idとともに記憶される暗号鍵又はこれに対応する鍵を第１の鍵として、鍵Idと前記第１の鍵に基づき計算された署名とを含む初期設定情報を受信するステップと、
前記鍵Idにより取得可能な前記第１の鍵に基づいて前記署名を検証するステップと、
前記第１の鍵及びナンスに基づき第２の鍵を計算するステップと、
前記第２の鍵を前記認証情報として前記サービスプロバイダ装置に送信するステップと
を含むことを特徴とする方法。
【請求項１０】
コンピュータに、IPネットワーク上でサービスを提供するサービスプロバイダ装置と、前記サービスを利用するIoT機器と、前記IoT機器と前記サービスプロバイダ装置との間の接続のための認証情報の設定を仲介する介在装置とを備えるシステムを構成する介在装置における方法を実行させるためのプログラムであって、前記方法は、
前記IoT機器が有するSIMの認証プロセスの中で生成され、前記IoT機器及び前記介在装置に鍵Idとともに記憶される暗号鍵又はこれに対応する鍵を第１の鍵として、鍵Idと前記第１の鍵に基づき計算された署名とを含む初期設定情報を受信するステップと、
前記鍵Idにより取得可能な前記第１の鍵に基づいて前記署名を検証するステップと、
前記第１の鍵及びナンスに基づき第２の鍵を計算するステップと、
前記第２の鍵を前記認証情報として前記サービスプロバイダ装置に送信するステップと
を含むことを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、認証情報の設定を仲介するための装置及び方法に関し、より詳細には、IPネットワーク上で提供されるサービスのための認証情報の設定を仲介する装置及び方法に関する。
【背景技術】
【０００２】
センシング技術、通信技術の進展に伴い、コンピュータネットワークに接続される機器が増え、あらゆるモノがネットワーク化されるInternet of Thingsという考え方が広まっている。以下では、インターネットに限らず、IPネットワークに直接的又は間接的に接続可能な機器を「IoT機器」という。
【０００３】
IoT機器のためのサービスが日々、研究され開発されているが、これらのサービスを利用するためには、各IoT機器に、各サービス固有の認証情報を外部から盗み取られない形でセキュアに埋め込む必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、認証情報のセキュアな埋め込みを実現しようとすると、IoT機器の設計及び製造過程を複雑化させ、コストを増大させることからその導入は容易ではない。今後、２０２０年にはインターネットにつながるモノの数は２００億個とも１０００億個とも言われている中、機器数が爆発的に増大すればするほどこのコストも爆発的に増大することとなる。
【０００５】
本発明は、このような問題点に鑑みてなされたものであり、その第１の目的は、IPネットワーク上で提供されるサービスのための認証情報の設定を容易にする装置、方法及びそのためのプログラムを提供することにある。
【０００６】
また、本発明の第２の目的は、上記装置、方法及びそのためのプログラムにおいて利用可能なSIM認証プロセスを提供することにある。
【課題を解決するための手段】
【０００７】
このような目的を達成するために、本発明の第１の態様は、IPネットワーク上でサービスを提供するサービスプロバイダ装置と、前記サービスを利用するIoT機器と、前記IoT機器と前記サービスプロバイダ装置との間の接続のための認証情報の設定を仲介する介在装置とを備えるシステムを構成する介在装置であって、前記IoT機器が有するSIMの認証プロセスの中で生成され、前記IoT機器及び前記介在装置に鍵Idとともに記憶される暗号鍵又はこれに対応する鍵を第１の鍵として、鍵Idと前記第１の鍵に基づき計算された署名とを含む初期設定情報を受信し、前記鍵Idにより取得可能な前記第１の鍵に基づいて前記署名を検証し、前記第１の鍵及びナンスに基づき第２の鍵を計算し、前記第２の鍵を前記認証情報として前記サービスプロバイダ装置に送信することを特徴とする。
【０００８】
また、本発明の第２の態様は、第１の態様において、前記初期設定情報は、前記IoT機器から前記初期設定情報を含む初期設定要求を受信した前記サービスプロバイダ装置から受信することを特徴とする。
【０００９】
また、本発明の第３の態様は、第１又は第２の態様において、前記サービスプロバイダ装置は、前記介在装置との接続のためのクレデンシャルを有することを特徴とする。
【００１０】
また、本発明の第４の態様は、第３の態様において、前記第２の鍵の送信の前に、前記クレデンシャルを用いた前記サービスプロバイダ装置の認証を行うことを特徴とする。
【００１１】
また、本発明の第５の態様は、第１から第４のいずれかの態様において、前記ナンスは、前記介在装置が生成することを特徴とする。
【００１２】
また、本発明の第６の態様は、第１から第５のいずれかの態様において、前記介在装置は、前記SIMにより接続可能なセルラーネットワークのコアネットワーク内に存在することを特徴とする。
【００１３】
また、本発明の第７の態様は、第６の態様において、前記介在装置は、前記SIMに格納された秘密情報と同一の秘密情報を有し、前記暗号鍵は、前記SIMの認証プロセスの中で前記秘密情報に基づき計算されることを特徴とする。
【００１４】
また、本発明の第８の態様は、第１から第７のいずれかの態様において、前記SIMの前記認証プロセスの中で、前記SIMで生成されるAUTSに基づく、前記SIM及び前記介在装置に記憶されたSQNの再同期を行うことを特徴とする。
【００１５】
また、本発明の第９の態様は、IPネットワーク上でサービスを提供するサービスプロバイダ装置と、前記サービスを利用するIoT機器と、前記IoT機器と前記サービスプロバイダ装置との間の接続のための認証情報の設定を仲介する介在装置とを備えるシステムを構成する介在装置における方法であって、前記IoT機器が有するSIMの認証プロセスの中で生成され、前記IoT機器及び前記介在装置に鍵Idとともに記憶される暗号鍵又はこれに対応する鍵を第１の鍵として、鍵Idと前記第１の鍵に基づき計算された署名とを含む初期設定情報を受信するステップと、前記鍵Idにより取得可能な前記第１の鍵に基づいて前記署名を検証するステップと、前記第１の鍵及びナンスに基づき第２の鍵を計算するステップと、前記第２の鍵を前記認証情報として前記サービスプロバイダ装置に送信するステップとを含むことを特徴とする。
【００１６】
また、本発明の第１０の態様は、コンピュータに、IPネットワーク上でサービスを提供するサービスプロバイダ装置と、前記サービスを利用するIoT機器と、前記IoT機器と前記サービスプロバイダ装置との間の接続のための認証情報の設定を仲介する介在装置とを備えるシステムを構成する介在装置における方法を実行させるためのプログラムであって、前記方法は、前記IoT機器が有するSIMの認証プロセスの中で生成され、前記IoT機器及び前記介在装置に鍵Idとともに記憶される暗号鍵又はこれに対応する鍵を第１の鍵として、鍵Idと前記第１の鍵に基づき計算された署名とを含む初期設定情報を受信するステップと、前記鍵Idにより取得可能な前記第１の鍵に基づいて前記署名を検証するステップと、前記第１の鍵及びナンスに基づき第２の鍵を計算するステップと、前記第２の鍵を前記認証情報として前記サービスプロバイダ装置に送信するステップとを含むことを特徴とする。
【発明の効果】
【００１７】
本発明の一態様によれば、IoT機器が有するSIMの認証プロセスを応用することによって、当該IoT機器がたとえば工場出荷時にはサービスプロバイダ装置との間で認証情報の共有が出来ていなくとも、事後的に行うことが容易になる。
【図面の簡単な説明】
【００１８】
【図１】本発明の第１の実施形態にかかるIPネットワーク上で提供されるサービスのための認証情報の設定を仲介する装置を示す図である。
【図２】本発明の第１の実施形態にかかる認証情報の設定を仲介する方法の概要を示す図である。
【図３】本発明の第１の実施形態にかかる認証情報の設定を仲介する方法の一例を示す図である。
【図４】本発明の第２の実施形態にかかるSIM認証プロセスを説明するための図である。
【発明を実施するための形態】
【００１９】
以下、図面を参照して本発明の実施形態を詳細に説明する。
【００２０】
（第１の実施形態）  
図１に、本発明の第１の実施形態にかかるIPネットワーク上で提供されるサービスのための認証情報の設定を仲介する装置を示す。装置１００は、IoT機器１１０とセルラーネットワークに限らずIPネットワークを含むその他のコンピュータネットワークで通信可能であり、また、IoT機器１１０が利用するサービスを提供するサービスプロバイダ装置１２０とIPネットワークで通信可能である。IPネットワーク上でサービスを提供するサービスプロバイダ装置１２０と、当該サービスを利用するIoT機器１１０と、IoT機器１１０とサービスプロバイダ装置１２０との間の接続のための認証情報の設定を仲介する装置１００とを備えるシステムが全体像となる。
【００２１】
IoT機器１１０は、セルラーネットワークに接続するためのSIM１１０−１を有し、SIM１１０−１には、IMSI等の識別番号及びK値等の秘密情報が格納されている。本実施形態において、SIM１１０−１は装置１００の運営者又はその関連会社により提供されたものであり、その識別番号及び秘密情報は装置１００又は装置１００からアクセス可能な記憶媒体又は記憶装置にも記憶されている。装置１００は、この識別番号及び秘密情報を用いたSIM認証プロセスにより、IoT機器１１０の信頼性の検証を行う。SIM認証は、MILENAGEアルゴリズム等によるHLR/HSSを用いた従来のプロセスと同様に行うことができるが、いくつか本発明に固有の特徴を有する。この点は第２の実施形態において後述する。
【００２２】
また、サービスプロバイダ装置１２０は、装置１００の運営者がなんらかの方法によってサービスプロバイダに対して形成した信頼に基づく装置１００との通信のためのクレデンシャルを有する。ここで「クレデンシャル」とはID及びパスワードをはじめとする認証に用いられる情報の総称である。サービスプロバイダは、装置１００の運営者との間では公知の方法により安全にクレデンシャルの共有を行うことができる一方、IoT機器１１０との間では、個々のIoT機器１１０の製造時の漏洩のおそれがあり、そのおそれを可及的に抑制するためにはコストの増大を避けることができない。
【００２３】
本発明では、IoT機器１１０とサービスプロバイダ装置１２０との間で共有された認証情報がない状況において、双方との間で正当なアクセスのための認証が可能な装置１００を介在装置として仲介させることで、認証情報の設定がリモートで容易に可能になり、IoTシステムの実用的な普及を加速する。
【００２４】
より詳細には、本実施形態では、SIM認証の結果として装置１００及びIoT機器１１０に記憶される暗号鍵（cipher key）CK又はこれに対応する鍵をIoT機器１１０がさまざまなサービスを利用するためのマスターキー（親鍵）とする。そして、装置１００及びIoT機器１１０において、IoT機器１１０が利用するサービス固有のアプリケーションキー（用途が特定された鍵）をマスターキーに基づいて生成し、サービスプロバイダ装置１２０に対しては装置１００からセキュアな接続を通じてアプリケーションキーを送信することで、IoT機器１１０及びサービスプロバイダ装置１２０に対して共通の鍵を認証情報として設定することができる。
【００２５】
本実施形態においては、暗号鍵CKを例として説明を行うが、SIM認証の結果として装置１００及びIoT機器１１０に記憶される完全性保証鍵（integrity key）IK又はこれに対応する鍵をマスターキーとすることも考えられる。本明細書において、暗号鍵に対応する鍵の一例として完全鍵を位置付けることができる。
【００２６】
装置１００は、セルラーネットワークのコアネットワーク内に存在し、MNO（移動体通信事業者）の通信装置とすることができるほか、MNOの通信インフラに接続して無線通信サービスを提供する形態のMVNO（仮想移動体通信事業者）の通信装置とすることもでき、SIM１１０−１は、MNO又はMVNOにより提供されたSIMカードとすることができる。
【００２７】
MNOとMVNOの間に、MVNOが円滑な事業を行うための支援サービスを提供するMVNE（仮想移動体通信サービス提供者）が介在し、MVNEがMNOの通信インフラに接続して無線通信サービスを提供するための通信インフラを有することもある。この場合には、装置１００はMVNEの通信装置となり、SIM１１０−１はMVNEにより提供されるSIMカードとすることができる。
【００２８】
また、装置１００の全て又は一部は、クラウド上又はパブリッククラウド若しくはプライベートクラウド上のインスタンスとしてもよい。ここで、本明細書において「クラウド」とは、ネットワーク上で需要に応じてCPU、メモリ、ストレージ、ネットワーク帯域などのコンピューティングリソースを動的にプロビジョニングし、提供できるシステムを言う。たとえば、AWS等によりクラウドを利用することができる。また、「パブリッククラウド」とは、複数のテナントが利用可能なクラウドを言う。
【００２９】
IoT機器１１０が有するSIM１１０−１は、物理的なSIMカードとすることができるが、IoT機器１１０に組み込まれた半導体チップ（「eSIM」とも呼ばれる。）とすることができ、また、IoT機器１１０のモジュール内のセキュアなエリアにソフトウェアを搭載し、当該ソフトウェア上に識別番号及び秘密情報を記憶することも可能であり、IoT機器１１０がSIM認証に必要となる値及びプログラムを保持する態様はさまざま考えられる。
【００３０】
図２に、本実施形態にかかる認証情報の設定を仲介する方法の概要を示す。まず、IoT機器１１０が、サービスプロバイダ装置１２０に対し、ブートストラップリクエスト（初期設定要求）を送信する（図示せず）。行われるべき初期設定には、サービスを利用するためのアプリケーションキーのIoT機器１１０及びサービスプロバイダ装置１２０における設定が含まれ、IoT機器１１０がサービス利用時の接続に必要な接続情報の設定をさらに含むことができる。
【００３１】
ブートストラップリクエストは、そのためのソフトウェアないしプログラムとしてブートストラップエージェントをIoT機器１１０にインストールしておき、IoT機器１１０の初回電源ＯＮ時に当該エージェントが起動して送信されるようにしたり、以下説明するように設定される認証情報の有効期限が切れたことに応じて送信されるようにしたりすることができる。
【００３２】
初期設定要求の送信先は、たとえばIoT機器１１０で利用可能なサービスのための１又は複数のクライアントソフトウェアをIoT機器１１０にインストールしておき、当該ソフトウェア内にそれぞれ記憶しておいたり、IoT機器１１０で利用可能なサービスのための初期設定要求の１又は複数の送信先の一覧を記憶しておいたり、IoT機器１１０の管理者が介在装置１００の利用者向けコンソールから直接的又は間接的に指定することができる。ブートストラップエージェントとクライアントソフトウェアとを必ずしも別個のプログラムとしなければならないわけではないが、本実施形態では、ブートストラップエージェントが初期設定要求の送信先を取得可能とする。
【００３３】
初期設定要求には、初期設定情報として、マスターキー（「第１の鍵」とも呼ぶ。）を特定するためのキーId（鍵Id）が含まれ、マスターキー及び必要に応じて加えられるタイムスタンプに基づく署名が付加される。署名の生成にタイムスタンプが用いられる場合には、初期設定情報にタイムスタンプも含まれることになる。この点は後述もするが、SIM認証プロセスにおいて、生成されたマスターキーを装置１００及びIoT機器１１０に記憶する際、キーIdも生成して両者を関連づけて記憶しておくことができる。
【００３４】
次に、装置１００は、サービスプロバイダ装置１２０から、初期設定情報を受信する（Ｓ２０１）。装置１００は、初期設定情報を送信してきたサービスプロバイダ装置１２０を認証し（Ｓ２０２）、認証結果が肯定的である場合、キーIdに基づいてマスターキーを取得して署名の検証を行う（Ｓ２０３）。サービスプロバイダ装置１２０の認証と署名の認証とは順序を逆としてもよい。
【００３５】
そして、装置１００は、ナンスを生成し、マスターキー及び当該ナンスに基づいてアプリケーションキー（「第２の鍵」とも呼ぶ。）を計算する（Ｓ２０４）。そして、当該アプリケーションキー及び当該ナンスをサービスプロバイダ装置１２０に送信する（Ｓ２０５）。IoT機器１１０は、以下でさらに説明するようにサービスプロバイダ装置１２０からナンスを受信し、これを用いて装置１００と同一のアルゴリズムによってアプリケーションキーを計算可能であり、これにより、IoT機器１１０とサービスプロバイダ装置１２０は共通の鍵を認証情報として共に設定することができる。
【００３６】
ここで、ナンスの生成を装置１００にて行っているところ、サービスプロバイダ装置１２０又はIoT機器１１０にて行い、所要の送受信を行うようにすることも考えられる。ナンス生成をサービスプロバイダ装置１２０又はIoT機器１１０にて行う場合、介在装置１００の管理が必ずしも行き届かないことが考えられることから、安易なナンスが生成されるおそれがあり、そうすると異なるサービスには異なるアプリケーションキーを生成するのが望ましいところ、同一のものとなってしまったり、攻撃者がナンスの生成ロジックを推定可能となってしまったりする。
【００３７】
介在装置１００は、通信インターフェースなどの通信部１０１−１と、プロセッサ、ＣＰＵ等の処理部１０１−２と、メモリ、ハードディスク等の記憶装置又は記憶媒体を含む記憶部１０１−３とを備え、記憶部１０１−３又は介在装置１００からアクセス可能な記憶装置又は記憶媒体に記憶された上述及び後述の各処理を行うためのプログラムを処理部１０１−２において実行することによって以下で述べる各処理を実現することができる。介在装置１００は、図１に示すように、処理内容によって第１の装置１０１と第２の装置１０２に分離することが可能であるが、これらを単一の装置とすることも、さらに分離することも可能である。その他のデバイスについても、同様のハードウェアによって実現することができる。各装置で実行されるプログラムは、１又は複数のプログラムを含むことがあり、また、コンピュータ読み取り可能な記憶媒体に記録して非一過性のプログラムプロダクトとすることができる。
【００３８】
図３に、本実施形態にかかる認証情報の設定を仲介する方法の具体例を示す。まず、IoT機器１１０が、「example.com/v1/path/to/something/」で指定されるサービスプロバイダ装置１２０の送信先にキーId等の初期設定情報を送信して初期設定要求を行う。図３において{keyId}等のパラメータを示しているが、送受信されるすべてのパラメータを図示しているものではない。
【００３９】
サービスプロバイダ装置１２０は、受け取った初期設定情報に基づいて、装置１００に対して、アプリケーションキーの生成要求をする。装置１００では、順序は可変であるが、初期設定情報に含まれる署名の検証、サービスプロバイダ装置１２０の認証、さらに必要に応じてサービスプロバイダ装置１２０の指定されたキーIdに対するアクセス権限の有無の確認が行われる。装置１００は、各サービスプロバイダにクレデンシャルを提供するとともに、各サービスプロバイダがサービスを提供可能なマスターキー又はそのIdをアクセス権限として設定しておくことができる。より詳細には、第２の実施形態にて説明するAUTSを指定したSIM認証要求において当該認証の結果生成されるマスターキー又はその鍵Idにアクセス可能な１又はサービス又はサービスプロバイダを指定することが考えられる。
【００４０】
署名は、例えば、マスターキー及び必要に応じて加えられるタイムスタンプを連結した値に対するハッシュ値又はダイジェスト値とすることができ、装置１００においても同様の計算を行い、ハッシュ値又はダイジェスト値の一致・不一致により署名の検証を行うことができる。ハッシュ値を得るためのハッシュ関数としては、SHA-256を一例として挙げることができる。
【００４１】
そして、装置１００は、アプリケーションキーの計算に必要なナンスの生成を行う。ナンスは、たとえば[23, 130, 4, 247, …]のような乱数又は疑似乱数から生成される数字の列とすることができる。次いで、生成したナンスと受信した鍵Idにより取得可能なマスターキーとを用いて、アプリケーションキーの計算が行われる。具体例としては、これらの値を連結した値に対するハッシュ値とすることができる。当該アプリケーションキーは、装置１００とサービスプロバイダ装置１２０との間のセキュアな通信路でサービスプロバイダ装置１２０に送信される。
【００４２】
サービスプロバイダ装置１２０は、受信したアプリケーションキーを認証情報として設定するとともに、IoT機器１１０がサービスを利用するための接続情報をIoT機器１１０に対して送信し、これを受信したIoT機器１１０は、所要の設定を行う。接続情報には、接続先情報を含むことができ、接続先のURL又はIPアドレスが例として挙げられる。また、サービスプロバイダ装置１２０においてもアプリケーションキーの設定以外に必要な設定があれば、行われる。また、本実施形態において、接続情報には上記ナンスが含まれる。IoT機器１１０は、受信したナンスを用いてサービスプロバイダ装置１２０に設定されたアプリケーションキーと同一のアプリケーションキーを自ら計算する。
【００４３】
一例として、IoT機器１１０に利用するサービスのためのクライアントソフトウェアがインストールされている場合、当該サービスのための接続情報が当該ソフトウェアによって読み込まれ、IoT機器１１０が当該サービスを自動的に利用可能となるようにしてもよい。この際、当該ソフトウェアはアプリケーションキーを用いた通信が可能である。
【００４４】
IoT機器１１０は、所要の通信機能を有し、SIM認証及び初期設定を実行可能な任意の機器とすることができ、そのために、C、Java（登録商標）等のプログラミング言語によるソフトウェアが実行可能であることは求められる。Cの実装をラップする形で異なるプログラミング言語（Ruby、Go、Javascript（登録商標）等）を使った拡張も可能である。たとえば、Linux（登録商標）、Android（登録商標）等のOSがインストールされた機器とすることができる。
【００４５】
なお、「××のみに基づいて」、「××のみに応じて」、「××のみの場合」というように「のみ」との記載がなければ、本明細書においては、付加的な情報も考慮し得ることが想定されていることに留意されたい。
【００４６】
また、念のため、なんらかの方法、プログラム、端末、装置、サーバ又はシステム（以下「方法等」）において、本明細書で記述された動作と異なる動作を行う側面があるとしても、本発明の各態様は、本明細書で記述された動作のいずれかと同一の動作を対象とするものであり、本明細書で記述された動作と異なる動作が存在することは、当該方法等を本発明の各態様の範囲外とするものではないことを付言する。
【００４７】
（第２の実施形態）  
第１の実施形態において説明した介在装置１００によるIoT機器１１０が有するSIMのSIM認証は、HLR/HSSを用いた従来のプロセスと同様に行うことができるが、以下で説明する改善を加えることが可能である。
【００４８】
図１に示すように、介在装置１００は、処理内容によって第１の装置１０１と第２の装置１０２に分けることができ、本実施形態では、主にSIM認証において必要となるパラメータの生成を第２の装置１０２に担わせる。これは、通信キャリアのAuCの機能に少なくとも部分的に対応する。
【００４９】
第２の装置１０２には、SIM１１０−１に格納されたIMSI等の識別番号及びK値等の秘密情報が記憶されており、さらにSIM１１０−１と第２の装置１０２との間で同期されるSQNが記憶されている。SQNは通常、IMSI等の識別番号を指定したSIM認証リクエストに伴い、SIM及びAuCにおいて同期してインクリメントされる。
【００５０】
第１の実施形態において言及した暗号鍵CKの生成は、必ずしもセルラーネットワークに限らないコンピュータネットワークを介したIoT機器１１０と介在装置１００又は第２の装置１０２との間に通信によって行い得ることから、何らかの形でIMSI等の識別番号を入手した、正当なSIMを持たない機器からの不正なリクエストによって第２の装置１０２が管理するSQNがインクリメントされ、IoT機器１１０におけるSQNとずれてしまう事態が考えられる。本実施形態では、このような不正なリクエストによるSQNに対する攻撃を抑制する。
【００５１】
図４では、IoT機器１１０とIoT機器１１０が有するSIM１１０−１とを別個の要素として示している。これは、IoT機器１１０においてプログラムが実行されて行われる各処理と、当該IoT機器１１０がSIM１１０−１にアクセスしてSIM１１０−１の内部にて行われる各処理とを性質の異なるものとして区別することを目的としているが、いずれもIoT機器１１０上で行われる処理とみることもできることを付言する。IoT機器１１０を主語とする際、IoT機器１１０上で動作するSIM認証のためのプログラムを指していると解することもできる。また、図４においては、第２の装置１０２を第１の装置１０１と分離して示しているところ、これも介在装置１００上で行われる処理とみることもできることを付言する。また、以下では図４を参照して説明を行うが、図４は送受信されるすべてのパラメータを図示しているものではないことも付言する。
【００５２】
まず、IoT機器１１０は、SIM１１０−１に対し、IMSIを要求する。SIM１１０−１は、IoT機器１１０に対し、IMSIの値を返す。IMSIを受け取ったIoT機器１１０は、第１の装置１０１に対し、SIM認証を要求する。第１の装置１０１は、第２の装置１０２に対し、AUTN、RAND、CK、IK、XRESを含む認証ベクトル（authentication vector）の生成を要求する。
【００５３】
この認証ベクトル生成要求は、上述の不正なリクエストを抑制するために、SQNを無効な値に設定し、SQNに基づいて定まるAUTNがSIM認証を失敗させる値となるようにしている。SQNの値を0に設定すれば、SIM１１０−１に対して一度でもSIM認証が行われた場合、SQNが一致しないこととなる。また、第１の装置１０１でSQNの無効な値を指定するのではなく、第２の装置１０２において指定してもよく、より詳細には第２の装置１０２に記憶された正しいSQNを下回る値を指定するようにしてもよい。また、本実施形態におけるその目的に照らして、認証ベクトル全体を生成せずとも、以後の処理に必要なAUTN、RAND等のみを生成して第１の装置１０１に返すこともできる。
【００５４】
第２の装置１０２から認証ベクトルを受信した第１の装置１０１は、AUTN及びRANDをIoT機器１１０に送信し、IoT機器１１０は、SIM１１０−１に対してAUTN及びRANDを渡して鍵計算を要求する。SIM１１０−１は、SQNが一致しないことからエラー時の処理として、SQNの同期を行うためのResync要求に必要なAUTSを生成してIoT機器１１０に与える。IoT機器１１０は、IMSI、RAND及びAUTSを指定して、第１の装置１０１に対して再度SIM認証を要求する。ここでAUTSは、SIM１１０−１に格納された秘密情報を知らなければ計算ができないパラメータである。
【００５５】
第１の装置１０１は、AUTS及びRANDが指定されていることに応じて、第２の装置１０２に対し、再同期のためのResync要求を行う。第２の装置１０２は、AUTSの中にマスクされた形で含まれているSIM１１０−１のSQNを指定して認証ベクトルを生成し、第１の装置１０１に返す。第１の装置１０１は、受け取った暗号鍵CKを特定するための鍵Idを生成し、両者を関連づけて記憶する。また、XRESもこれらに関連づけて記憶する。
【００５６】
第１の装置１０１は、鍵Id、AUTN及びRANDをIoT機器１１０に送信し、IoT機器１１０は、SIM１１０−１に対し、AUTN及びRANDを用いた鍵計算を依頼する。SIM１１０−１では、受け取ったAUTN及びRANDに加えて自らの記憶媒体又は記憶装置に記憶された秘密情報Kを用いてCK及びRESを計算して、IoT機器１１０に渡す。
【００５７】
IoT機器１１０は、鍵Id及びRESを第１の装置１０１に送信して、生成されたCKの検証を要求する。第１の装置１０１では、鍵Idに基づいてXRESを取得して受信したRESと比較することによって検証を行い、一致する場合には鍵Idにより特定されるCKに検証済みのフラグを立てる。そして、第１の装置１０１は、IoT機器１１０に対してSIM認証の成功応答を必要に応じてCKの有効期限とともに送信し、IoT機器１１０では、鍵Idに関連づけてCKを記憶する。この際、IMSIとも関連づけてCKを記憶してもよい。
【００５８】
本実施形態では、CK又はこれに対応する鍵を以後の処理でIoT機器１１０がさまざまなサービスを利用するためのマスターキーとして利用可能とすることによって、SIM認証要求を頻発させることなく、SIM認証により合意される鍵の応用を可能としている。
【００５９】
加えて、本実施形態にかかるSIM認証プロセスでは、正当なSIMを有しない機器からの不正なSIM認証リクエストを抑止するために、敢えて鍵計算の前提となるSQN同期を失敗させて、正当なSIMしかアクセスができない秘密情報を必要とするResyncをトリガする。そして、Resyncが成功することを条件に以後のプロセスを実行させることで、上述の不正な攻撃を無効化可能である。
【符号の説明】
【００６０】
１００  介在装置
１０１  第１の装置
１０１−１  通信部
１０１−２  処理部
１０１−３  記憶部
１０２  第２の装置
１１０  IoT機器
１１０−１  SIM
１２０  サービスプロバイダ装置
【図１】
2020010099.tif 000003
【図２】
2020010099.tif 000004
【図３】
2020010099.tif 000005
【図４】
2020010099.tif 000006