(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-08-13
(45)【発行日】2024-08-21
(54)【発明の名称】リモートサーバから端末にメッセージを送信する方法
(51)【国際特許分類】
H04L 9/32 20060101AFI20240814BHJP
H04W 12/72 20210101ALI20240814BHJP
H04W 12/03 20210101ALI20240814BHJP
H04W 12/106 20210101ALI20240814BHJP
【FI】
H04L9/32 200A
H04L9/32 200F
H04W12/72
H04W12/03
H04W12/106
(21)【出願番号】P 2023517662
(86)(22)【出願日】2021-08-31
(86)【国際出願番号】 EP2021073966
(87)【国際公開番号】W WO2022058156
(87)【国際公開日】2022-03-24
【審査請求日】2023-04-18
(32)【優先日】2020-09-17
(33)【優先権主張国・地域又は機関】EP
(73)【特許権者】
【識別番号】522230381
【氏名又は名称】タレス ディアイエス フランス エスアーエス
(74)【代理人】
【識別番号】100086368
【氏名又は名称】萩原 誠
(72)【発明者】
【氏名】リ タン ファン
(72)【発明者】
【氏名】ジャン-フランソワ グロス
(72)【発明者】
【氏名】ヴァンサン ダニー
【審査官】平井 誠
(56)【参考文献】
【文献】国際公開第2007/032499(WO,A1)
【文献】特表2014-504389(JP,A)
【文献】特表2019-527518(JP,A)
【文献】特開2020-014120(JP,A)
【文献】国際公開第2020/079287(WO,A1)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/00-40
G09C 1/00
H04W 12/00-80
(57)【特許請求の範囲】
【請求項1】
秘密鍵(K1)を共有するリモートサーバ(11)から端末(10)にメッセージ(MSG)を送信する方法であって、
i-前記端末(10)から前記リモートサーバ(11)に第1のアイデンティティ(UID1)を送信すること、
ii-前記リモートサーバ(11)において前記第1のアイデンティティ(UID1)を取得し、前記第1のアイデンティティ(UID1)に基づいた前記秘密鍵(K1)を取得すること、
iii-前記リモートサーバ(11)において、乱数(UID_RAND)を選択し、前記第1のアイデンティティ(UID1)、前記乱数(UID_RAND)及び前記秘密鍵(K1)によって第2のアイデンティティ(UID2)を生成すること、
iv-前記リモートサーバ(11)において、前記第1のアイデンティティ(UID1)、前記メッセージ(MSG)、カウンタ値(Sent)、前記乱数(UID_RAND)及び前記秘密鍵(K1)から署名(SIG)を生成すること、
v-前記リモートサーバ(11)において、前記端末(10)に対する第1のレスポンス(Resp1)であって、前記メッセージ(MSG)、カウンタ値(Sent)、前記署名(SIG)及び前記乱数(UID_RAND)の連結である第1のレスポンス(Resp1)を生成し、前記第1のレスポンス(Resp1)を前記秘密鍵(K1)で暗号化し、暗号化した前記第1のレスポンス(Resp1
*)を前記端末(10)に送信すること、
vi-前記端末(10)において、前記第1のレスポンス(Resp1)を得るために前記暗号化した第1のレスポンス(Resp1
*)を前記秘密鍵(K1)で解読し、前記メッセージ(MSG)、前記カウンタ値(Sent)、前記署名(SIG)及び前記乱数(UID_RAND)を取得し、前記第1のレスポンス(Resp1)の予想される署名(XSIG)を導出し、前記署名(SIG)が前記予想される署名(XSIG)と等しいかどうかを検証し、前記カウンタ値(Sent)が正しいかどうかを検証し、前記カウンタ値(Sent)が正しい場合に、前記第1のアイデンティティ(UID1)、前記秘密鍵(K1)及び前記乱数(UID_RAND)から前記第2のアイデンティティ(UID2)を導出することを含む方法。
【請求項2】
ステップiiにおいて前記リモートサーバ(11)が前記第1のアイデンティティ(UID1)に基づいた前記秘密鍵(K1)を取得することができない場合、前記リモートサーバ(11)が、DoS攻撃が行われたと判断する、請求項1に記載の方法。
【請求項3】
前記端末(10)に送信された暗号化された前記第1のレスポンス(Resp1
*)が、ステップiを実行した後の所定の時間枠内に前記端末(10)によって受信されない場合、前記端末がカウンタの値(Resend_Counter)を1増加させ、ステップiを再び実行する、請求項1又は2に記載の方法。
【請求項4】
ステップvにおいて送信された
前記第1のレスポンス(Resp1
*
)が前記端末(10)によって受信されず、前記端末(10)が
前記第2の
アイデンティティ(UID2)を前記リモートサーバ(11)に送信しない場合、
前記リモートサーバ(11)が前記カウンタ値(Sent)の値を1増加させ、ステップviを繰り返す、請求項3に記載の方法。
【請求項5】
ステップiにおいて送信された前記
第1のアイデンティティ(UID1)に対して所定の時間枠内
に前記リモートサーバ(11)から回答を受信していない場合、前記端末(10)が
カウンタ
の値(Resend_Counter)を1増加させ、ステップiを
増加させたカウンタ
の値(Resend_Counter)で繰り返す、請求項3に記載の方法。
【請求項6】
前記第1のアイデンティティ(UID1)及び前記第2のアイデンティティ(UID2)は、前記リモートサーバ(11)により前記端末(10)に送信されたルールに基づいて、前記端末(10)によって前記リモートサーバ(11)に定期的に送信される、請求項1乃至5のいずれかに記載の方法。
【請求項7】
前記リモートサーバ
(11)がOTAサーバに組み込まれている、請求項1乃至6のいずれかに記載の方法。
【請求項8】
前記端末(10)と前記リモートサーバ(11)との間の転送プロトコルがUDPである、請求項1に記載の方法。
【請求項9】
ステップvにおける返信メッセージ
(MSG)が、前記端末(10)に前記
リモートサーバ(11)への要求の頻度を低下させるように通知するためのものである、請求項1に記載の方法。
【請求項10】
ステップvにおける返信メッセージ(
MSG)が、前記端末(10)に前記
リモートサーバ(11)への要求の頻度を上昇させるように通知するためのものである、請求項1に記載の方法。
【請求項11】
ステップvにおける返信メッセージが、オンボード鍵生成を要求するためのものである、請求項1に記載の方法。
【請求項12】
ステップvにおける返信メッセージが、前記端末(10)にOTAサーバとのHTTP通信を開くように通知するためのものである、請求項1に記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は3G、4G又は5Gネットワークにおける電気通信に関する。本発明は、より正確には秘密鍵を共有するリモートサーバから端末にメッセージを送信する方法に関する。
【0002】
本発明はIoT製品及び関連サービスに適用される可能性がある。
【背景技術】
【0003】
セルラ電気通信ネットワークにおける端末が、SimカードやUICC(汎用集積回路カード)や埋め込みUICC(eUICC)のようなセキュリティエレメントを備えることが知られている。
【0004】
このセキュリティエレメントは、OTA(無線)サーバがセキュリティエレメントに転送すべきデータを有しているかどうかを知るためにOTAサーバを定期的にポーリングする必要がある。これはセキュリティエレメントにインストールされているカードアプレットによって行われる。
【0005】
カードアプレットによるOTAサーバへの又はIoTアプレットによる既存のポーリングメカニズム及び更新があるかどうかをチェックするリモートサーバは、デバイスがSMSのないネットワークに展開されている(例えばIoT展開の)場合に頻繁に用いられる方法である。
【0006】
かかる方法には多くの欠点及び関連する問題がある。主な問題は、方法の拡張性及びセキュリティ(PKI)に関連する問題である:
-拡張性問題は以下を含む:
〇ポーリングサーバが、ポーリングを実行するリモートデバイスの数及びポーリングイベントの回数/頻度に圧倒され得ること、
〇ポーリングメカニズムのオーバーヘッドは、ポーリングシステムの両側のパフォーマンスに影響を及ぼす:デバイス側でオーバーヘッドが過剰なバッテリ電力を消費する可能性があり、サーバ側でオーバーヘッドが計算能力及び通信帯域幅を消費すること。
-セキュリティ問題は以下を含む:
〇PKIベースのメカニズムが使用され得るが、大抵の場合作用をもたらさないポーリングメカニズムにデバイス側で過剰な電力を消費することになること、
〇デバイスのアイデンティティプライバシーが保護されなければならず、デバイスのトレーサビリティが非公開鍵プロトコルで回避されるべきであること、
〇交換には機密性及び完全性保護が必要であること。
【発明の概要】
【0007】
本発明はこれらの問題に対する解決策を提案する。
【0008】
より正確には、本発明は、秘密鍵を共有するリモートサーバから端末にメッセージを送信する方法であって、
i-端末からリモートサーバに第1のアイデンティティを送信すること、
ii-リモートサーバにおいて第1のアイデンティティを取得し、第1のアイデンティティに基づいた秘密鍵を取得すること、
iii-リモートサーバにおいて、乱数を選択し、第1のアイデンティティ、乱数及び秘密鍵によって第2のアイデンティティを生成すること、
iv-リモートサーバにおいて、第1のアイデンティティ、メッセージ、カウンタ値、乱数及び秘密鍵から署名を生成すること、
v-リモートサーバにおいて、端末に対する第1のレスポンスであって、メッセージ、カウンタ値、署名及び乱数の連結である第1のレスポンスを生成し、第1のレスポンスを秘密鍵で暗号化し、暗号化した第1のレスポンスを端末に送信すること、
vi-端末において、第1のレスポンスを得るために暗号化した第1のレスポンスを秘密鍵で解読し、メッセージ、カウンタ値、署名及び乱数を取得し、第1のレスポンスの予想される署名を導出し、署名が予想される署名と等しいかどうかを検証し、カウンタ値が正しいかどうかを検証し、カウンタ値が正しい場合に、第1のアイデンティティ、秘密鍵及び乱数から第2のアイデンティティを導出することを含む方法を提案する。
【0009】
好ましくは、ステップiiにおいてリモートサーバが第1のアイデンティティに基づいた秘密鍵を取得することができない場合、リモートサーバはDoS攻撃が行われたと判断する。
【0010】
有利には、端末に送信された暗号化した第1のレスポンス(Resp1*)が、ステップiを実行した後の所定の時間枠内に端末によって受信されない場合、端末はカウンタの値(Resend_Counter)を1増加させ、ステップiを再び実行する。
【0011】
好ましくは、ステップvにおいて送信されたメッセージが端末によって受信されず、端末が第2の一意の識別子をリモートサーバに送信しない場合、リモートサーバはカウンタ値の値を1増加させ、ステップviを繰り返す。
【0012】
有利には、ステップiにおいて送信されたメッセージが所定の時間枠内にリモートサーバから回答を受信していない場合、端末はカウンタ値を1増加させ、ステップiを新しいカウンタ値で繰り返す。
【0013】
好ましくは、一意の識別子は、リモートサーバにより端末に送信されたルールに基づいて、端末によってリモートサーバに定期的に送信される。
【0014】
リモートサーバは好ましくはOTAサーバに組み込まれている。
【0015】
有利には、端末とリモートサーバとの間の転送プロトコルはUDPである。
【0016】
一実施形態では、返信メッセージは、端末に要求の頻度を低下させるように通知するためのものである。
【0017】
別の実施形態では、ステップvにおける返信メッセージは、端末に要求の頻度を上昇させるように通知するためのものである。
【0018】
代替的に、ステップvにおける返信メッセージは、オンボード鍵生成を要求するためのものである。
【0019】
別の代替案では、ステップvにおける返信メッセージは、端末にOTAサーバとのHTTP通信を開くように通知するためのものである。
【図面の簡単な説明】
【0020】
本発明は、添付の3つの図面の以下の説明によってより良く理解される。
【0021】
【
図1】(端末とリモートサーバとの間の通信損失がない)最適なケースにおける本発明の一般概念を示す図。
【
図2】GTS11からSecApp10に回答する際にメッセージが失われた場合に行われることを示す図。
【
図3】UID1がGTS11によって受信されない場合に行われることを示す図。
【発明を実施するための形態】
【0022】
図1は、本発明の一般概念(最適なケース)を説明する。
【0023】
2つのエンティティが示されている。すなわち、端末のレベルに、又はより正確に好ましくはこの端末に含まれるセキュリティエレメントのレベルにインストールされたセキュリティアプリケーション(SecApp10)、及びページングサーバとも見なされ得るグローバルトリガリングサーバ(GTS11)。
【0024】
GTS11は、スタンドアロンサーバであるか又はOTAプラットフォームに組み込まれている可能性がある。
【0025】
SecApp10は、端末(例えばIoTデバイス)又はこの端末と協働するセキュリティエレメント(UICC、eUICC)にインストールされており、(最初の電源オンステップ100において、定期的に、又はイベントの発生時に)ステップ101において一意の識別子(UID1)をGTS11に送信することができる。このUID1は、例えばSecAPPがインストールされているセキュリティエレメントのICCIDであるか又はSecApp10のこのデバイスに一意の識別子である。SecApp10は秘密鍵K1を含んでいる。K1は、GTS11に又はOTAサーバに送信されるデータを暗号化するのにセキュリティエレメントにより使用される鍵である可能性もある。
【0026】
端末10とリモートサーバ11との間の転送プロトコルは好ましくはUDPである。
【0027】
UID1を受信すると、(OTAサーバとして機能するか又はOTAサーバに組み込まれている)GTS11は、ステップ102において、このUID1に関連付けられた鍵K1(K1はまた3G及び4G電気通信ネットワークでは一般にKiと呼ばれる)を取得する。次いでGTS11は、UID_Randと呼ばれる乱数を選択するか又は発生させ、UID1、UID_RAND及びK1から一意の識別子UID2を導出する。
【0028】
図において、|はデータの連結に相当する。
【0029】
UID_RANDは、オペレータのシステムに一意のUID2を生成できるように発生及び選択される。
【0030】
次いでGTS11は、端末10に送信されるメッセージMSG、送信されたメッセージの発生を表す数字(Sent=1)(GTS11からSecApp10への最初の回答である場合、通常は#1)、受信済みのUID1及びUID_Randの連結の署名SIGを生成する。この署名SIGは鍵K1によって署名される。
【0031】
攻撃者が平文及び暗号文を知っている場合があるため、レスポンスで暗号化されたUID1を送信することは安全ではない。そこで、後に暗号化されて送信されるResp1でUID1を送信するのではなく、秘密鍵(K1)に基づいたレスポンス、UID1、メッセージMSG、カウンタ及び乱数の署名(SIG)が送信される。
【0032】
次いでGTS11は、このResp1を鍵K1で暗号化し(Resp1*を生成し)、それをSecApp10に返信する(ステップ103)。
【0033】
次いで(ステップ104において)SecApp10は、第1のレスポンス(Resp1)を得るためにレスポンス(Resp1*)を秘密鍵K1で解読する。次いでSecApp10は、MSG|sent=1|UID1|UID_Randの署名であるXSIGをそのローカルに保存された秘密鍵K1を使用して計算することができる。
【0034】
次いでSecApp10は、SIGがXSIGに等しいかどうかを検証することができる。それらが等しい場合、SecApp10は、Resp1からメッセージMSGを取り出す。
【0035】
このメッセージMSGは、(現在、又は所定の時間に)OTAサーバに接続することの要求、何もしないことの要求、又はSecApp10に送信される任意の他の情報である可能性がある。メッセージMSGはまた、「更新はありません」、「OTAで利用可能な更新があります」、「ポーリング頻度を上げて下さい」、「ポーリング頻度を下げて下さい」、「新しい鍵を生成して下さい」など、通信レベル及びアプリケーションレベルのメッセージ及びコマンドである可能性があり、トランスポートアイデンティティの更新情報も含む。
【0036】
一意の識別子は、リモートサーバにより端末に送信されたルールに基づいて、端末によってリモートサーバに定期的に送信される可能性がある。
【0037】
ステップ105において、SecApp10は(SIGがXSIGに一致する場合に)、UID1、K1及び受信したUID_RANDからUID2を導出することができる。UID2は、SecApp10がGTS11に再び接続することを希望する場合の後のステージ(ステップ106)において使用され得るアイデンティティである。
【0038】
図1に示す例では、この後のステージのステップ106において、SecApp10はUID2をGTS11に送信し(ステップ106)、ステップ107において、GTS11は、UID2に基づいたK1を取得し、SecApp10に別のメッセージを送信するためにステップ102に示されたステップを繰り返すことができる。示されたケースでは、GTS11はUID2に基づいた鍵K1を見出さず、このイベントをDoS攻撃(サービス妨害)として扱い、ランダムUID2が例えばGTS11に送信されている。
【0039】
図2は、GTS11からSecApp10に回答する際にGTS11からの回答が失われた場合に行われることを示している。
【0040】
ステップ100~103は、
図1に示された同じステップと同一である。
【0041】
ただし、ステップ103(GTS11がResp1*をSecApp10に送信する)の後、RESP1*はSecApp10によって受信されない(ステップ120:Resp1*が失われる)。
【0042】
SecApp10は、(ステップ101における)UID1の送信の瞬間とGTS11のレスポンスを得る瞬間との間の期間をカウントするタイマーを含む。所定の時間枠内にレスポンスが受信されない場合、SecApp10は、GTS11の回答の期間が長すぎたと判断し、カウンタ(Resend_Counter)を1増加させる。
【0043】
次いでSecApp10は、GTS11への接続を試みるために同じUID1を使用する(ステップ122)。
【0044】
次いでGTS11は、UID1(UID2は既に生成されている)に基づいたK1を取得し、(MSG|Sent=2|UID1|UID_Rand)の署名である署名SIG2をK1を使用して計算する。
【0045】
GTS11はまた、
-メッセージMSG;
-送信されたメッセージの数(ここでは、ステップ102において送信された第1のメッセージがSecApp10によって受信されなかったため2);
-SIG2;
-UID_Rand
の連結を含むメッセージResp2を生成する。
【0046】
次いでGTS11は、このResp2を鍵K1で暗号化し(Resp2*を生成し)、これをSecApp10に返信する(ステップ124)。
【0047】
次いで(ステップ125)SecApp10は、Resp2*を自身の鍵K1で解読してResp2を得る。SecApp10は次いでResp2の有効性のチェックを行う(UID1及びSent=2を検証する)。Sent=2は、QoS(サービス品質)及びセキュリティ目的(DoS攻撃)を推定することを可能にする。
【0048】
次いでSecApp10は、(
図1のステップ105に説明されるように)GTS11への次のアクセスのためのUID2を導出する。
【0049】
したがって、この図では、端末10に送信された暗号化された第1のレスポンス(Resp1*)が、ステップ101を実行した後の所定の時間枠内に端末10によって受信されない場合、端末はカウンタの値(Resend_Counter)を1増加させ、(ステップ122において)ステップ101を再び実行する。
【0050】
図3は、UID1がGTS11によって受信されない場合に行われることを示している。
【0051】
ステップ100及び101は、
図1及び
図2に示されたステップと同一である。
【0052】
ただし、ステップ101(SecApp10がUID1をGTS11に送信した)の後、メッセージは失われ(ステップ130-UID1紛失)、GTS11によって受信されない。
【0053】
次いでSecApp10は、所定時間後にそのカウンタの値を増加させ(ステップ131)、UID1をGTS11に再送信する(ステップ132)。
【0054】
ステップ133は
図1及び
図2のステップ102と同一である。
【0055】
ステップ134において、Resp1*は、メッセージ及びSent=1を取得する(ステップ135)SecApp10に送信される。
【0056】
このカウンタ(Sent=1)は、QoSを評価することを可能にし、システムのセキュリティを高める。
【0057】
次いでSecApp10は、GTS11にアクセスするためのUID2を導出することができる。
【0058】
したがって、この図では、ステップ101において送信されたメッセージが、所定の時間枠内にリモートサーバ11から回答を受信していない場合、端末10はカウンタ値(Resend_Counter)を1増加させ、(ステップ132において)ステップ101を繰り返す。
【0059】
任意選択的に、システムセキュリティは、暗号鍵K1が各新しい要求に対して変更される場合に改善される。かかる実施形態において:
【0060】
GTS11は、
-有効なUID1要求を受信した後、K1、UID1及びUID_Randに基づいた一意のUID2を生成し、
-UID1及びUID_Randに関連付けられたK1から新しい鍵K2を導出し、
-K2をUID2に関連付け、
-UID2識別子を含む要求を受信するときに新しいK2のみを使用する。
【0061】
SecApp10は、
-GTSから有効なレスポンスを受信し、解読したレスポンスからUID_Randの抽出に成功した後、K1、UID1及びUID_Randに基づいた一意のUID2を生成し、
-UID1に関連付けられたK1及び抽出したUID_RandからK2を導出し、
-UID2要求に対するGTSからのレスポンスを解読するためにK2を使用する。
【0062】
本発明の主な利点は、
-セッションベースのプロトコル(http)と比較して通信オーバーヘッドを最小限に抑え、非対称鍵を使用するHTTPSと対照して対称鍵ベースの暗号化を用いるために拡張性があること、
-以下によってデバイスの電力消費を最小限に抑えること、
〇対称鍵暗号化を用いること
〇セッションレスでステートレスなプロトコル(例えばUDP)上の非常に小さいパケット
〇ローカルトリガリングシステムが使用される場合に、拡張性を更に高めることができ、往復時間を短縮するためにデバイス側の電力消費を改善することができる。このようなケースでは、グローバルトリガリングシステムは、端末要求の処理を端末の近くに位置するローカルトリガリングシステムに委任し、例えばエッジコンピューティングアーキテクチャ展開で処理されるようにする。
-デバイスアイデンティティ保護及び通信の機密性を提供することである。