【文献】
Gemalto,FS_NSA: Solution for Remote Provisioning[online],3GPP TSG SA WG3 (Security) Meeting #85 S3-161866,Internet<URL:http://www.3gpp.org/ftp/tsg_sa/WG3_Security/TSGS3_85_Santa_Cruz/Docs/S3-161866.zip>,2016年10月31日
【文献】
Gemalto N.V.,Network Slice for Initial Attachment enabling Remote Subscription Management[online],SA WG2 Meeting #118 S2-166754,Internet<URL:http://www.3gpp.org/ftp/tsg_sa/WG2_Arch/TSGS2_118_Reno/Docs/S2-166754.zip>,2016年11月 8日
(58)【調査した分野】(Int.Cl.,DB名)
前記ユーザ装置(20)がセッション識別子を取得するための初期コマンドを送信し、前記サーバ(30)が前記初期コマンドに応答して前記セッション識別子を送信し、前記ユーザ装置(20)がセッション終了コマンドまで前記サーバ(30)に送信される後続の全てのコマンドに前記セッション識別子を含める、請求項1に記載の方法。
前記ユーザ装置(20)が前記ユーザ装置(20)に一意に割り当てられたターゲット識別子(14)を格納し、前記サーバ(30)がある範囲のトランザクション識別子を含み、前記コマンドが前記ターゲット識別子(14)から生成されたパラメータを含み、前記サーバ(30)が前記パラメータによって前記範囲内の前記ターゲット識別子(14)を探し出す、請求項1に記載の方法。
前記ユーザ装置(20)が耐タンパエレメント(10)を組み込み、前記ユーザ装置(20)が前記ユーザ装置(20)に割り当てられたIMSI(26)を要求するコマンドを送信し、これに応答して前記サーバ(30)が前記ターゲット識別子(14)によって前記IMSI(26)を選択し、前記IMSI(26)を返送し、前記ユーザ装置(20)が前記耐タンパエレメント(10)に前記IMSI(26)を転送する、請求項4に記載の方法。
前記ユーザ装置(20)が、移動体オペレータに割り当てられ、通信ネットワークへの安全なアクセスに必要なクレデンシャルを生成するのに必要な鍵(28)を要求するためのコマンドを送信し、これに応答して前記サーバ(30)が前記ターゲット識別子(14)によって前記鍵(28)を選択し、前記鍵(28)を返送し、前記ユーザ装置(20)が前記耐タンパエレメント(10)に前記鍵(28)を転送し、前記耐タンパエレメント(10)が、前記鍵(28)と前記耐タンパエレメント(10)に予め格納されているシード(24)の両方から前記クレデンシャルを計算する、請求項6に記載の方法。
前記シードが前記ユーザ装置(20)から取得され、前記移動体オペレータに送信され、前記移動体オペレータが、MNO私有鍵とMNO公開鍵とからなるMNO鍵ペアを生成し、前記IMSIを生成し、前記シードからKiを計算し、前記MNO公開鍵が、前記移動体オペレータに割り当てられた前記鍵(28)であり、前記移動体オペレータが、前記サーバ(30)に前記MNO公開鍵、前記IMSI及び前記ターゲット識別子(14)を送信する、請求項7に記載の方法。
前記移動体オペレータが、第三者(IDS)に前記シード(24)をチェックするよう要求することによって前記耐タンパエレメント(10)が本物であることを検証する、請求項7に記載の方法。
前記ユーザ装置(20)がベースバンドを組み込み、前記ベースバンドが、前記サーバ(30)からIMSI(26)及び移動体オペレータに割り当てられた鍵(28)を取得するために、前記耐タンパエレメント(10)を使用することなく前記セットのコマンドを送信し、前記ベースバンドが、前記IMSI(26)と前記鍵(28)の両方を前記耐タンパエレメント(10)に転送し、前記耐タンパエレメント(10)が、3GPP鍵導出メカニズムに従って導出される接続クレデンシャルを計算する、請求項7に記載の方法。
前記ユーザ装置(20)が、次の順序付けられた一連のコマンド、すなわちセッション識別子の要求、ターゲット識別子(14)の送信、IMSIの要求、移動体オペレータに割り当てられた鍵(28)の要求、及びセッション終了を前記サーバ(30)に送信するように構成された、請求項11に記載のユーザ装置(20)。
前記ユーザ装置(20)が、前記ユーザ装置(20)に一意に割り当てられたターゲット識別子(14)を格納するように意図され、前記サーバ(30)が、ある範囲のトランザクション識別子を格納し、前記コマンドが前記ターゲット識別子(14)から生成されたパラメータを含み、前記サーバ(30)が前記パラメータを使用することによって前記範囲内の前記ターゲット識別子(14)を探し出すように構成された、請求項14に記載のサーバ(30)。
【発明の概要】
【発明が解決しようとする課題】
【0007】
本発明の目的は、上述の技術的問題を解決することである。
【課題を解決するための手段】
【0008】
本発明の目的は、1セットのコマンド/応答ペアによるサーバ及びユーザ装置間の通信方法である。ユーザ装置は、ETSI TS 124.008により定義される接続要求フレームのIMSIフィールドを使用して上記ペアの1つのコマンドをサーバに伝送する。サーバは、ETSI TS 124.008により定義される認証要求フレームの認証パラメータRANDフィールド又は認証パラメータAUTNフィールドを使用して、受信したコマンドに対応する応答を伝送する。サーバは、接続要求フレームに応答して認証要求フレームを送信する。
【0009】
有利には、ユーザ装置はIMSIフィールドのMSIN部分を使用してコマンドを送信することができる。
【0010】
有利には、ユーザ装置はセッション識別子を取得するための初期コマンドを送信することができ、サーバは初期コマンドに応答してセッション識別子を送信することができ、ユーザ装置は、セッション終了コマンドまでサーバに送信される後続の全てのコマンドにセッション識別子を含めることができる。
【0011】
有利には、ユーザ装置は、上記ユーザ装置に一意に割り当てられたターゲット識別子を格納することができ、サーバはある範囲のトランザクション識別子を含むことができ、コマンドはターゲット識別子から生成されたパラメータを含むことができ、サーバは上記パラメータによって範囲内のターゲット識別子を探し出すことができる。
【0012】
有利には、UHがターゲット識別子の64最上位ビットを示し、PHL
nが範囲の下限の64最上位ビットを示し、PHH
nが範囲の上限の64最上位ビットを示し、Hがパラメータに含まれるプローブ値を示し、ユーザ装置はサーバからPHH
nとPHL
nの両方を受信することができ、Hは((UH−PHL
n)*100000)/(PHH
n−PHL
n)に等しい。サーバは、PHL
n+(H*(PHH
n−PHL
n)/100000)に等しい更新されたPHL
n+1を生成することができ、PHL
n+((H+1)*(PHH
n−PHL
n)/100000)に等しい更新されたPHH
n+1を生成することができる。
【0013】
有利には、ユーザ装置は、耐タンパエレメントを組み込むことができる。ユーザ装置は、ユーザ装置に割り当てられたIMSIを要求するコマンドを送信することができる。これに応答して、サーバはターゲット識別子によってIMSIを選択し、IMSIを返送することができる。ユーザ装置は、耐タンパエレメントにIMSIを転送することができる。
【0014】
有利には、ユーザ装置は、移動体オペレータに割り当てられ、通信ネットワークへの安全なアクセスに必要なクレデンシャルを生成するのに必要な鍵を要求するためのコマンドを送信することができる。これに応答して、サーバはターゲット識別子によってこの鍵を選択し、返送することができる。ユーザ装置は、耐タンパエレメントにこの鍵を転送することができ、耐タンパエレメントは、この鍵と耐タンパエレメントに予め格納されているシードの両方から上記クレデンシャルを計算することができる。
【0015】
有利には、シードはユーザ装置から取得し、移動体オペレータに送信することができる。移動体オペレータは、MNO私有鍵とMNO公開鍵とからなるMNO鍵ペアを生成し、IMSIを生成し、シードからKiを計算することができる。MNO公開鍵は、移動体オペレータに割り当てられた鍵であってよい。移動体オペレータは、サーバにMNO公開鍵、IMSI及びターゲット識別子を送信することができる。
【0016】
有利には、移動体オペレータは、第三者にシードをチェックするよう要求することによって耐タンパエレメントが本物であることを検証することができる。
【0017】
有利には、ユーザ装置はベースバンドを組み込むことができる。ベースバンドは、サーバからIMSIと移動体オペレータに割り当てられた鍵とを取得するために、耐タンパエレメントを使用することなく上記セットのコマンドを送信することができる。ベースバンドは、上記IMSIと上記鍵の両方を耐タンパエレメントに転送することができる。耐タンパエレメントは、3GPP鍵導出メカニズムに従って導出される接続クレデンシャルを計算することができる。
【0018】
本発明の別の目的は、プロセッサを備え、1セットのコマンド/応答ペアによってサーバと通信可能なユーザ装置である。ユーザ装置は、プロセッサにより実行され、ETSI TS 124.008により定義される接続要求フレームを生成及び送信して、上記ペアの1つの接続要求フレームのIMSIフィールドに含まれているコマンドをサーバに伝送するように適合された通信エージェントを備える。通信エージェントは、プロセッサにより実行され、接続要求フレームに応答して、ETSI TS 124.008により定義される認証要求フレームの認証パラメータRANDフィールド又は認証パラメータAUTNフィールドで伝送された上記コマンドに対応する応答を受信するように適合される。
【0019】
有利には、ユーザ装置は、次の順序付けられた一連のコマンド、すなわちセッション識別子の要求、ターゲット識別子の送信、IMSIの要求、移動体オペレータに割り当てられた鍵の要求、及びセッション終了をサーバに送信するように構成されてよい。
【0020】
有利には、UHがターゲット識別子(14)の64最上位ビットを示し、PHL
nがサーバ(30)に格納されている範囲の下限の64最上位ビットを示し、PHH
nが範囲の上限の64最上位ビットを示し、ユーザ装置は、プロセッサと、プロセッサにより実行され、((UH−PHL
n)*100000)/(PHH
n−PHL
n)に等しいプローブ値(H)を生成するように適合されたソフトウェアプローブエージェントとを備えた耐タンパエレメントを組み込むことができる。
【0021】
本発明の別の目的は、プロセッサを備え、1セットのコマンド/応答ペアによってユーザ装置と通信可能なサーバである。サーバは、プロセッサにより実行され、ETSI TS 124.008により定義される接続要求フレームを受信して、上記ペアの1つの接続要求フレームのIMSIフィールドに含まれているコマンドをユーザ装置から伝送するように適合されたプロビジョニングエージェントを備える。プロビジョニングエージェントは、プロセッサにより実行され、接続要求フレームに応答して、ETSI TS 124.008により定義される認証要求フレームの認証パラメータRANDフィールド又は認証パラメータAUTNフィールドで伝送された上記コマンドに対応する応答を生成及び送信するように適合される。
【0022】
有利には、ユーザ装置は、上記ユーザ装置に一意に割り当てられたターゲット識別子を格納するように意図されてよい。サーバはある範囲のトランザクション識別子を格納することができる。コマンドはターゲット識別子から生成されたパラメータを含むことができ、サーバは上記パラメータを使用することによって範囲内のターゲット識別子を探し出すように構成されてよい。
【0023】
有利には、UHがターゲット識別子の64最上位ビットを示し、PHL
nが範囲の下限の64最上位ビットを示し、PHH
nが範囲の上限の64最上位ビットを示し、Hがパラメータに含まれるプローブ値を示し、サーバはユーザ装置にPHH
nとPHL
nの両方を送信するように構成されてよく、Hは((UH−PHL
n)*100000)/(PHH
n−PHL
n)に等しい。サーバは、PHL
n+(H*(PHH
n−PHL
n)/100000)に等しい更新されたPHL
n+1を生成し、PHL
n+((H+1)*(PHH
n−PHL
n)/100000)に等しい更新されたPHH
n+1を生成するように構成されてよい。
【発明を実施するための形態】
【0026】
本発明は、完全なテレコムクレデンシャルがプロビジョニングされることが意図されたいずれのタイプのユーザ装置にも適用可能である。
【0027】
このようなユーザ装置は、例えばスマートフォン、タブレット、パーソナルコンピュータ、スマートウォッチ、車両、計器、スロットマシン、TV又はコンピュータであってよい。
【0028】
本発明は、通常はテレコムデバイスに実装される通信プロトコルを全く新しい方法で使用することによって利用する。ユーザ装置及びサーバは、ユーザ装置により送信されるコマンドとサーバにより返送される応答とからなるコマンド/応答ペアのメカニズムによって通信する。
【0029】
ユーザ装置は、ETSI TS 124.008(例えば2009年7月付けのバージョン8.6.0)により定義される接続要求フレームを使用して、このフレームのIMSIフィールドを通じて1つのコマンドを伝送する。
【0030】
サーバは、ETSI TS 124.008(例えば2009年7月付けのバージョン8.6.0)により定義される認証要求フレームを使用して、このフレームの認証パラメータRANDフィールド又は認証パラメータAUTNフィールドの一方(又は両方)を通じて、受信したコマンドに対応する応答を伝送する。
【0031】
サーバはTS 124.008により指定される接続要求に対する従来の応答を送信しないことに留意されたい。
【0032】
好ましくは、ユーザ装置は、接続要求フレームのIMSIフィールドのMSIN(移動体加入者識別番号)部分を使用してデータをサーバに向けて伝送する。例えばMSIN部分は3つの領域に分割することができる:
−セッション識別子をコード化するために確保された3桁(割り当てスロットとも呼ばれる)
−ペイロードに確保された5桁
−コマンド識別子のために確保された1桁。
【0033】
好ましくは、ユーザ装置及びサーバは、新しいコマンドセットについて次の約束事を使用するように構成される。
−新しいセッション識別子の要求のための「0」
−ユーザ装置に割り当てられた一意の識別子の送信のための「1」
−IMSIの要求のための「2」
−加入者/移動体オペレータに割り当てられた鍵の要求のための「3」
−コマンドをいくつかの後続フレームに分割する必要がある場合のシーケンス番号「4」〜「8」
−セッションを閉じる(すなわちセッションを終了させる)ための「9」。
【0034】
有利には、シーケンス番号はループ式に管理することができる。すなわち「8」に達したら「4」から続く(すなわち「4」からの再番号割当が行われる循環連続/モジュロ)。したがって、後続フレームの数に制限はない。
【0035】
図1は、本発明のある実施例による通信管理のフロー図を示している。
【0036】
ユーザ装置20には一時的なクレデンシャルとターゲット識別子14とも呼ばれる一意の識別子UUID
UEとがプロビジョニングされていると仮定する。この実施例では、サーバ30はホームロケーションレジスタ(HLR又はD−HLR)である。
【0037】
ステップS01において、ユーザ装置20は、セッション識別子を要求する第1のコマンドを送信することによってサーバ30とのやりとりを開始する。任意選択的に、送信したペイロードは、サーバ30がユーザ装置20にプロビジョニングされるテレコムクレデンシャルがどの移動体ネットワークオペレータのものであるかを特定できるようにするMNOコードを含むことができる。例えばMNOコードは、移動体ネットワークオペレータの名前のハッシュ(5桁の長さを有する)として計算することができる。
【0038】
ステップS02において、サーバ30は、ステップS01で受信したコマンドに応答してセッション識別子を選択し、これを認証要求フレームによってユーザ装置に送信する。好ましくは、セッション識別子は認証パラメータRANDフィールドで伝送される。
【0039】
ステップS03において、ユーザ装置20は、ユーザ装置に割り当てられた一意の識別子(UUID
UE)の送信を開始する。UUID
UEの長さが利用可能なペイロードのサイズより大きいと仮定すると、いくつかの接続要求フレームが必要である。別の接続要求フレームは、サーバが一連の接続要求フレームをまとめて考えることを可能にするシーケンス番号である「4」〜「8」に等しいコマンド識別子と共に送信することができる。
【0040】
サーバ30は、ある範囲のトランザクション識別子が予めプロビジョニングされていると仮定される。この範囲は、既にいくつかのトランザクション識別子がユーザ装置に割り当てられている場合に穴を含む可能性がある。
【0041】
好ましい実施形態では、UUID
UEは16バイト長である。必要な接続要求フレームの数を減らすために、次のアルゴリズムを用いて改良を実行することができる。
【0042】
次のように仮定する。
−Nは、UUID
UE(すなわちターゲット識別子14)と一致する可能性がある、サーバ30において利用可能なトランザクション識別子の数である。換言すれば、Nはサーバに格納されている範囲の自由なトランザクション識別子の数である。
−PHL
nは利用可能な範囲の下限の64最上位ビットを示す。
−PHH
nは利用可能な範囲の上限の64最上位ビットを示す。
−UHはUUID
UE(ターゲット識別子14)の64最上位ビットを示す。
−PLL
nは利用可能な範囲の下限の64最下位ビットを示す。
−PLH
nは利用可能な範囲の上限の64最下位ビットを示す。
−ULはUUID
UE(ターゲット識別子14)の64最下位ビットを示す。
−Hはユーザ装置によりサーバに送信されるプローブ値を示す。
【0043】
ユーザ装置20は、サーバ30からPHH
nとPHL
nの両方を受信する。この送信は、ステップS03のコマンドに応答してステップS04において行うことができる。
【0044】
ステップS05において、ユーザ装置はHを((UH−PHL
n)*100000)/(PHH
n−PHL
n)に等しいものとして計算し、Hをサーバに送信する。
【0045】
ステップS06において、サーバ30は、PHL
n+(H*(PHH
n−PHL
n)/100000)に等しい更新されたPHL
n+1及びPHL
n+((H+1)*(PHH
n−PHL
n)/100000)に等しい更新されたPHH
n+1を生成する。サーバ30は、更新されたPHL
n+1と更新されたPHH
n+1の両方をユーザ装置に送信する。
【0046】
ステップS07において、ユーザ装置はHを上記のように計算し、これをサーバに送信する。
【0047】
この実施例では、サーバはUUID
UEの64最上位ビットの特定に成功している。したがって、ステップS08において、サーバはこれに応答してPLH
nとPLL
nの両方を送信する。
【0048】
同じアルゴリズムが、ステップS09〜S10において最下位ビットについて再度実行される。この実施例では、サーバはステップS10においてUUID
UEの64最下位ビットの特定に成功しており、ユーザ装置にUUID
UEの送信の終了を通知するための応答を送信する。
【0049】
次にステップS11において、ユーザ装置はIMSIを要求するコマンドを送信する。これに応答してサーバは、ステップS12において認証要求フレームによってIMSIを送信する。
【0050】
ステップS13においてユーザ装置は、加入者/移動体オペレータに割り当てられた鍵を要求するコマンドを送信する。好ましくは、この鍵はユーザ装置により使用されて最終Kiを生成するための一時的な鍵である。一時的な鍵の通常のサイズに起因して、
図1の実施例では2つの鍵全体(PK1及びPK2部分)を転送するのに2つのやりとりが必要である(ステップS13〜16)。
【0051】
このときユーザ装置は、受信した一時的な鍵とユーザ装置に予め設定されているシードの両方を使用することによってKiを生成することができる。好ましくは、ユーザ装置はシードを格納した耐タンパエレメントを組み込み、Kiの生成を実行する。
【0052】
ステップS17において、ユーザ装置はセッションを終了させるためのコマンドを送信する。このときセッション識別子をサーバによって解放し別のユーザ装置に再割り当てすることができる。ステップS18において、ユーザ装置にセッションの終了を知らせるための応答がサーバによって返送される。サーバは割り当てられたスロットを回復し、これを別のデバイスに再割り当てすることができる。
【0053】
セッション識別子によって、サーバは複数の受信メッセージの中から関連するユーザ装置を特定できることに留意されたい。
【0054】
換言すれば、サーバがUUID
UEの値を知る前に必要な接続要求フレームの数を最小限に抑えるために次のアルゴリズムを用いることができる。
【0055】
このアルゴリズムは、2ではなく100000規模の二分法の原理を用いる。
【0056】
サーバは、その範囲の動的な下限及び動的な上限を維持することになる。サーバは、ユーザ装置により送信されたプローブ値(すなわちH)によって検索値の範囲を次第に制限することになる。したがって、動的な下限及び動的な上限は、求められるものに対応する1つの値に収束することになる。改良された二分法の原理は2回、すなわち1回は最上位ビットについて、そしてもう1回は最下位ビットについて実行される。
【0057】
//64MSB(最上位ビット)部分
X=0〜5について、
ユーザ装置は
H=((UH−PHL
n)*100000)/(PHH
n−PHL
n)を計算し、Hをサーバに送信する。
サーバにおいて、IF (PHH
n−PHL
n)=0 THEN QUIT LOOP
END IF
【0058】
サーバは、PHL
n+(H*(PHH
n−PHL
n)/100000)に等しい更新されたPHL
n+1及びPHL
n+((H+1)*(PHH
n−PHL
n)/100000)に等しい更新されたPHH
n+1を生成し、更新されたPHL
n+1と更新されたPHH
n+1の両方をユーザ装置に送信する。
【0059】
NEXT X
IF X<6
//64LSB(最下位ビット)部分
X=0〜5について、
ユーザ装置は
H=((UH−PLL
n)*100000)/(PLH
n−PLL
n)を計算し、Hをサーバに送信する。
サーバにおいて、IF (PLH
n−PLL
n)=0 THEN QUIT LOOP
END IF
【0060】
サーバは、PLL
n+(H*(PLH
n−PLL
n)/100000)に等しい更新されたPLL
n+1及びPLL
n+((H+1)*(PLH
n−PLL
n)/100000)に等しい更新されたPLH
n+1を生成し、更新されたPLL
n+1と更新されたPLH
n+1の両方をユーザ装置に送信する。
【0061】
NEXT X
END IF
IF X<6
//UUID
UEの転送が成功した
END IF
【0062】
5つのステップの後にループが収束しない場合、UUID
UEはサーバの範囲に属さないことに留意されたい。
【0063】
最大ループ(やりとり)数は、2×Log(N)/Log(100000)である。例えばサーバの範囲にある利用可能なトランザクション識別子についてN=1,000,000である場合、やりとりの数は4以下である。
【0064】
サーバの範囲内に対象UUID
UEに一致する(すなわち値が等しい)トランザクション識別子がない場合、サーバは、移動体オペレータに関連する事前交渉によるサブスクリプションのプール内に一時的なIMSIを窺うことができる(ステップS01で送信されたコマンドのMNOコードを使用して移動体オペレータを特定することができる)。この場合、サーバは動的割り当てを実行し、一時的なIMSIがユーザ装置に割り当てられたことを移動体オペレータに通知する。
【0065】
ステップS02を参照すると、サーバは、有利にはユーザ装置がステップS03においてUUID
UE送信のための第1の接続要求フレームを送信する前にプローブ値Hを計算できるように、認証要求のRAND及びAUTNフィールドでPHH
n及びPHL
nを送信することができる。RAND及びAUTNを使用することにより、演算が64ビットではなく128ビット境界を使用することによって実行された後、ステップS07及びS08は削除することができる。
【0066】
ステップS01の前に、サーバ30に入力するためにいくつかの事前ステップを実行することができる。
【0067】
例えばシードは、ユーザ装置20からOEM(相手先商標製品製造会社)によって取得し、移動体オペレータに送信することができる。次に移動体オペレータは、MNO私有鍵とMNO公開鍵とからなるMNO非対称鍵ペアを生成することができる。移動体オペレータはIMSIを生成し、シードからKiを計算することができる。次に移動体オペレータはサーバ30にトリプレット、すなわちMNO公開鍵+IMSI+トランザクション識別子を送信する。サーバ30はこのトリプレットをサーバが格納しているトランザクション識別子の範囲に追加することができる。このようにしてサーバには、多くのユーザ装置(又は多くの耐タンパエレメント)に対応する多くのトリプレットを入力することができる。
【0068】
図4は、本発明のある実施形態によるユーザ装置の耐タンパエレメント(TRE)にテレコムクレデンシャルをプロビジョニングするための通信管理のフロー図を示している。
【0069】
次の表記が以下で使用される。
CERT.X.ECDSA: XのECDSA静的証明書
SK.X.ECDSA: 署名のためのXのECDSA私有鍵
PK.X.ECDSA: 署名のためのXのECDSA公開鍵
SK.X.ECDHE: XのECDHE私有鍵(一時的)
ATK.X.ECDHE: ECDHE認証トークン(鍵共有のためのXの動的証明書)
CERT.X.ECKA: 鍵共有のためのXのECKA静的証明書
SK.X.ECKA: 鍵共有のためのXのECKA私有鍵
PK.X.ECKA: 鍵共有のためのXのECKA公開鍵
PK.X.ECDHE: XのECDHE公開鍵(一時的)
VERIFY(Y)[X]: 鍵YでXを検証する
SIGN(Y)[X,...]: 鍵YでXに署名する
DERIVE(X)[Y]: 私有鍵X及び証明書/認証トークンYから共有セッション鍵を計算する
{SK,PK}=ECDHE(): 一時的なECDH鍵ペアを生成する。
{M,I}=ENCRYPT(Y)[X]: 鍵YでXを暗号化する。暗号文M及び完全性チェックIを得る。
X=DECRYPT(Y,I)[M]: 鍵YでMを復号化し、Iを用いることによって完全性をチェックする。平文Xを得る。
【0070】
次の文献が使用される。
[a]AES128: 高度暗号化標準(AES)の仕様書−FIPS PUB 197
[b]BSI技術ガイドラインTR−03111: 楕円曲線暗号化−バージョン2.0
[c]SHA−256: セキュアハッシュ標準の仕様書−FIPS PUB 180−3、2008
【0071】
次の演算が実行可能である。
署名
CERT.X.ECDSA=SIGN(SK.Y.ECDSA)[PK.X.ECDSA,X0,X1,X2,X3...]
ATK.X.ECDHE=SIGN(SK.W.ECDSA)[PK.X.ECDHE,X0,X1,X2,X3...]
ここでX0,X1,X2,X3,...は署名するための任意の値である。
【0072】
検証
VERIFY(CERT.Y.ECDSA)[CERT.X.ECDSA]は、CERT.Y.ECDSAにPK.Y.ECDSAを使用することによってブール(成功の場合はTRUE)を返す。
【0073】
導出
KS
XYN=DERIV(SK.X.A)[B.Y.C] ここでKS
XYNは共有秘密鍵である。
KS
YXN=DERIV(SK.Y.C)[B.X.A] ここでKS
YXNは共有秘密鍵である。
ここで、
AはECKA又はECDHEであり
BはCERT又はATKであり
CはECKA又はECDHEである。
KS
XYN=KS
YXN
KS
XYN又はKS
YXNは、N個の鍵の行列、すなわちKS
XY[1],KS
XY[2],...,KS
XY[N]である。
【0074】
鍵導出関数
関数DERIVE(X)[Y]は、[b]の証明書又は認証トークン内で私有鍵X及び公開鍵YからN個の共有秘密鍵KS
Nの行列を計算することを可能にする。手順は、[b]で定義される共有秘密ECKA−EG又はECKA−DH及び鍵導出関数の計算から始まる:
KDF−128は、[c]のSHA−256を使用し、行列の要素として1セットのN×128ビット導出鍵K[1]〜K[N]を生成することによるX9.63鍵導出関数である。
Ki
N=KDF−128(ShS,I,SI)
ここで
・ShS: [b]に定義される鍵共有アルゴリズムECKA−EG(静的鍵及び一時的鍵を使用する)又はECKA−DH(2つの一時的鍵を使用する)からの共有秘密256ビット
・I: 1〜Nのカウンタ32ビット値
・SI: SI=N||KEY_TYPE||128である共有情報
〇 KEY_TYPE: KS1について‘10’
〇 KEY_TYPE: KS2について‘20’
KDF関数は[8]のSHA256である。
【0075】
暗号化/復号化関数
データの暗号化及び復号化は、eGCM−128アルゴリズムに基づく対称関数である。
M
DST,H
CHECK=eGCM−AES128(K,IV,EIV)[M
SRC]
ここで
・K: 128ビット暗号化/復号化及び完全性鍵
・IV: 128ビット初期値完全性チェック
・M
SRC: 暗号化/復号化するメッセージストリーム。メッセージの長さは「FF」でパディングされた128ビットブロックの倍数とする。
・EIV: 128ビット初期値暗号化鍵
・M
DST: 暗号化/復号化されたメッセージストリーム。暗号化されたメッセージの長さはM
SRCメッセージと同じである。
・H
SRC: 平文(ソース)の128ビット完全性チェック結果
全ての鍵及び初期値は次のような鍵導出関数から導出される:
・K=KDF−128のK[1]
・IV=KDF−128のK[2]
・EIV=KDF−128のK[3]
その結果、
M
DST,H
SRC=eGCM−128(K,IV,EIV)[M
SRC]
をターゲットにする
M
DST,H
SRC=ENCRYPT(KS
3)[M
SRC]
の一般表記は、
M
DST,H
SRC=eGCM−128(KS[1],KS[2],KS[3])[M
SRC]
である。
【0076】
他の暗号化及び完全性チェックアルゴリズムも効率的に使用することができる。
【0077】
我々は暗号化方法を有するeGCM−128を提案しているが、FIPS−PUB−81のCBC−AES−128及びFIPS PUB 198−1のHMAC−SHA256がプロトコルの受け入れを容易にするためにこれに取って代わることができる。
MDST=CBC−AES−128(KE,IV)[MSRC]
HSRC=HMAC−SHA256(KH)[MSRC]
ここで、
KE:128ビット暗号化/復号化及び完全性鍵:KDF−128のK[1]
IV:128ビット初期値完全性チェック:KDF−128のK[2]
MSRC:暗号化/復号化するメッセージストリーム。メッセージの長さは「FF」でパディングされた128ビットブロックの倍数とする。
KH:128ビット初期鍵:KDF−128のK[3]
MDST:暗号化/復号化されたメッセージストリーム。暗号化されたメッセージの長さはMSRCメッセージと同じである。
HSRC:平文(ソース)の128ビット完全性チェック結果
【0078】
長期鍵
ユーザ装置は、秘密を受け入れ、暗号計算を安全に実行することができる耐タンパエレメント(TRE)を組み込むと仮定される。
TREのための長期鍵は次のものである:
・CERT.PN.ECDSA:=SIGN(SK.CI.ECDSA)[PK.PN.ECDSA]。CIにより署名されたTREの部品番号証明書
・CERT.TRE.ECDSA:=SIGN(SK.PN.ECDSA)[PK.TRE.ECDSA]。PN私有鍵SK.PN.ECDSAにより署名されたTREの証明書
・SK.TRE.ECDSA:=TREの静的私有鍵
・CERT.CI.ECDSA:=発行者ルート証明書
IDSのための長期鍵は次のものである:
・CERT.IDS.ECKA:=SIGN(SK.CI.ECDSA)[PK.IDS.ECKA]
・SK.IDS.ECKA:=HSM1にホストされた鍵共有のためのIDSの静的私有鍵
・CERT.CI.ECDSA:=発行者ルート証明書
【0079】
TREクレデンシャル生成
VERIFY(CERT.CI.ECDSA)[CERT.IDS.ECKA]
KS1
3=DERIVE(SK.TRE.ECDHE)[CERT.IDS.ECKA]
M1,H1=ENCRYPT(KS1
3)[CERT.TRE.ECDSA]
{SK.TRE.ECDHE,PK.TRE.ECDHE}=ECDHE()
ATK.TRE.ECDHE=SIGN(SK.TRE.ECDSA)[PK.TRE.ECDHE,ISSN,UUID
UE]
CERT.PN.ECDSA,ATK.TRE.ECDHE,M1,H1はTREクレデンシャルであり、ISSNはブールである。
【0080】
TREクレデンシャル検証
KS1
3=DERIVE(SK.IDS.ECKA)[ATK.PBL.ECDHE]
CERT.PBL.ECDSA=DECRYPT(KS1
3)[M1]
VERIFY(CERT.CI.ECDSA)[CERT.PN.ECDSA]
VERIFY(CERT.PN.ECDSA)[CERT.TRE.ECDSA]
VERIFY(CERT.TRE.ECDSA)[ATK.TRE.ECDHE]
【0081】
MNOによるKi計算
{SK.MNO.ECDHE,PK.MNO.ECDHE}=ECDHE()
Ki=DERIVE(SK.MNO.ECDHE)[ATK.TRE.ECDHE]
【0082】
TREによるKi計算
Ki=DERIVE(SK.TRE.ECDHE)[PK.MNO.ECDHE]
【0083】
図4の段階Gにおいて、サービスプロバイダ又はユーザ装置OEMメーカー(SP/OEM)はUUID
UEを生成する、又はユーザ装置からUUID
UEを取得する。
【0084】
有利には、UUID
UEはいくつかの数学的性質を与える具体的な式に従ってユーザ装置によって生成することができる。例えば次の式を使用することができる:
UUID
UE=AES128[K
TRESI](Rand|CATV|SN)
ここで
Rand:62ビットランダム値である
CATV:SNの解読の成否をチェックするための16ビット秘密定数パターンである
SN:耐タンパエレメントのシリアル番号
K
TRESI:耐タンパエレメントによって管理される秘密鍵
【0085】
有利には、SP/OEMは証明機関/発行者(CI)の証明書をCERT.IDS.ECKAとして取得し、CERT.IDS.ECKAとUUID
UEの両方を耐タンパエレメントに注入することができる。SP/OEMはユーザ装置からTREクレデンシャルを取得することができる。好ましくは、SP/OEMは移動体オペレータ(MNO)との商業協定によりクレデンシャルを転送する。
【0086】
図4の段階Vにおいて、移動体オペレータは検証のためにTREクレデンシャルをIDSに転送することができる。IDSはATK.TRE.ECDHEに連署し、これをMNOに返送する。MNOはTREが本物であるという証拠を入手し、
− PK.TRE.ECDHE
− UUID
UE
− ISSN=TRUE if SN’=SN及びRand’|CATV|SN’=AES128
−1[K
TRESI](UUID
UE)
ISSNをチェックすることによって、MNOは、不正行為者がデータ交換を監視することによりUUID
UEを取得する可能性がある「レーシング攻撃」を防ぐために、UUID
UEがTREと関連していることを評価し、これを別のUEの別のTREで使用する。
【0087】
MNOは鍵ペアを
{SK.MNO.ECDHE,PK.MNO.ECDHE}=ECDHE()
として生成する。
MNOはIMSIを生成し、Kiを計算する。
Ki=DERIVE(SK.MNO.ECDHE)[ATK.TRE.ECDHE]
MNOはD−HLRに
− PK.MNO.ECDHE
− IMSI
− UUID
UE
を転送する。
【0088】
MNOはIMSI及びKiをそのHLR/HSS(ホームロケーションレジスタ/ホーム加入者サーバとしても知られている)に転送する。
【0089】
図4の段階Aにおいて、TREは、例えば
図1に記載したようにそのUUID
UEをサーバ(D−HLR)に伝達する。次にTREはIMSI及びPK.MNO.ECDHEを入手する。TREはKiを計算し、MNOのHLR/HSSに対して通常の3GPP認証を実行する。
【0090】
移動体オペレータは、耐タンパエレメントのシードをチェックすることによって耐タンパエレメントの真偽を検証できることに留意されたい。例えばシードは、耐タンパエレメントに予め割り当てられた非対称ペアに属する公開鍵であってよい。また、TREの認証は、UEが本物のTREにしか復号化できないMNOクレデンシャルを使用することによって3GPPネットワークに接続できる場合、間接的に行うことができる。
【0091】
図2は、本発明のある実施例によるユーザ装置20のアーキテクチャを模式的に示している。
【0092】
ユーザ装置20はプロセッサ70と不揮発性メモリ72とを備える。ユーザ装置20はコマンド/応答ペアによって遠隔サーバと通信するように構成される。
【0093】
ユーザ装置20は、プロセッサ70により実行され、ETSI TS 124.008により定義される接続要求フレームを生成及び送信して1つのコマンドをサーバに伝送するように適合されたソフトウェア通信エージェント71を備える。ソフトウェア通信エージェント71は、接続要求フレームのIMSIフィールドにコマンドを含むように適合される。ソフトウェア通信エージェント71はまた、プロセッサ70により実行され、接続要求フレームに応答して、ETSI TS 124.008により定義される認証要求フレームの認証パラメータRANDフィールド又は認証パラメータAUTNフィールドで伝送された上記コマンドに対応する応答を受信するように適合される。
【0094】
図2の実施例では、ユーザ装置は、独自のプロセッサ17と、揮発性メモリ18と、不揮発性メモリ16とを備えた耐タンパエレメント10を組み込む。不揮発性メモリ16は、長期鍵Kiを計算するのに必要なUUID
UE14とシード24とを格納している。不揮発性メモリ16は、プロセッサ17により実行され、MSBについて((UH−PHL
n)*100000)/(PHH
n−PHL
n)及びLSBについて((UH−PLL
n)*100000)/(PLH
n−PLL
n)に等しいプローブ値Hを生成するように適合されたソフトウェアプローブエージェント34を備える。
【0095】
また、UEは、ベースバンドからTREを使用することなくUUID
UEの送信及びMNOクレデンシャル(IMSI及びPK.MNO.ECDHE)の取得を実行することができる。その結果、UEベースバンドはIMSI及びPK.MNO.ECDHEをD−HLRから取得した後、これを3GPP鍵導出に従って導出された接続クレデンシャルを計算するTREに転送することができる。
【0096】
図3は、本発明のある実施例によるサーバ30のアーキテクチャを模式的に示している。
【0097】
サーバ30は、プロセッサ80と、不揮発性メモリ82と、格納領域DBとを備える。不揮発性メモリ82は、プロセッサ80により実行され、ETSI TS 124.008により定義される接続要求フレームを受信して1つのコマンドをユーザ装置20から伝送し、受信した接続要求フレームのIMSIフィールドからコマンドを抽出するように構成されたソフトウェアプロビジョニングエージェント81を格納する。プロビジョニングエージェント81は、プロセッサ80により実行され、接続要求フレームに応答して、ETSI TS 124.008により定義される認証要求フレームの認証パラメータRANDフィールド又は認証パラメータAUTNフィールドで伝送された受信したコマンドに対応する応答を生成及び送信するように適合される。
【0098】
格納領域DBは、トランザクション識別子24と、IMSI26と、鍵28とを含むある範囲のトリプレットを含む。不揮発性メモリ82は、プロセッサ80により実行され、その範囲のトランザクション識別子と一致するターゲット識別子14を探し出すように構成されたソフトウェア選択エージェント83を格納する。好ましくは、格納領域DBはデータベースとして実装することができる。
【0099】
不揮発性メモリ82は、プロセッサ80により実行され、(
図1で定義されたように)PHH
nとPHL
nの両方をユーザ装置20に送信し、PHL
n+(H*(PHH
n−PHL
n)/100000)に等しい更新されたPHL
n+1を生成し、PHL
n+((H+1)*(PHH
n−PHL
n)/100000)に等しい更新されたPHH
n+1を生成するように構成されたソフトウェア選択エージェント84を格納する。
【0100】
本発明は、一群のユーザ装置のプロビジョニングを管理するのによく適している。
【0101】
本発明は、ユーザ装置(又はTRE)にテレコムクレデンシャル(IMSI/Ki)をプロビジョニングするのによく適している。本発明は特に、参照により本明細書に含まれる出願WO2016/165900 A1に記載される一次ブートローダを備えたシステムに適用される。
【0102】
本発明は上記の実施形態又は実施例に限定されない。特に、例えばコマンド識別子は異なる値を有する可能性がある。
【0103】
本発明の利点は、3GPPネットワークを使用することにより、同じ3GPPネットワークとのレガシー接続を実行するために、必須のクレデンシャルの安全なプロビジョニングを可能にすることである。本発明は、3GPPクレデンシャルをプロビジョニングするためのデータチャネルにアクセスするために3GPPクレデンシャルを必要とし、上記データチャネルをブートストラップするための初期の3GPPクレデンシャルがない場合の無限ループから抜け出すことを可能にする。
【0104】
本発明の利点は、デバイスの製造時に、さらにデバイスの現場への分布後も知られていないローカル3GPP対応オペレータの選択を可能にすることである。