(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2022-07-15
(45)【発行日】2022-07-26
(54)【発明の名称】低電力広域ネットワークのための通信インターフェース、そのような通信インターフェースを使用するワイヤレスデバイスおよびサーバ
(51)【国際特許分類】
H04L 9/08 20060101AFI20220719BHJP
G06F 21/60 20130101ALI20220719BHJP
H04W 12/08 20210101ALI20220719BHJP
【FI】
H04L9/08 A
H04L9/08 E
G06F21/60 360
H04W12/08
(21)【出願番号】P 2019547410
(86)(22)【出願日】2017-03-02
(86)【国際出願番号】 IB2017000924
(87)【国際公開番号】W WO2018158607
(87)【国際公開日】2018-09-07
【審査請求日】2020-02-27
(73)【特許権者】
【識別番号】516302834
【氏名又は名称】アクティリティ
(74)【代理人】
【識別番号】100108453
【氏名又は名称】村山 靖彦
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100133400
【氏名又は名称】阿部 達彦
(72)【発明者】
【氏名】オリヴィエ・エルサン
【審査官】小林 秀和
(56)【参考文献】
【文献】米国特許出願公開第2016/0036826(US,A1)
【文献】特開2005-032130(JP,A)
【文献】特開平11-220463(JP,A)
【文献】特開2014-112392(JP,A)
【文献】特開2003-304287(JP,A)
【文献】特表2012-527824(JP,A)
【文献】特開2015-079440(JP,A)
【文献】STSAFE-A1SX Authentication, data integrity and confidentiality for Sigfox Ready(TM) IoT devices,2017年02月,pp.1-15,https://www.st.com/resource/en/data_bried/stsafe-a1sx.pdf,[2021年3月9日検索], インターネット
【文献】N. Sornin et al.,LoRaWAN Specification,LoRa Alliance, Inc.,2016年07月,pp.1-70,https://lora-alliance.org/wp-content/uploads/2020/11/lorawan1_0_2-20161012_1398_1.pdf,[2021年3月31日検索], インターネット
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/08
G06F 21/60
H04W 12/08
(57)【特許請求の範囲】
【請求項1】
低電力広域ネットワーク(LPWAN)を介したワイヤレスデバイス(101、102、103)とサーバ(121)との間の通信をサポートするための通信インターフェース(200)であって、
暗号プリミティブを使用して、少なくとも1つのセキュアLPWANプロトコルを含むLPWAN通信プロトコルスタック(203)に従って動作するように構成された、信頼できない実行部分(201)と、
コンピュータコード(206)および少なくとも1つの暗号鍵(207、208、209)を暗号化形式で記憶するためのメモリ(205)と、
前記メモリ(205)から前記少なくとも1つの暗号鍵(207、208、209)を解読するためのルートシークレット(210)を組み込んだ、信頼できる実行部分(202)
であって、前記信頼できる実行部分(202)が、前記メモリ(205)から前記解読された暗号鍵およびコンピュータコード(206)を使用して、前記少なくとも1つのセキュアLPWANプロトコルの前記暗号プリミティブを実行するように構成され
る、信頼できる実行部分(202)と、
前記信頼できない実行部分(201)と前記信頼できる実行部分(202)の両方を含むマイクロコントローラチップ(212)と
を備え、前記ルートシークレットは、構成要素関連であ
り、
前記マイクロコントローラチップに固有であり、前記少なくとも1つの暗号鍵とは別個である、
通信インターフェース(200)。
【請求項2】
前記メモリ(205)が、コンピュータコード(206)および暗号化アプリケーション鍵(AppKey)を暗号化形式で記憶するためのリプログラマブルメモリセクション(205a)と、前記暗号化アプリケーション鍵に応じて、前記信頼できる実行部分(202)によって計算された、少なくとも1つの暗号セッション鍵(AppSKey、NwkSKey)を暗号化形式で記憶するためのRAMセクションまたはフラッシュセクション(205b)とを有する
請求項1に記載の通信インターフェース(200)。
【請求項3】
前記リプログラマブルメモリセクション(205a)
は、前記ワイヤレスデバイスによって送信されたコマンドであって、ワイヤレスデバイス(101、102、103)のマルチキャストグループに参加するためのコマンドに応じて、前記信頼できる実行部分(202)によって暗号化形式で書き込まれた暗号グループ鍵を記憶するためにさらに提供される
請求項
2に記載の通信インターフェース(200)。
【請求項4】
前記信頼できる実行部分(202)による前記暗号プリミティブのうちの1つの前記実行が、第1のセッション鍵(AppSKey)を導出するために、前記メモリ(205)から解読されたアプリケーション鍵(AppKey)を用いて情報要素の第1のセットの連結された情報要素を暗号化するステップを含み、情報要素の前記第1のセットが、少なくとも1つのノンスを含む
請求項1から
3のいずれか一項に記載の通信インターフェース(200)。
【請求項5】
前記第1のセットの前記連結された情報要素が、前記サーバ(121)によって生成された第1のノンスと、前記LPWANの識別子と、前記ワイヤレスデバイス(101、102、103)によって生成された第2のノンスとを含む
請求項
4に記載の通信インターフェース(200)。
【請求項6】
前記信頼できる実行部分(202)が、前記ルートシークレット(210)を用いて前記第1のセッション鍵(AppSKey)を暗号化し、前記暗号化された第1のセッション鍵を前記メモリのRAMセクションまたはフラッシュセクション(205b)内に書き込むように構成される
請求項
4または
5に記載の通信インターフェース(200)。
【請求項7】
前記信頼できる実行部分(202)による前記暗号プリミティブのうちの1つの前記実行が、前記第1のセッション鍵(AppSKey)を使用して、前記信頼できない実行部分(201)によって提供されたメッセージを暗号化するステップを含む
請求項
4から
6のいずれか一項に記載の通信インターフェース(200)。
【請求項8】
前記信頼できる実行部分(202)による前記暗号プリミティブのうちの1つの前記実行が、第2のセッション鍵(NwkSKey)を導出するために、前記メモリ(205)から解読された前記アプリケーション鍵(AppKey)を用いて情報要素の第2のセットの連結された情報要素を暗号化するステップを含み、情報要素の前記第2のセットが、少なくとも1つのノンスを含む
請求項
4から
7のいずれか一項に記載の通信インターフェース(200)。
【請求項9】
前記第2のセットの前記連結された情報要素が、前記ワイヤレスデバイス(101、102、103)によって生成された第1のノンスと、前記LPWANの識別子と、前記サーバ(121)によって生成された第2のノンスとを含む
請求項
8に記載の通信インターフェース(200)。
【請求項10】
前記信頼できる実行部分(202)が、前記ルートシークレット(210)を用いて前記第2のセッション鍵(NwkSKey)を暗号化し、前記暗号化された第2のセッション鍵を前記メモリのRAMセクションまたはフラッシュセクション(205b)内に書き込むように構成される
請求項
8または
9に記載の通信インターフェース(200)。
【請求項11】
前記信頼できる実行部分(202)による前記暗号プリミティブのうちの1つの前記実行が、前記第2のセッション鍵(NwkSKey)を使用して、暗号化されたメッセージに基づいて、メッセージ完全性検査(MIC)値を計算するステップを含む
請求項
8から
10のいずれか一項に記載の通信インターフェース(200)。
【請求項12】
前記信頼できる実行部分(202)による前記暗号プリミティブのうちの1つの前記実行が、前記メモリ(205)から解読されたアプリケーション鍵(AppKey)を使用して前記ワイヤレスデバイスによって生成されたノンスと、前記デバイスの識別子と、アプリケーションプロバイダの識別子とを含む、連結された要素に基づいて、メッセージ完全性検査(MIC)値を計算するステップを含む
請求項1から
11のいずれか一項に記載の通信インターフェース。
【請求項13】
前記信頼できる実行部分(202)による前記暗号プリミティブのうちの1つの前記実行が、前記メモリ(205)から解読されたアプリケーション鍵(AppKey)を使用して、前記LPWANの識別子と前記ワイヤレスデバイスのアドレスとを含む、連結された要素に基づいて、メッセージ完全性検査(MIC)値を計算するステップを含む
請求項1から
12のいずれか一項に記載の通信インターフェース。
【請求項14】
低電力広域ネットワーク(LPWAN)を介してサーバ(121)と通信するための通信インターフェース(200)を有するワイヤレスデバイス(101、102、103)であって、
前記通信インターフェース(200)が、請求項1から
13のいずれか一項に記載の通信インターフェース(200)である
ワイヤレスデバイス(101、102、103)。
【請求項15】
前記通信インターフェース(200)の前記信頼できる実行部分(202)が、前記LPWANを介して受信された鍵更新コマンドに応じて、前記通信インターフェース(200)の前記メモリ(205)内に暗号化形式で記憶された少なくとも1つの暗号鍵を変更する(304)ように構成される
請求項
14に記載のワイヤレスデバイス(101、102、103)。
【請求項16】
前記少なくとも1つの暗号鍵の前記変更が、暗号化形式で記憶された更新鍵(305)を使用して、前記信頼できる実行部分(202)によって実行される
請求項
15に記載のワイヤレスデバイス(101、102、103)。
【請求項17】
前記通信インターフェース(200)の前記信頼できる実行部分(202)が、前記LPWANを介して受信されたコードアップグレードコマンドに応じて、前記メモリ(205)内に記憶された前記コンピュータコード(206)の一部分を変更する(411)ように構成される
請求項
14から
16のいずれか一項に記載のワイヤレスデバイス(101、102、103)。
【請求項18】
前記コードアップグレードコマンドが、前記メモリ(205)内に暗号化形式で記憶された暗号グループ鍵を使用して、前記信頼できる実行部分(202)によって解読された、少なくとも1つの暗号化されたメッセージ
における前記LPWANのマルチキャストアドレス上で受信される(406)
請求項
17に記載のワイヤレスデバイス(101、102、103)。
【請求項19】
前記通信インターフェース(200)が、前記メモリ(205)内に記憶された前記コンピュータコード(206)の前記一部分を変更するためのアップグレードされたコード部分を取得するために、前記少なくとも1つの暗号化されたメッセージに冗長復号を適用する(407)ように構成される
請求項
18に記載のワイヤレスデバイス(101、102、103)。
【請求項20】
前記冗長復号が、低密度パリティチェック(LDPC)復号を含む
請求項
19に記載のワイヤレスデバイス(101、102、103)。
【請求項21】
前記信頼できる実行部分(202)が、前記メモリ(205)内に暗号化形式で記憶された暗号鍵と、前記コードアップグレードコマンドの一部分として受信された、アップグレードされたコード部分とに基づいて、ハッシュコード(410)を計算するように構成され、
前記通信インターフェース(200)が、前記コンピュータコード(206)の前記一部分が変更されるべきであるかどうかを検証するために、前記ハッシュコードを検証サーバに送信し、前記検証サーバから応答を受信するように構成される
請求項
17から
20のいずれか一項に記載のワイヤレスデバイス(101、102、103)。
【請求項22】
低電力広域ネットワーク(LPWAN)を介して複数のワイヤレスデバイス(101、102、103)と通信するための通信インターフェース(200)を有するサーバ(121)であって、
前記通信インターフェース(200)が、請求項1から
13のいずれか一項に記載の通信インターフェース(200)である
サーバ(121)。
【請求項23】
前記通信インターフェース(200)の前記メモリ(205)が、複数の暗号化アプリケーション鍵を暗号化形式で記憶し、各暗号化アプリケーション鍵が、前記LPWANのそれぞれのワイヤレスデバイス(101、102、103)に関する
請求項
22に記載のサーバ(121)。
【請求項24】
前記複数のワイヤレスデバイス(101、102、103)のうちの1つのワイヤレスデバイスに関する前記暗号化アプリケーション鍵を変更する(304)ために、前記通信インターフェース(200)が、前記複数のワイヤレスデバイス(101、102、103)のうちの前記1つのワイヤレスデバイスのユニキャストアドレスを介して、前記LPWANを介して鍵更新コマンドを前記ワイヤレスデバイス(101、102、103)のうちの前記1つのワイヤレスデバイスに送信するように構成され、前記通信インターフェース(200)の前記信頼できる実行部分(202)が、前記複数のワイヤレスデバイス(101、102、103)のうちの前記1つのワイヤレスデバイスに関する、前記通信インターフェース(200)の前記メモリ(205)内に暗号化形式で記憶された前記暗号鍵を変更するように構成される
請求項
23に記載のサーバ(121)。
【請求項25】
ワイヤレスデバイス(101、102、103)のグループによって使用されるコンピュータコード部分を変更するために、前記通信インターフェース(200)が、前記LPWANのマルチキャストアドレスを介して、前記LPWANを介してコードアップグレードコマンドを送信する(405)ように構成される
請求項
22または23に記載のサーバ(121)。
【請求項26】
前記通信インターフェース(200)の前記信頼できる実行部分(202)が、前記マルチキャストアドレスを介して送信するのに先立って、前記LPWANの前記マルチキャストアドレスに関連する暗号グループ鍵を用いて前記コードアップグレードコマンドを暗号化する(402)ように構成される
請求項
25に記載のサーバ(121)。
【請求項27】
前記暗号化されたコードアップグレードコマンドが、冗長符号化され(403)、次いで、それぞれのメッセージ内で前記LPWANの前記マルチキャストアドレスに送信される複数の断片に分離される(404)
請求項
26に記載のサーバ(121)。
【請求項28】
前記暗号化されたコードアップグレードコマンドが、低密度パリティチェック(LDPC)符号化を使用して冗長符号化される
請求項
27に記載のサーバ(121)。
【請求項29】
前記通信インターフェース(200)が、ワイヤレスデバイス(101、102、103)の前記グループのうちの1つのワイヤレスデバイスから第1のハッシュコードを受信するように構成され、
前記信頼できる実行部分(202)が、ワイヤレスデバイス(101、102、103)の前記グループのうちの前記1つのワイヤレスデバイスに関して前記メモリ(205)内に暗号化形式で記憶された暗号鍵と、ワイヤレスデバイス(101、102、103)の前記グループによって使用される前記コンピュータコード部分に対して置換されるべき、アップグレードされたコード部分とに基づいて、第2のハッシュコードを計算するように構成され、
前記通信インターフェース(200)が、前記第1のハッシュコードおよび前記第2のハッシュコードを比較し、前記第1のハッシュコードおよび前記第2のハッシュコードが同一であるか否かに応じて、ワイヤレスデバイス(101、102、103)の前記グループのうちの前記1つのワイヤレスデバイスに応答を送るようにさらに構成される
請求項
25から
28のいずれか一項に記載のサーバ(121)。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ワイヤレス通信に関し、より詳細には、低電力広域ネットワーク(LPWAN)を介したワイヤレスデバイスとサーバとの間のセキュアな通信に関する。
【背景技術】
【0002】
低電力広域ネットワーク(LPWAN)は、低ビットレートにおける長距離通信を可能にする低電力ワイヤレスネットワークである。これらのネットワークは、メモリ容量、計算能力および計算エネルギーの点で制限される、マシンツーマシン(M2M)アプリケーションおよびモノのインターネット(IoT)アプリケーションに特に適している。Sigfox、LTE-NB1(「ロングタームエボリューション-マシンツーマシン、狭帯域」)またはLoRaWAN(「長距離無線広域ネットワーク」)がそのようなネットワークの例である。
【0003】
図1は、例として、LoRaWANタイプのものであり得るLPWANのアーキテクチャについて説明する。LoRaWANネットワークは、エンドデバイスと呼ばれるデバイス101、102、103と中央ネットワークサーバ121との間のメッセージがゲートウェイ111、112を介して送受信されるスタートポロジーに従う。エンドデバイス101、102、103およびゲートウェイ111、112は、低ビットレートLoRa無線技術に従って通信するが、ゲートウェイおよびネットワークサーバ121は、通常、たとえば、Ethernetまたは4Gなど、より高いビットレートのバックホーリング技術を使用して通信する。ネットワークサーバは、その場合、複数のアプリケーションサーバ131、132と通信し、アプリケーションサーバ131、132から、アプリケーションプロバイダはエンドデバイス101、102、103からのデータを活用し、ダウンリンクパケットをエンドデバイスに送るようにネットワークサーバに命令することができる。
【0004】
いくつかのアプリケーションの場合、たとえば、産業用IoTアプリケーションおよび商用アプリケーションでは、センサーを備えた、接続された膨大な数のデバイスが展開されなければならない。今後数年のうちに、数百億の通信センサーが潜在的にネットワークに接続される可能性がある。これらのセンサーは、電池で動作し、日々、低ビットレートで非常に少量のデータをサーバに送信する。LPWANは、したがって、高ビットレートを必要としないこれらのアプリケーションに対する、かつ、数年の自律性が必要とされる、リソースが制限されるこれらのデバイスに対する良好な解決策である。
【0005】
LPWANでは、デバイス(ここで、「エンドデバイス」とも呼ばれる)とそのデータ処理プラットフォームとの間のIoT通信は、一般に、盗聴を受けやすい無線周波数(RF)インターフェースを介して生じる。デバイスとの間を行き来するデータの機密性ならびに完全性を確実にするために、この通信はセキュアにされる必要がある。
【0006】
IoTセキュア通信における現在の最新技術は、エンドデバイスとネットワークサーバとの間の通信を暗号化および/または認証するために、直接的に、または鍵導出技術によって使用される1つの(または、いくつかの)共有秘密に依拠する。
【0007】
いくつかの高度実装形態では、共有秘密は、オーバージエアで使用され、オーバージエアで決して通信されない、エンドデバイスとネットワークサーバの両方によって知られている、以下で、「アプリケーション鍵」と呼ばれる暗号化鍵から計算される。
【0008】
たとえば、LoRaWAN規格では、ネットワーク上でエンドデバイスをアクティブ化することは、「オーバージエアアクティブ化」(OTAA)方法によって行われ得る。OTAAを達成するために、エンドデバイスは、メッセージ、およびそのアプリケーション鍵(AppKey)を用いて計算された暗号文を送る。サーバは、(デバイスコミッショニングプロセス(device commissioning process)の間に)サーバに事前に通信されているこのAppKeyに基づいて、エンドデバイスがネットワークに参加することが許可されているかどうかを検査する。エンドデバイスが許可されている場合、サーバは、いくつかの暗号化データを含むダウンリンクメッセージを送る。その場合、受信されたデータに基づいて、(一方は完全性保護など、ネットワーク関連機能のための、他方はユーザペイロード暗号化のための)2つのセッション鍵がエンドデバイスにおいて導出される。
【0009】
現在のセキュリティアーキテクチャの限界は、エンドデバイスに対する、またはサーバに対する物理的な攻撃の可能性にリンクしている。一部の高セキュリティアプリケーションは、IoTセンサーによって生成された情報に依拠することがあり、合法的なセンサーからのデータトリガをスプーフィングする可能性は、重大な結果をもたらし得る。サーバが攻撃者によってアクセスされた場合、潜在的に数百万のデバイスのアプリケーション鍵が露出される。
【0010】
センサーが攻撃者によって物理的にアクセスされ得る場合、攻撃者は、デバイスのフラッシュメモリおよびRAMメモリに物理的にアクセスすることが可能になり、したがって、通信セキュリティをブートストラップするために使用されるアプリケーション鍵にアクセスすることが可能になる。実装者は、この秘密を暗号化することを選定することがあるが、そのような暗号化は、コード、またはメモリ内にも存在する追加の秘密に依拠することになり、したがって、攻撃者は、難読化戦略を反転させ、ブートストラップ秘密に達するための十分な情報を常に有する。
【0011】
前のセクションにおいて強調された限界は、アプリケーション鍵を記憶するために使用されるメモリの物理的アクセス性に関する。過去20年において、秘密鍵を取り出すことを「不可能」にするために複数の戦略を実装するモジュール内に、アプリケーション鍵に物理的な保護を提供するための技術が開発されてきた。「不可能」は、「秘密鍵にアクセスすることによって取得され得る潜在的な利益に比例する手段を用いて達成可能でない」という意味で理解されるべきである。
【0012】
そのようなセキュリティモジュールは、RSA公開鍵およびRSA秘密鍵の運用など、秘密鍵に依拠する標準的な暗号化方法を実装しなければならない。物理的に保護された秘密および暗号コードを実装し、セキュアなアプリケーションプログラミングインターフェース(API)を外部プロセッサに提供する物理的なモジュールは、「セキュアエレメント」(SE)と呼ばれる。
【0013】
しかしながら、IoTセキュリティの文脈でセキュアエレメントの利用は、多くの欠点を有する。たとえば:
- これらは、かなりのコストを表し、RF、およびIoTデバイスにおいて一般に使用されるマイクロコントローラサブシステムのコストに関して、デバイスのコストに50%以上を追加し得る;
- これらは、デバイスが時には、10年以上の電池寿命に対して最適化される文脈で、追加のエネルギーを使用する;
- これらは、追加のプリント回路板空間を使用するが、コンパクトさが重要である;
- 従来、これらは、設計段階の間に定義される、特定の標準的な暗号プリミティブのみを動作させることができる。結果として、「非標準」動作または秘密情報に基づく中間計算は、依然として、非セキュアな空間で実装される必要があり、したがって、通信バスおよびRAMを介して秘密情報を露出させる可能性がある;
- これらは、一般に、コンピュータまたはセキュアな記憶の世界に対して適応される標準的なメインストリーム暗号プリミティブのみを実装し、IoT通信リンクの極端な限界を考慮に入れない:たとえば、LoRaWANなど、LPWAN技術は、ダウンリンクにおいてアップリンクごとに50バイト程度に制限され、一日に非常に少数のアップリンクメッセージまたはダウンリンクメッセージのみを受け入れる。証明ベースの暗号化、またはハッシュ方法は、したがって、それらの標準形式で使用可能ではない。したがって、各IoT技術に対する専用SEを開発することが必要になり、マルチプロトコルデバイスを設計することを不可能にし、設計コストを追加する;
-これらは、SEコスト全体に対する著しい増加を伴わずにアップグレードを可能にしない。アップグレード可能性は、これから数十年にわたって数百万のデバイスが展開される可能性があり、10年余りにわたって動作可能な状態を保つIoTの文脈で重要である。エンドデバイスは、このタイムフレームにおけるセキュリティ技術の進歩に適応可能でなければならない。
【先行技術文献】
【非特許文献】
【0014】
【文献】N.Sornin、M. Luis、T.Eirich、T.Kramp、およびO.Hersentが著し、LoRa Alliance,Inc.によって2015年1月に発表された、「LoRa仕様書」、または「LoRaWAN仕様書」、バージョンV1.0
【文献】Gallager,R.G.、「Low Density Parity Check Codes」、Monograph、M.I.T.Press、1963年
【発明の概要】
【発明が解決しようとする課題】
【0015】
したがって、LPWAN IoT通信のセキュリティを確実にするための代替解決策が必要である。
【課題を解決するための手段】
【0016】
本発明は、LPWANを介したワイヤレスデバイスとサーバとの間の通信をサポートするための通信インターフェースに関する。通信インターフェースは、
-暗号プリミティブを使用して、少なくとも1つのセキュアLPWANプロトコルを含むLPWAN通信プロトコルスタックに従って動作するように構成された、信頼できない実行部分と、
-コンピュータコードおよび少なくとも1つの暗号鍵を暗号化形式で記憶するためのメモリと、
-メモリから少なくとも1つの暗号鍵を解読するためのルートシークレット(root secret)を組み込んだ、信頼できる実行部分とを備え、信頼できる実行部分は、メモリから解読された暗号鍵およびコンピュータコードを使用して、少なくとも1つのセキュアLPWANプロトコルの暗号プリミティブを実行するように構成される。
【0017】
この通信インターフェースは、デバイスまたはサーバ(ネットワークサーバまたはアプリケーションサーバ)内で使用され得る。
【0018】
信頼できる実行部分は、セキュアにされなければならないすべての動作(暗号化、解読、暗号プリミティブの実行)を実装することができ、信頼できない実行部分は、セキュアでないリンクを介してデバイスまたはサーバと通信することができる。たとえば、信頼できる実行部分はメッセージを暗号化し、信頼できない実行部分は、標準的な(セキュアでない)通信リンクを介して、暗号化されたメッセージを送る。
【0019】
有利には、通信インターフェースは、信頼できない実行部分と信頼できる実行部分の両方を含むマイクロコントローラチップを備える。
【0020】
したがって、単一の半導体チップが、すべてのセキュリティ機能および通信機能を実行し得、これは、潜在的に非常に多数あり、したがって、低いハードウェアコストを有さなければならないエンドデバイスの場合に特に望ましい。
【0021】
一実施形態では、メモリは、コンピュータコードおよび暗号化アプリケーション鍵を暗号化形式で記憶するためのリプログラマブルメモリセクションと、暗号化アプリケーション鍵に応じて、信頼できる実行部分によって計算される、少なくとも1つの暗号セッション鍵を暗号化形式で記憶するためのRAMセクションまたはフラッシュセクションとを有する。
【0022】
リプログラマブルメモリセクションの使用は、有利には、アプリケーション鍵またはメモリ内に記憶されたコードの一部分を更新/アップグレードすることを可能にする。したがって、本発明の通信インターフェースは、より低いコストおよびより良好な進化性を確実にすると同時に、LPWAN IoT通信のセキュリティを確実にする。たとえば、接続されたオブジェクトの製造を担当するエンジニア/管理者は、サーバ内とデバイス内の両方のアプリケーション鍵を変更することができる。この管理者は、その変更を、次いで、デバイスの複数のグループに送ることができるように、サーバの通信インターフェースのコード部分も変更することができる。
【0023】
このマルチキャスト送信を実装するために、リプログラマブルメモリセクションは、ワイヤレスデバイスのマルチキャストグループに参加するためのコマンドに応じて、信頼できる実行部分によって暗号化形式で書き込まれた暗号グループ鍵を記憶するためにさらに提供され得る。
【0024】
アプリケーション鍵およびセッション鍵(たとえば、LoRaWANなど)に基づく通信プロトコルを含むLPWANの文脈で、信頼できる実行部分による暗号プリミティブのうちの1つの実行は、第1のセッション鍵を導出するために、メモリから解読されたアプリケーション鍵を用いて情報要素の第1のセットの連結された情報要素を暗号化するステップを含むことができ、情報要素の第1のセットは、少なくとも1つのノンスを含む。
【0025】
より具体的には、第1のセットの連結された情報要素は、サーバによって生成された第1のノンスと、LPWANの識別子と、ワイヤレスデバイスによって生成された第2のノンスとを含み得る。
【0026】
この文脈で、信頼できる実行部分は、鍵導出ハンドシェークの間にオーバージエアで送られた鍵導出材料を計算し、次いで、ルートシークレットを用いて第1のセッション鍵を暗号化し、暗号化された第1のセッション鍵をメモリのRAMセクションまたはフラッシュセクション内に書き込むように構成され得る。
【0027】
信頼できる実行部分による暗号プリミティブのうちの1つの実行は、第1のセッション鍵を使用して信頼できない実行部分によって提供されたメッセージを暗号化するステップを含み得る。暗号化手順は、LPWANプロトコルに固有であり、一般に、標準的なセキュアエレメント内で利用可能でない:暗号化手順は、特定の暗号化手順を実装する、暗号化されたコードから通信インターフェースのセキュア部分によって実行され、前記暗号化されたコードは、完全性検査され、セキュアサブシステムルートシークレットを使用して解読される。
【0028】
信頼できる実行部分による暗号プリミティブのうちの1つの実行はまた、第2のセッション鍵を導出するために、メモリから解読されたアプリケーション鍵を用いて情報要素の第2のセットの連結された情報要素を暗号化するステップを含むことができ、情報要素の第2のセットは、少なくとも1つのノンスを含む。
【0029】
この第2のセットの連結された情報要素は、ワイヤレスデバイスによって生成された第1のノンスと、LPWANの識別子と、サーバによって生成された第2のノンスとを含み得る。
【0030】
信頼できる実行部分は、ルートシークレットを用いて第2のセッション鍵を暗号化し、暗号化された第2のセッション鍵をメモリのRAMセクションまたはフラッシュセクション内に書き込むように構成され得る。
【0031】
第2のセッション鍵が導出されるとき、信頼できる実行部分による暗号プリミティブのうちの1つの実行は、第2のセッション鍵を使用して、暗号化されたメッセージに基づいて、メッセージ完全性検査(MIC)値を計算するステップを含み得る。MICは、ワイヤレスデバイスのアドレスを含む、連結された要素に基づいてさらに計算され得る。
【0032】
このMIC値は、LPWANを介して送られるアップリンクメッセージまたはダウンリンクメッセージに対するペイロード内に含まれてよい。
【0033】
MIC値はまた:
-メモリから解読されたアプリケーション鍵を使用して、ワイヤレスデバイスによって生成されたノンスと、デバイスの識別子と、アプリケーションプロバイダの識別子とを含む、連結された要素に基づいて、および/または
-メモリから解読されたアプリケーション鍵を使用して、LPWANの識別子とワイヤレスデバイスのアドレスとを含む、連結された要素に基づいて
計算され得る。
【0034】
そのようなMIC値は、LPWAN内のOTAAの場合、(エンドデバイスからネットワークサーバへの)「参加要求」メッセージに対するペイロード、および(ネットワークサーバからエンドデバイスへの)「参加受入れ」メッセージに対するペイロード内にそれぞれ含まれ得る。
【0035】
本発明の別の態様は、LPWANを介してサーバと通信するための上記で説明したような通信インターフェースを有するワイヤレスデバイスに関する。
【0036】
デバイスの通信インターフェースの信頼できる実行部分は、LPWANを介して受信された鍵更新コマンドに応じて、通信インターフェースのメモリ内に暗号化形式で記憶された少なくとも1つの暗号鍵を変更するように構成され得る。暗号鍵の変更は、暗号化形式で記憶された更新鍵を使用して信頼できる実行部分によって実行され得る。
【0037】
したがって、1つの暗号鍵が損なわれた場合、それは容易に、セキュアな方法で、変更され得る。
【0038】
通信インターフェースの信頼できる実行部分は、LPWANを介して受信されたコードアップグレードコマンドに応じて、メモリ内に記憶されたコンピュータコードの一部分を変更するように構成され得る。コードアップグレードコマンドは、メモリ内に暗号化形式で記憶された暗号グループ鍵を使用して信頼できる実行部分によって解読された、少なくとも1つの暗号化されたメッセージ内でLPWANのマルチキャストアドレス上で受信され得る。
【0039】
したがって、グループのすべてのデバイスのメモリ内に記憶されたコード(たとえば、ブートストラッピング暗号プリミティブ、またはマルチキャストグループ短期鍵導出アルゴリズム)をセキュアにかつ容易にアップグレードすることが可能である。
【0040】
コードアップグレードのこの文脈で、通信インターフェースは、メモリ内に記憶されたコンピュータコードのその一部分を変更するためのアップグレードされたコード部分を取得するために、少なくとも1つの暗号化されたメッセージに冗長復号を適用するように構成され得る。
【0041】
アップグレードメッセージがサーバからデバイスに送られるとき、パケット損失が発生し得る。(それぞれ、サーバ側/デバイス側において冗長符号化/復号を適用することによって)送信された情報内に冗長性を加えることは、デバイスが情報の損失を補償することを可能にする。
【0042】
たとえば、冗長復号は、低密度パリティチェック(LDPC)復号を含み得る。
【0043】
さらに、信頼できる実行部分は、メモリ内に暗号化形式で記憶された暗号鍵と、コードアップグレードコマンドの一部分として受信された、アップグレードされたコード部分とに基づいて、ハッシュコードを計算するように構成され得、通信インターフェースは、コンピュータコードのその一部分が変更されるべきであるかどうかを検証するために、ハッシュコードを検証サーバに送信し、検証サーバから応答を受信するように構成され得る。
【0044】
これは、有利には、コードアップグレードの文脈で、受信されたメッセージの真正性を検査することを可能にする。
【0045】
本発明のさらに別の態様は、LPWANを介して複数のワイヤレスデバイスと通信するための上記で説明したような通信インターフェースを有するサーバに関する。
【0046】
通信インターフェースのメモリは、複数の暗号化アプリケーション鍵を暗号化形式で記憶することができ、各暗号化アプリケーション鍵は、LPWANのそれぞれのワイヤレスデバイスに関する。
【0047】
複数のワイヤレスデバイスのうちの1つのワイヤレスデバイスに関する暗号化アプリケーション鍵を変更するために、通信インターフェースは、複数のワイヤレスデバイスのうちの1つのワイヤレスデバイスのユニキャストアドレスを介して、LPWANを介して鍵更新コマンドをワイヤレスデバイスのうちの1つのワイヤレスデバイスに送信するように構成され得、通信インターフェースの信頼できる実行部分は、複数のワイヤレスデバイスのうちの1つのワイヤレスデバイスに関する、通信インターフェースのメモリ内に暗号化形式で記憶された暗号鍵を変更するように構成され得る。
【0048】
ワイヤレスデバイスのグループによって使用されるコンピュータコード部分を変更するために、通信インターフェースは、LPWANのマルチキャストアドレスを介して、LPWANを介してコードアップグレードコマンドを送信するように構成され得る。通信インターフェースの信頼できる実行部分は、マルチキャストアドレスを介して送信するのに先立って、LPWANのマルチキャストアドレスに関連する暗号グループ鍵を用いてコードアップグレードコマンドを暗号化するように構成され得る。
【0049】
上述のように、暗号化されたコードアップグレードコマンドは、冗長的に符号化され、次いで、それぞれのメッセージ内でLPWANのマルチキャストアドレスに送信される複数の断片に分離され得る。特定の実施形態では、暗号化されたコードアップグレードコマンドは、LDPC符号化を使用して冗長的に符号化され得る。
【0050】
最終的に、メッセージの真正性検査が次のように実行され得る:
-通信インターフェースが、ワイヤレスデバイスのグループのうちの1つのワイヤレスデバイスから第1のハッシュコードを受信する、
-信頼できる実行部分が、ワイヤレスデバイスのグループのうちの1つのワイヤレスデバイスに関してメモリ内に暗号化形式で記憶された暗号鍵と、ワイヤレスデバイスのグループによって使用されるコンピュータコード部分に対して置換されるべき、アップグレードされたコード部分とに基づいて、第2のハッシュコードを計算する、
-通信インターフェースが、第1のハッシュコードおよび第2のハッシュコードを比較し、第1のハッシュコードおよび第2のハッシュコードが同一であるか否かに応じて、ワイヤレスデバイスのグループのうちの1つのワイヤレスデバイスに応答を送る。
【0051】
本明細書で開示する方法および装置の他の特徴および利点は、添付の図面の図を参照して、非限定的な実装形態の次の説明から明らかになるであろう。
【0052】
本発明は、類似の参照番号が同様の要素を指す、添付の図面の図において、限定としてではなく、例として示される。
【図面の簡単な説明】
【0053】
【
図1】本発明が適用され得るLoRaWANネットワークアーキテクチャの表現である。
【
図2】本発明の可能な実施形態における通信インターフェースのブロック図である。
【
図3】本発明の可能な実施形態における暗号鍵更新の様々なステップを示すフローチャートである。
【
図4a】本発明の可能な実施形態におけるサーバ側の暗号コードアップグレードの様々なステップを示すフローチャートである。
【
図4b】本発明の可能な実施形態におけるデバイス側の暗号コードアップグレードの様々なステップを示すフローチャートである。
【発明を実施するための形態】
【0054】
「備える」、「含む(include)」、「組み込む」、「含む(contain)」、「である」、および「有する」などの表現は、説明およびその関連する請求項を解釈するとき、非限定的な様式で解釈されるべきであり、すなわち、明示的に定義されない他の項目または構成要素もやはり存在することを可能にするように解釈されるべきである。単数形の参照はやはり複数形の参照とも解釈されるべきであり、その逆も同様である。
【0055】
本明細書で開示する様々なパラメータは修正可能であり、開示する様々な実施形態は、本発明の範囲から逸脱せずに、組合せ可能であることを当業者は容易に諒解されよう。
【0056】
図2は、本発明の可能な実施形態における通信インターフェースのブロック図である。
【0057】
この通信インターフェース200は、デバイス(もしくは、エンドデバイス)内にまたはサーバ(ネットワークサーバもしくはアプリケーションサーバ)内に含まれ得る。
【0058】
図2によれば、通信インターフェース200は、信頼できない実行部分201と、信頼できる実行部分202と、メモリ205とを少なくとも含む。
【0059】
「信頼できる実行部分」は、セキュアであり、内部で実行されるか、または内部にロードされるコンピュータコードおよびデータが機密性および完全性の点で保護されることを確実にする、プロセッサまたはマイクロプロセッサの一部分であることを意味する。他方で、「信頼できない実行部分」は、コンピュータコードまたはデータのこの保護を確実にしないプロセッサの一部分を指す。
【0060】
好ましい実施形態では、信頼できる実行部分と信頼できない実行部分は両方とも、単一のマイクロコントローラチップ212内に含まれる。限定ではなく、例として、マイクロコントローラは、会社のARMによって商品化され、ハードウェア内にプログラムされる「Trustzone(登録商標)」セキュリティ技術を備えたプロセッサであってよい。このタイプのプロセッサは、セキュアオペレーティングシステムおよび非セキュア(すなわち、「通常の」)オペレーティングシステムを単一のコアから同時に実行することができる。
【0061】
図2に表す特定の実施形態では、信頼できない実行部分201は、アプリケーションレイヤ204を管理し、アプリケーションレイヤ204は、デバイスの挙動および機能性が実装される機能アプリケーションを含む。機能アプリケーションは、デバイス周辺ユニットを管理するためのドライバをやはり実装し得る。機能アプリケーションは、たとえば、LoRaWANなど、LPWAN通信プロトコルスタックに従って、機器213(通信インターフェース200がエンドデバイスの一部分である場合はサーバ、通信インターフェース200がサーバの一部分である場合はエンドデバイスであり得る)と通信するための通信プロトコルライブラリ203をさらに実装し得る。
【0062】
信頼できる実行部分は、暗号化機能、解読機能、または完全性検証機能など、LPWANセキュリティ機能211を実行することができる。信頼できる実行部分は、ルートシークレット210をやはり組み込み、ルートシークレット210は、マイクロプロセッサに固有であり、LPWANを介して通信をブートストラップするために使用される「アプリケーション鍵」とは別個の、構成要素関連の秘密である。ルートシークレット210は、マイクロプロセッサ内のメモリ内に記憶されるべき、またはそこから読み取られるべき情報を暗号化および解読することを可能にする。ルートシークレット210は、工場製造の間にマイクロプロセッサ内に具備され、エンドデバイスの展開を担当するユーザ/エンジニア/管理者がコンピュータコードをメモリ内に書き込むことが可能であるように、製造業者によってこのユーザ/エンジニア/管理者に利用可能にされる。
【0063】
メモリ205は、少なくとも1つの暗号鍵AppKeyを含む、暗号化されていないデータ(すなわち、「通常の」、非暗号化形式で記憶されたデータ)および暗号化されているデータ(すなわち、暗号化形式で記憶されたデータ)をメモリエリア207内に記憶し、コンピュータコードをメモリエリア206内に記憶することができる。
【0064】
メモリは、信頼できる実行部分202内にロードされ、その中で実行され得るコンピュータコード206内に含まれるアルゴリズムから導出される、暗号セッション鍵AppSKey、NwkSKeyを暗号化形式で記憶することもできる。
【0065】
AppKey、AppSKey、またはNwkSKeyなどの暗号鍵の名称は、例として、LoRaプロトコルを参照してここで述べられる。下記で論じる技術的特徴を変更せずに、他の名称が他のタイプのLPWANにおいて使用され得ることを諒解されよう。
【0066】
LoRaWANネットワークの説明のための例に関するさらなる情報は、N.Sornin、M. Luis、T.Eirich、T.Kramp、およびO.Hersentが著し、LoRa Alliance,Inc.によって2015年1月に発表された、「LoRa仕様書」、または「LoRaWAN仕様書」、バージョンV1.0から取得され得る。
【0067】
図2の例示的な実施形態で示すように、メモリ205は、リプログラマブルメモリセクション205aと、RAMセクションまたはフラッシュセクション205bとを含む。
【0068】
リプログラマブルメモリセクション205aは、たとえば、コンピュータコードをエリア206内に、暗号鍵AppKeyをエリア207内に記憶することができる。これらは、エンドデバイスがアイドルであるときですら、エンドデバイスが維持しなければならない半永久的情報である。これらは、更新され得るが、ほとんど長期ベースである。したがって、リプログラマブルメモリセクション205aは、一般に、フラッシュメモリセクションとして作成され得る。エンドデバイスの管理を担当するエンジニアは、メモリエリア206内のコードのすべてまたは部分、ならびにメモリエリア207内のAppKeyを修正することができる。これは、下記でさらに論じるIoTネットワークの文脈で複雑であり得る暗号アルゴリズムを更新すること、および、たとえば、AppKeyが損なわれている場合、AppKeyを変更することを可能にする。
【0069】
他方で、エリア208、209内に記憶されたセッション鍵は、新しい通信セッションが確立されるたびに変更される。これらのセッション鍵は、短期的な記憶のみを必要とし、これは、RAMセクション205bを用いて達成され得る。あるいは、フラッシュメモリセクションを使用することもできる。
【0070】
メモリエリア207内に記憶されたAppKeyは、セキュアワイヤレス通信プロトコルをブートストラップするために使用されるアプリケーション鍵であり、メモリエリア206内に記憶されたコンピュータコードは、通信プロトコルの暗号プリミティブを含む。
【0071】
エンドデバイス内の通信インターフェースの場合、アプリケーション鍵AppKeyは、エンドデバイスに特に関連する鍵である。ネットワークサーバ内の通信インターフェースの場合、メモリは、複数のアプリケーション鍵を記憶し、各アプリケーション鍵は、ネットワークに属するエンドデバイスに関連付けられる。サーバの側に記憶されるべき大量の鍵により、この複数のアプリケーション鍵は、あるいは、他のメモリセクションとは物理的に別のハードドライブ上に暗号化形式で記憶され得る。
【0072】
この実施形態では、ワイヤレス通信プロトコルに従って、通信インターフェース200を含むデバイスと機器213との間の通信を確立するために、ルートシークレット210を使用することによってAppKeyを解読するために解読機能211が実行される。次いで、たとえば、上述のAppSKeyおよびNwkSKeyなど、1つまたは複数の暗号セッション鍵を導出するために、解読されたアプリケーション鍵に基づいて暗号プリミティブが実行される。
【0073】
以下の例は、LoRa通信プロトコルの場合に開発されるが、本発明は、これらに限定されず、暗号プリミティブの使用を含めて、任意のタイプのLPWANに対して使用され得ることを理解されたい。
【0074】
LoRa通信プロトコルの場合、
-エンドデバイスの通信インターフェース220のメモリ205は、デバイス識別子(DevEUI)と、アプリケーションプロバイダ識別子(AppEUI)と、暗号化されたアプリケーション鍵(AppKey)とを含み、一般に、AppKeyは、高度暗号化規格(AES)-128によって暗号化され得る、
-ネットワークサーバの通信インターフェース200のメモリ205は、サーバに関するすべてのデバイスのAppKeyを含む。
【0075】
エンドデバイスがネットワークに参加するためのオーバージエアアクティブ化(OTAA)方法は、次のステップからなる:
-エンドデバイスが、エンドデバイスのAppEUIおよびDevEUIに続いて、エンドデバイスによって拾い出されるノンスDevoNonceを含む「参加要求」メッセージをネットワークサーバに送る。メッセージ完全性コード(MIC)もサーバに送信される。たとえば、MICは、次の暗号プリミティブを使用して、「cmac」の4つの最下位オクテットとして算出される:
cmac=aes128_cmac(AppKey,MHDR|AppEUI|DevEUI|DevNonce),MIC=cmac[0..3]、
式中、MHDRは、「参加要求」メッセージ内で、LPWAN内で使用される媒体アクセス制御(MAC)プロトコルレイヤのヘッダを指定し、xi|x2|...|xnは、n個の情報要素xi、x2、...、xnに適応される連結動作を表す。そのような暗号化機能は、標準多目的セキュアエレメントから利用可能ではないLPWANの性質により必要とされる非標準セキュリティ機能に特有である;
- サーバは、AppKeyを介して受信されたMICを検査し、デバイスが許可されるかどうかを判定する;
-デバイスがサーバによって許可される場合、サーバは、「参加受入れ」メッセージをデバイスに送る。この参加受入れメッセージは、ネットワークサーバにおいてアプリケーションレイヤによって拾い上げられるノンスAppNonceと、ネットワーク識別子(NetID)と、エンドデバイスアドレス(DevAddr)と、送信と受信との間の遅延(RxDelay)と、エンドデバイスが参加しているネットワークに対するチャネル周波数の任意のリスト(CFList)とを含む。参加受入れメッセージに関するMIC値は、次のように算出され得る:
cmac=aes128_cmac(AppKey,MHDR|AppNonce|NetID|DevAddr|DLSettings|RxDelay|CFList)
MIC=cmac[0..3]
式中、DLSettingsは、MACレイヤの1バイトのダウンリンク構成情報である。
【0076】
エンドデバイス200において、参加受入れメッセージを受信した後で、2つのセッション鍵AppSKeyおよびNwkSKeyが、エンドデバイスの通信インターフェースの信頼できる実行部分202内で実行される暗号プリミティブから導出され得る。
【0077】
エンドデバイスに特有のこれらの2つのセッション鍵は、デバイスとサーバの両方によって動的に計算され、それぞれの新しいセッションにおいて更新される。これらのセッション鍵は、後で、デバイスからサーバにデータを送信するために必要である。より具体的には、LoRaWAN規格のいくつかのバージョンにおいて、ダウンリンク方向およびアップリンク方向に別々に計算され得るNwkSKeyが、すべてのデータメッセージのMICを算出し検証して、データ完全性を確実にするために、ネットワークサーバ(
図1の121)とエンドデバイスの両方によって使用される。NwkSKeyは、MACのみデータメッセージのペイロードフィールドを暗号化および解読するためにさらに使用される。AppSKeyは、アプリケーション特定データメッセージのペイロードフィールドを暗号化および解読するために、アプリケーションサーバ(
図1の131または132)とエンドデバイスの両方によって使用される。AppSKeyはまた、アプリケーション特定データメッセージのペイロード内に含まれ得るアプリケーションレベルMICを算出して検証するために使用される。
【0078】
LPWAN LoRa通信プロトコル内のOTAAの場合、2つのセッション鍵が次のように導出される:
- ネットワークサーバから参加受入れメッセージを受信した後で、エンドデバイス(
図1の101)は、AppNonce(ネットワークサーバによって提供されるランダム値または何らかの形式の一意ID)と、DevNonce(エンドデバイス101によって生成された)と、ネットワークID NetIDとを含む、いくつかの情報要素を所有する;
- その場合、暗号プリミティブは、ルートシークレットを用いて暗号化され、メモリ(
図2の205)内に暗号化形式で記憶される、AppSKeyおよびNwkSKeyを導出するために、解読されたAppKeyと、AppNonce、DevNonce、およびNetldを含む、連結された情報要素とを使用して信頼できる実行部分(
図2の202)内で実行され得る。
一般に、LoRaWAN仕様書1.0によれば、セッション鍵は、次のように導出される:
NwkSKey=aes128_encrypt(AppKey,0x01|AppNonce|NetID|DevNonce|pad
16)
AppSKey=aes128_encrypt(AppKey,0x02|AppNonce|NetID|DevNonce|pad
16)
【0079】
LoRaWAN仕様書の他のバージョンは、いくつかのネットワークセッション鍵を、たとえば、アップリンクおよびダウンリンク方向で、ローミング状態の訪問先ネットワークに関して計算する。また、MICコードは、ホームネットワークおよび訪問先ネットワークの検証のために2つの部分に分離され得る。これらの変更はすべて、LoRaWANのバージョン1.0に関して示す実施形態の簡単な進化として実装され得る。
【0080】
本発明の通信インターフェースにより、NwkSKey、AppSKey、およびMICの導出は、マイクロコントローラの信頼できない実行部分(標準アプリケーションコード、およびLPWANプロトコルスタックの大部分を実行し得る)と信頼できる実行部分との間のアプリケーションプログラミングインターフェース(API)としてLPWAN暗号プリミティブを使用することによって、セキュアな空間で完全に実行する動作の連続からなる。したがって、プロトコルスタックを実行する非セキュア環境に暗号材料を露出させるために要求されるLPWAN暗号アルゴリズムは、信頼できる実行部分内で実装される。LPWAN暗号アルゴリズムは、メモリ内に暗号化されて存在し、実行時にのみ、任意の攻撃者がアクセスできない信頼される部分に利用可能にされる。
【0081】
エンドデバイスがネットワーク上でアクティブ化されると、データメッセージは、エンドデバイスとサーバとの間で交換され得る。LoRa通信プロトコルでは、メッセージは、(アップリンク内またはダウンリンク内で)MACヘッダ(MHDR)を含むPHYペイロード、MACペイロード、およびメッセージ完全性コード(MIC)を搬送する。MACペイロードは、フレームヘッダ(FHDR)と、任意選択のポートフィールド(FPort)と、任意選択のフレームペイロードフィールド(FRMPayload)とを含む。これにより、メッセージが書き込まれ得る:msg=MHDR|FHDR|FPort|FRMPayload。
【0082】
データフレームがペイロードを搬送する場合、FRMPayloadは、メッセージ完全性コード(MIC)が算出される前に暗号化されなければならない。暗号化は、データメッセージのFPortの値に応じて、NwkSKeyまたはAppSKeyである暗号鍵に基づく。より具体的には、NwkSKeyは、FPort=0である場合に使用され、AppSKeyは、FPort=1...255である場合に使用される。
【0083】
最終的に、MIC値は、次のように、NwkSKeyを使用して、暗号化されたメッセージからのメッセージ内のすべてのフィールドにわたって算出され得る:
cmac=aes128_cmac(NwkSKey,B0|msg)
MIC=cmac[0..3]
式中、B0は、特に、デバイスアドレス(DevAddr)を含むブロックである。
【0084】
図3は、本発明の可能な実施形態における暗号鍵更新の様々なステップを示すフローチャートである。
【0085】
状況によっては、デバイスの暗号鍵、たとえば、アプリケーション鍵AppKeyの更新が必要とされる場合がある(たとえば、IoT中央ネットワークコントローラサブシステムがハッキングされ、AppKeyが損なわれたとき)。
【0086】
鍵更新データ301から、サーバ121は、エンドデバイス101のユニキャストアドレスを介して、鍵更新コマンドをエンドデバイス101に送る(ステップ303)。並行して、新しい鍵が、以前の鍵の代わりに、サーバ121の通信インターフェースのメモリ内に暗号化形式で記憶される(302)(これは、サーバに接続されたデバイスのセットに対するアプリケーション鍵のリストがエンドデバイス101の新しいアプリケーション鍵で更新されることを意味する)。
【0087】
その場合、エンドデバイス101は、鍵更新コマンドを受信し、エンドデバイスの信頼できる実行部分は、アプリケーション鍵の変更(ステップ304)に進む。
【0088】
新しい鍵の暗号化は、この目的で、エンドデバイス101内に前もって(たとえば、製造中に)記憶されている専用「更新鍵」305から行われる。あるいは、変更は、そこから信頼できる実行部分が前の鍵から新しい鍵(306)を暗号化し得る、エンドデバイス101の通信インターフェースのメモリ内に記憶された特定の暗号プリミティブ(「更新鍵プリミティブ」)を使用することによって行われてもよい。
【0089】
当然、サーバ側の暗号化はまた、サーバの通信インターフェースのメモリ内に記憶された「更新鍵」を介して実行され得る。
【0090】
図4aおよび
図4bは、本発明の可能な実施形態における、暗号コードアップグレードの様々なステップを示すフローチャートである。
【0091】
IoTは、非常に革新的なフィールドであり、これは、プロトコルのセキュリティ特徴に、プロトコルの進化が経時的に加えられ得ると同様に、拡張および補正が加えられ得ることを意味する。
【0092】
セキュリティアップグレードの一例は、1つの機器(エンドデバイスまたはサーバ)のメモリのリプログラマブルセクション内に記憶されている暗号アルゴリズムに関する。そのようなアップグレードは、マイクロコントローラの旧来の文脈では典型的なアプリケーションであるが、通信プリミティブが非常に小さなペイロードサイズ(一般に、LoRaWANの場合、50バイト)に制限され、デューティサイクル制限(一般に、所与のRFセル内のすべてのデバイス同士の間でダウンリンクにおいて共有される、1%のエアタイム)を受けるIoTネットワークの文脈では簡単ではない。
【0093】
その結果、IoT通信リンクの文脈でアップグレード可能性を可能にするために、
-RFセルエアタイムを最低限に抑えると同時に、アップグレードされたコードを複数のデバイスに同時に効率的に伝え、
- 所与のコード変更のためにオーバージエアで送られるデータ量を最低限に抑える
ことが必要とされる。
【0094】
本発明は、これらの要件を満たす、そのようなコードアップグレードを可能にする。
【0095】
秘密である必要がなく、認証のみが必要な、コードおよびアルゴリズムの進歩のために、コンパイルされたコード内の変更のみを送信することが可能である。再コンパイルされたバイナリコード全体をデバイスに送信する慣例とは逆に、アップグレードされたバイナリコードと元のコードの間の差異のみが送信され得る。これは、ある機能ブロック内の変更が他のブロック内のポインタに影響を及ぼさないように、コードのすべてのサブ機能が事前定義されたオフセットにリンクされるコンパイル規律を使用することによって行われ得る。したがって、非常に小さなコード「パッチ」が使用され、これは、IoT通信の制約に適合する。
【0096】
したがって、サーバ側のコードアップグレードのプロセスを説明する
図4aを参照すると、第1のステップ401の間に、完全なアップグレードされたコードシーケンスと完全な元のコードシーケンスとの間の差異を計算することができる。このステップの結果は、その場合、アップグレードされなければならないコード部分のみを含むコードのシーケンスのセットを含む、コードアップグレードコマンドである。
【0097】
ステップ402で、サーバの信頼できる実行部分によってコードアップグレードコマンドを暗号化することができる。暗号化の場合、マルチキャスト鍵(または、グループ鍵)を使用することが可能である:ワイヤレスデバイスがワイヤレスデバイスのマルチキャストグループに参加するためのコマンドを送るとき、ワイヤレスデバイスのマルチキャストグループに固有の暗号化「グループ鍵」がデバイスに送られる。この暗号グループ鍵は、マイクロプロセッサのルートシークレットを用いて信頼できる実行部分によって暗号化され、メモリのリプログラマブルセクション内に記憶され得る。ワイヤレスデバイスのグループの各デバイス、ならびにネットワークサーバは、暗号グループ鍵をその通信インターフェースのリプログラマブルメモリセクション内に記憶している。グループ鍵は、直接的に、または鍵導出によって、たとえば、グループ鍵のハッシュおよび復号されたパケットのLoRaWANアップリンクパケットカウンタに基づいて、マルチキャストパケットペイロード解読鍵を導出することによって、間接的に使用され得る。
【0098】
マルチキャストグループの各デバイスが異なる理由でランダムパケット損失を受けると、ステップ403において、冗長情報が任意選択で追加され得る。これにより、受信側デバイスは、大きな情報損失を補償することができる。特定の実施形態では、これは、信頼できる、効率的な情報転送を必要とするアプリケーションにうまく適応する低密度パリティチェック(LDPC)コードを使用して達成され得る。LDPCコードを使用した前方誤り補正が当技術分野でよく知られている。たとえば、Gallager,R.G.、「Low Density Parity Check Codes」、Monograph、M.I.T.Press、1963年を参照されたい。
【0099】
次いで、各断片が、メッセージ内で、アップグレードされる必要があるデバイスのグループのマルチキャストアドレスに送信され得る(ステップ405)ように、ステップ404の間に、コードアップグレードコマンドを複数の断片に分離することができる。
【0100】
次に、
図4bを参照すると、次いで、暗号化された断片が、デバイスのグループのエンドデバイスによって受信され(ステップ406)、暗号グループ鍵を用いて、デバイスの信頼できる実行部分によって解読される。次いで、サーバ側の冗長符号化のために選定されたアルゴリズムに対応する冗長復号を、任意選択で、複数の断片に適用することができる(ステップ407)。次いで、エンドデバイスのメモリ内に記憶されたコンピュータコード内で変更されなければならない、アップグレードされたコード部分を取得するために、断片が再アセンブルされる(ステップ408)。次いで、アップグレードするためのコード部分は、対応する、アップグレードされたコード部分によって置換され得、完全なアップグレードされたコードシーケンスを復元することができる(ステップ409)。
【0101】
受信されたデータの真正性を検査するために(ステップ410)、デバイスは、アップグレードコードを収集して再構築した後で、その独自の暗号化アプリケーション鍵(AppKey)を使用して、受信されたパッチの第1のハッシュ(たとえば、SHA256ハッシュ)を計算することができる。次いで、ハッシュコードは、本発明による通信インターフェースを備えた検証サーバに送られる。検証サーバは、ネットワークサーバであってよく、または別のセキュアサーバであってもよい。
【0102】
検証サーバの信頼できる実行部分は、次いで、当該デバイスのAppKeyから第2のハッシュを計算する(このAppKeyは、サーバに接続されたデバイスのすべてのアプリケーション鍵同様、サーバのメモリ内に記憶されている)。最終的に、検証サーバは、2つのハッシュを比較することによって、ハッシュコードが、デバイスに送信されなければならないデータに対応するかどうかを検査する。2つのハッシュが等しい場合、検証サーバは、メッセージをエンドデバイスに送り、コンピュータコードが変更され得るかどうかを検証し、アップグレードされたコードは、デバイスのメモリ内に記憶される(ステップ411)。
【0103】
グループ鍵ではなく、エンドデバイスの個々の暗号化アプリケーション鍵を使用する1つの利点は、セキュリティレベルを高めることである。実際に、鍵グループが損なわれた場合、受信されたデータを認証するために個々のAppKeyを使用することは、そのグループのすべてのデバイス内への悪意のあるコードまたは損なわれたコードの導入を回避する。
【0104】
提案する通信インターフェース、およびデバイス内またはサーバ内でのその使用は、特定のセキュアエレメント(SE)チップの必要性をなくすことによって、当技術分野の既存のIoT状態にコストおよび空間の点でより大きな効果を実現する。その使用は、厳しい通信リンク制約(非常に制限されたデータ量)の文脈で、IoTセキュリティサブシステムの暗号ルート鍵とコードの両方をアップグレードする技術的手段を提供することによって、SEチップに関連する旧式化の問題にも対処し得る。
【0105】
このことは、ネットワークにおいて、非セキュアな通信リンクまたはメモリに対する秘密材料のいかなる露出も除去することによって、LPWANの高いレベルのセキュリティを可能にする。デバイスの機密暗号鍵に対するアクセスは、物理的に不可能になる。したがって、コンピュータシステムの特定の保護または信頼できる第三者を有する必要性は低減される。
【0106】
当然、本発明は、例として上記で説明した実施形態に限定されない。本発明は、他の変形態に及ぶ。
【0107】
たとえば、実施形態のうちのいくつかがLoRa通信プロトコルの文脈で提示されているとしても、本発明は、これらに限定されない。本発明は、暗号プリミティブ、または1.0以外のLoraWANのバージョンを含めて、いずれのLPWANにおいても使用され得る。
【0108】
その上、「オーバージエアアクティブ化」方法がここで説明されているとしても、本発明は、このタイプのアクティブ化に限定されない。たとえば、LoRaWANの文脈で、本発明は、エンドデバイスが、DevEUI、AppEUI、およびAppKeyの代わりに、DevAddrおよび2つのセッション鍵NwkSKeyおよびAppSKeyがエンドデバイス内に直接記憶される個人化によりアクティブ化される(APB:Activated By Personalization)場合に使用され得る。
【0109】
また、本発明がいくつかのアクティブ化方法またはアップグレード方法に関して提示されているとしても、本発明は他の状況においても使用され得る。たとえば、国防軍が必要とし得る鍵のエクスポートは、たとえば、本書で開示したような通信インターフェースによって実行され得る。それは、公証人または同様の信頼できるエンティティが存在する場合のみ、鍵に対するアクセスが可能になるように、たとえば、いくつかの秘密の同時提示を必要とするセキュアモードで実行する特定のカスタムプリミティブによって実装され得る。
【符号の説明】
【0110】
101 デバイス、エンドデバイス
102 デバイス、エンドデバイス
103 デバイス、エンドデバイス
111 ゲートウェイ
112 ゲートウェイ
121 中央ネットワークサーバ、ネットワークサーバ
128 高度暗号化規格(AES)
131 アプリケーションサーバ
132 アプリケーションサーバ
200 通信インターフェース
201 信頼できない実行部分
202 信頼できる実行部分
203 通信プロトコルライブラリ
204 アプリケーションレイヤ
205 メモリ
205a リプログラマブルメモリセクション
205b フラッシュセクション、RAMセクション
206 メモリエリア、コンピュータコード
207 メモリエリア、暗号鍵
208 エリア、暗号鍵
209 エリア、暗号鍵
210 ルートシークレット
211 LPWANセキュリティ機能、解読機能
212 マイクロコントローラチップ
213 機器
220 通信インターフェース