(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-20
(45)【発行日】2024-08-28
(54)【発明の名称】加入者識別モジュールの更新
(51)【国際特許分類】
H04W 8/20 20090101AFI20240821BHJP
H04W 12/041 20210101ALI20240821BHJP
H04W 12/0431 20210101ALI20240821BHJP
H04W 12/03 20210101ALI20240821BHJP
H04W 12/40 20210101ALI20240821BHJP
H04W 12/72 20210101ALI20240821BHJP
H04W 4/60 20180101ALI20240821BHJP
H04M 1/725 20210101ALI20240821BHJP
H04W 92/08 20090101ALI20240821BHJP
【FI】
H04W8/20
H04W12/041
H04W12/0431
H04W12/03
H04W12/40
H04W12/72
H04W4/60
H04M1/725
H04W92/08
(21)【出願番号】P 2023141069
(22)【出願日】2023-08-31
(62)【分割の表示】P 2022016159の分割
【原出願日】2019-07-01
【審査請求日】2023-09-28
(32)【優先日】2018-07-02
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】515068502
【氏名又は名称】株式会社ソラコム
(74)【代理人】
【識別番号】110003605
【氏名又は名称】弁理士法人六本木通り特許事務所
(72)【発明者】
【氏名】コマーモンド,ジョルジュ オリヴィエ
【審査官】望月 章俊
(56)【参考文献】
【文献】米国特許出願公開第2016/0379006(US,A1)
【文献】米国特許出願公開第2016/0104154(US,A1)
【文献】米国特許出願公開第2017/0064552(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04W4/00-H04W99/00
H04B7/24-H04B7/26
H04M1/725
3GPP TSG RAN WG1-4
SA WG1-4
CT WG1、4
(57)【特許請求の範囲】
【請求項1】
デバイスにより実行される方法であって、
サーバから、ネットワークを介して値を受信するステップと、
前記デバイス上のSIMに前記値を送信するステップと、
前記SIMから第1のメッセージを受信するステップであって、前記第1のメッセージは、前記値を用いて生成されるステップと、
前記第1のメッセージを用いて事前共有鍵を導出するステップと、
前記サーバから、前記ネットワークを介して更新データを含み、前記事前共有鍵で暗号化された第2のメッセージを受信するステップと、
前記事前共有鍵を用いて前記第2のメッセージを復号化して、前記SIMに前記更新データを供給するステップと
を含む。
【請求項2】
請求項1に記載の方法であって、
前記値の前記SIMに対する送信は、SIM認証手順を開始し、
前記第1のメッセージは、前記SIM認証手順の応答として前記SIMから受信した認証応答である。
【請求項3】
請求項1又は2に記載の方法であって、
前記第1のメッセージは、署名付き応答及び暗号鍵を含み、
前記事前共有鍵の導出は、前記署名付き応答及び前記暗号鍵の少なくとも一方を用いて前記事前導出鍵を導出することを含む。
【請求項4】
デバイスに、
サーバから、ネットワークを介して値を受信するステップと、
前記デバイス上のSIMに前記値を送信して、前記SIMから、前記値を用いて生成された第1のメッセージを受信するステップと、
前記第1のメッセージを用いて事前共有鍵を導出するステップと、
前記サーバから、前記ネットワークを介して更新データを含み、前記事前共有鍵で暗号化された第2のメッセージを受信するステップと、
前記事前共有鍵を用いて前記第2のメッセージを復号化して、前記SIMに前記更新データを供給するステップと
を含む方法を実行させるためのプログラム。
【請求項5】
デバイスであって、
サーバから、ネットワークを介して値を受信し、
前記デバイス上のSIMに前記値を送信して、前記SIMから、前記値を用いて生成された第1のメッセージを受信し、
前記第1のメッセージを用いて事前共有鍵を導出し、
前記サーバから、前記ネットワークを介して更新データを含み、前記事前共有鍵で暗号化された第2のメッセージを受信し、
前記事前共有鍵を用いて前記第2のメッセージを復号化して、前記SIMに前記更新データを供給する。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ホストデバイス上の加入者識別モジュール(SIM)を更新することに関する。
【背景技術】
【0002】
移動体通信事業者は、修正又は新たなアプリケーションをデプロイするために現場のSIMカードを更新するという難問にしばしば直面している。この問題のための現在の標準はOTA(Over-The-Air)と呼ばれ、通常、サブスクリプションプランがSMS(Short Message Service)をサポートしていることを必要とする。4G技術の登場により、HTTP OTAという、OTAの新しい形が現れた。これは、たとえば「Global Platform Card Specification Version2,2 Amendment B Version 1.1」、「Smart Cards; Secured packet structure for UICC based applications」と題するETSI TS 102 225、及び「Smart Cards; Remote APDU structure for UICC based applications」と題するETSI TS 102 226に記述されている。
【0003】
HTTP OTAは、前身の技術であるSMS OTAを使用する代わりに、IPネットワークを介してSIMカードに遠隔管理コマンドを伝えることを可能にする。
【0004】
4G技術の登場と並んで、loT(Internet-of-Things)と呼ばれる自律的なコネクテッドデバイスが現れてきた。最近では、数多くのモバイルloTデバイスがSIM対応の通信モジュール(例としてHSDPAモデム)を使用してネットワーク化されている。
【発明の概要】
【発明が解決しようとする課題】
【0005】
発明者は、SIM対応の通信モジュールの多くの製造業者が、通信モジュールにおけるBIP(Bearer Independent Protocol)の実装を通じたHTTP OTAのために必要なサポートを行わないことを選択したことを見出した。これは、通信モジュールの開発及びテストのためのコスト及び労力の増加を含むさまざまな理由によるものである。一方、BIPを通じたHTTP OTAのサポートは、新しいUICCカードにおいて、SIMベンダーによりかなり急速に行われた。
【0006】
現在、通信モジュール内のBIPサポートは、いくつかのハイエンドの電話とMFF2フォームファクターのタイプeUICCのSIMカードをホストすることができる通信モジュールでのみ利用可能である。その結果、取り外し可能なSIM(ミニSIM、マイクロSIM及びナノSIM)と接続されるほとんどの通信モジュールは、HTTP OTAをサポートしていない。さらに、IoTプロジェクトの多くのデプロイメントでは、唯一利用可能な通信ベアラはIPネットワークである。
【0007】
HTTP OTAサポートのこの欠如に対応するために、本開示の実施形態では、HTTP部分を引き継ぎ、レガシーの通信モジュールにホストされたSIMに対してOTAコマンドをセキュアにチャネルするのを助けることのできるソフトウェアエージェントを実装する。
【課題を解決するための手段】
【0008】
本開示の一態様によれば、ネットワークエンティティと通信する際に使用するための共有鍵を導出する方法が提供される。前記方法は、ホストデバイス上のエージェントによって実行され、前記ホストデバイスの通信モジュールからの前記ホストデバイス上の加入者識別モジュール(SIM)のSIM識別子を要求するステップと、前記通信モジュールから前記SIM識別子を受信して、前記SIM識別子からエージェント識別子を導出するステップと、前記ネットワークエンティティにネットワーク上で前記エージェント識別子及び前記SIM識別子を送信するステップと、前記ネットワークを介して、前記ネットワークエンティティからランダム値を受信するステップと、前記通信モジュールに前記ランダム値を与えてSIM認証手順を開始し、その返答として、前記通信モジュールから認証応答を受信するステップと、前記認証応答から前記共有鍵を導出するステップとを含む。
【0009】
本開示の別の態様によれば、ホストデバイス上の加入者識別モジュール(SIM)を更新する方法が提供される。前記方法は、前記ホストデバイス上のエージェントによって実行され、事前共有鍵を導出するステップであって、前記ホストデバイスの通信モジュールを介して延期SIMのSIM識別子を要求するステップと、前記通信モジュールを介して前記SIMから前記SIM識別子を受信して、前記SIM識別子からエージェント識別子を導出するステップと、前記エージェント識別子及び前記SIM識別子をネットワークを介してSIM更新サーバに送信するステップと、前記ネットワークを介して、前記SIM更新サーバからランダム値を受信するステップと、前記通信モジュールを介して、前記SIMに前記ランダム値を与えてSIM認証手順を開始し、その返答として、前記通信モジュールを介して、前記SIMから認証応答を受信するステップと、前記認証応答から前記事前共有鍵を導出するステップとを含むステップと、前記SIM更新サーバに前記ネットワークを介して更新要求メッセージを送信するステップであって、前記更新要求メッセージは、前記エージェント識別子を含み、送信前に前記事前共有鍵を用いて暗号化されているステップと、前記ネットワークを介して、前記SIM更新サーバから更新応答メッセージを受信するステップであって、前記更新応答メッセージは、更新データを含み、前記事前共有鍵を用いて暗号化されているステップと、導出された前記事前共有鍵を用いた前記更新応答メッセージの復号化に続いて、前記SIMを更新するための実行のために前記SIMに中継するために、前記通信モジュールに前記更新データを送信するステップとを含む。
【0010】
前記認証応答は、署名付き応答及び暗号鍵を含んでもよい。
【0011】
前記認証応答からの前記事前共有鍵の導出は、前記署名付き応答及び前記暗号鍵の少なくとも一方を用いて前記事前共有鍵を導出することを含んでもよい。
【0012】
前記認証応答からの前記事前共有鍵の導出は、ランダム値を用いて前記事前共有鍵を導出することを含んでもよい。
【0013】
前記認証応答からの前記事前共有鍵の導出は、前記暗号鍵とそれ自身を連結して連結結果を生成し、前記連結結果及び前記ランダム値に対してビット単位のXOR演算を適用して前記事前共有鍵を導出することを含んでもよい。
【0014】
前記更新データは、前記SIMに記憶された対称暗号鍵で暗号化されていてもよい。
【0015】
前記更新要求メッセージは、前記SIM識別子を含んでよい。
【0016】
前記方法は、前記通信モジュールに前記更新データを送信することに応答して、前記通信モジュールを介して、前記SIMから実行結果を受信するステップと、前記ネットワークを介して、前記SIM更新サーバに更なる更新要求メッセージを送信するステップとを含んでもよく、前記更新要求メッセージは、実行結果を伝え、前記事前共有鍵を用いて送信する前に暗号化される。
【0017】
AT(Attention)コマンドを、以下のうちの少なくともいずれかのために使用することができる:前記ホストデバイスの通信モジュールから前記SIMのSIM識別子を要求すること、前記通信モジュールにランダム値を与えてSIM認証手順を開始すること、及び、前記通信モジュールに前記更新データを送信すること。
【0018】
前記通信モジュールによって提供されるアプリケーションプログラミングインターフェイスは、以下のうちの少なくともいずれかのために使用することができる:前記ホストデバイスの通信モジュールから前記SIMのSIM識別子を要求すること、前記通信モジュールに前記ランダム値を与えてSIM認証手順を開始すること、及び、前記通信モジュールに前記更新データを送信すること。
【0019】
前記SIM識別子からのエージェント識別子の導出は、前記SIM識別子に接頭辞を付加することを含んでもよい。
【0020】
事前共有鍵の導出は、以下のうちのいずれかに基づいてトリガされてもよい:(i)前記ホストデバイス上のユーザ入力を検出すること、(ii)前記ネットワークを介して、前記SIM更新サーバからセッション開始メッセージを受信すること、及び(iii)所定の時間間隔の満了を検出すること。
【0021】
前記SIM識別子は、以下のいずれかとすることができる:(i)前記SIMに関連づけられたIMSI、(ii)前記SIMに関連づけられたICCID、及び(iii)前記SIMに関連づけられたMSISDN。
【0022】
本開示の別の態様によれば、コンピュータプログラム製品が提供され、前記コンピュータプログラム製品は、非一過性のコンピュータ読み取り可能な媒体上に具現化されたコードを含み、ホストデバイスのプロセッサ上で実行されたときに本明細書に記載された方法を実行するように構成されている。
【0023】
本開示の別の態様によれば、プロセッサを有するデバイスが提供される。前記プロセッサは、前記デバイスに関連づけられたSIMに結合された通信モジュールに結合され、前記通信モジュールを介して前記SIMのSIM識別子を要求し、前記通信モジュールを介して前記SIMから前記SIM識別子を受信して、前記SIM識別子からエージェント識別子を導出し、前記エージェント識別子及び前記SIM識別子をネットワークを介してSIM更新サーバに送信し、前記ネットワークを介して前記SIM更新サーバからランダム値を受信し、前記通信モジュールを介して前記SIMにランダム値を与えてSIM認証手順を開始し、その返答として、前記通信モジュールを介して前記SIMから認証応答を受信し、前記認証応答から事前共有鍵を導出し、前記ネットワークを介して前記SIM更新サーバに更新要求メッセージを送信し、前記ネットワークを介して前記SIM更新サーバから更新応答メッセージを受信し、導出された前記事前共有鍵を用いた前記更新応答メッセージの復号化に続いて、前記SIMを更新するために実行するために前記SIMに中継するための前記通信モジュールに前記データを送信するように構成される。前記更新要求メッセージは、前記エージェント識別子を含み、前記事前共有鍵を用いて送信する前に暗号化される。前記更新応答メッセージは、更新データを含み、前記事前共有鍵で暗号化される。
【0024】
本開示の別の態様によれば、プロセッサを有するデバイスが提供される。前記プロセッサは、前記デバイスに関連づけられたSIM(subscriber identity module)に結合された通信モジュールに結合され、前記通信モジュールから前記SIMのSIM識別子を要求し、前記通信モジュールから前記SIM識別子を受信して、前記SIM識別子からエージェント識別子を導出し、ネットワークエンティティにネットワークを介して前記エージェント識別子及び前記SIM識別子を送信し、前記ネットワークを介して前記ネットワークエンティティからランダム値を受信し、前記通信モジュールにランダム値を与えてSIM認証手順を開始し、その返答として、前記通信モジュールから認証応答を受信し、前記認証応答から共有鍵を導出するように構成される。
【0025】
本開示の別の態様によれば、ホストデバイス上のSIMを更新する方法が提供される。前記方法は、SIM更新サーバによって実行され、事前共有鍵を導出するステップであって、ホストデバイス上のエージェントから、ネットワークを介して前記ホストデバイスから送信された、エージェント識別子及び前記SIMのSIM識別子を受信するステップと、ランダム値を生成するステップと、前記ランダム値及び前記SIMの前記SIM識別子を認証エンティティに与えて、その返答として、前記認証エンティティから認証応答を受信するステップと、前記認証応答から前記事前共有鍵を導出するステップとを含むステップと、前記エージェント識別子と関連づけて前記事前共有鍵をメモリに格納するステップと、前記ネットワークを介して前記エージェントに前記ランダム値を送信するステップと、前記ネットワークを介して、前記ホストデバイス上の前記エージェントから更新要求メッセージを受信するステップであって、前記更新要求メッセージは、前記エージェント識別子を含み、前記事前共有鍵を用いて送信前に暗号化されるステップと、前記事前共有鍵を用いた前記更新要求メッセージの復号化に続いて、前記ネットワークを介して、前記ホストデバイスに更新応答メッセージを送信するステップであって、前記更新応答メッセージは更新データを含み、前記事前共有鍵で暗号化されるステップとを含む。
【0026】
本開示の別の態様によれば、ホストデバイス上のSIM(subscriber identity module)を更新するためのコンピュータプログラム製品が提供される。前記コンピュータプログラム製品は、非一過性のコンピュータ読み取り可能な媒体上に具現化されたコードを含み、ネットワークエンティティ(SIM更新サーバ)のプロセッサ上で実行されたときに本明細書に記載された方法を実行するように構成される。
【0027】
本開示の別の開示によれば、ホストデバイス上のSIMを更新するためのSIM更新サーバが提供される。前記SIM更新サーバは、ホストデバイス上のエージェントから、ネットワークを介して、前記ホストデバイスから送信されたエージェント識別子を受信し、ランダム値を生成し、前記ランダム値及び前記SIMのSIM識別子を認証エンティティに与え、その返答として、前記認証エンティティから認証応答を受信し、前記認証応答から事前共有鍵を導出し、前記エージェント識別子に関連づけて前記事前共有鍵を前記SIM更新サーバに結合されたメモリに格納し、前記ネットワークを介して、前記ホストデバイス上の前記エージェントから更新要求メッセージを受信し、前記事前共有鍵を用いた前記更新要求メッセージの復号化に続いて、前記ネットワークを介して、前記ホストデバイスに更新応答メッセージを送信するように構成された少なくとも1つのプロセッサを備える。前記更新要求メッセージは、前記エージェント識別子を含み、前記事前共有鍵を用いて送信前に暗号化される。前記更新応答メッセージは、更新データを含み、前記事前共有鍵を用いて暗号化される。
【0028】
前記SIM更新サーバは、前記ホストデバイス上の前記SIMを更新するための複数のプロセッサを含んでもよく、前記複数のプロセッサは、当業者に知られた方式で、(たとえばクラウドアーキテクチャにおけるように)互いに通信している複数の(たとえばサーバのような)結合要素上に分散されていてもよい。
【0029】
前記認証応答は、署名付き応答及び暗号鍵を含んでもよい。
【0030】
前記プロセッサは、前記署名された応答及び前記暗号鍵の少なくとも一方を用いて、前記認証応答から前記事前共有鍵を導出するように構成されていてもよい。
【0031】
前記プロセッサは、前記ランダム値を追加的に用いて、前記事前共有鍵を導出するように構成されていてもよい。
【0032】
前記プロセッサは、前記暗号鍵とそれ自身を連結して連結結果を生成し、前記連結結果及び前記ランダム値に対してビット単位のXOR演算を適用して前記事前共有鍵を導出することにより、前記認証応答から前記事前共有鍵を導出するように構成されていてもよい。
【0033】
前記更新データは、前記メモリに記憶された対称暗号鍵で暗号化されていてもよい。
【0034】
前記更新要求メッセージは、前記SIM識別子を含んでもよい。
【0035】
当業者であれば、上述した方法、デバイス、及びネットワークエンティティを実装するためのプロセッサ制御コードは、たとえば、汎用コンピュータ、モバイルコンピューティング又は通信デバイス上で実行させたり、デジタル信号プロセッサ(DSP)上又は複数のプロセッサにまたがって実行させたりしてもよいことを理解するであろう。前記コードは、ディスク、CD-ROM若しくはDVD-ROM、不揮発性メモリ(たとえばフラッシュ)等のプログラムされたメモリ、又は読み取り専用メモリ(ファームウェア)等の非一過性の物理的データキャリア上で提供されてもよい。本発明の実施形態を実装するためのコード(及び/又はデータ)は、C言語、アセンブリコード又はハードウェア記述言語等の従来のプログラミング言語における(解釈またはコンパイルされた)ソースコード、オブジェクトコード又は実行可能なコードを含んでもよい。当業者であれば理解するであろうが、そのようなコード及び/又はデータは、互いに通信している複数の結合された構成要素の間で分配されてもよい。
【0036】
当業者はまた、サーバへの言及がなされている場合、これは1つ又は複数のサーバである可能性があることを理解するだろう。同様に、ストレージ機能又は処理機能の一部又はすべてがクラウドで提供することができ、クラウドは、パブリッククラウド又はプライベートクラウドであることがある。本明細書で使用される「クラウド」とは、たとえば、ネットワーク上の需要に応じて、動的にプロビジョニングを実行し、CPU、メモリ、ストレージ、ネットワーク帯域幅等のコンピューティングリソースを提供可能なシステムを意味する。当業者はまた、サーバソフトウェアが、クライアントソフトウェアを同時に実行している物理的なコンピュータ又はコンピュータシステム上に実装されてもよいことを理解するであろう。
【0037】
これら及び他の態様は、以下に記載される実施形態から明らかになるであろう。本開示の範囲は、この要約によって限定されることを意図するものではなく、また、記載された欠点のいずれか又はすべてを必ずしも解決する実装に限定されることを意図するものでもない。
【図面の簡単な説明】
【0038】
【
図1】公知のSIM更新手順の処理フローを示す図である。
【
図2】本明細書に記載された実施形態に従ってSIMを更新するためのシステムのブロック図である。
【
図3】
図2のシステムで使用するための移動局のブロック図である。
【
図4】
図2のシステムで使用するためのSIMのブロック図である。
【
図5】事前共有鍵を導出する手順の処理フローを示す図である。
【
図6】本明細書に記載された実施形態に従ったSIM更新手順の処理フローを示す図である。
【
図7】SIM更新手順で送信される更新応答メッセージを説明するための図である。
【発明を実施するための形態】
【0039】
本明細書では、以下の定義/例が使用される。
・2G GSM等の第2世代の移動体通信技術
・3G EDGE等の第3世代の無線移動体通信技術
・4G 第4世代は、LTE等の無線移動体通信技術の第4世代
・APDU Application protocol data unit。ISO 7816インターフェイスを介してスマートカードと交換できる基本的なコマンド及びレスポンスの組を定義する。
・API Application protocol data unit。当該インターフェイスに提供される特別な機能を公開する。
・BIP TS 102 223で定義されるBearer Independent Protocolは、UICC上のカードアプリケーションツールキットアプリケーションが端末とのデータチャネルを確立することを可能にする。
・eUICC embedded UICC(通常は回路基板にはんだ付けされている埋め込みSIM)
・EDGE Enhanced Data GSM Environmentは、GSM(Global System for Mobile)の高速版の3G無線通信規格。
・GSM Global System for Mobile communicationsの略である2G無線通信規格
・GPRS General packet radio service
・HSDPA High Speed Downlink Packet Accessは、3G移動通信網通信プロトコルであるHSPA(High Speed Packet Access)の2つのサブプロトコルのうちの1つ
・HTTP OTA Hypertext Transfer protocol over-the-air。IPサービスを介してSIMカー
ドに管理コマンドを転送するためのプロトコル
・IEEE 電気電子学会
・IMSI International Mobile Subscriber Identityは、セルラーネットワークのユーザを識別するために使用され、すべてのセルラーネットワークに関連づけられた一意の識別番号であり、一例として、IMSI: xxx yy 1234567890と表される。ここで、
XXX:MCCを表す
YY:MNCを示す
・IP より長い略語であるTCP/IPの一部
・iUICC integrated UICC(すなわち、ソフトウェアSIM)
・LTE Long Term Evolution。4G無線通信規格。
・MCC:Mobile Country Code
・MNC:Mobile Network Code
・MFF2 Machine-to-machine form factor 2は、SIMカードが取ることができる多くの形の1つを定義し、これは埋め込み可能なバージョンのうちで最小のものの1つ。
・OTA Over-The-Air。これは、SIMに更新を送信する任意の方法をカバーする(たとえば、SMS OTA、HTTP OTA等)。
・SCP80 Secure Channel Protocol 80は、Global Platformによって定義されたSMSを介したOTAの標準規格。
・SCP81 Secure Channel Protocol 81は、Global Platformによって定義されたIPネットワークを介したOTAの標準規格でHTTP OTAとしても知られる。
・SIM UICC、eUICC、iUICC、SoftSIM等、すべての形の認証トークンのすべてのバリエーションをカバーする。
・SMS Short Message Service。一般に「テキストメッセージ」とも呼ばれる。
・SMS OTA Short Message Service over-the-airは、SMSを介してSIMカードに管理コマンドを転送するためのプロトコル。
・TCP/IP Transmission Control Protocol/Internet Protocolの略で、2台以上のコンピュータを通信可能にする一組のネットワーキングプロトコル。
・UICC(universal integrated circuit card) GSM及びUMTSネットワークの携帯端末で使用されるスマートカード。
・Wi-Fi IEEE 802.1 1xで定義された無線ネットワーク規格の商標
【0040】
標準的なHTTP OTA(
図1参照)では、SCP81がSIM及びデバイスレベルで実装されている。これは、ホストデバイス(より具体的には、ホストデバイスの通信モジュール)でのBIPのサポートを必要とする。ホストデバイスにおけるBIPのサポートとは、いくつかの特定のカードアプリケーションツールキットのコマンド及びイベント、すなわち、次のようなものに対応することを意味する:OPEN CHANNEL、CHANNEL STATUS、CLOSE CHANNEL、SEND DATA、RECEIVE DATA、EVENT DATA AVAILABLE。これは、「スマートカード;カードアプリケーションツールキット(CAT)」と題するETSI TS 102 223に記載されている。
【0041】
図1は、先行技術のHTTP OTAメッセージプロトコルのフローチャート100である。
【0042】
典型的なHTTP OTAセッションでは、通信モジュールがOTAサーバからバイナリSMSメッセージを受信することに応答して(ステップ1)、ステップ2-6で、通信モジュールは、指定されたサーバーアドレス(IPアドレスはOPEN CHANNELコマンドで指定される)にTCPチャネルを開く。デバイスは、代わりにSEND DATAコマンド(ステップ7)の形でSIMから受信した上位プロトコルメッセージ(リクエスト)を、TCPチャネルを介してOTAサーバに向けて転送する(ステップ8)。これらの上位レベルのメッセージは、実際にはSIMによってHTTPSパケットに包まれる。OTAサーバはリクエストを処理し、応答メッセージを送り返す(ステップ9)。応答メッセージは、SIMによって実行されるRFM(Remote File Management)又はRAM(Remote Application Management)コマンド(ステップ10~13)を潜在的に含む。代わりにSIMは、通信モジュールに実行結果を送信し、通信モジュールは、OTAサーバが空の応答を送信するまで(ステップ16)、新しいリクエストの形でOTAサーバに実行結果をリレーする(ステップ15)。空の応答を処理することに応答して(ステップ17~19)、SIMは、TCPチャネルを閉じるように通信モジュールに指示する(ステップ20)。その後、通信モジュールは、TCPチャネルを閉じるためにOTAサーバと通信し(ステップ21~22)、TCPチャネルの閉鎖をSIMに通知する(ステップ23)。
【0043】
TCPチャネルを介して交換される上位レベルのメッセージは、HTTPパケットに包まれ、それ自体がTLSプロトコルパケットにカプセル化される。ここで使用される特定のTLSプロトコルのバージョンは、TLS事前共有鍵(PSK)と呼ばれるもので、OTAサーバとSIMによって知られている事前共有秘密鍵が通信パケットの暗号化/復号化に使用される。
【0044】
次に
図2を参照すると、これは、本明細書に記載された実施形態に従ってSIMを更新するためのシステム200のブロック図を示す。システムは、従来のネットワーク要素を有するIPネットワーク114を備え、ホストデバイス102aと通信するための(1つだけが図示の目的で示されている)複数の基地局114aを含む。ホストデバイス102aは、ネットワーク114にデータを送信し、ネットワーク114から情報を受信することができるコンピューティングデバイスである。ホストデバイス102aは、たとえば、ラップトップコンピュータ、タブレット型コンピュータ、または携帯電話(「スマートフォン」と呼ばれることがある)の形をとることができる。
図2の例では、ホストデバイス102aは、モバイルデバイス(したがって、本明細書では「モバイルステーション」と呼ばれる)として示されているが、これは単なる例示に過ぎない。
【0045】
移動局102aの各々は、無線データ通信リンクを介してネットワーク114と通信し、関連づけられたSIM102bを有する。図示された例では、ネットワーク114はまた、インターネット116に結合されている。
【0046】
システム200はまた、SIMを更新するためのSIM更新サーバ110(あるいは本明細書で「ネットワークエンティティ」と呼ばれる)を含む。SIM更新サーバ110は、SIMにOTA(Over-the-Air)更新を送信するように構成されており、したがって、本明細書ではOTAサーバとも呼ばれる。図示されているように、これは別個の要素として示されているが、実際には、これは既存のネットワークデバイス又はサーバ上で実行される追加のソフトウェアコンポーネントとして実装されてもよい。後に詳述するように、SIM更新サーバ110は、プロセッサ111及びメモリ112を含み、メモリ112は、ホストデバイスから更新要求メッセージを受信し、ホストデバイスに更新データを送信するためのコードを記憶する。SIM更新サーバ110は、別名としてHSS(Home Subscriber Server)と呼ばれるHLR(Home Location Register)118に結合される。HLRの用語は、モバイルネットワーク114が2G又は3Gネットワークである場合に典型的に使用され、HSSの用語は、モバイルネットワーク114が4G LTEネットワークである場合に典型的に使用される。
【0047】
HLR/HSS118は、ネットワーク114の使用を許可されたすべての加入者の情報を記憶し、管理するために使用されるデータベースである。HLRは、各加入者について、加入者のIMSI(International Mobile Subscriber Identity)、サービス加入情報、位置情報、サービス制限等を含む加入者情報を記憶する。HLR/HSS118は、認証センター(AuC)119を備えるか、またはそれに結合されている。AuC119は、各加入者の認証を提供する。AuC119は、各加入者について、加入者のSIMの認証のための共有鍵Kiを記憶するデータベースを備える。AuC119は、各IMSI(又は他のSIM識別子)にそれぞれ関連づけられた複数の共有鍵を格納してもよい。
【0048】
図2は、ネットワーク114がモバイル(セルラー)通信ネットワークである一例のシステムを示しているが、これは単なる例示である。たとえば、本明細書に記載された方法を用いてOTA更新を実装し、それによってホストデバイスがWiFiネットワーク上のWiFiリンクを介してインターネット又はIPネットワーク116に結合されることも実施形態も含まれる。すなわち、本発明の実施形態では、(たとえば、ローミング試行中に)SIM102bがセルラーネットワーク上で認証できなくても、任意のデータ接続(たとえば、WiFi、LAN等)を介してOTA更新を達成することができる。
【0049】
図3は、例示的な移動局102aのブロック図である。
図3に示された移動局102aの様々な構成要素間の接続は、単なる例示に過ぎない。
【0050】
図3に示すように、移動局102aは、SIM102bを備える。当業者は認識するであろうが、本明細書で使用される「SIM」は、SIMカード、いわゆるeSIM(デバイスに埋め込むことのできるモジュール)、いわゆるソフトSIM若しくはバーチャルSIM(たとえば通信モジュール202のようなデバイスのモジュールに記憶することができ、随意にオーバー・ザ・エアーでダウンロード可能なソフトウェアSIM)、又はいわゆるセキュアエレメントを含むことができる。また、本明細書で説明する技術は、SIMカード以外のSIMにも適用可能である。したがって、SIMは、たとえば、UICC(Universal Integrated Circuit Card)、eUICC、iUICCなどに具現化されてもよい。
【0051】
通信モジュール202は、SIM102bと(以下でより詳細に説明する)エージェント204との間の通信のための仲介物として機能する。通信モジュール202は、たとえばHSPDAモデム等のモデムである。本明細書に記載される実施形態では、通信モジュール202は、BIP(Bearer Independent Protocol)をサポートしない場合があるが、エージェント204が、通信モジュールにおけるBIPサポートを必要とせずにHTTP OTAの一種を可能にし、したがって、(BIPをサポートしていない)レガシー通信モジュールの内部のSIMカードがIPネットワーク上でRFM及びRAMメッセージを安全に交換できるようにする。
【0052】
通信モジュール202は、別個のケーシングに収容された別個のユニットであるという点で、移動局102aの外部であってもよいが、(移動局102aから取り外し可能であるかことに加えて)有線又は無線の接続によって移動局102aのプロセッサ206に接続されているか接続可能である。たとえば、通信モジュール202は、移動局102aに差し込むためのドングルの形をとってもよい。単なる例として、通信モジュールは、Huawei社のUSBスティックMS2131の形をとってもよい。代替として、通信モジュール202は、移動局102aの内部、たとえば、移動局102a内の無線モジュールの形をとってもよい。たとえば、通信モジュール202とホストプロセッサ206の両方が、移動局102aの同じケーシング内に収容されてもよい。
【0053】
移動局102aは、さらに、通信モジュール202と通信するように構成されたエージェント204(更新ハンドラ)を備える。エージェント204は、ネットワーク14を介してOTAサーバ10と通信するようにさらに構成されている。すなわち、TLSを介したHTTPの処理は、移動局102a上のエージェント214に委譲される。
【0054】
エージェント204の機能は、1又は複数の記憶媒体を含むメモリ(たとえば、メモリ208)に記憶され、1又は複数の処理ユニットを含むプロセッサ206上での実行の準備がなされたコード(ソフトウェア)に実装することができる。当該コードは、メモリ208からフェッチされ、プロセッサ206上で実行されたときに、後述する実施形態に沿った動作を実行するように構成されている。ソフトウェアエージェント204の実装は、典型的には、移動局102aのオペレーティングシステム(OS)上で実行されるコードで構成されるであろう。OS(たとえば、Windows(商標)、Mac OS(商標)及びLinux(商標))は、プロセッサ206上で実行される。エージェント204は、たとえば、通信セッションをトリガすることができるコマンドラインツールの形で提供されることができる。あるいは、エージェント204の機能の一部又は全部が、専用のハードウェア回路又はFPGAのような構成可能なハードウェア回路に実装されることも排除されない。
【0055】
一実施形態では、エージェント204は、顧客によって彼らのコンピューティングデバイスにダウンロード可能なエージェントアプリケーションの形である。そして、エージェントアプリケーションは、SMS OTAが利用できない場所で、又はSMSのペイロードが(それによって障害のリスクを増大させる)あまりにも多くの連結されたSMSメッセージを必要とする場合に、リモート更新をトリガすることができる。一例のシナリオでは、遠隔地に住むユーザがローカルモバイルネットワークに接続されていないSIMを持っている場合、ユーザは、通信モジュール202をコンピューティングデバイスに接続し、エージェントアプリケーション204をコンピューティングデバイスにダウンロードするように指示され得る。以下でより詳細に説明する機能に従って、エージェントアプリケーション204は、その後、WiFiインターネットリンクを介して、OTAサーバ110への接続を介した更新として新しいSIMクレデンシャルを受信し、それをローカルモバイルネットワークに接続するためにSIMを再構成するために使用することができる。
【0056】
エージェント204は、移動局102aの通信インターフェイス210を使用してOTAサーバ110と通信するように構成されている。通信インターフェイス210は、エージェント204とネットワーク114との間の通信を可能にするために、無線トランシーバを備えてもよい。
【0057】
移動局102aは、スクリーン、タッチスクリーン等のディスプレイ212をさらに備えてもよい。移動局102aは、たとえばキーパッド、マイク、カメラ、タッチスクリーン等の移動局102aのユーザからのユーザ入力を受信するための少なくとも1つの入力装置214、及び/又は、たとえばスピーカ等の少なくとも1つの出力装置214を備えてもよい。
【0058】
図4は、SIM102bの例示的なSIMカードのブロック図である。SIMカードは、ワーキングメモリ122に結合されたプロセッサ120と、EEPROMのような不揮発性データストア124と、ROMのような恒久的プログラムメモリ126とを備える。また、SIMカードは、電力を受け取り、通信モジュール202からのコマンドを受け入れ、応答を与えるためのインターフェイス128を有する。永久プログラムメモリ126は、ネットワーク/デバイスインターフェイスコード、たとえばJava Cardを含むオペレーティングシステム、及び、必須ではないが典型的にSTK(Sim Application Toolkit)を記憶してもよい。不揮発性データストア124は、典型的には、ユーザ電話のディレクトリ情報、設定データ、ソフトウェアパッチ等を記憶する。不揮発性データストア124は、共有鍵Ki、及び、SIM102bに関連付けられたIMSIを記憶してもよい。認証鍵Kiは、SIM102b及びAuC119の両方によって記憶されるという意味で「共有」される。典型的には、共有鍵Kiは保護された形で記憶されるのに対し、IMSIは一般にアクセス可能である。
【0059】
図5及び
図6を参照して、以下に説明するSIM動作を実行するためのさらなるコードが恒久的プログラムメモリ126に存在してもよいが、代替的に、部分的又は全体的に不揮発性データストア124に記憶されてもよい。
【0060】
前述したように、
図4は、SIMカードとしてSIM 102bを示しているが、その機能はeSIM又はsoftSIMとしても同様に実装され得る。
【0061】
次に、事前共有鍵(PSK)を導出する手順のプロセス500を説明する
図5を参照する。事前共有鍵(PSK)は暗号鍵であり、プロセス500は、移動局102a及びOTAサーバ110の双方が、移動局102aとOTAサーバ110との間の通信を暗号化する際に使用するための事前共有鍵を相互に導出するように、通信セッションの開始時に実行される。すなわち、エージェント204及びOTAサーバ110は、相互に導出した鍵(PSK)を共有する。
【0062】
ステップ1において、エージェント204は、SIM102bの識別子に対する要求を通信モジュール202に送信する。
図5に示すように、要求されたSIM識別子は、SIM102bに関連づけられたIMSIであってもよいし、ICCID、MSISDN又は当業者に知られているであろうSIM102bに関連づけられた任意の他の識別子であってもよい。
【0063】
ステップ1は、たとえば、エージェント204が通信モジュール202のシリアルインターフェイスにATtention(AT)コマンドを送信することによって達成されてもよい。「ATコマンド」は、3GPP TS 07.007で定義されたモデムとのシリアル通信のための既知のメッセージフォーマットである。たとえば、「AT+CIMI」コマンドは、SIM102bの識別子を取得するためにステップ1で使用することができる。
【0064】
ステップ1を達成することができる代替的な方法は、エージェント204がSIM識別子を要求するために通信モジュール202にAPI呼び出しを送信することができるように、通信モジュール202によって提供されるAPIを使用することである。
【0065】
ステップ1は、移動局102aのユーザが移動局102aの入力装置214を介して入力を提供することによって(たとえば、ディスプレイ212に表示されたグラフィカルユーザインターフェイスで選択を行うことによって)トリガされてもよい。代替的に、または追加的に、MNOは、OTAサーバからネットワーク114を介して移動局102aにセッション開始メッセージを送信することによって、通信セッションをトリガしてもよい。この実施形態では、エージェント204は、SMS処理または何らかの形のネットワークサービスなどの必要なトリガをサポートするようにプログラムされるべきである。代替的に、または追加的に、ステップ1は、プロセス500が周期的に実行されるように、エージェント204が(たとえば、内部タイマーを監視することによって)所定の時間間隔の満了を検出したことに基づいてトリガされてもよい。
【0066】
エージェント204からの要求を受信したことに応答して、通信モジュール202は、ステップ2において、SIM102bからのSIM識別子を要求する。これは、ADPU(application protocol data unit)コマンドを実行することによって実行されてもよい。
【0067】
ステップ3において、SIM102bは、要求されたSIM識別子を通信モジュール202に提供し、通信モジュール202は、その後、ステップ4において、SIM識別子をエージェント204に返す。
【0068】
SIM識別子の受信に応答して、エージェント204は、SIM識別子からエージェント識別子を生成するように構成されている。エージェント識別子は、エージェント204を識別する一意の文字列である。一例では、エージェント204は、SIM識別子に接頭辞「agent」を付加することにより、エージェント識別子を導出する。これは、概念を説明するための単なる例であり、SIM識別子を使用してエージェント識別子を導出するための代替方法が使用されてもよいことが理解されるであろう。
【0069】
ステップ5において、エージェント204は、エージェント識別子及びSIM識別子をネットワーク114を介してOTAサーバ110に送信する。ステップ5において、エージェントは、エージェント識別子をパラメータとして、IPネットワーク114上のAPI(たとえば、Web API)をトリガしてもよい。このAPIは、セキュアチャネル、たとえばHTTPSを介して提供される。ステップ5でのOTAサーバ110へのエージェント識別子の送信は、以下でより詳細に説明するように、チャレンジの要求としての役割を果たす。
【0070】
エージェント識別子を受信することに応答して、ステップ6でOTAサーバは、たとえば128ビットの長さの「チャレンジ」とも呼ばれるランダム値(RAND)を生成し、チャレンジ(RAND)及びSIM識別子をAuC119に送信する。
【0071】
AuC119は、SIM識別子と関連づけて記憶された共有鍵Kiを取得し、共有鍵Ki及びチャレンジ(RAND)を入力とする第1の認証アルゴリズム(たとえばA3暗号化アルゴリズム)を用いて署名済み応答(SRES)を生成し、同じく共有鍵Ki及びチャレンジ(RAND)を入力とする第2の認証アルゴリズム(たとえばA8暗号化アルゴリズム)を用いて暗号鍵(Kc)を生成する。
【0072】
ステップ7において、OTAサーバ110は、HLR/HSS118から署名済み応答(SRES)及び暗号鍵(Kc)を受信する。
【0073】
ステップ8において、OTAサーバ110は、署名済み応答(SRES)及び暗号鍵(Kc)の少なくとも一方を使用して、128ビットの長さであってもよい事前共有鍵(PSK)を導出する。付加的に、事前共有鍵(PSK)を導出するために、チャレンジ(RAND)が追加的に使用されてもよい。事前共有鍵(PSK)を導出する方法の一例としては、暗号鍵(Kc)をそれ自身と連結し、その結果に以下のようにチャレンジ(RAND)とビット単位のXOR演算を適用することが挙げられる。
PSK=CONCATENATE (Kc, Kc) XOR RAND
【0074】
これは概念を説明するための例に過ぎず、事前共有鍵(PSK)を導出するための代替方法が使用されてもよいことが理解されよう。
【0075】
事前共有鍵(PSK)は、一時的なものとすることができ、これは、移動局102aとOTAサーバ110との間の通信セッションがその鍵で行われた後に忘れられることを意味する。
【0076】
一旦、OTAサーバ110は、事前共有鍵(PSK)を導出すると、事前共有鍵(PSK)をステップ5で受信したエージェント識別子と関連づけ、関連づけられた事前共有鍵(PSK)及びエージェント識別子をOTAサーバ110の内部メモリに記憶する(関連づけられた事前共有鍵(PSK)及びエージェント識別子は、代替的にOTAサーバ110の外部にあるメモリに記憶されてもよいことが理解されるであろう)。これにより、OTAサーバ110は、移動局102a上のエージェント204への通信の暗号化に当該事前共有鍵(PSK)を使用すべきことを知ることができる。
【0077】
ステップ9において、OTAサーバ110は、チャレンジ(RAND)をネットワーク14を介して移動局102a上のエージェント204に送信する。
【0078】
ステップ10において、エージェント204は、通信モジュール202に乱数値を与えてSIM認証手順を開始し、その応答において、以下でより詳細に説明するように、(ステップ13で)通信モジュール202から認証応答を受信する。
【0079】
ステップ10において、エージェント204は、通信モジュール202にATコマンドを送信してもよい。特に、チャレンジ(RAND)は、エージェント204によってシードとして使用され、このランダム値をパラメータとしてSIMでコマンド(AUTHENTICATEコマンド)を呼び出すために使用されてもよい。SIMレベルでAUTHENTICATE APDUを呼び出す1つの方法は、AT+CSIMコマンドを使用して、ATコマンドに対するAT+CSIM応答(ステップ13)から応答APDUを収集することである。ステップ10が達成され得る代替的な方法は、エージェント204がSIM認証手順を開始するために通信モジュール202にAPI呼び出しを送信することができる、通信モジュール202によって提供されるAPIを使用することである。
【0080】
SIM認証手順の間、通信モジュール202は、たとえば、ステップ10で受信したAuthenticate APDUコマンドを実行することにより、ステップ11で、SIM102bにチャレンジ(RAND)を与える。
【0081】
ステップ12において、SIM102bは、不揮発性データストア124から共有鍵Kiを取得し、共有鍵Ki及びチャレンジ(RAND)を入力とする第1の認証アルゴリズム(たとえばA3暗号化アルゴリズム)を用いた署名済み応答(SRES)と、同じく共有鍵Ki及びチャレンジ(RAND)を入力とする第2の認証アルゴリズム(たとえばA8暗号化アルゴリズム)を用いた暗号鍵(Kc)とを生成する。SIM102bは、署名済み応答(SRES)と暗号鍵(Kc)を通信モジュール202に与える。
【0082】
ステップ13において、通信モジュール202は、認証応答において、署名済み応答(SRES)及び暗号鍵(Kc)をエージェント204に供給する。
【0083】
ステップ14において、エージェント204は、ステップ8と同様に(OTAサーバによって実装された)事前共有鍵(PSK)を導出する。
【0084】
したがって、プロセス500の最後に、エージェント204とOTAサーバ110の両方がTLS暗号化鍵(PSK)を導出している。事前共有鍵(PSK)は、
図6を参照して以下にさらに詳細に説明するように、エージェント204とOTAサーバ110との間で送信される通信パケットを暗号化/復号化するために使用される。
【0085】
図6は、事前共有鍵導出手順500が完了した後に実行されるSIM更新手順のプロセス600を示す図である。
【0086】
ステップ1に先立ち、エージェント204は、OTAサーバ110との間でTLSチャネルを開く。TLSチャネルの開通は、技術的には「TLSハンドシェイク」と呼ばれ、RFC 4279に記述されている。TLSハンドシェイクの間、一連のメッセージがエージェント204とOTAサーバ110の間で交換される。これらのメッセージは当技術分野で知られているため、本明細書では詳細には記述されていない。TLSハンドシェイク手順の間、エージェント204は、エージェント204とOTAサーバ110との間で送信される通信パケットを暗号化/復号化するために使用される鍵(事前共有鍵(PSK))をOTAサーバ110に通知する。具体的には、エージェント204は、エージェント識別子を「PSKアイデンティティ」として含むメッセージ(たとえば「クライアント鍵交換」メッセージ)をOTAサーバ110に送信する。これに応答して、OTAサーバ110は、エージェント識別子を使用してその関連メモリ112に問い合わせを行い、エージェント識別子に関連して記憶されている事前共有鍵(PSK)を取得する。
【0087】
ホストデバイス102aは、TLS/PSKソフトウェアモジュールを備えてもよい。エージェント204は、TLS/PSKソフトウェアモジュール(エージェント204の機能の一部)を備えてもよいし、代替的に、TLS/PSKソフトウェアモジュールは、エージェント204とは別個のモジュールであってもよく、プロセッサ206で実行されたときに所定のタスクを実行する、メモリ208に記憶されたプログラムコードを含んでもよい。
【0088】
エージェント204は、導出されたPSKをTLS/PSKソフトウェアモジュールに供給する。TLS/PSKソフトウェアモジュールは、エージェント204からOTAサーバ110に送信されたデータの暗号化、及びOTAサーバ110からエージェントに送信されたデータの復号化のためにエージェント204のTLS/PSKソフトウェアモジュールによって使用されるセッションキーをPSKから導出するように構成されている。ホストデバイス102a上のTLS/PSKモジュールは、HTTPメッセージを復号化してエージェント204に引き渡す役割を担う。
【0089】
TLS/PSKソフトウェアモジュールの動作は、当業者には知られており、RFC 4279及びRFC 2246に文書化されている。一般的に、TLS/PSKソフトウェアモジュールは、PSKから「プレマスターシークレット」を導出する(これはRFC 4279-セクション2に記述されている)。プレマスターシークレットは暗号化され、TLSハンドシェイクにおいて交換される。「プレマスターシークレット」は「マスターシークレット」を導出するために使用される(これはRFC 2246-セクション8.1に記述されている)。TLS/PSKソフトウェアモジュールは、ハンドシェイクからのマスターキー及び他のデータを疑似ランダム関数(PRF)に渡して、セッション鍵を生成する(これはRFC 2246-セクション5と6.3に記述されている)。
【0090】
セッション鍵は、(OTAサーバ110のTLS/PSKソフトウェアモジュールによってデータを復号化するために使用され、)エージェント204からOTAサーバ110に送信されるデータの暗号化のためにエージェント204のTLS/PSKソフトウェアモジュールによって使用される「クライアント書き込み暗号化鍵」と、(エージェント204のTLS/PSKソフトウェアモジュールによってデータを復号化するために使用され、)OTAサーバ110からエージェント204に送信されるデータの暗号化のためにOTAサーバ110のTLS/PSKソフトウェアモジュールによって使用される「サーバ書き込み暗号化鍵」とを含む。これらのセッション鍵がPSKから導出されることは、上記から理解されるであろう。
【0091】
また、OTAサーバ110は、上述したエージェント204と同様にセッションキーを導出するように構成されたTLS/PSKソフトウェアモジュールを備えてもよい。
【0092】
ステップ1において、エージェント204は、更新要求メッセージをTLSチャネルを介してOTAサーバ110に送信する。更新要求メッセージは、(手順500でエージェント204によって生成された)エージェント識別子を含み、さらにSIM102bに関連づけられたSIM識別子を含んでもよい。更新要求メッセージは、手順500の間に導出された事前共有鍵(PSK)を用いて暗号化される。すなわち、更新要求メッセージは、エージェント204のTLS/PSKソフトウェアモジュールによって、PSKから導出されたセッション鍵(クライアント書き込み暗号化鍵)を用いて暗号化される。
【0093】
図6に示すように、更新要求メッセージは、(SCP81プロトコルに準拠して)エージェント識別子をパラメータとして含む第1のHTTP要求として送信されてもよい。すなわち、TLSチャネルを介して交換されるメッセージは、それ自体がTLSプロトコルパケットにカプセル化されたHTTPパケットに包まれていてもよい。
【0094】
更新要求メッセージの受信に応答して、OTAサーバ110は、事前共有鍵(PSK)を用いて更新要求メッセージを復号化する、すなわち、OTAサーバ110のTLS/PSKソフトウェアモジュールは、PSKから導出されたセッション鍵(クライアント書き込み暗号化鍵)を用いて更新要求メッセージを復号化する。
【0095】
ステップ2において、OTAサーバ110は、更新応答メッセージをTLSチャネルを介してエージェント204に送信する。更新応答メッセージは、送信前に事前共有鍵(PSK)を用いて暗号化される。すなわち、更新応答メッセージは、OTAサーバ110のTLS/PSKソフトウェアモジュールによって、PSKから導出されたセッション鍵(サーバ書き込み暗号化鍵)を用いて暗号化される。
【0096】
更新応答メッセージは、更新データを含む。更新データは、メモリ112に記憶されていてもよく、SIM102bに関連づけられていてもよく、すなわち、SIM102bへの配信のために予め指定されていてもよい。更新データは、少なくとも1つのエンベロープAPDUを含んでもよい。少なくとも1つのエンベロープAPDUは、SIM102bによって実行されるRFM及び/又はRAMコマンドを含んでもよい。少なくとも1つのエンベロープAPDUは、対称OTA鍵を使用してOTAサーバ110によって暗号化され、したがって、セキュアエンベロープAPDUを形成する。対称OTA鍵は、製造時にSIM102bにインストールされ、またOTAサーバ110にプロビジョニングされる。対称OTA鍵は、標準ETSI TS 102 225で規定されている暗号化鍵識別子(Klc)に対応していてもよい。
【0097】
図7は、更新応答メッセージ702を示す図である。
図7に示すように、更新応答メッセージ702は、PSKから導出されたセッション鍵(サーバ書き込み暗号化鍵)704を用いて暗号化される。更新応答メッセージ702は、対称OTA鍵708を用いてOTAサーバ110によって暗号化される更新データ706を含む。
【0098】
図6のプロセス600に戻って、更新応答メッセージを受信すると、更新応答メッセージは、手順500の間に導出された事前共有鍵を使用して復号化される。すなわち、エージェント204のTLS/PSKソフトウェアモジュールは、PSKから導出されたセッション鍵(サーバ書き込み暗号化鍵)を用いて、更新応答メッセージを復号化する。
【0099】
ステップ3において、エージェント204は、暗号化された更新データを通信モジュール202に供給する。ステップ3において、エージェント204は、暗号化された更新データを通信モジュール202に供給するために、ATコマンドを通信モジュール202に送信してもよい。特に、AT+CSIMコマンドを使用してもよい。ステップ3が達成され得る代替的な方法は、エージェント204が通信モジュール202に暗号化更新データを供給するために通信モジュール202にAPIコールを送信することができる、通信モジュール202によって提供されるAPIを使用することである。
【0100】
ステップ4において、通信モジュール204は、暗号化された更新データをSIM102bに供給する。
【0101】
暗号化された更新データを受信したことに応答して、SIM102bは、対称OTA鍵708を用いて暗号化された更新データを復号化し、ステップ5において、SIM102bを更新するための更新データを実行する。受信した更新データに基づいてSIM102b上で実行される更新は、SIM102bに新しいデータをインストールする(たとえば、Javacardアプレットのような新しいアプリケーションをインストールする)、SIM102bに以前にインストールされたデータを更新する、及び/又はSIM102b上に記憶されたパラメータ値を修正することを含むことができる。
【0102】
ステップ6では、更新データの実行結果がSIM102bから通信モジュール202に送信される。ステップ7において、通信モジュール202は、実行結果をエージェント204に中継する。
【0103】
ステップ8において、エージェント204は、ネットワーク114を介して更なる更新要求メッセージをOTAサーバ110に送信し、更新要求メッセージは、更新データの実行結果を伝える。上述したように、更新要求メッセージは、送信前に事前共有鍵(PSK)を用いて暗号化される。すなわち、更新要求メッセージは、PSKから導出されたセッション鍵(クライアント書き込み暗号化鍵)で暗号化される。
【0104】
エージェント204からの更なる更新要求メッセージを受信することに応答して、OTAサーバ110は、エージェント204に送信されるべき更新データがあるかどうかを判定するように構成されている。
【0105】
エージェント204に送信すべき更なる更新データがある場合、プロセス600は、更なる更新応答メッセージがTLSチャネルを介してエージェント204に送信されるステップ2(プロセス600内)に戻る。
【0106】
データの収集(たとえば、SIMパラメータの読み取り)は、プロセス600において実行されてもよい。特に、ステップ2でOTAサーバ110によって送信される第1の更新応答メッセージは、実行のためにSIM102bに中継される読み取りコマンドを含んでもよく、したがって、ステップ8でOTAサーバ110に返される更なる更新要求メッセージは、データ読み取り結果(たとえば、SIMパラメータ値)を含んでもよい。データ読み出し結果は、プロセス600がステップ2にループバックするときに、OTAサーバ110によってエージェント204に送信される更なる更新応答メッセージにおいて送信される更新データを決定するために、OTAサーバ110によって使用されてもよい。
【0107】
エージェント204に送信すべき更なる更新データがない場合、プロセス600は、更なる更新データがないことを示すメッセージがOTAサーバ110からエージェント204に送信されるステップ9に進む。ステップ9で送信されるメッセージは、空のHTTPレスポンス(たとえば、HTTP応答コード200)であってもよい。
【0108】
これ以上の更新データがないことを示すメッセージを受信すると、通信セッションを正常に終了させることができる。
【0109】
上述したプロセス500及び600から分かるように、エージェント204は、レガシーSIM対応通信モジュール(さらには2Gモジュール)においてHTTP OTAメカニズムのサポートを提供し、ホストデバイス102aにおけるSMSサポートを必要とせずにHTTP OTAを提供する。
【0110】
APDUは、移動局102aを検査するSIM通信ロギングデバイス(トレーサ)を用いて潜在的に検査することができる。したがって、これに対処するために、上述したように、更新データAPDUは、SMS OTAプロトコル(SCP80)と同じ方法で、セキュアエンベロープAPDUにラップされている。SMS OTAキーは、OTAサーバ110及びSIM102bによってのみ知られており、したがって、RFM/RAMメッセージは、SIM102bへの更新データの安全な伝送を提供するようにエンドツーエンドで保護されている。さらに、HTTPSトンネルのエンドポイントは、SIM102bではなくエージェント204であるので、APDUは、実行のために外部に提供されると考えられ、したがって、適切な認証システムがなければ正常に実行されないであろう。セキュアなエンベロップの内側にラップされているという事実は、この必要な認証を提供する。
【0111】
図5及び
図6を参照して上述したOTAサーバ110との通信プロトコルは、TLSを介したHTTPの処理をホストデバイス102a上のソフトウェアエージェント204に委譲し、SIM102bをセキュアエレメントとしてTLS暗号化鍵(PSK)を導出する点で(上述した)SCP81のプロトコルとは異なる。
【0112】
本明細書に記載された実施形態では、移動局102a上のホストハードウェア(たとえば、プロセッシング及び/又はメモリリソース)は、典型的には、SIMハードウェアと比較して、リソースがより豊富であるため、OTA更新にかかる時間を短縮することができる。たとえば、HTTPSメッセージを処理することの計算量は大きく、ホストデバイス上で利用可能なハードウェアは、これらの通信のより高速な処理を提供する。
【0113】
本開示の態様は、以下の箇条書きを参照して記述する。
【0114】
C1 ホストデバイス上のSIMを更新する方法であって、前記ホストデバイス上のエージェントにより実行され、
事前に共有された鍵を導出するステップであって、
前記ホストデバイスの通信モジュールからの前記SIMのSIM識別子を要求するステップと、
前記通信モジュールから前記SIM識別子を受信して、前記SIM識別子からエージェント識別子を導出するステップと、
前記エージェント識別子及び前記SIM識別子をネットワークを介してネットワークエンティティに送信するステップと、
前記ネットワークを介して、前記ネットワークエンティティからランダムな値を受信するステップと、
SIM認証手順を開始するために前記通信モジュールに前記ランダムな値を与えて、その応答として前記通信モジュールから認証応答を受信するステップと、
前記認証応答から前記事前に共有された鍵を導出するステップと
を含むステップと、
前記ネットワークを介して前記ネットワークエンティティに更新要求メッセージを送信するステップであって、前記更新要求メッセージは、前記エージェント識別子を含み、前記事前に共有された鍵を使用して送信前に暗号化されるステップと、
前記ネットワークを介して前記ネットワークエンティティから更新応答メッセージを受信するステップであって、前記更新応答メッセージは、更新データを含み、前記事前に共有された鍵で暗号化されているステップと、
導き出された前記事前に共有された鍵を用いて前記更新応答メッセージを復号化して、前記SIMを更新するための実行のために前記SIMに中継するために前記通信モジュールに前記更新データを送信するステップと
を含む。
【0115】
C2 項C1の方法であって、前記認証応答は、署名済み応答及び暗号鍵を含む。
【0116】
C3 項C2の方法であって、前記認証応答からの前記事前に共有された鍵の導出は、前記署名済み応答及び前記暗号鍵の少なくとも一方を使用して前記事前に共有された鍵を導出することを含む。
【0117】
C4 項C3の方法であって、前記認証応答からの前記事前に共有された鍵の導出は、前記ランダムな値を使用して前記事前に共有された鍵を導出することを含む。
【0118】
C5 項C4の方法であって、前記認証応答からの前記事前に共有された鍵の導出は、前記暗号鍵とそれ自身を連結して連結結果を生成し、前記連結結果と前記ランダムな値にビット単位のXOR演算を適用して前記事前に共有された鍵を導出することを含む。
【0119】
C6 先行するいずれかの項の方法であって、前記更新データは、前記SIMによって記憶された対称暗号鍵で暗号化されている。
【0120】
C7 先行するいずれかの項の方法であって、前記更新要求メッセージは、前記SIM識別子を含む。
【0121】
C8 先行するいずれかの項の方法であって、前記通信モジュールに前記更新データを送信することに応答して、
前記通信モジュールを介して前記SIMから実行結果を受信するステップと、
前記ネットワークを介して前記ネットワークエンティティに更なる更新要求メッセージを送信し、前記更新要求メッセージは、前記実行結果を伝え、前記事前に共有された鍵を使用して送信の前に暗号化されているステップと
をさらに含む。
【0122】
C9 先行するいずれかの項の方法であって、ATコマンドが、
前記ホストデバイスの通信モジュールからの前記SIMのSIM識別子を要求すること、
前記通信モジュールに前記ランダムな値を与えてSIM認証手順を開始すること、及び
前記更新データを前記通信モジュールに送信すること
のうちの少なくともいずれかに用いられる。
【0123】
C10 先行するいずれかの項の方法であって、前記通信モジュールによって提供されるアプリケーション・プログラミング・インターフェイスが、
前記ホストデバイスの通信モジュールからの前記SIMのSIM識別子を要求すること、
前記通信モジュールに前記ランダムな値を与えてSIM認証手順を開始すること、及び
前記更新データを前記通信モジュールに送信すること
のうちの少なくともいずれかに用いられる。
【0124】
C11 先行するいずれかの項の方法であって、前記SIM識別子からのエージェント識別子の導出は、前記SIM識別子に接頭辞を付加することを含む。
【0125】
C12 先行するいずれかの項の方法であって、前記事前に共有された鍵の導出は、(i)前記ホストデバイス上のユーザ入力を検出すること、(ii)前記ネットワークを介して前記ネットワークエンティティからセッション開始メッセージを受信すること、及び(iii)所定の時間間隔の満了を検出することのうちの1つに基づいてトリガされる。
【0126】
C13 先行するいずれかの項の方法であって、前記SIM識別子は、(i)前記SIMに関連づけられたIMSI、(ii)前記SIMに関連づけられたICCID、及び(iii)前記SIMに関連づけられたMSISDNのうちの1つである。
【0127】
C14 ホストデバイス上のSIMを更新する方法であって、ネットワークエンティティによって実行され、
事前に共有された鍵を導出するステップであって、
ホストデバイスから、ネットワークを介して前記ホストデバイスから送信されたエージェント識別子及び前記SIMのSIM識別子を受信するステップと、
ランダムな値を生成するステップと、
前記ランダムな値及び前記SIMの前記識別子を認証エンティティに与えて、その応答として前記認証エンティティから認証応答を受信するステップと、
前記認証応答から前記事前に共有された鍵を導出するステップと
を含むステップと、
前記エージェント識別子と関連づけて前記事前に共有された鍵をメモリに記憶するステップと、
前記ネットワークを介して、前記ホストデバイスから更新要求メッセージを受信するステップであって、前記更新要求メッセージは、前記エージェント識別子を含み、前記事前に共有された鍵を使用して送信の前に暗号化されるステップと、
前記ネットワークを介して、前記ホストデバイスに更新応答メッセージを送信するステップであって、前記更新応答メッセージは、更新データを含み、前記事前に共有された鍵で暗号化されるステップと
を含む。
【0128】
C15 ホストデバイス上のSIMを更新するためのコンピュータプログラム製品であって、非一過性のコンピュータ読み取り可能な媒体上に具現化されたコードを含み、前記コードは、プロセッサ上で実行されたときに先行するいずれかの項の方法を実行するように構成されている。
【0129】
上記の実施形態は、例示としてのみ記載されていることが理解され、他の変種又はアプリケーションは、本明細書の開示を与えられた当業者に明らかであるだろう。