[関連出願への相互参照]
この出願は、2019年11月29日付で中国専利局に出願された"鍵交渉方法及び電子デバイス"と題する中国特許出願番号第201911207543.X号に基づく優先権を主張し、その内容は、その全体が参照により本明細書に組み込まれる。
[技術分野]
この出願は、通信技術の分野に関し、特に、鍵交渉方法及び電子デバイスに関する。
モノのインターネット(internet of things, IoT)デバイスがネットワークにアクセスした後に、ユーザは、携帯電話にインストールされている(以下では、略して、IoTアプリケーションと称される)IoTアプリケーションプログラムを使用することによって、IoTデバイスを制御することが可能である。ある1つの例において、IoTデバイスは、スマートデスクランプである。ユーザは、携帯電話にインストールされているIoTアプリケーションに対して対応する操作を実行し、それによって、その携帯電話は、ユーザの操作に応答して、スマートデスクランプに制御命令を送信して、例えば、スマートデスクランプをオンにするか又はオフにするように制御するといったように、スマートデスクランプを制御してもよい。
携帯電話とIoTデバイスとの間の通信の安全性を保証するために、通常は、セッション鍵を使用して、携帯電話とIoTデバイスとの間で暗号化されている通信を実行する。一方で、従来技術においては、セッション鍵は、IoTデバイスを発見した後に、エンドトゥエンド(station to station, STS)交渉により携帯電話によって取得される。セッション鍵を取得するこの方式は、効率が比較的低い。
この出願は、鍵交渉方法及び電子デバイスを提供して、IoTデバイスとIoT制御デバイスとの間のメッセージ交換の数を減少させ、それにより、セッション鍵を取得する効率を改善する。
第1の態様によれば、この出願のある1つの実施形態は、鍵交渉方法を提供し、その鍵交渉方法は、具体的には、以下のステップを含む。
IoT制御デバイスは、第1のローカルエリアネットワークにおいて発見メッセージをマルチキャストする。その発見メッセージは、第1の公開鍵を含む。第1のローカルエリアネットワークは、IoT制御デバイスがアクセスしているネットワークである。第1の公開鍵は、第1の乱数に基づいて取得される。
第1のIoTデバイスは、IoT制御デバイスからの発見メッセージを受信し、そして、IoT制御デバイスに発見応答を送信する。発見応答は、第1の暗号文及び第2の公開鍵を含む。第1の暗号文は、第1のセッション鍵に基づいて、第1のIoTデバイスのデバイス情報を暗号化することによって取得される。第2の公開鍵は、第2の乱数に基づいて取得される。第1のセッション鍵は、第2の乱数及び第1の公開鍵に基づいて第1のIoTデバイスによって取得される。
第1のIoTデバイスからの発見応答を受信した後に、IoT制御デバイスは、第1のIoTデバイスに第2の暗号文を送信する。第2の暗号文は、第1のセッション鍵に基づいて、第1の署名を暗号化することによって取得される。第1の署名は、IoT制御デバイスの長期秘密鍵に基づく第1のセッション情報に対する署名である。第1のセッション情報は、第1の公開鍵及び第2の公開鍵を含む。第1のセッション鍵は、第1の乱数及び第2の公開鍵に基づいてIoT制御デバイスによって取得される。
IoT制御デバイスが送信する第2の暗号文を受信した後に、第1のIoTデバイスは、第1のセッション鍵に基づいて、第2の暗号文を復号化して、第1の署名を取得する。加えて、第1のIoTデバイスは、IoT制御デバイスの長期公開鍵に基づく第1の署名の検証に成功した後に、IoT制御デバイスに第3の暗号文を送信する。第3の暗号文は、第1のセッション鍵に基づいて第2の署名及び第2のセッション情報を暗号化することによって取得される。第2の署名は、IoTデバイスの長期秘密鍵に基づく第3のセッション情報に対する署名である。第3のセッション情報は、第2の公開鍵及び第1の公開鍵を含む。第2のセッション情報は、セッション識別子IDを含む。
第1のIoTデバイスからの第3の暗号文を受信した後に、IoT制御デバイスは、第1のセッション鍵に基づいて、第3の暗号文を復号化して、第2の署名及び第2のセッション情報を取得し、そして、第1のIoTデバイスの長期公開鍵に基づいて、第2の署名を検証する。第2の署名の検証に成功した後に、IoT制御デバイスは、第1のセッション鍵及び第2のセッション情報を保存する。
最終的に、IoT制御デバイスは、第1のセッション鍵に基づいて、第1のIoTデバイスとの間で暗号化されている通信を実行する。
この出願のこの実施形態において、IoT制御デバイスは、発見メッセージに第1の公開鍵を追加し、IoTデバイスに発見メッセージをマルチキャストするので、STS交渉プロセスは、一体化されて、発見プロセスとなる。このことは、IoTデバイスとIoT制御デバイスとの間のメッセージ交換の数を減少させ、セッション鍵を取得する効率を改善するのに役立つ。加えて、その発見プロセスにおいて、IoTデバイスは、さらに、セッション鍵を使用することによって、デバイス情報を暗号化し、そして、その次に、IoT制御デバイスに暗号化されているデバイス情報を送信してもよく、それにより、ネットワークにおいてIoTデバイスのデバイス情報を露出させることによって引き起こされる攻撃リスクを減少させることが可能である。
ある1つの可能な設計において、第2のセッション情報は、第1のセッション鍵の有効期間をさらに含む。上記の技術的解決方法は、第1のセッション鍵の漏洩のリスクを減少させるのに役立つとともに、IoT制御デバイスとIoTデバイスとの間の通信の安全性を改善するのに役立つ。
ある1つの可能な設計において、IoT制御デバイスからの発見メッセージを受信した後に、第1のIoTデバイスが、その第1のIoTデバイスとIoT制御デバイスとの間の格納されている第2のセッション鍵が、有効期間の範囲内にはないということを決定するか、又は、その第1のIoTデバイスとIoTデバイスとの間のセッション情報が格納されていないということを決定する場合に、その第1のIoTデバイスは、IoT制御デバイスに発見応答を送信する。
ある1つの可能な設計において、発見メッセージを受信した後に、第1のIoTデバイスが、第1のIoTデバイスとIoT制御デバイスとの間の格納されている第2のセッション鍵が、有効期間の範囲内にあるということを決定する場合、又は、第1のIoTデバイスとIoTデバイスとの間の格納されているセッション情報が、失われていないということを決定する場合に、第1のIoTデバイスは、IoT制御デバイスに第4の暗号文を送信する。第4の暗号文は、第1のセッション鍵に基づいて第1の情報を暗号化することによって取得される。第1の情報は、IoTデバイスのデバイス情報を含む。第1のIoTデバイスが送信する第4の暗号文を受信した後に、IoT制御デバイスが、そのIoT制御デバイスと第1のIoTデバイスとの間の格納されている第2のセッション鍵が、有効期間の範囲内にあるということを決定する場合、又は、IoT制御デバイスと第1のIoTデバイスとの間の格納されているセッション情報が失われていないということを決定する場合に、IoT制御デバイスは、第2のセッション鍵に基づいて、第1のIoTデバイスとの間で暗号化されている通信を実行する。第1のIoTデバイス及びIoT制御デバイスの中に格納されている第2のセッション鍵が、有効期間の範囲内にあるとき、又は、第1のIoTデバイスとIoT制御デバイスとの間の格納されているセッション情報が失われていないときは、IoT制御デバイス及び第1のIoTデバイスは、第2のセッション鍵に基づいて、暗号化されている通信を実行し、それにより、さらに、メッセージ交換の数を減少させるのに役立つとともに、セッション鍵交渉の効率を改善するのに役立つ。
ある1つの可能な設計において、第1の情報は、第4のセッション情報をさらに含み、第4のセッション情報は、第1のIoTデバイスとの間のセッションの格納されているIDを含み、それによって、IoT制御デバイスは、そのIoT制御デバイスと第1のIoTデバイスとの間のセッション情報を探索する。
ある1つの可能な設計において、IoT制御デバイスは、
第1のローカルエリアネットワークにおいて発見メッセージを周期的にマルチキャストする方式、及び/又は、
第2のローカルエリアネットワークから第1のローカルエリアネットワークへと切り替わるときに、第1のローカルエリアネットワークにおいて発見メッセージをマルチキャストする方式、及び/又は、
新たなIoTデバイスにバインドされるときに、第1のローカルエリアネットワークにおいて発見メッセージをマルチキャストする方式、及び/又は、
第2のIoTデバイスのセッション鍵が、有効期間の終了日時に達するときに、第1のローカルエリアネットワークにおいて発見メッセージをマルチキャストする方式、
によって、発見メッセージをマルチキャストしてもよい。
ある1つの可能な設計において、第1のIoTデバイスは、
IoT制御デバイスが第1のローカルエリアネットワークにおいてマルチキャストする発見メッセージを周期的に受信する方式、及び/又は、
ネットワーク切り替えの際に、IoT制御デバイスが第1のローカルエリアネットワークにおいてマルチキャストする発見メッセージを受信する方式、及び/又は、
IoT制御デバイスにバインドされた後に、IoT制御デバイスが第1のローカルエリアネットワークにおいてマルチキャストする発見メッセージを受信する方式、及び/又は、
第1のIoTデバイスとIoT制御デバイスとの間の格納されている第2のセッション鍵が、有効期間の終了日時に達するときに、IoT制御デバイスが第1のローカルエリアネットワークにおいてマルチキャストする発見メッセージを受信する方式、
によって、IoT制御デバイスが第1のローカルエリアネットワークにおいてマルチキャストする発見メッセージを受信してもよい。
ある1つの可能な設計において、第1のIoTデバイスは、第2のローカルエリアネットワークの中に存在する。
第2の態様によれば、この出願のある1つの実施形態は、IoT制御デバイス及び第1のIoTデバイスを含む通信システムを提供する。
IoT制御デバイスは、第1のローカルエリアネットワークにおいて発見メッセージをマルチキャストするように構成される。発見メッセージは、第1の公開鍵を含む。第1のローカルエリアネットワークは、IoT制御デバイスがアクセスしているネットワークである。第1の公開鍵は、第1の乱数に基づいて取得される。
IoT制御デバイスは、さらに、第1のIoTデバイスからの発見応答を受信し、そして、第1のIoTデバイスに第2の暗号文を送信する、ように構成される。発見応答は、第1の暗号文及び第2の公開鍵を含む。第1の暗号文は、第1のセッション鍵に基づいて、第1のIoTデバイスのデバイス情報を暗号化することによって取得される。第2の公開鍵は、第2の乱数に基づいて取得される。第2の暗号文は、第1のセッション鍵に基づいて、第1の署名を暗号化することによって取得される。第1の署名は、IoT制御デバイスの長期秘密鍵に基づく第1のセッション情報に対する署名である。第1のセッション情報は、第1の公開鍵及び第2の公開鍵を含む。第1のセッション鍵は、第1の乱数及び第2の公開鍵に基づいてIoT制御デバイスによって取得される。
IoT制御デバイスは、さらに、第1のIoTデバイスから第3の暗号文を受信し、第1のセッション鍵に基づいて、第3の暗号文を復号化して、第2の署名及び第2のセッション情報を取得し、そして、その次に、第1のIoTデバイスの長期公開鍵に基づいて、第2の署名を検証し、第2の署名の検証に成功した後に、第1のセッション鍵及び第2のセッション情報を格納し、そして、最後に、第1のセッション鍵に基づいて、第1のIoTデバイスとの間で暗号化されている通信を実行する、ように構成される。
第1のIoTデバイスは、IoT制御デバイスからの発見メッセージを受信し、IoT制御デバイスに発見応答を送信し、IoT制御デバイスが送信する第2の暗号文を受信し、その次に、第1のセッション鍵に基づいて、第2の暗号文を復号化して、第1の署名を取得し、第1のIoTデバイスが、IoT制御デバイスの長期公開鍵に基づく第1の署名の検証に成功した後に、IoT制御デバイスに第3の暗号文を送信する、ように構成される。第3の暗号文は、第1のセッション鍵に基づいて第2の署名及び第2のセッション情報を暗号化することによって取得される。第2の署名は、IoTデバイスの長期秘密鍵に基づく第3のセッション情報に対する署名である。第3のセッション情報は、第2の公開鍵及び第1の公開鍵を含む。第2のセッション情報は、セッション識別子IDを含む。
第3の態様によれば、この出願のある1つの実施形態は、プロセッサ、メモリ、及びトランシーバーを含む電子デバイスを提供する。プロセッサは、メモリ及びトランシーバーに結合される。メモリは、プログラム命令を格納する。プロセッサは、メモリの中に格納されているプログラム命令を読み出しそして実行するように構成される。プログラム命令がプロセッサが実行するときに、電子デバイスが、この出願の複数の実施形態の第1の態様及び第1の態様の複数の可能な設計のうちのいずれか1つにしたがった方法においてIoT制御デバイス又はIoTデバイスが実行するステップを実装することを可能とする。
第4の態様によれば、この出願のある1つの実施形態は、電子デバイスを提供し、その電子デバイスは、第1の態様及び第1の態様の複数の可能な設計のうちのいずれか1つにしたがった方法においてIoT制御デバイス又はIoTデバイスが実行するステップを実行するための装置を含む。
第5の態様によれば、この出願のある1つの実施形態は、コンピュータ読み取り可能な記憶媒体を提供する。コンピュータ読み取り可能な記憶媒体は、プログラム命令を格納する。プログラム命令が電子デバイスにおいて実行されるときに、電子デバイスが、この出願の複数の実施形態の第1の態様及び第1の態様の複数の可能な設計のうちのいずれか1つにしたがった方法においてIoT制御デバイス又はIoTデバイスが実行するステップを実行することを可能とする。
第6の態様によれば、この出願のある1つの実施形態は、コンピュータプログラム製品を提供する。コンピュータプログラム製品が電子デバイスにおいて実行されるときに、電子デバイスが、この出願の複数の実施形態の第1の態様及び第1の態様の複数の可能な設計のうちのいずれか1つにしたがった方法においてIoT制御デバイス又はIoTデバイスが実行するステップを実行することを可能とする。
第7の態様によれば、この出願のある1つの実施形態は、チップを提供する。そのチップは、電子デバイスの中のメモリに結合され、この出願の複数の実施形態の第1の態様及び第1の態様の複数の可能な設計のうちのいずれか1つにしたがった方法においてIoT制御デバイス又はIoTデバイスが実行するステップを実行するように、電子デバイスを制御する。
加えて、第2の態様乃至第7の態様がもたらす技術的効果については、上記の方法の部分における設計方法の関連する説明を参照すべきである。本明細書においては、詳細は繰り返しては説明されない。
この出願のそれらの複数の実施態様における"結合"は、2つの構成要素が互いに直接的に又は間接的に接続されるということを意味するということに留意すべきである。
図1は、IoT制御デバイスがこの出願のある1つの実施形態にしたがってIoTデバイスを制御するシナリオである。
IoT制御デバイスがこの出願のある1つの実施形態にしたがってIoTデバイスを制御する他のシナリオである。
この出願のある1つの実施形態にしたがった鍵交渉方法の概略的なフローチャートである。
この出願のある1つの実施形態にしたがったネットワークアーキテクチャの概略的な図である。
この出願のある1つの実施形態にしたがった他の鍵交渉方法の概略的なフローチャートである。
この出願のある1つの実施形態にしたがったIoTデバイスバインディング手順の概略的な図である。
この出願のある1つの実施形態にしたがったユーザインターフェイスの概略的な図である。
この出願のある1つの実施形態にしたがったユーザインターフェイスの概略的な図である。
この出願のある1つの実施形態にしたがったユーザインターフェイスの概略的な図である。
この出願のある1つの実施形態にしたがったユーザインターフェイスの概略的な図である。
この出願のある1つの実施形態にしたがったユーザインターフェイスの概略的な図である。
この出願のある1つの実施形態にしたがった他のユーザインターフェイスの概略的な図である。
この出願のある1つの実施形態にしたがった他のユーザインターフェイスの概略的な図である。
この出願のある1つの実施形態にしたがった他の鍵交渉方法の概略的なフローチャートである。
この出願のある1つの実施形態にしたがった電子デバイスの概略的な構成図である。
この出願のある1つの実施形態にしたがった通信システムの概略的な図である。
この出願に別段の定めがない限り、"/"は、又はを意味するということを理解するべきである。例えば、A/Bは、A又はBを表してもよい。この出願における"及び/又は"の語は、複数の関連する対象を説明するための関連性関係のみを説明し、3つの関係が存在する場合があるということを表す。例えば、A及び/又はBは、Aのみが存在する場合、A及びBの双方が存在する場合、及び、Bのみが存在する場合を表してもよい。"少なくとも1つの"は、1つ又は複数を意味する。"複数の"は、2つ又はそれ以上を意味する。例えば、a、b、又はcのうちの少なくとも1つは、a、b、c、a及びb、a及びc、b及びc、及び、a、b及びcの7つの場合を表してもよい。
この出願において、"例"、"複数の実施形態のうちのいくつかにおいて"、及び"複数の他の実施形態のうちのいくつかにおいて"等は、複数の例、図解、又は説明を表すのに使用される。この出願において"例"として説明されるいずれかの実施形態又は設計スキームは、他の実施形態又は設計スキームよりもより好ましく又はより大きな利点を有するものとして説明されるべきではない。正確には、"例えば"は、ある特定の方式によって概念を示すのに使用される。
加えて、この出願における"第1の"及び"第2の"の語は、説明の目的を意図しているにすぎず、示されているそれらの複数の技術的特徴の相対的重要度又は黙示的指標を示したり又は暗示するものとして理解されるべきではない。
ユーザは、IoTアプリケーションがインストールされている電子デバイスを使用することによって、IoTデバイスを制御してもよい。IoTアプリケーションがインストールされているその電子デバイスは、以下では、IoT制御デバイスと称される。例えば、IoT制御デバイスは、携帯電話、タブレットコンピュータ、ノートブックコンピュータ、ウルトラモバイルパーソナルコンピュータ(ultra-mobile personal computer, UMPC)、ネットブック、又はパーソナルデジタルアシスタント(personal digital assistant, PDA)等の運搬可能な電子デバイスであってもよい。他の例では、IoT制御デバイスは、代替的に、デスクトップコンピュータ又はスマートスクリーン等であってもよい。IoT制御デバイスの具体的なタイプは、この出願の複数の実施形態においては限定されない。従来のテレビとは異なり、スマートスクリーンは、新しい大画面の製品であるということに留意すべきである。オーディオプレイ及びビデオプレイを実装するだけでなく、スマートスクリーンは、家庭でより多くの役割を果たす。例えば、スマートスクリーンは、インタラクションセンター、情報共有センター、及びスマートホームデバイス又は携帯電話等のインテリジェントデバイスの制御管理センターであってもよい。
この出願においては、IoTデバイスは、例えば、スマートスピーカ、スマートデスクランプ、スマートエアコン、スマート冷蔵庫、又はスマートカーテン等のスマートホームデバイスであってもよい。加えて、IoTデバイスは、代替的に、車載型デバイス、ウェアラブルデバイス、又は、拡張現実感(augmented reality, AR)/仮想現実感(virtual reality, VR)デバイス等のスマートデバイスであってもよい。IoTデバイスの具体的なタイプは、この出願の複数の実施形態においては限定されない。
具体的には、IoT制御デバイスは、IoTデバイスに制御命令を送信することによって、そのIoTデバイスを制御する。通常、IoTデバイスは、ユーザがIoTアプリケーションに対して実行する操作に応答して、IoTデバイスに制御命令を送信する。複数の異なるタイプのIoTデバイスのための制御命令は、同じであってもよく又は異なっていてもよいということに留意すべきである。例えば、スマートスピーカの場合には、制御命令は、プレイ命令、プレイ中断命令、音量調整命令、プレイ進行調整命令、又はプレイコンテンツ切り替え命令等を含んでもよい。他の例では、スマートデスクランプの場合には、制御命令は、ライトオン命令、ライトオフ命令、又は輝度調整命令等を含んでもよい。
加えて、IoTデバイスは、さらに、IoT制御デバイスにデバイス状態情報を報告してもよく、それによって、そのIoT制御デバイスは、ユーザにIoTデバイスの現在の状態を提示することが可能である。デバイス状態情報は、IoTデバイスの現在の状態を示すのに使用される。例えば、IoTデバイスの現在の状態は、IoTデバイスの現在の実行状態及びIoTデバイスの現在の使用状態等を含んでもよい。
ある1つの例として、スマートスピーカを使用する。IoT制御デバイスは、スマートスピーカにプレイ命令を送信する。プレイ中断状態にある状態で、IoT制御デバイスが送信するプレイ命令を受信した後に、スマートスピーカは、そのプレイ命令に応答して、対応するコンテンツを再生し、それによって、スマートスピーカの現在の状態は、プレイ状態へと変化する。スマートスピーカの現在の状態が、プレイ中断状態からプレイ状態へと変化するときに、スマートスピーカは、IoT制御デバイスにデバイス状態情報を報告してもよい。デバイス状態情報は、スマートサウンドボックスの現在の状態がプレイ状態であるということを示すのに使用される。スマートスピーカが報告するデバイス状態情報を受信した後に、IoT制御デバイスは、そのデバイス状態情報に基づいて、ユーザに提示されているスマートスピーカの現在の状態を更新してもよい。
図1に示されているように、IoT制御デバイス及びIoTデバイスが個別にクラウドサーバに接続されているシナリオにおいて、IoT制御デバイスは、クラウドサーバを使用することによって、IoTデバイスに制御命令を送信し、IoTデバイスは、クラウドサーバを使用することによって、IoT制御デバイスにデバイス状態情報を送信する。このシナリオにおいては、IoTデバイス及びIoT制御デバイスが同じローカルエリアネットワークの中に存在するか否かにかかわらず、ユーザは、IoT制御デバイスを使用することによって、IoTデバイスを制御することが可能である。しかしながら、クラウドサーバを使用することによって、制御シグナリング及びデバイス状態情報の双方を転送する必要があるため、制御コマンドの実行及びデバイス状態情報の受信には、容易に、比較的高い遅延及び比較的低い成功率がもたらされる。
この目的のために、局所的な制御IoT解決方法を提案する。局所的な制御IoT解決方法においては、IoT制御デバイス及びIoTデバイスは、通常、同じローカルエリアネットワークの中に存在する。図2に示されているように、IoT制御デバイスとIoTデバイスとの間の制御シグナリング及びデバイス状態情報の交換は、クラウドサーバによって転送される必要はなく、それにより、制御コマンドを実行しそしてデバイス状態情報を受信する際に遅延を減少させるのに役立つ。例えば、この出願のローカルエリアネットワークは、Wi-Fiネットワークであってもよく又は有線ネットワークであってもよい。
具体的には、IoT制御デバイス及びIoTデバイスが同じローカルエリアネットワークの中に存在することは、IoT制御デバイス及びIoTデバイスが同じルータに接続されているということであると理解することが可能である。加えて、局所的な制御IoT解決方法において、IoT制御デバイス及びIoTデバイスは、代替的に、複数の異なるローカルエリアネットワークの中に存在してもよいということに留意すべきである。例えば、IoT制御デバイスは、第1のローカルエリアネットワークの中に存在し、且つ、第1のルータに接続され、IoTデバイスは、第2のローカルエリアネットワークの中に存在し、且つ、第2のルータに接続される。第1のルータ及び第2のルータは相互接続される。第1のルータ及び第2のルータが相互接続されているということは、第1のルータ及び第2のルータが、互いにメッセージを交換することが可能であり、第1のルータと第2のルータとの間の情報交換が、マルチキャストメッセージ交換を含むということであると理解することが可能であるということを理解すべきである。
ある1つの例において、IoT制御デバイスは、第1のローカルエリアネットワークの中に存在する。局所的な制御IoT解決方法においては、IoT制御デバイスは、IoTデバイス発見手順を開始して、IoTデバイスを発見し、それにより、IoTデバイスとの間の通信を実装する。加えて、IoT制御デバイスとIoTデバイスとの間の通信の安全性を確保するために、セッション鍵は、通常、IoT制御デバイスとIoTデバイスとの間の暗号化されている通信を実行するのに使用される。例えば、セッション鍵は、IoTデバイスを発見した後に、エンドトゥエンド(Station to Station, STS)プロトコルに基づいて、交渉により、IoT制御デバイスによって取得されてもよい。図3に以下のステップを含む特定の手順を示す。
ステップ301: IoT制御デバイスは、第1のローカルエリアネットワークにおいて発見メッセージをマルチキャストする。第1のローカルエリアネットワークは、IoT制御デバイスによって現在アクセスされているネットワークである。例えば、IoT制御デバイスは、ユーザデータグラムプロトコル(user datagram protocol, UDP)又はマルチキャストドメインネームシステム(multicast domain name system, mDNS)プロトコルに基づいて、第1のローカルエリアネットワークにおいて発見メッセージをマルチキャストしてもよい。
発見メッセージは、また、検出メッセージ、デバイス発見メッセージ、又はデバイス検出メッセージ等と称されてもよいということを理解することが可能である。例えば、発見メッセージは、例えば、デバイス識別子(identity, ID)、IPアドレス、及びIoT制御デバイスのユーザID等のIoT制御デバイスの関連する情報を含んでもよい。
ステップ302: IoTデバイス1は、発見メッセージを受信した後に、IoT制御デバイスにIoTデバイス1のデバイス情報を返送する。
例えば、IoTデバイス1は、発見応答にIoTデバイス1のデバイス情報を追加し、そして、IoT制御デバイスにその発見応答を返送してもよい。発見応答は、また、検出応答、デバイス発見応答、又はデバイス検出応答等と称されてもよい。
具体的には、この出願のこの実施形態におけるIoTデバイス1のデバイス情報は、デバイスID、デバイスタイプ、インターネットプロトコル(internet protocol, IP)アドレス、及びポート番号等のうちの1つ又は複数を含んでもよい。例えば、IoTデバイス1のデバイス情報は、デバイスIDを含む。他の例では、IoTデバイス1のデバイス情報は、IPアドレスを含む。他の例では、IoTデバイス1のデバイス情報は、デバイスID、デバイスタイプ、及びIPアドレスを含む。さらに別の例では、IoTデバイス1のデバイス情報は、デバイスID、デバイスタイプ、IPアドレス、及びポート番号を含む。
デバイスタイプは、テレビジョン、スピーカ、エアコン、電気ランプ、又は冷蔵庫等を含んでもよいということに留意すべきである。例えば、IoTデバイス1は、スマートデスクランプであり、IoTデバイス1のタイプは、電気ランプである。他の例では、IoTデバイス1は、スマート冷蔵庫であり、IoTデバイス1のタイプは、冷蔵庫である。
ステップ303: IoT制御デバイスは、IoTデバイス1のデバイス情報を受信した後に、IoTデバイス1に公開鍵K0を送信する。公開鍵K0は、乱数L0に基づいて生成される。
この出願のこの実施形態において、乱数L0は、また、秘密鍵と称されてもよく、公開鍵K0と共に鍵ペアを形成するということに留意すべきである。例えば、この出願のこの実施形態において、IoT制御デバイスは、関数f()の入力として乱数L0を使用し、公開鍵K0として関数f()の出力を使用してもよい。関数f()は、指数関数、べき乗関数、2次関数、又は3次関数等であってもよい。このことは、限定されない。例えば、関数f()は、y=gxであり、乱数L0がx0であるときに、公開鍵K0は、y0であり、y0=gx0である。関数f()は、プロトコルを使用することによって定義されてもよく、或いは、ポリシー又はアルゴリズムに基づいて、IoT制御デバイスによって決定されてもよい。このことは、限定されない。
ステップ304: IoTデバイス1は、公開鍵K0を受信した後に、公開鍵K0及び乱数L1に基づいて、セッション鍵H1を生成する。加えて、IoTデバイス1は、IoTデバイス1の長期秘密鍵S1を使用することによって、セッション情報1に署名して、署名1を取得する。セッション情報1は、公開鍵K1及び公開鍵K0を含み、公開鍵K1は、乱数L1に基づいて生成される。その次に、IoTデバイス1は、セッション鍵H1を使用することによって、署名1を暗号化して、暗号文(ciphertext)1を取得する。
例えば、セッション情報1は、(公開鍵K1、公開鍵K0)を含む。
乱数L1及び公開鍵K1は、鍵ペアを形成するということに留意すべきである。IoTデバイス1が乱数L1に基づいて公開鍵K1を生成する方式については、乱数L0に基づいて公開鍵K0を生成する方式を参照すべきである。本明細書においては、詳細は繰り返しては説明されない。
IoTデバイス1の長期秘密鍵S1の有効期間は、あるしきい値以上である。例えば、IoTデバイス1の長期秘密鍵S1は、長期間にわたり有効であってもよく、デバイスが配送される前に構成されてもよい。IoTデバイス1における長期秘密鍵S1に対応する長期公開鍵G1の有効期間は、長期秘密鍵S1の有効期間と同じであり、デバイスが配送される前に構成されてもよい。
ステップ305: IoTデバイス1は、IoT制御デバイスに公開鍵K1及び暗号文1を送信する。
ステップ306: IoT制御デバイスは、公開鍵K1及び暗号文1を受信した後に、公開鍵K1及び乱数L0に基づいて、セッション鍵H1を生成する。その次に、IoT制御デバイスは、セッション鍵H1を使用することによって、暗号文1を復号化して、署名1を取得する。IoT制御デバイスは、IoTデバイス1の長期公開鍵G1を使用することによって、署名1を検証する。加えて、署名1の検証に成功した後に、IoT制御デバイスは、IoT制御デバイスの長期秘密鍵S0を使用することによって、セッション情報2に署名して、署名2を取得し、セッション鍵H1を使用することによって、署名2を暗号化して、暗号文2を取得する。セッション情報2は、公開鍵K0及び公開鍵K1を含む。例えば、セッション情報2は、(公開鍵K0、公開鍵K1)を含む。
具体的には、IoT制御デバイスの長期秘密鍵S0の有効期間は、あるしきい値以上である。例えば、IoT制御デバイスの長期秘密鍵S0は、長期間にわたって有効であってもよく、そのデバイスが配送される前に構成されてもよい。IoT制御デバイスにおける長期秘密鍵S0に対応する長期公開鍵G0の有効期間は、長期秘密鍵S0の有効期間と同じであり、同様に、そのデバイスが配送される前に構成されてもよいということに留意すべきである。
ステップ307: IoT制御デバイスは、IoTデバイス1に暗号文2を送信する。
ステップ308: 暗号文2を受信した後に、IoTデバイス1は、セッション鍵H1を使用することによって、暗号文2を復号化して、署名2を取得する。その次に、IoTデバイス1は、IoT制御デバイスの長期公開鍵G0を使用することによって、署名2を検証する。
ステップ309: IoTデバイス1は、署名2の検証に成功した後に、IoT制御デバイスにセッション情報3を送信する。例えば、IoTデバイス1は、最初に、セッション鍵H1を使用することによって、セッション情報3を暗号化し、そして、その次に、IoT制御デバイスに暗号化されたセッション情報3を送信してもよく、それにより、セッション情報3を送信する際のセキュリティを改善する。
例えば、セッション情報3は、セッションID等を含んでもよい。IoT制御デバイスが、IoTデバイス1が送信するセッション情報3を受信した後に、IoT制御デバイス及びIoTデバイス1は、セッション鍵H1を使用することによって、暗号化された通信を実行してもよい。
例えば、IoT制御デバイスは、セッション鍵H1を使用することによって、制御命令を暗号化し、IoTデバイス1にその暗号化された制御命令を送信する。
IoTデバイス1については、ステップ301及びステップ302は、IoTデバイス発見プロセスであるということに留意すべきである。ステップ303乃至ステップ309は、STS交渉プロセスである。(例えば、IoTデバイス2又はIoTデバイスn等の)他のIoTデバイスは、また、IoT制御デバイスが第1のローカルエリアネットワークにおいてマルチキャストする発見メッセージを受信する場合に、IoT制御デバイスに他のIoTデバイスのデバイス情報を返送する。この場合には、また、IoT制御デバイスと他のIoTデバイスとの間でSTS交渉プロセスを実行して、IoT制御デバイスと他のIoTデバイスとの間の通信のために使用されるセッション鍵を取得してもよい。IoT制御デバイスと他のIoTデバイスとの間のSTS交渉プロセスについては、IoT制御デバイスとIoTデバイス1との間のSTS交渉プロセスを参照すべきである。本明細書においては、詳細は繰り返しては説明されない。
図3に示されている方法において、IoTデバイスを発見した後に、IoT制御デバイスは、STS交渉プロセスを実行して、セッション鍵を取得し、そして、IoT制御デバイスとIoTデバイスとの間の暗号化された通信を実装する。したがって、セッション鍵を取得するこの方式においては、効率は比較的低くなる。加えて、IoTデバイス発見プロセスにおいては、IoT制御デバイスが送信する発見メッセージを受信した後に、IoTデバイスは、IoT制御デバイスにデバイス情報を平文で返送する。結果として、IoTデバイスのデバイス情報は、ネットワークの中で容易に公開され、攻撃者は、IoTデバイスを攻撃することが可能である。
このことを考慮して、この出願のある1つの実施形態は、鍵交渉方法を提供する。STS交渉プロセスを一体化して、発見プロセスとし、それにより、IoTデバイスとIoT制御デバイスとの間のメッセージ交換の数を減少させるのに役立つとともに、セッション鍵を取得する効率を改善するのに役立つ。加えて、発見プロセスにおいて、IoTデバイスは、さらに、セッション鍵を使用することによって、デバイス情報を暗号化し、そして、その次に、IoT制御デバイスにその暗号化されているデバイス情報を送信してもよく、それにより、ネットワークの中でIoTデバイスのデバイス情報を公開することによって引き起こされる攻撃リスクを減少させる。
例えば、図4は、この出願のある1つの実施形態が適用可能であるネットワークアーキテクチャの概略的な図である。そのネットワークアーキテクチャは、IoT制御デバイス、ルータ、及びIoTデバイスを含む。この出願のこの実施形態において、IoTデバイスとルータとの間の接続方式は、無線接続であってもよく又は有線接続であってもよいということに留意すべきである。IoT制御デバイスとルータとの間の接続方式は、無線接続であってもよく又は有線接続であってもよい。
図4は、この出願のこの実施形態が適用可能であるネットワークアーキテクチャのある1つの例であるにすぎず、この出願のこの実施形態が適用可能であるネットワークアーキテクチャに対する限定を構成しないということを理解すべきである。
具体的には、図5は、この出願のある1つの実施形態にしたがった鍵交渉方法の概略的なフローチャートである。その方法は、具体的には、以下のステップを含む。
ステップ501: IoT制御デバイスは、第1のローカルエリアネットワークにおいて発見メッセージをマルチキャストする。第1のローカルエリアネットワークは、IoT制御デバイスがアクセスしているネットワークである。発見メッセージは、公開鍵K0を含む。公開鍵K0は、乱数L0に基づいて生成される。
IoT制御デバイスが、乱数L0に基づいて公開鍵K0を生成するある特定の実装については、ステップ303において、公開鍵K0が乱数L0に基づいて生成される実装の関連する説明を参照すべきである。本明細書においては、詳細は繰り返しては説明されない。加えて、発見メッセージは、例えば、デバイスID、IPアドレス、及びIoT制御デバイスのユーザID等のIoT制御デバイスの関連する情報をさらに含んでもよい。
IoT制御デバイスが第1のローカルエリアネットワークにおいて発見メッセージをマルチキャストするある特定の実装については、ステップ301における関連する実装を参照してもよいということに留意すべきである。本明細書においては、詳細は繰り返しては説明されない。
具体的には、IoT制御デバイスは、第1のローカルエリアネットワークにおいて、周期的に及び/又はイベントによるトリガをによって、発見メッセージをマルチキャストしてもよい。例えば、電源オンの後に、IoT制御デバイスは、(例えば、第1のローカルエリアネットワーク等の)ローカルエリアネットワークへのアクセスを検出し、そして、第1のローカルエリアネットワークにおける発見メッセージの周期的なマルチキャストをトリガしてもよい。加えて、他の例では、第1のローカルエリアネットワークにおける発見メッセージのマルチキャストをトリガするイベント又は第1のローカルエリアネットワークにおける発見メッセージの周期的マルチキャストをトリガするイベントは、第2のローカルエリアネットワークから第1のローカルエリアネットワークへと、IoT制御デバイスがアクセスするネットワークを切り替えるイベント、新たなIoTデバイスへとIoT制御デバイスをバインドするイベント、第1のローカルエリアネットワークにおいてIoTデバイスが送信する(例えば、電源がオフになり、そして、再始動された後に、IoTデバイスがIoT制御デバイスに送信するセッション鍵交渉指示であって、例えば、その指示は、特定のシンボル又はシーケンスであってもよい、セッション鍵交渉指示等の)セッション鍵交渉指示を受信するイベント、IoT制御デバイスにバインドされるIoTデバイスのセッション数が、システムが制限する最大値以上となっているというイベント、或いは、IoT制御デバイスにバインドされるIoTデバイスのセッション鍵が、有効期間の終了日時にすでに到達しているか又は到達しようとしているというイベント、を含んでもよい。例えば、セッション鍵の有効期間が30分であり、且つ、IoT制御デバイスが5:00の時点でセッション鍵を格納する場合に、そのセッション鍵の有効期間の終了日時は、5:30となる。IoT制御デバイスにバインドされているIoTデバイスのセッション鍵が、有効期間の終了日時に到達しようとしているということは、IoT制御デバイスにバインドされているIoTデバイスのセッション鍵が、第1の継続期間の後の有効期間の終了日時に到達するということであると理解されてもよいということに留意すべきである。第1の継続期間は、あらかじめ定義されていてもよく、又は、アルゴリズム又はポリシーに基づいて、IoTデバイスによって決定されてもよい。例えば、第1の継続期間は、2分又は15秒等であってもよい。このことは、限定されない。例えば、セッション鍵の有効期間が10分であり、且つ、IoT制御デバイスが4:00の時点でセッション鍵を格納する場合に、セッション鍵の有効期間の終了日時は、4:10となる。例えば、第1の継続期間は1分となる。4:09に達するときに、IoT制御デバイスは、第1のローカルエリアネットワークにおいて発見メッセージのマルチキャストをトリガする。
上記の記載は、第1のローカルエリアネットワークにおいて発見メッセージをマルチキャストするようにIoT制御デバイスをトリガするイベントの説明のためのある1つの例であるにすぎないということに留意すべきである。このことは、この出願のこの実施形態においては限定されない。
加えて、IoTデバイスが発見メッセージを周期的にマルチキャストするときに、隣接する期間の中でマルチキャストされる発見メッセージの中で搬送される複数の公開鍵K0は、異なっていてもよく、又は、複数の異なる期間の中でマルチキャストされる発見メッセージの中で搬送される複数の公開鍵K0は、異なっていてもよく、それにより、鍵交渉のセキュリティを改善するのに役立つ。複数の隣接する期間又は複数の異なる期間における発見メッセージが、異なる公開鍵K0を搬送するようにするために、IoT制御デバイスは、複数の隣接する期間又は複数の異なる期間において複数の異なる乱数L0及び/又は複数の異なるアルゴリズムを使用することによって、公開鍵K0を生成してもよい。
複数の実施形態のうちのいくつかにおいて、IoT制御デバイスは、第1のルータに発見メッセージを送信し、第1のルータは、第1のローカルエリアネットワークにおいて1つ又は複数のIoTデバイスに発見メッセージをマルチキャストする。第1のルータは、IoT制御デバイスが第1のローカルエリアネットワークにアクセスするのに使用されるルータである。
ステップ502: IoTデバイス1は、発見メッセージを受信した後に、公開鍵K0及び乱数L1に基づいてセッション鍵H1を生成する。その次に、IoTデバイス1は、セッション鍵H1を使用することによって、IoTデバイス1のデバイス情報を暗号化して、暗号文0を取得する。IoTデバイス1のデバイス情報については、図3におけるIoTデバイス1のデバイス情報の関連する説明を参照すべきである。本明細書においては、詳細は繰り返しては説明されない。
IoTデバイス1は、第1のローカルエリアネットワークの中に存在してもよく又は第1のローカルエリアネットワークの中に存在しなくてもよいということに留意すべきである。すなわち、IoTデバイス1がアクセスするネットワークは、第1のローカルエリアネットワークであってもよく又は第1のローカルエリアネットワークでなくてもよい。このことは、限定されない。
さらに、発見メッセージを受信した後に、IoTデバイス1は、IoTデバイス1がIoT制御デバイスにバインドされているか否かを決定する。IoTデバイス1がIoT制御デバイスにバインドされている場合に、IoTデバイス1は、公開鍵K0及び乱数L1に基づいて、セッション鍵H1を生成し、以降のステップを実行する。例えば、IoTデバイス1は、IoTデバイス1の中に格納されているユーザーIDが、発見メッセージの中で搬送されているユーザーIDと同じであるか否か又は関連しているか否かを決定して、IoTデバイス1がIoT制御デバイスにバインドされているか否かを決定してもよい。例えば、IoTデバイス1の中に格納されているユーザーIDが、発見メッセージの中で搬送されているユーザーIDと同じであるか又は関連している場合に、IoTデバイス1は、そのIoTデバイス1がIoT制御デバイスにバインドされているということを決定する。他の例では、IoTデバイス1は、さらに、IoTデバイス1が発見メッセージ中で搬送されているデバイスIDに対応する長期公開鍵を格納しているか否かを決定して、IoTデバイス1がIoT制御デバイスにバインドされているか否かを決定してもよい。
例えば、IoT制御デバイスにバインドされていないIoTデバイスが、IoT制御デバイスから発見メッセージを受信する場合に、IoTデバイスが、そのIoTデバイスがIoT制御デバイスにバインドされていないということを決定した後に、そのIoTデバイスは、発見メッセージが無効なメッセージであると考え、そして、その発見メッセージを破棄し又は無視する。IoTデバイスを購入した後に、ユーザは、通常、IoT制御デバイスに対して操作を実行することによって、IoTデバイスをバインドする手順を開始して、そのIoTデバイスをIoT制御デバイスにバインドし、その結果、ユーザによるIoTデバイスの制御を容易にするということを理解することが可能である。具体的には、IoTデバイス1及びIoT制御デバイスをバインドする手順については、図6における関連する説明を参照すべきである。本明細書においては、詳細は繰り返しては説明されない。
IoTデバイス1が公開鍵K0及び乱数L1に基づいてセッション鍵H1を生成するのに使用されるアルゴリズムは、Diffie-Hellmanアルゴリズム又は対称鍵を生成するのに使用される他のアルゴリズムであってもよい。このことは、限定されない。具体的には、IoTデバイス1がセッション鍵H1を生成するのに使用されるアルゴリズムは、プロトコルを使用することによって定義されてもよく、又は、交渉によってIoT制御デバイス及びIoTデバイス1によって決定されてもよい。このことは、限定されない。
複数の実施形態のうちのいくつかにおいて、IoTデバイス1は、周期的に及び/又はイベントによるトリガによって、発見メッセージを受信してもよい。例えば、発見メッセージを受信するようにIoTデバイス1をトリガするイベントは、IoTデバイス1の電源がオンになるイベント、IoTデバイス1が、そのIoTデバイス1がアクセスしているネットワークを切り替えるイベント、IoTデバイス1がIoT制御デバイスとのバインドを完了するイベント、IoTデバイス1とIoT制御デバイスとの間のセッション鍵が、有効期間の終了日時に達するか又は達しようとしているイベント、又は、IoTデバイス1とIoT制御デバイスとの間のセッションの数が、システムが制限する最大値を超えるイベント、のうちのいずれかであってもよい。
ステップ503: IoTデバイス1は、IoT制御デバイスに暗号文0及び公開鍵K1を送信する。公開鍵K1は、乱数L1に基づいてIoTデバイス1によって生成される。例えば、IoTデバイスは、発見応答に暗号文0及び公開鍵K1を追加し、そして、IoT制御デバイスにその発見応答を返送してもよい。
例えば、IoTデバイス1が乱数L1に基づいて公開鍵K1を生成するのに使用される関数については、ステップ303における関数f()の関連する説明を参照すべきである。本明細書においては、詳細は繰り返しては説明されない。
複数の実施形態のうちのいくつかにおいて、IoTデバイス1は、第2のルータに暗号文0及び公開鍵K1を送信し、第2のルータは、IoT制御デバイスに鍵0及び公開鍵K1を送信する。第2のルータは、IoTデバイス1がローカルエリアネットワークにアクセスするのに使用されるルータである。第2のルータ及び第1のルータが同じルータであるときに、IoTデバイス1は、第1のローカルエリアネットワークの中に存在するということに留意すべきである。第2のルータ及び第1のルータが、相互接続されている2つのルータであるときに、IoTデバイス1は、第1のローカルエリアネットワークの中には存在しない。この場合には、第2のルータは、最初に、第1のルータに鍵0及び公開鍵K1を送信し、その次に、第1のルータは、IoT制御デバイスに鍵0及び公開鍵K1を送信する。
ステップ504: IoT制御デバイスは、暗号文0及び公開鍵K1を受信した後に、公開鍵K1及び乱数L0に基づいて、セッション鍵H1を生成する。その次に、IoT制御デバイスは、セッション鍵H1を使用することによって、暗号文0を復号化し、IoTデバイス1のデバイス情報を取得する。IoT制御デバイスは、IoT制御デバイスの長期秘密鍵S0を使用することによって、セッション情報1に署名して、署名1を取得する。IoT制御デバイスは、セッション鍵1を使用することによって、署名1を暗号化し、暗号文1を取得する。セッション情報1は、公開鍵K0及び公開鍵K1を含む。例えば、セッション情報1は(公開鍵K0、公開鍵K1)を含む。
IoT制御デバイスが公開鍵K1及び乱数L0に基づいてセッション鍵H1を生成するのに使用されるアルゴリズムは、通常、IoTデバイス1がセッション鍵H1を生成するのに使用されるアルゴリズムと同じであり、それによって、IoT制御デバイスが公開鍵K1及び乱数L0に基づいて生成するセッション鍵H1は、IoTデバイス1が公開鍵K0及び乱数L1に基づいて生成するセッション鍵H1と同じである。例えば、IoT制御デバイスが公開鍵K1及び乱数L0に基づいてセッション鍵H1を生成するのに使用されるアルゴリズムは、Diffie-Hellmanアルゴリズム又は対称鍵を生成するのに使用される他のアルゴリズムであってもよい。このことは、限定されない。
ステップ505: IoT制御デバイスは、IoTデバイス1に暗号文1を送信する。
例えば、IoT制御デバイスは、第1のルータに暗号文1を送信し、第1のルータは、IoTデバイス1に暗号文1を送信する。
ステップ506: 暗号文1を受信した後に、IoTデバイス1は、セッション鍵H1を使用することによって、暗号文1を復号化して、署名1を取得する。その次に、IoTデバイス1は、IoT制御デバイスの長期公開鍵G0を使用することによって、署名1を検証し、そして、署名1の検証に成功した後に、IoTデバイス1の長期秘密鍵S1を使用することによって、セッション情報2に署名して、署名2を取得する。IoTデバイス1は、セッション鍵を使用することによって、署名2及びセッション情報3を暗号化して、暗号文2を取得する。セッション情報2は、公開鍵K1及び公開鍵K0を含む。例えば、セッション情報2は、(公開鍵K1、公開鍵K0)を含む。セッション情報3は、セッションIDを含む。例えば、セッション情報3は、セッション鍵1の有効期間をさらに含んでもよい。例えば、セッション鍵1の有効期間は、12時間、1日、又は7日等であってもよく、あらかじめ定義されてもよく、或いは、アルゴリズム又はポリシーに基づいて、IoTデバイス1によって決定されてもよい。このことは、限定されない。さらに、複数の他の実施形態のうちのいくつかにおいて、セッション情報3は、セッション接続方式、送信プロトコル、及び認証方式等のうちの1つ又は複数をさらに含んでもよい。このことは、限定されない。
ステップ507: IoTデバイス1は、IoT制御デバイスに暗号文2を送信する。
例えば、IoTデバイス1は、第2のルータに暗号文2を送信し、第2のルータは、IoT制御デバイスに暗号文2を送信する。
ステップ508: 暗号文2を受信した後に、IoT制御デバイスは、セッション鍵H1を使用することによって、暗号文2を復号化して、署名2及びセッション情報3を取得する。その次に、IoT制御デバイスは、IoTデバイス1の長期公開鍵G1を使用することによって、署名2を検証する。署名2の検証に成功した後に、IoT制御デバイスはセッション情報3及びセッション鍵H1を格納する。したがって、IoT制御デバイスとIoTデバイス1との間の暗号化された通信は、セッション鍵H1に基づいて、その後に実装されてもよい。IoTデバイス1の長期公開鍵G1は、(例えば、IoTデバイス1のデバイスID等の)IoTデバイス1のデバイス情報に基づいて、IoT制御デバイスによって発見される。
この出願のこの実施形態において、第1のローカルエリアネットワークの中のIoTデバイスは、発見メッセージから同じ公開キーを取得するが、セッション鍵を生成する際に、複数の異なるIoTデバイスが同じ乱数を使用する可能性は比較的低い。したがって、複数の異なるIoTデバイスのセッション鍵は、また、異なっている。したがって、この出願のこの実施形態における鍵交渉方法を使用することによって得られるセッション鍵が、暗号化された通信に使用されるときに、通信セキュリティは低下しない。
IoTデバイス1は、IoTデバイス及びIoT制御デバイスをバインドする手順を説明するためのある1つの例として使用される。例えば、図6に示されているように、具体的には、以下のステップを含む。
ステップ601: IoT制御デバイスは、第1の操作を受信する。第1の操作は、IoTデバイス1の個人識別番号(personal identification number, PIN)を入力するのに使用される。
ステップ602: 第1の操作の終了に応答して、IoT制御デバイスは、IoTデバイス1のPINを取得し、そして、IoTデバイス1にデバイスバインド要求を送信する。
例えば、第1の操作は、ユーザがIoTデバイス1のPINを入力する操作であってもよく、又は、ユーザがIoTデバイス1の2次元コードをスキャンする操作等であってもよい。例えば、IoT制御デバイスは、表示スクリーンにホームスクリーンを表示し、ホームスクリーンは、IoTアプリケーションのアイコンを含む。例えば、メインスクリーンは、図7A乃至図7Eに示されているスクリーン700である。IoT制御デバイスは、ユーザがIoTアプリケーションのアイコン701をタップする操作に応答して、表示スクリーンにIoTアプリケーションのスクリーンを表示してもよい。例えば、IoTアプリケーションのスクリーンは、図7A乃至図7Eに示されているスクリーン710である。スクリーン710は、IoTデバイスを追加するための制御711を含む。IoT制御デバイスは、ユーザがIoTデバイスの制御711をタップすることに応答して、スクリーン720を表示してもよい。スクリーン720は、制御721及び制御722を含む。さらに、IoTアプリケーションのユーザアカウントがログイン状態にあるときに、IoT制御デバイスは、IoTデバイスのユーザの制御711のタップに応答して、スクリーン720を表示する。例えば、IoTアプリケーションのユーザアカウントが、非ログイン状態にあるときに、IoT制御デバイスは、ユーザアカウントへの登録又はログインをするようにユーザに催促する。例えば、IoT制御デバイスは、ユーザがIoTデバイスの制御711をタップすることに応答して、ログイン画面を表示する。例えば、ログイン画面は、図8に示され、ユーザアカウント入力ボックス801、ログインパスワード入力ボックス802、他のログインモードのための制御803、及び登録制御804等を含む。ユーザは、ユーザアカウント入力ボックス801の中にユーザアカウントを入力し、そして、ログインパスワード入力ボックスの中にログインパスワードを入力してもよく、それによって、IoTアプリケーションのユーザアカウントは、ログイン状態になる。ユーザアカウントは、モバイル番号、電子メールアドレス、又はニックネーム等であってもよく、ユーザIDである。
IoTデバイスは、ユーザが制御721をタップすることに応答して、表示スクリーンにスクリーン730を表示する。スクリーン730は、PIN入力ボックスを含む。ユーザは、PIN入力ボックスの中にIoTデバイスのPINを入力してもよい。IoT制御デバイスは、PIN入力ボックスから、IoTデバイス1のPINを取得してもよい。代替的に、IoTデバイスは、ユーザが制御722をタップすることに応答して、表示スクリーンにスクリーン740を表示する。スクリーン740は、スキャンボックスを含む。ユーザは、スキャンボックスの中のIoTデバイス1の2次元コードをスキャンして、IoTデバイス1のPINを取得してもよい。
複数の他の実施形態のうちのいくつかにおいて、IoT制御デバイスは、代替的に、ユーザがIoTデバイスの制御711をタップすることに応答して、スクリーン730又はスクリーン740を表示してもよい。
この出願のこの実施形態においては、IoTデバイス1のPIN入力スクリーン又は2次元コードスキャンスクリーンは、例えば、音声命令又はショートカットジェスチャ操作等の他の操作を使用することによって表示されてもよいということに留意すべきである。
ステップ603: デバイスバインド要求を受信した後に、IoTデバイス1は、IoT制御デバイスに乱数(また、ソルト値と称されてもよいソルト)を送信する。
ステップ604: IoT制御デバイスは、乱数(ソルト)を受信し、そして、IoTデバイス1に公開鍵Aを送信し、公開鍵A及び秘密鍵Aは、鍵ペアであり、乱数(ソルト)及びIoTデバイス1のPINに基づいて、IoT制御デバイスによって生成される。
例えば、IoT制御デバイスは、乱数(ソルト)、IoTデバイス1のPIN、及びパスワード認証されている鍵交渉(PAKE)プロトコルに基づいて、公開鍵A及び秘密鍵Aを生成する。
ステップ605: IoTデバイス1は、IoT制御デバイスに公開鍵Bを送信する。公開鍵B及び秘密鍵Bは、他の鍵ペアであり、乱数(ソルト)及びIoTデバイス1のPINに基づいてIoTデバイス1によって生成される。
ステップ606: 公開鍵Bを受信した後に、IoT制御デバイスは、公開鍵B及び秘密鍵Aに基づいて、共有鍵を生成する。その次に、IoT制御デバイスは、その共有鍵を使用することによって、IoT制御デバイスの長期公開鍵G0を暗号化して、IoT制御デバイスの長期公開鍵G0の暗号文を取得する。
ステップ607: IoT制御デバイスは、IoTデバイス1にIoT制御デバイスの長期公開鍵G0の暗号文を送信する。
ステップ608: 公開鍵Aを受信した後に、IoTデバイス1は、公開鍵A及び秘密鍵Bに基づいて、共有鍵を生成する。その次に、IoTデバイス1は、その共有鍵を使用することによって、IoTデバイス1の長期公開鍵G1を暗号化して、IoTデバイス1の長期公開鍵G1の暗号文を取得する。
ステップ609: IoTデバイス1は、IoT制御デバイスにIoTデバイス1の長期公開鍵G1の暗号文を送信する。
ステップ610: IoT制御デバイスの長期公開鍵G0の暗号文を受信した後に、IoTデバイス1は、共有鍵に基づいて、IoT制御デバイスの長期公開鍵G0の暗号文を復号化して、IoT制御デバイスの長期公開鍵G0を取得し、そして、IoT制御デバイスの長期公開鍵G0を局所的に格納する。
ステップ611: IoTデバイス1の長期公開鍵G1の暗号文を受信した後に、IoT制御デバイスは、共有鍵に基づいて、IoTデバイス1の長期公開鍵G1の暗号文を復号化して、IoTデバイス1の長期公開鍵G1を取得し、そして、IoTデバイス1の長期公開鍵G1を局所的に格納する。このようにして、IoT制御デバイスは、IoTデバイス1にバインドされる。
ステップ603とステップ605との間及びステップ604とステップ605との間では必然的な順序はないが、ステップ603は、ステップ604の前に位置するということに留意すべきである。
複数の実施形態のうちのいくつかにおいて、IoT制御デバイスが、IoTデバイス1にバインドされた後に、IoTアプリケーションのスクリーンに、IoTデバイス1のウィジェットを追加してもよい。例えば、IoTアプリケーションのスクリーンは、図9に示されているスクリーン900であり、IoTデバイス1のウィジェット901を含む。ユーザは、IoTデバイス1のウィジェット900にある制御に対してある操作を実行することによって、デバイスを有効化し又は無効化することが可能である。さらに、ユーザは、さらに、IoTデバイスのウィジェット901を操作することによって、表示スクリーンに、IoTデバイス1の制御を含む詳細なスクリーンを表示してもよい。ユーザは、そのスクリーンにある関連する制御に対して操作を実行してもよく、それによって、IoT制御デバイスは、IoTデバイス1に制御命令を送信して、そのIoTデバイスを制御する。
加えて、IoT制御デバイス及びIoTデバイス1の各々について、デバイスを配送する前に、長期公開鍵及び長期秘密鍵をあらかじめ構成してもよいということに留意すべきである。
加えて、IoTデバイスの中の(例えば、セッションID等の)セッション情報が失われず、且つ、セッション鍵が、依然として、有効期間に属しているシナリオにおいて、この出願のある1つの実施形態は、さらに、鍵交渉方法を提供して、IoTデバイスとIoT制御デバイスとの間の鍵交渉ステップを減少させるのに役立てるとともに、鍵交渉効率を改善するのに役立てる。
例えば、図10は、この出願のある1つの実施形態にしたがった他の鍵交渉方法を示す。その方法は、具体的には、以下のステップを含む。
ステップ1001: IoT制御デバイスは、第1のローカルエリアネットワークにおいて発見メッセージをマルチキャストする。その発見メッセージは、公開鍵K2を含む。その公開鍵K2は、乱数L2に基づいて生成される。第1のローカルエリアネットワークは、IoT制御デバイスがアクセスしているネットワークである。
ステップ1001については、ステップ501の関連する説明を参照すべきである。本明細書においては、詳細は繰り返しては説明されない。
ステップ1002: IoTデバイス1は、発見メッセージを受信した後に、公開鍵K2及び乱数L3に基づいて、セッション鍵H2を生成し、IoTデバイス1の中に格納されているIoTデバイス1とIoT制御デバイスとの間のセッション鍵H0が、依然として、有効期間に属しており、且つ、IoTデバイス1とIoT制御デバイスとの間のセッション情報が失われていない場合には、セッション鍵H2を使用することによって、IoTデバイス1の第1の情報を暗号化して、暗号文3を取得する。
第1の情報は、IoTデバイス1のデバイス情報を含む。加えて、第1の情報は、IoTデバイス1とIoT制御デバイスとの間のセッション情報又はIoTデバイス1の中に格納されている他の関連する情報をさらに含んでもよい。例えば、第1の情報の中に含まれるセッション情報は、セッションID等の情報であってもよい。
具体的には、IoTデバイス1のデバイス情報及びセッション鍵H2の生成等の関連する説明については、上記の実施形態における関連する説明を参照すべきである。本明細書においては、詳細は繰り返しては説明されない。
複数の実施形態のうちのいくつかにおいて、IoTデバイス1の中に格納されているIoTデバイスとIoTデバイス1との間のセッション鍵H1が、有効期間の範囲内にはないか、又は、セッション情報が失われている場合に、IoTデバイス1は、セッション鍵H2を使用することによって、IoTデバイス1のデバイス情報を暗号化して、暗号文0を取得し、そして、その次に、ステップ503及び以降のステップを実行する。
例えば、IoTデバイス1は、IoTデバイス1とIoT制御デバイスとの間のセッションの数が、システムが制限する最大値以上であるか否かを決定することによって、IoTデバイス1とIoT制御デバイスとの間のセッション情報が失われているか否かを決定してもよい。例えば、IoTデバイス1とIoT制御デバイスとの間のセッションの数が、システムが制限する最大値以上である場合に、IoTデバイス1は、IoTデバイス1とIoT制御デバイスとの間のセッション情報が失われているということを決定する。他の例では、IoTデバイス1とIoT制御デバイスとの間のセッション数が、システムが制限する最大値よりも小さい場合に、IoTデバイス1は、IoTデバイス1とIoT制御デバイスとの間のセッション情報が失われていないということを決定する。
ステップ1003: IoTデバイス1は、IoT制御デバイスに暗号文3及び公開鍵K3を送信する。公開鍵K3は、乱数L3に基づいて生成される。
ステップ1004: IoT制御デバイスは、暗号文3及び公開鍵K3を受信した後に、公開鍵K3及び乱数L2に基づいて、セッション鍵H2を生成する。その次に、IoT制御デバイスは、セッション鍵H2を使用することによって、暗号文3を復号化して、第1の情報を取得する。IoT制御デバイスの中に格納されているIoTデバイス1とIoT制御デバイスとの間のセッション鍵H0が、依然として、有効期間の範囲内にあり、且つ、IoT制御デバイスとIoTデバイス1との間のセッション情報が失われていない場合に、鍵交渉が完了しているということを決定する。
それ以降、IoT制御デバイスとIoTデバイス1との間の暗号化された通信は、セッション鍵H0に基づいて実装される。
複数の実施形態のうちのいくつかにおいて、IoT制御デバイスとIoTデバイス1との間のセッション情報が失われている場合に、IoT制御デバイスは、IoT制御デバイスの長期秘密鍵S0を使用することによって、セッション情報Aに署名して、署名Aを取得する。セッション情報Aは、公開鍵K2及び公開鍵K3を含む。例えば、セッション情報Aは、(公開鍵K2及び公開鍵K3)を含む。その次に、IoT制御デバイスは、セッション鍵H2を使用することによって、署名Aを暗号化して、暗号文Aを取得し、そして、IoTデバイス1に暗号文Aを送信する。暗号文Aを受信した後に、IoTデバイス1は、セッション鍵H2を使用することによって、暗号文Aを復号化して、署名Aを取得し、そして、その次に、IoT制御デバイスの長期公開鍵G0を使用することによって、署名Aを検証する。署名Aの検証に成功した後に、IoTデバイス1は、IoT1デバイスの長期秘密鍵S1を使用することによって、セッション情報Bに署名して、署名Bを取得する。セッション情報Bは、公開鍵K3及び公開鍵K2を含む。例えば、セッション情報Bは、(公開鍵K3、公開鍵K2)を含む。IoTデバイス1は、セッション鍵H2を使用することによって、署名B2及びセッション情報Cを暗号化して、暗号文Bを取得する。セッション情報Cについては、セッション情報3の関連する説明を参照すべきである。IoTデバイス1は、IoT制御デバイスに暗号文Bを送信する。暗号文Bを受信した後に、IoT制御デバイスは、セッション鍵H2を使用することによって、暗号文Bを復号化して、署名B及びセッション情報Cを取得する。IoT制御デバイスは、IoTデバイス1の長期公開鍵G1を使用することによって、署名Bを検証し、そして、署名Bの検証に成功した後に、セッション鍵H2及びセッション情報Cを格納する。したがって、IoT制御デバイスとIoTデバイス1との間の暗号化された通信は、それ以降、セッション鍵H2に基づいて実装されてもよい。
上記の実施形態は、個別に使用されてもよく、又は、互いに組み合わせて使用されてもよい。このことは、限定されない。
この出願によって提供される上記の複数の実施形態において、この出願のそれらの複数の実施形態によって提供される方法は、電子デバイスが実行体として使用されるという観点から説明されている。この出願の上記の複数の実施形態によって提供される方法における複数の機能を実装するために、電子デバイスは、ハードウェア構成及び/又はソフトウェアモジュールを含み、ハードウェア構成、ソフトウェアモジュール、又はハードウェア構成及びソフトウェアモジュールの形態で上記の複数の機能を実装してもよい。上記の複数の機能のうちのある機能が、ハードウェア構成の形態で実行されるか、ソフトウェアモジュールの形態で実行されるか、又はハードウェア構成及びソフトウェアモジュールの形態で実行されるかは、その技術的解決方法の特定の用途及び設計上の制約条件によって決まる。
同じ概念に基づいて、図11は、この出願にしたがった電子デバイス1100を示す。例えば、電子デバイス1100は、少なくとも1つのプロセッサ1110及びメモリ1120を含む。プロセッサ1110は、メモリ1120に結合される。この出願のこの実施形態における結合は、複数の装置、複数のユニット、又は複数のモジュールの間の間接的結合又は通信接続であり、電気的な形態、機械的な形態、又は他の形態をとってもよく、それらの複数の装置、複数のユニット、又は複数のモジュールの間の情報交換のために使用される。
具体的には、メモリ1120は、プログラム命令を格納するように構成される。プロセッサ1110がメモリ1120の中に格納されているプログラム命令を読み出すように構成されるときに、電子デバイス1100が、この出願の複数の実施形態における鍵交渉方法を実行することを可能とする。例えば、プロセッサ1110がメモリ1120の中に格納されているプログラム命令を呼び出すときに、電子デバイス1100が、図5又は図10に示されている鍵交渉方法においてIoT制御デバイス又はIoTデバイス1が実行するステップを実行することを可能とする。
複数の実施形態のうちのいくつかにおいて、電子デバイス1100は、トランシーバー1130をさらに含む。例えば、電子デバイス1100が、図5又は図10に示されている方法においてIoT制御デバイスが実行するステップを実行するときに、トランシーバー1130は、発見メッセージをマルチキャストし、IoTデバイスからの発見応答を受信等するように構成されてもよい。他の例では、電子デバイス1100が、図5又は図10に示されている方法においてIoTデバイス1が実行するステップを実行するときに、トランシーバー1130は、発見メッセージを受信し、IoT制御デバイスに発見応答を送信等するように構成されてもよい。
電子デバイス1100は、この出願の複数の実施形態における鍵交渉方法を実装するように構成されてもよいということを理解すべきである。関連する特徴については、上記の説明を参照すべきである。本明細書においては、詳細は繰り返しては説明されない。
加えて、この出願のある1つの実施形態は、さらに、通信システムを提供する。図12に示されているように、その通信システムは、IoT制御デバイス1201及び1つ又は複数のIoTデバイス1202を含む。IoT制御デバイス1201は、この出願の複数の実施形態における鍵交渉方法においてIoT制御デバイスが実行するステップを実行するように構成される。例えば、IoT制御デバイス1201は、図5又は図10に示されている鍵交渉方法においてIoT制御デバイスが実行するステップを実行する。IoTデバイス1202は、この出願の複数の実施形態における鍵交渉方法においてIoTデバイス1が実行するステップを示すように構成される。例えば、IoTデバイス1202は、図5又は図10に示されている鍵交渉方法においてIoTデバイス1が実行するステップを実行する。具体的な実装については、方法の部分の関連する説明を参照すべきである。本明細書においては、詳細は繰り返しては説明されない。
当業者は、ハードウェア、ファームウェア、又はそれらの組み合わせによって、この出願の複数の実施形態を実装することが可能であるということを明確に理解することが可能である。ソフトウェアによってこの出願のそれらの複数の実施形態を実装するときに、上記の複数の機能は、コンピュータ読み取り可能な媒体の中に格納されてもよく或いはコンピュータ読み取り可能な媒体の中の1つ又は複数の命令又はコードとして伝送されてもよい。コンピュータ読み取り可能な媒体は、コンピュータ記憶媒体及び通信媒体を含み、通信媒体は、コンピュータプログラムをある場所から他の場所へと伝送することを可能にするいずれかの媒体を含む。記憶媒体は、コンピュータにアクセス可能ないずれかの利用可能な媒体であってもよい。コンピュータ読み取り可能な媒体の例は、これらには限定されないが、RAM、ROM、電気的に消去可能な且つプログラム可能な読み取り専用メモリ(electrically erasable programmable read-only memory, EEPROM)、コンパクトディスク読み取り専用メモリ(compact disc read-only memory, CD-ROM)又は他の光ディスク記憶装置、ディスク記憶媒体又は他のディスク記憶装置、或いは、コマンドの形態又はデータ構造の形態で期待されるプログラムコードを搬送し又は格納するのに使用されてもよく、また、コンピュータによってアクセスされてもよい他の媒体を含む。加えて、コンピュータ読み取り可能な媒体として、任意の接続を適切に定義することが可能である。例えば、同軸ケーブル、光ファイバ/ケーブル、ツイストペア、ディジタル加入者線(digital subscriber line, DSL)、或いは、赤外線、無線、及びマイクロ波等の無線技術を使用することによって、ウェブサイト、サーバ、又は他のリモートソースからソフトウェアを伝送する場合に、同軸ケーブル、光ファイバ/ケーブル、ツイストペア、DSL、或いは、赤外線、無線、及びマイクロ波等の無線技術は、それらが属している媒体の固定に含まれる。この出願の複数の実施形態において使用されるディスク(disk)及び盤(disc)は、コンパクトディスク(compact disc, CD)、レーザディスク、光ディスク、ディジタルビデオディスク(digital video disc, DVD)、フロッピーディスク、及びブルーレイディスクを含み、ディスクは、一般的に、磁気手段によってデータをコピーし、ディスクは、レーザー手段によって光学的にデータをコピーする。上記の組み合わせは、また、コンピュータ読み取り可能な媒体の保護の範囲の中に含まれるべきである。
要約すると、上記で説明されている事項は、この出願の実施形態であるにすぎず、この出願の保護の範囲を限定することを意図してはいない。この出願の趣旨及び原理から離れることなく行われるいずれかの修正、等価な置換、又は改良は、この出願の保護の範囲に属するものとする。
[関連出願への相互参照]
この出願は、2019年11月29日付で中国専利局に出願された"鍵交渉方法及び電子デバイス"と題する中国特許出願番号第201911207543.X号に基づく優先権を主張し、その内容は、その全体が参照により本明細書に組み込まれる。
[技術分野]
この出願は、通信技術の分野に関し、特に、鍵交渉方法及び電子デバイスに関する。
モノのインターネット(internet of things, IoT)デバイスがネットワークにアクセスした後に、ユーザは、携帯電話にインストールされている(以下では、略して、IoTアプリケーションと称される)IoTアプリケーションプログラムを使用することによって、IoTデバイスを制御することが可能である。ある1つの例において、IoTデバイスは、スマートデスクランプである。ユーザは、携帯電話にインストールされているIoTアプリケーションに対して対応する操作を実行し、それによって、その携帯電話は、ユーザの操作に応答して、スマートデスクランプに制御命令を送信して、例えば、スマートデスクランプをオンにするか又はオフにするように制御するといったように、スマートデスクランプを制御してもよい。
携帯電話とIoTデバイスとの間の通信の安全性を保証するために、通常は、セッション鍵を使用して、携帯電話とIoTデバイスとの間で暗号化されている通信を実行する。一方で、従来技術においては、セッション鍵は、IoTデバイスを発見した後に、エンドトゥエンド(station to station, STS)交渉により携帯電話によって取得される。セッション鍵を取得するこの方式は、効率が比較的低い。
この出願は、鍵交渉方法及び電子デバイスを提供して、IoTデバイスとIoT制御デバイスとの間のメッセージ交換の数を減少させ、それにより、セッション鍵を取得する効率を改善する。
第1の態様によれば、この出願のある1つの実施形態は、鍵交渉方法を提供し、その鍵交渉方法は、具体的には、以下のステップを含む。
IoT制御デバイスは、第1のローカルエリアネットワークにおいて発見メッセージをマルチキャストする。その発見メッセージは、第1の公開鍵を含む。第1のローカルエリアネットワークは、IoT制御デバイスがアクセスしているネットワークである。第1の公開鍵は、第1の乱数に基づいて取得される。
第1のIoTデバイスは、IoT制御デバイスからの発見メッセージを受信し、そして、IoT制御デバイスに発見応答を送信する。発見応答は、第1の暗号文及び第2の公開鍵を含む。第1の暗号文は、第1のセッション鍵に基づいて、第1のIoTデバイスのデバイス情報を暗号化することによって取得される。第2の公開鍵は、第2の乱数に基づいて取得される。第1のセッション鍵は、第2の乱数及び第1の公開鍵に基づいて第1のIoTデバイスによって取得される。
第1のIoTデバイスからの発見応答を受信した後に、IoT制御デバイスは、第1のIoTデバイスに第2の暗号文を送信する。第2の暗号文は、第1のセッション鍵に基づいて、第1の署名を暗号化することによって取得される。第1の署名は、IoT制御デバイスの長期秘密鍵に基づく第1のセッション情報に対する署名である。第1のセッション情報は、第1の公開鍵及び第2の公開鍵を含む。第1のセッション鍵は、第1の乱数及び第2の公開鍵に基づいてIoT制御デバイスによって取得される。
IoT制御デバイスが送信する第2の暗号文を受信した後に、第1のIoTデバイスは、第1のセッション鍵に基づいて、第2の暗号文を復号化して、第1の署名を取得する。加えて、第1のIoTデバイスは、IoT制御デバイスの長期公開鍵に基づく第1の署名の検証に成功した後に、IoT制御デバイスに第3の暗号文を送信する。第3の暗号文は、第1のセッション鍵に基づいて第2の署名及び第2のセッション情報を暗号化することによって取得される。第2の署名は、IoTデバイスの長期秘密鍵に基づく第3のセッション情報に対する署名である。第3のセッション情報は、第2の公開鍵及び第1の公開鍵を含む。第2のセッション情報は、セッション識別子IDを含む。
第1のIoTデバイスからの第3の暗号文を受信した後に、IoT制御デバイスは、第1のセッション鍵に基づいて、第3の暗号文を復号化して、第2の署名及び第2のセッション情報を取得し、そして、第1のIoTデバイスの長期公開鍵に基づいて、第2の署名を検証する。第2の署名の検証に成功した後に、IoT制御デバイスは、第1のセッション鍵及び第2のセッション情報を保存する。
最終的に、IoT制御デバイスは、第1のセッション鍵に基づいて、第1のIoTデバイスとの間で暗号化されている通信を実行する。
この出願のこの実施形態において、IoT制御デバイスは、発見メッセージに第1の公開鍵を追加し、IoTデバイスに発見メッセージをマルチキャストするので、STS交渉プロセスは、一体化されて、発見プロセスとなる。このことは、IoTデバイスとIoT制御デバイスとの間のメッセージ交換の数を減少させ、セッション鍵を取得する効率を改善するのに役立つ。加えて、その発見プロセスにおいて、IoTデバイスは、さらに、セッション鍵を使用することによって、デバイス情報を暗号化し、そして、その次に、IoT制御デバイスに暗号化されているデバイス情報を送信してもよく、それにより、ネットワークにおいてIoTデバイスのデバイス情報を露出させることによって引き起こされる攻撃リスクを減少させることが可能である。
ある1つの可能な設計において、第2のセッション情報は、第1のセッション鍵の有効期間をさらに含む。上記の技術的解決方法は、第1のセッション鍵の漏洩のリスクを減少させるのに役立つとともに、IoT制御デバイスとIoTデバイスとの間の通信の安全性を改善するのに役立つ。
ある1つの可能な設計において、IoT制御デバイスからの発見メッセージを受信した後に、第1のIoTデバイスが、その第1のIoTデバイスとIoT制御デバイスとの間の格納されている第2のセッション鍵が、有効期間の範囲内にはないということを決定するか、又は、その第1のIoTデバイスとIoTデバイスとの間のセッション情報が格納されていないということを決定する場合に、その第1のIoTデバイスは、IoT制御デバイスに発見応答を送信する。
ある1つの可能な設計において、発見メッセージを受信した後に、第1のIoTデバイスが、第1のIoTデバイスとIoT制御デバイスとの間の格納されている第2のセッション鍵が、有効期間の範囲内にあるということを決定する場合、又は、第1のIoTデバイスとIoTデバイスとの間の格納されているセッション情報が、失われていないということを決定する場合に、第1のIoTデバイスは、IoT制御デバイスに第4の暗号文を送信する。第4の暗号文は、第1のセッション鍵に基づいて第1の情報を暗号化することによって取得される。第1の情報は、IoTデバイスのデバイス情報を含む。第1のIoTデバイスが送信する第4の暗号文を受信した後に、IoT制御デバイスが、そのIoT制御デバイスと第1のIoTデバイスとの間の格納されている第2のセッション鍵が、有効期間の範囲内にあるということを決定する場合、又は、IoT制御デバイスと第1のIoTデバイスとの間の格納されているセッション情報が失われていないということを決定する場合に、IoT制御デバイスは、第2のセッション鍵に基づいて、第1のIoTデバイスとの間で暗号化されている通信を実行する。第1のIoTデバイス及びIoT制御デバイスの中に格納されている第2のセッション鍵が、有効期間の範囲内にあるとき、又は、第1のIoTデバイスとIoT制御デバイスとの間の格納されているセッション情報が失われていないときは、IoT制御デバイス及び第1のIoTデバイスは、第2のセッション鍵に基づいて、暗号化されている通信を実行し、それにより、さらに、メッセージ交換の数を減少させるのに役立つとともに、セッション鍵交渉の効率を改善するのに役立つ。
ある1つの可能な設計において、第1の情報は、第4のセッション情報をさらに含み、第4のセッション情報は、第1のIoTデバイスとの間のセッションの格納されているIDを含み、それによって、IoT制御デバイスは、そのIoT制御デバイスと第1のIoTデバイスとの間のセッション情報を探索する。
ある1つの可能な設計において、IoT制御デバイスは、
第1のローカルエリアネットワークにおいて発見メッセージを周期的にマルチキャストする方式、及び/又は、
第2のローカルエリアネットワークから第1のローカルエリアネットワークへと切り替わるときに、第1のローカルエリアネットワークにおいて発見メッセージをマルチキャストする方式、及び/又は、
新たなIoTデバイスにバインドされるときに、第1のローカルエリアネットワークにおいて発見メッセージをマルチキャストする方式、及び/又は、
第2のIoTデバイスのセッション鍵が、有効期間の終了日時に達するときに、第1のローカルエリアネットワークにおいて発見メッセージをマルチキャストする方式、
によって、発見メッセージをマルチキャストしてもよい。
ある1つの可能な設計において、第1のIoTデバイスは、
IoT制御デバイスが第1のローカルエリアネットワークにおいてマルチキャストする発見メッセージを周期的に受信する方式、及び/又は、
ネットワーク切り替えの際に、IoT制御デバイスが第1のローカルエリアネットワークにおいてマルチキャストする発見メッセージを受信する方式、及び/又は、
IoT制御デバイスにバインドされた後に、IoT制御デバイスが第1のローカルエリアネットワークにおいてマルチキャストする発見メッセージを受信する方式、及び/又は、
第1のIoTデバイスとIoT制御デバイスとの間の格納されている第2のセッション鍵が、有効期間の終了日時に達するときに、IoT制御デバイスが第1のローカルエリアネットワークにおいてマルチキャストする発見メッセージを受信する方式、
によって、IoT制御デバイスが第1のローカルエリアネットワークにおいてマルチキャストする発見メッセージを受信してもよい。
ある1つの可能な設計において、第1のIoTデバイスは、第2のローカルエリアネットワークの中に存在する。
第2の態様によれば、この出願のある1つの実施形態は、IoT制御デバイス及び第1のIoTデバイスを含む通信システムを提供する。
IoT制御デバイスは、第1のローカルエリアネットワークにおいて発見メッセージをマルチキャストするように構成される。発見メッセージは、第1の公開鍵を含む。第1のローカルエリアネットワークは、IoT制御デバイスがアクセスしているネットワークである。第1の公開鍵は、第1の乱数に基づいて取得される。
IoT制御デバイスは、さらに、第1のIoTデバイスからの発見応答を受信し、そして、第1のIoTデバイスに第2の暗号文を送信する、ように構成される。発見応答は、第1の暗号文及び第2の公開鍵を含む。第1の暗号文は、第1のセッション鍵に基づいて、第1のIoTデバイスのデバイス情報を暗号化することによって取得される。第2の公開鍵は、第2の乱数に基づいて取得される。第2の暗号文は、第1のセッション鍵に基づいて、第1の署名を暗号化することによって取得される。第1の署名は、IoT制御デバイスの長期秘密鍵に基づく第1のセッション情報に対する署名である。第1のセッション情報は、第1の公開鍵及び第2の公開鍵を含む。第1のセッション鍵は、第1の乱数及び第2の公開鍵に基づいてIoT制御デバイスによって取得される。
IoT制御デバイスは、さらに、第1のIoTデバイスから第3の暗号文を受信し、第1のセッション鍵に基づいて、第3の暗号文を復号化して、第2の署名及び第2のセッション情報を取得し、そして、その次に、第1のIoTデバイスの長期公開鍵に基づいて、第2の署名を検証し、第2の署名の検証に成功した後に、第1のセッション鍵及び第2のセッション情報を格納し、そして、最後に、第1のセッション鍵に基づいて、第1のIoTデバイスとの間で暗号化されている通信を実行する、ように構成される。
第1のIoTデバイスは、IoT制御デバイスからの発見メッセージを受信し、IoT制御デバイスに発見応答を送信し、IoT制御デバイスが送信する第2の暗号文を受信し、その次に、第1のセッション鍵に基づいて、第2の暗号文を復号化して、第1の署名を取得し、第1のIoTデバイスが、IoT制御デバイスの長期公開鍵に基づく第1の署名の検証に成功した後に、IoT制御デバイスに第3の暗号文を送信する、ように構成される。第3の暗号文は、第1のセッション鍵に基づいて第2の署名及び第2のセッション情報を暗号化することによって取得される。第2の署名は、IoTデバイスの長期秘密鍵に基づく第3のセッション情報に対する署名である。第3のセッション情報は、第2の公開鍵及び第1の公開鍵を含む。第2のセッション情報は、セッション識別子IDを含む。
第3の態様によれば、この出願のある1つの実施形態は、プロセッサ、メモリ、及びトランシーバーを含む電子デバイスを提供する。プロセッサは、メモリ及びトランシーバーに結合される。メモリは、プログラム命令を格納する。プロセッサは、メモリの中に格納されているプログラム命令を読み出しそして実行するように構成される。プログラム命令がプロセッサが実行するときに、電子デバイスが、この出願の複数の実施形態の第1の態様及び第1の態様の複数の可能な設計のうちのいずれか1つにしたがった方法においてIoT制御デバイス又はIoTデバイスが実行するステップを実装することを可能とする。
第4の態様によれば、この出願のある1つの実施形態は、電子デバイスを提供し、その電子デバイスは、第1の態様及び第1の態様の複数の可能な設計のうちのいずれか1つにしたがった方法においてIoT制御デバイス又はIoTデバイスが実行するステップを実行するための装置を含む。
第5の態様によれば、この出願のある1つの実施形態は、コンピュータ読み取り可能な記憶媒体を提供する。コンピュータ読み取り可能な記憶媒体は、プログラム命令を格納する。プログラム命令が電子デバイスにおいて実行されるときに、電子デバイスが、この出願の複数の実施形態の第1の態様及び第1の態様の複数の可能な設計のうちのいずれか1つにしたがった方法においてIoT制御デバイス又はIoTデバイスが実行するステップを実行することを可能とする。
第6の態様によれば、この出願のある1つの実施形態は、コンピュータプログラム製品を提供する。コンピュータプログラム製品が電子デバイスにおいて実行されるときに、電子デバイスが、この出願の複数の実施形態の第1の態様及び第1の態様の複数の可能な設計のうちのいずれか1つにしたがった方法においてIoT制御デバイス又はIoTデバイスが実行するステップを実行することを可能とする。
第7の態様によれば、この出願のある1つの実施形態は、チップを提供する。そのチップは、電子デバイスの中のメモリに結合され、この出願の複数の実施形態の第1の態様及び第1の態様の複数の可能な設計のうちのいずれか1つにしたがった方法においてIoT制御デバイス又はIoTデバイスが実行するステップを実行するように、電子デバイスを制御する。
加えて、第2の態様乃至第7の態様がもたらす技術的効果については、上記の方法の部分における設計方法の関連する説明を参照すべきである。本明細書においては、詳細は繰り返しては説明されない。
この出願のそれらの複数の実施態様における"結合"は、2つの構成要素が互いに直接的に又は間接的に接続されるということを意味するということに留意すべきである。
図1は、IoT制御デバイスがこの出願のある1つの実施形態にしたがってIoTデバイスを制御するシナリオである。
IoT制御デバイスがこの出願のある1つの実施形態にしたがってIoTデバイスを制御する他のシナリオである。
この出願のある1つの実施形態にしたがった鍵交渉方法の概略的なフローチャートである。
この出願のある1つの実施形態にしたがったネットワークアーキテクチャの概略的な図である。
この出願のある1つの実施形態にしたがった他の鍵交渉方法の概略的なフローチャートである。
この出願のある1つの実施形態にしたがったIoTデバイスバインディング手順の概略的な図である。
この出願のある1つの実施形態にしたがったユーザインターフェイスの概略的な図である。
この出願のある1つの実施形態にしたがったユーザインターフェイスの概略的な図である。
この出願のある1つの実施形態にしたがったユーザインターフェイスの概略的な図である。
この出願のある1つの実施形態にしたがったユーザインターフェイスの概略的な図である。
この出願のある1つの実施形態にしたがったユーザインターフェイスの概略的な図である。
この出願のある1つの実施形態にしたがった他のユーザインターフェイスの概略的な図である。
この出願のある1つの実施形態にしたがった他のユーザインターフェイスの概略的な図である。
この出願のある1つの実施形態にしたがった他の鍵交渉方法の概略的なフローチャートである。
この出願のある1つの実施形態にしたがった電子デバイスの概略的な構成図である。
この出願のある1つの実施形態にしたがった通信システムの概略的な図である。
この出願に別段の定めがない限り、"/"は、又はを意味するということを理解するべきである。例えば、A/Bは、A又はBを表してもよい。この出願における"及び/又は"の語は、複数の関連する対象を説明するための関連性関係のみを説明し、3つの関係が存在する場合があるということを表す。例えば、A及び/又はBは、Aのみが存在する場合、A及びBの双方が存在する場合、及び、Bのみが存在する場合を表してもよい。"少なくとも1つの"は、1つ又は複数を意味する。"複数の"は、2つ又はそれ以上を意味する。例えば、a、b、又はcのうちの少なくとも1つは、a、b、c、a及びb、a及びc、b及びc、及び、a、b及びcの7つの場合を表してもよい。
この出願において、"例"、"複数の実施形態のうちのいくつかにおいて"、及び"複数の他の実施形態のうちのいくつかにおいて"等は、複数の例、図解、又は説明を表すのに使用される。この出願において"例"として説明されるいずれかの実施形態又は設計スキームは、他の実施形態又は設計スキームよりもより好ましく又はより大きな利点を有するものとして説明されるべきではない。正確には、"例えば"は、ある特定の方式によって概念を示すのに使用される。
加えて、この出願における"第1の"及び"第2の"の語は、説明の目的を意図しているにすぎず、示されているそれらの複数の技術的特徴の相対的重要度又は黙示的指標を示したり又は暗示するものとして理解されるべきではない。
ユーザは、IoTアプリケーションがインストールされている電子デバイスを使用することによって、IoTデバイスを制御してもよい。IoTアプリケーションがインストールされているその電子デバイスは、以下では、IoT制御デバイスと称される。例えば、IoT制御デバイスは、携帯電話、タブレットコンピュータ、ノートブックコンピュータ、ウルトラモバイルパーソナルコンピュータ(ultra-mobile personal computer, UMPC)、ネットブック、又はパーソナルデジタルアシスタント(personal digital assistant, PDA)等の運搬可能な電子デバイスであってもよい。他の例では、IoT制御デバイスは、代替的に、デスクトップコンピュータ又はスマートスクリーン等であってもよい。IoT制御デバイスの具体的なタイプは、この出願の複数の実施形態においては限定されない。従来のテレビとは異なり、スマートスクリーンは、新しい大画面の製品であるということに留意すべきである。オーディオプレイ及びビデオプレイを実装するだけでなく、スマートスクリーンは、家庭でより多くの役割を果たす。例えば、スマートスクリーンは、インタラクションセンター、情報共有センター、及びスマートホームデバイス又は携帯電話等のインテリジェントデバイスの制御管理センターであってもよい。
この出願においては、IoTデバイスは、例えば、スマートスピーカ、スマートデスクランプ、スマートエアコン、スマート冷蔵庫、又はスマートカーテン等のスマートホームデバイスであってもよい。加えて、IoTデバイスは、代替的に、車載型デバイス、ウェアラブルデバイス、又は、拡張現実感(augmented reality, AR)/仮想現実感(virtual reality, VR)デバイス等のスマートデバイスであってもよい。IoTデバイスの具体的なタイプは、この出願の複数の実施形態においては限定されない。
具体的には、IoT制御デバイスは、IoTデバイスに制御命令を送信することによって、そのIoTデバイスを制御する。通常、IoTデバイスは、ユーザがIoTアプリケーションに対して実行する操作に応答して、IoTデバイスに制御命令を送信する。複数の異なるタイプのIoTデバイスのための制御命令は、同じであってもよく又は異なっていてもよいということに留意すべきである。例えば、スマートスピーカの場合には、制御命令は、プレイ命令、プレイ中断命令、音量調整命令、プレイ進行調整命令、又はプレイコンテンツ切り替え命令等を含んでもよい。他の例では、スマートデスクランプの場合には、制御命令は、ライトオン命令、ライトオフ命令、又は輝度調整命令等を含んでもよい。
加えて、IoTデバイスは、さらに、IoT制御デバイスにデバイス状態情報を報告してもよく、それによって、そのIoT制御デバイスは、ユーザにIoTデバイスの現在の状態を提示することが可能である。デバイス状態情報は、IoTデバイスの現在の状態を示すのに使用される。例えば、IoTデバイスの現在の状態は、IoTデバイスの現在の実行状態及びIoTデバイスの現在の使用状態等を含んでもよい。
ある1つの例として、スマートスピーカを使用する。IoT制御デバイスは、スマートスピーカにプレイ命令を送信する。プレイ中断状態にある状態で、IoT制御デバイスが送信するプレイ命令を受信した後に、スマートスピーカは、そのプレイ命令に応答して、対応するコンテンツを再生し、それによって、スマートスピーカの現在の状態は、プレイ状態へと変化する。スマートスピーカの現在の状態が、プレイ中断状態からプレイ状態へと変化するときに、スマートスピーカは、IoT制御デバイスにデバイス状態情報を報告してもよい。デバイス状態情報は、スマートサウンドボックスの現在の状態がプレイ状態であるということを示すのに使用される。スマートスピーカが報告するデバイス状態情報を受信した後に、IoT制御デバイスは、そのデバイス状態情報に基づいて、ユーザに提示されているスマートスピーカの現在の状態を更新してもよい。
図1に示されているように、IoT制御デバイス及びIoTデバイスが個別にクラウドサーバに接続されているシナリオにおいて、IoT制御デバイスは、クラウドサーバを使用することによって、IoTデバイスに制御命令を送信し、IoTデバイスは、クラウドサーバを使用することによって、IoT制御デバイスにデバイス状態情報を送信する。このシナリオにおいては、IoTデバイス及びIoT制御デバイスが同じローカルエリアネットワークの中に存在するか否かにかかわらず、ユーザは、IoT制御デバイスを使用することによって、IoTデバイスを制御することが可能である。しかしながら、クラウドサーバを使用することによって、制御シグナリング及びデバイス状態情報の双方を転送する必要があるため、制御コマンドの実行及びデバイス状態情報の受信には、容易に、比較的高い遅延及び比較的低い成功率がもたらされる。
この目的のために、局所的な制御IoT解決方法を提案する。局所的な制御IoT解決方法においては、IoT制御デバイス及びIoTデバイスは、通常、同じローカルエリアネットワークの中に存在する。図2に示されているように、IoT制御デバイスとIoTデバイスとの間の制御シグナリング及びデバイス状態情報の交換は、クラウドサーバによって転送される必要はなく、それにより、制御コマンドを実行しそしてデバイス状態情報を受信する際に遅延を減少させるのに役立つ。例えば、この出願のローカルエリアネットワークは、Wi-Fiネットワークであってもよく又は有線ネットワークであってもよい。
具体的には、IoT制御デバイス及びIoTデバイスが同じローカルエリアネットワークの中に存在することは、IoT制御デバイス及びIoTデバイスが同じルータに接続されているということであると理解することが可能である。加えて、局所的な制御IoT解決方法において、IoT制御デバイス及びIoTデバイスは、代替的に、複数の異なるローカルエリアネットワークの中に存在してもよいということに留意すべきである。例えば、IoT制御デバイスは、第1のローカルエリアネットワークの中に存在し、且つ、第1のルータに接続され、IoTデバイスは、第2のローカルエリアネットワークの中に存在し、且つ、第2のルータに接続される。第1のルータ及び第2のルータは相互接続される。第1のルータ及び第2のルータが相互接続されているということは、第1のルータ及び第2のルータが、互いにメッセージを交換することが可能であり、第1のルータと第2のルータとの間の情報交換が、マルチキャストメッセージ交換を含むということであると理解することが可能であるということを理解すべきである。
ある1つの例において、IoT制御デバイスは、第1のローカルエリアネットワークの中に存在する。局所的な制御IoT解決方法においては、IoT制御デバイスは、IoTデバイス発見手順を開始して、IoTデバイスを発見し、それにより、IoTデバイスとの間の通信を実装する。加えて、IoT制御デバイスとIoTデバイスとの間の通信の安全性を確保するために、セッション鍵は、通常、IoT制御デバイスとIoTデバイスとの間の暗号化されている通信を実行するのに使用される。例えば、セッション鍵は、IoTデバイスを発見した後に、エンドトゥエンド(Station to Station, STS)プロトコルに基づいて、交渉により、IoT制御デバイスによって取得されてもよい。図3に以下のステップを含む特定の手順を示す。
ステップ301: IoT制御デバイスは、第1のローカルエリアネットワークにおいて発見メッセージをマルチキャストする。第1のローカルエリアネットワークは、IoT制御デバイスによって現在アクセスされているネットワークである。例えば、IoT制御デバイスは、ユーザデータグラムプロトコル(user datagram protocol, UDP)又はマルチキャストドメインネームシステム(multicast domain name system, mDNS)プロトコルに基づいて、第1のローカルエリアネットワークにおいて発見メッセージをマルチキャストしてもよい。
発見メッセージは、また、検出メッセージ、デバイス発見メッセージ、又はデバイス検出メッセージ等と称されてもよいということを理解することが可能である。例えば、発見メッセージは、例えば、デバイス識別子(identity, ID)、IPアドレス、及びIoT制御デバイスのユーザID等のIoT制御デバイスの関連する情報を含んでもよい。
ステップ302: IoTデバイス1は、発見メッセージを受信した後に、IoT制御デバイスにIoTデバイス1のデバイス情報を返送する。
例えば、IoTデバイス1は、発見応答にIoTデバイス1のデバイス情報を追加し、そして、IoT制御デバイスにその発見応答を返送してもよい。発見応答は、また、検出応答、デバイス発見応答、又はデバイス検出応答等と称されてもよい。
具体的には、この出願のこの実施形態におけるIoTデバイス1のデバイス情報は、デバイスID、デバイスタイプ、インターネットプロトコル(internet protocol, IP)アドレス、及びポート番号等のうちの1つ又は複数を含んでもよい。例えば、IoTデバイス1のデバイス情報は、デバイスIDを含む。他の例では、IoTデバイス1のデバイス情報は、IPアドレスを含む。他の例では、IoTデバイス1のデバイス情報は、デバイスID、デバイスタイプ、及びIPアドレスを含む。さらに別の例では、IoTデバイス1のデバイス情報は、デバイスID、デバイスタイプ、IPアドレス、及びポート番号を含む。
デバイスタイプは、テレビジョン、スピーカ、エアコン、電気ランプ、又は冷蔵庫等を含んでもよいということに留意すべきである。例えば、IoTデバイス1は、スマートデスクランプであり、IoTデバイス1のタイプは、電気ランプである。他の例では、IoTデバイス1は、スマート冷蔵庫であり、IoTデバイス1のタイプは、冷蔵庫である。
ステップ303: IoT制御デバイスは、IoTデバイス1のデバイス情報を受信した後に、IoTデバイス1に公開鍵K0を送信する。公開鍵K0は、乱数L0に基づいて生成される。
この出願のこの実施形態において、乱数L0は、また、秘密鍵と称されてもよく、公開鍵K0と共に鍵ペアを形成するということに留意すべきである。例えば、この出願のこの実施形態において、IoT制御デバイスは、関数f()の入力として乱数L0を使用し、公開鍵K0として関数f()の出力を使用してもよい。関数f()は、指数関数、べき乗関数、2次関数、又は3次関数等であってもよい。このことは、限定されない。例えば、関数f()は、y=gxであり、乱数L0がx0であるときに、公開鍵K0は、y0であり、y0=gx0である。関数f()は、プロトコルを使用することによって定義されてもよく、或いは、ポリシー又はアルゴリズムに基づいて、IoT制御デバイスによって決定されてもよい。このことは、限定されない。
ステップ304: IoTデバイス1は、公開鍵K0を受信した後に、公開鍵K0及び乱数L1に基づいて、セッション鍵H1を生成する。加えて、IoTデバイス1は、IoTデバイス1の長期秘密鍵S1を使用することによって、セッション情報1に署名して、署名1を取得する。セッション情報1は、公開鍵K1及び公開鍵K0を含み、公開鍵K1は、乱数L1に基づいて生成される。その次に、IoTデバイス1は、セッション鍵H1を使用することによって、署名1を暗号化して、暗号文(ciphertext)1を取得する。
例えば、セッション情報1は、(公開鍵K1、公開鍵K0)を含む。
乱数L1及び公開鍵K1は、鍵ペアを形成するということに留意すべきである。IoTデバイス1が乱数L1に基づいて公開鍵K1を生成する方式については、乱数L0に基づいて公開鍵K0を生成する方式を参照すべきである。本明細書においては、詳細は繰り返しては説明されない。
IoTデバイス1の長期秘密鍵S1の有効期間は、あるしきい値以上である。例えば、IoTデバイス1の長期秘密鍵S1は、長期間にわたり有効であってもよく、デバイスが配送される前に構成されてもよい。IoTデバイス1における長期秘密鍵S1に対応する長期公開鍵G1の有効期間は、長期秘密鍵S1の有効期間と同じであり、デバイスが配送される前に構成されてもよい。
ステップ305: IoTデバイス1は、IoT制御デバイスに公開鍵K1及び暗号文1を送信する。
ステップ306: IoT制御デバイスは、公開鍵K1及び暗号文1を受信した後に、公開鍵K1及び乱数L0に基づいて、セッション鍵H1を生成する。その次に、IoT制御デバイスは、セッション鍵H1を使用することによって、暗号文1を復号化して、署名1を取得する。IoT制御デバイスは、IoTデバイス1の長期公開鍵G1を使用することによって、署名1を検証する。加えて、署名1の検証に成功した後に、IoT制御デバイスは、IoT制御デバイスの長期秘密鍵S0を使用することによって、セッション情報2に署名して、署名2を取得し、セッション鍵H1を使用することによって、署名2を暗号化して、暗号文2を取得する。セッション情報2は、公開鍵K0及び公開鍵K1を含む。例えば、セッション情報2は、(公開鍵K0、公開鍵K1)を含む。
具体的には、IoT制御デバイスの長期秘密鍵S0の有効期間は、あるしきい値以上である。例えば、IoT制御デバイスの長期秘密鍵S0は、長期間にわたって有効であってもよく、そのデバイスが配送される前に構成されてもよい。IoT制御デバイスにおける長期秘密鍵S0に対応する長期公開鍵G0の有効期間は、長期秘密鍵S0の有効期間と同じであり、同様に、そのデバイスが配送される前に構成されてもよいということに留意すべきである。
ステップ307: IoT制御デバイスは、IoTデバイス1に暗号文2を送信する。
ステップ308: 暗号文2を受信した後に、IoTデバイス1は、セッション鍵H1を使用することによって、暗号文2を復号化して、署名2を取得する。その次に、IoTデバイス1は、IoT制御デバイスの長期公開鍵G0を使用することによって、署名2を検証する。
ステップ309: IoTデバイス1は、署名2の検証に成功した後に、IoT制御デバイスにセッション情報3を送信する。例えば、IoTデバイス1は、最初に、セッション鍵H1を使用することによって、セッション情報3を暗号化し、そして、その次に、IoT制御デバイスに暗号化されたセッション情報3を送信してもよく、それにより、セッション情報3を送信する際のセキュリティを改善する。
例えば、セッション情報3は、セッションID等を含んでもよい。IoT制御デバイスが、IoTデバイス1が送信するセッション情報3を受信した後に、IoT制御デバイス及びIoTデバイス1は、セッション鍵H1を使用することによって、暗号化された通信を実行してもよい。
例えば、IoT制御デバイスは、セッション鍵H1を使用することによって、制御命令を暗号化し、IoTデバイス1にその暗号化された制御命令を送信する。
IoTデバイス1については、ステップ301及びステップ302は、IoTデバイス発見プロセスであるということに留意すべきである。ステップ303乃至ステップ309は、STS交渉プロセスである。(例えば、IoTデバイス2又はIoTデバイスn等の)他のIoTデバイスは、また、IoT制御デバイスが第1のローカルエリアネットワークにおいてマルチキャストする発見メッセージを受信する場合に、IoT制御デバイスに他のIoTデバイスのデバイス情報を返送する。この場合には、また、IoT制御デバイスと他のIoTデバイスとの間でSTS交渉プロセスを実行して、IoT制御デバイスと他のIoTデバイスとの間の通信のために使用されるセッション鍵を取得してもよい。IoT制御デバイスと他のIoTデバイスとの間のSTS交渉プロセスについては、IoT制御デバイスとIoTデバイス1との間のSTS交渉プロセスを参照すべきである。本明細書においては、詳細は繰り返しては説明されない。
図3に示されている方法において、IoTデバイスを発見した後に、IoT制御デバイスは、STS交渉プロセスを実行して、セッション鍵を取得し、そして、IoT制御デバイスとIoTデバイスとの間の暗号化された通信を実装する。したがって、セッション鍵を取得するこの方式においては、効率は比較的低くなる。加えて、IoTデバイス発見プロセスにおいては、IoT制御デバイスが送信する発見メッセージを受信した後に、IoTデバイスは、IoT制御デバイスにデバイス情報を平文で返送する。結果として、IoTデバイスのデバイス情報は、ネットワークの中で容易に公開され、攻撃者は、IoTデバイスを攻撃することが可能である。
このことを考慮して、この出願のある1つの実施形態は、鍵交渉方法を提供する。STS交渉プロセスを一体化して、発見プロセスとし、それにより、IoTデバイスとIoT制御デバイスとの間のメッセージ交換の数を減少させるのに役立つとともに、セッション鍵を取得する効率を改善するのに役立つ。加えて、発見プロセスにおいて、IoTデバイスは、さらに、セッション鍵を使用することによって、デバイス情報を暗号化し、そして、その次に、IoT制御デバイスにその暗号化されているデバイス情報を送信してもよく、それにより、ネットワークの中でIoTデバイスのデバイス情報を公開することによって引き起こされる攻撃リスクを減少させる。
例えば、図4は、この出願のある1つの実施形態が適用可能であるネットワークアーキテクチャの概略的な図である。そのネットワークアーキテクチャは、IoT制御デバイス、ルータ、及びIoTデバイスを含む。この出願のこの実施形態において、IoTデバイスとルータとの間の接続方式は、無線接続であってもよく又は有線接続であってもよいということに留意すべきである。IoT制御デバイスとルータとの間の接続方式は、無線接続であってもよく又は有線接続であってもよい。
図4は、この出願のこの実施形態が適用可能であるネットワークアーキテクチャのある1つの例であるにすぎず、この出願のこの実施形態が適用可能であるネットワークアーキテクチャに対する限定を構成しないということを理解すべきである。
具体的には、図5は、この出願のある1つの実施形態にしたがった鍵交渉方法の概略的なフローチャートである。その方法は、具体的には、以下のステップを含む。
ステップ501: IoT制御デバイスは、第1のローカルエリアネットワークにおいて発見メッセージをマルチキャストする。第1のローカルエリアネットワークは、IoT制御デバイスがアクセスしているネットワークである。発見メッセージは、公開鍵K0を含む。公開鍵K0は、乱数L0に基づいて生成される。
IoT制御デバイスが、乱数L0に基づいて公開鍵K0を生成するある特定の実装については、ステップ303において、公開鍵K0が乱数L0に基づいて生成される実装の関連する説明を参照すべきである。本明細書においては、詳細は繰り返しては説明されない。加えて、発見メッセージは、例えば、デバイスID、IPアドレス、及びIoT制御デバイスのユーザID等のIoT制御デバイスの関連する情報をさらに含んでもよい。
IoT制御デバイスが第1のローカルエリアネットワークにおいて発見メッセージをマルチキャストするある特定の実装については、ステップ301における関連する実装を参照してもよいということに留意すべきである。本明細書においては、詳細は繰り返しては説明されない。
具体的には、IoT制御デバイスは、第1のローカルエリアネットワークにおいて、周期的に及び/又はイベントによるトリガをによって、発見メッセージをマルチキャストしてもよい。例えば、電源オンの後に、IoT制御デバイスは、(例えば、第1のローカルエリアネットワーク等の)ローカルエリアネットワークへのアクセスを検出し、そして、第1のローカルエリアネットワークにおける発見メッセージの周期的なマルチキャストをトリガしてもよい。加えて、他の例では、第1のローカルエリアネットワークにおける発見メッセージのマルチキャストをトリガするイベント又は第1のローカルエリアネットワークにおける発見メッセージの周期的マルチキャストをトリガするイベントは、第2のローカルエリアネットワークから第1のローカルエリアネットワークへと、IoT制御デバイスがアクセスするネットワークを切り替えるイベント、新たなIoTデバイスへとIoT制御デバイスをバインドするイベント、第1のローカルエリアネットワークにおいてIoTデバイスが送信する(例えば、電源がオフになり、そして、再始動された後に、IoTデバイスがIoT制御デバイスに送信するセッション鍵交渉指示であって、例えば、その指示は、特定のシンボル又はシーケンスであってもよい、セッション鍵交渉指示等の)セッション鍵交渉指示を受信するイベント、IoT制御デバイスにバインドされるIoTデバイスのセッション数が、システムが制限する最大値以上となっているというイベント、或いは、IoT制御デバイスにバインドされるIoTデバイスのセッション鍵が、有効期間の終了日時にすでに到達しているか又は到達しようとしているというイベント、を含んでもよい。例えば、セッション鍵の有効期間が30分であり、且つ、IoT制御デバイスが5:00の時点でセッション鍵を格納する場合に、そのセッション鍵の有効期間の終了日時は、5:30となる。IoT制御デバイスにバインドされているIoTデバイスのセッション鍵が、有効期間の終了日時に到達しようとしているということは、IoT制御デバイスにバインドされているIoTデバイスのセッション鍵が、第1の継続期間の後の有効期間の終了日時に到達するということであると理解されてもよいということに留意すべきである。第1の継続期間は、あらかじめ定義されていてもよく、又は、アルゴリズム又はポリシーに基づいて、IoTデバイスによって決定されてもよい。例えば、第1の継続期間は、2分又は15秒等であってもよい。このことは、限定されない。例えば、セッション鍵の有効期間が10分であり、且つ、IoT制御デバイスが4:00の時点でセッション鍵を格納する場合に、セッション鍵の有効期間の終了日時は、4:10となる。例えば、第1の継続期間は1分となる。4:09に達するときに、IoT制御デバイスは、第1のローカルエリアネットワークにおいて発見メッセージのマルチキャストをトリガする。
上記の記載は、第1のローカルエリアネットワークにおいて発見メッセージをマルチキャストするようにIoT制御デバイスをトリガするイベントの説明のためのある1つの例であるにすぎないということに留意すべきである。このことは、この出願のこの実施形態においては限定されない。
加えて、IoTデバイスが発見メッセージを周期的にマルチキャストするときに、隣接する期間の中でマルチキャストされる発見メッセージの中で搬送される複数の公開鍵K0は、異なっていてもよく、又は、複数の異なる期間の中でマルチキャストされる発見メッセージの中で搬送される複数の公開鍵K0は、異なっていてもよく、それにより、鍵交渉のセキュリティを改善するのに役立つ。複数の隣接する期間又は複数の異なる期間における発見メッセージが、異なる公開鍵K0を搬送するようにするために、IoT制御デバイスは、複数の隣接する期間又は複数の異なる期間において複数の異なる乱数L0及び/又は複数の異なるアルゴリズムを使用することによって、公開鍵K0を生成してもよい。
複数の実施形態のうちのいくつかにおいて、IoT制御デバイスは、第1のルータに発見メッセージを送信し、第1のルータは、第1のローカルエリアネットワークにおいて1つ又は複数のIoTデバイスに発見メッセージをマルチキャストする。第1のルータは、IoT制御デバイスが第1のローカルエリアネットワークにアクセスするのに使用されるルータである。
ステップ502: IoTデバイス1は、発見メッセージを受信した後に、公開鍵K0及び乱数L1に基づいてセッション鍵H1を生成する。その次に、IoTデバイス1は、セッション鍵H1を使用することによって、IoTデバイス1のデバイス情報を暗号化して、暗号文0を取得する。IoTデバイス1のデバイス情報については、図3におけるIoTデバイス1のデバイス情報の関連する説明を参照すべきである。本明細書においては、詳細は繰り返しては説明されない。
IoTデバイス1は、第1のローカルエリアネットワークの中に存在してもよく又は第1のローカルエリアネットワークの中に存在しなくてもよいということに留意すべきである。すなわち、IoTデバイス1がアクセスするネットワークは、第1のローカルエリアネットワークであってもよく又は第1のローカルエリアネットワークでなくてもよい。このことは、限定されない。
さらに、発見メッセージを受信した後に、IoTデバイス1は、IoTデバイス1がIoT制御デバイスにバインドされているか否かを決定する。IoTデバイス1がIoT制御デバイスにバインドされている場合に、IoTデバイス1は、公開鍵K0及び乱数L1に基づいて、セッション鍵H1を生成し、以降のステップを実行する。例えば、IoTデバイス1は、IoTデバイス1の中に格納されているユーザーIDが、発見メッセージの中で搬送されているユーザーIDと同じであるか否か又は関連しているか否かを決定して、IoTデバイス1がIoT制御デバイスにバインドされているか否かを決定してもよい。例えば、IoTデバイス1の中に格納されているユーザーIDが、発見メッセージの中で搬送されているユーザーIDと同じであるか又は関連している場合に、IoTデバイス1は、そのIoTデバイス1がIoT制御デバイスにバインドされているということを決定する。他の例では、IoTデバイス1は、さらに、IoTデバイス1が発見メッセージ中で搬送されているデバイスIDに対応する長期公開鍵を格納しているか否かを決定して、IoTデバイス1がIoT制御デバイスにバインドされているか否かを決定してもよい。
例えば、IoT制御デバイスにバインドされていないIoTデバイスが、IoT制御デバイスから発見メッセージを受信する場合に、IoTデバイスが、そのIoTデバイスがIoT制御デバイスにバインドされていないということを決定した後に、そのIoTデバイスは、発見メッセージが無効なメッセージであると考え、そして、その発見メッセージを破棄し又は無視する。IoTデバイスを購入した後に、ユーザは、通常、IoT制御デバイスに対して操作を実行することによって、IoTデバイスをバインドする手順を開始して、そのIoTデバイスをIoT制御デバイスにバインドし、その結果、ユーザによるIoTデバイスの制御を容易にするということを理解することが可能である。具体的には、IoTデバイス1及びIoT制御デバイスをバインドする手順については、図6における関連する説明を参照すべきである。本明細書においては、詳細は繰り返しては説明されない。
IoTデバイス1が公開鍵K0及び乱数L1に基づいてセッション鍵H1を生成するのに使用されるアルゴリズムは、Diffie-Hellmanアルゴリズム又は対称鍵を生成するのに使用される他のアルゴリズムであってもよい。このことは、限定されない。具体的には、IoTデバイス1がセッション鍵H1を生成するのに使用されるアルゴリズムは、プロトコルを使用することによって定義されてもよく、又は、交渉によってIoT制御デバイス及びIoTデバイス1によって決定されてもよい。このことは、限定されない。
複数の実施形態のうちのいくつかにおいて、IoTデバイス1は、周期的に及び/又はイベントによるトリガによって、発見メッセージを受信してもよい。例えば、発見メッセージを受信するようにIoTデバイス1をトリガするイベントは、IoTデバイス1の電源がオンになるイベント、IoTデバイス1が、そのIoTデバイス1がアクセスしているネットワークを切り替えるイベント、IoTデバイス1がIoT制御デバイスとのバインドを完了するイベント、IoTデバイス1とIoT制御デバイスとの間のセッション鍵が、有効期間の終了日時に達するか又は達しようとしているイベント、又は、IoTデバイス1とIoT制御デバイスとの間のセッションの数が、システムが制限する最大値を超えるイベント、のうちのいずれかであってもよい。
ステップ503: IoTデバイス1は、IoT制御デバイスに暗号文0及び公開鍵K1を送信する。公開鍵K1は、乱数L1に基づいてIoTデバイス1によって生成される。例えば、IoTデバイスは、発見応答に暗号文0及び公開鍵K1を追加し、そして、IoT制御デバイスにその発見応答を返送してもよい。
例えば、IoTデバイス1が乱数L1に基づいて公開鍵K1を生成するのに使用される関数については、ステップ303における関数f()の関連する説明を参照すべきである。本明細書においては、詳細は繰り返しては説明されない。
複数の実施形態のうちのいくつかにおいて、IoTデバイス1は、第2のルータに暗号文0及び公開鍵K1を送信し、第2のルータは、IoT制御デバイスに鍵0及び公開鍵K1を送信する。第2のルータは、IoTデバイス1がローカルエリアネットワークにアクセスするのに使用されるルータである。第2のルータ及び第1のルータが同じルータであるときに、IoTデバイス1は、第1のローカルエリアネットワークの中に存在するということに留意すべきである。第2のルータ及び第1のルータが、相互接続されている2つのルータであるときに、IoTデバイス1は、第1のローカルエリアネットワークの中には存在しない。この場合には、第2のルータは、最初に、第1のルータに鍵0及び公開鍵K1を送信し、その次に、第1のルータは、IoT制御デバイスに鍵0及び公開鍵K1を送信する。
ステップ504: IoT制御デバイスは、暗号文0及び公開鍵K1を受信した後に、公開鍵K1及び乱数L0に基づいて、セッション鍵H1を生成する。その次に、IoT制御デバイスは、セッション鍵H1を使用することによって、暗号文0を復号化し、IoTデバイス1のデバイス情報を取得する。IoT制御デバイスは、IoT制御デバイスの長期秘密鍵S0を使用することによって、セッション情報1に署名して、署名1を取得する。IoT制御デバイスは、セッション鍵1を使用することによって、署名1を暗号化し、暗号文1を取得する。セッション情報1は、公開鍵K0及び公開鍵K1を含む。例えば、セッション情報1は(公開鍵K0、公開鍵K1)を含む。
IoT制御デバイスが公開鍵K1及び乱数L0に基づいてセッション鍵H1を生成するのに使用されるアルゴリズムは、通常、IoTデバイス1がセッション鍵H1を生成するのに使用されるアルゴリズムと同じであり、それによって、IoT制御デバイスが公開鍵K1及び乱数L0に基づいて生成するセッション鍵H1は、IoTデバイス1が公開鍵K0及び乱数L1に基づいて生成するセッション鍵H1と同じである。例えば、IoT制御デバイスが公開鍵K1及び乱数L0に基づいてセッション鍵H1を生成するのに使用されるアルゴリズムは、Diffie-Hellmanアルゴリズム又は対称鍵を生成するのに使用される他のアルゴリズムであってもよい。このことは、限定されない。
ステップ505: IoT制御デバイスは、IoTデバイス1に暗号文1を送信する。
例えば、IoT制御デバイスは、第1のルータに暗号文1を送信し、第1のルータは、IoTデバイス1に暗号文1を送信する。
ステップ506: 暗号文1を受信した後に、IoTデバイス1は、セッション鍵H1を使用することによって、暗号文1を復号化して、署名1を取得する。その次に、IoTデバイス1は、IoT制御デバイスの長期公開鍵G0を使用することによって、署名1を検証し、そして、署名1の検証に成功した後に、IoTデバイス1の長期秘密鍵S1を使用することによって、セッション情報2に署名して、署名2を取得する。IoTデバイス1は、セッション鍵を使用することによって、署名2及びセッション情報3を暗号化して、暗号文2を取得する。セッション情報2は、公開鍵K1及び公開鍵K0を含む。例えば、セッション情報2は、(公開鍵K1、公開鍵K0)を含む。セッション情報3は、セッションIDを含む。例えば、セッション情報3は、セッション鍵1の有効期間をさらに含んでもよい。例えば、セッション鍵1の有効期間は、12時間、1日、又は7日等であってもよく、あらかじめ定義されてもよく、或いは、アルゴリズム又はポリシーに基づいて、IoTデバイス1によって決定されてもよい。このことは、限定されない。さらに、複数の他の実施形態のうちのいくつかにおいて、セッション情報3は、セッション接続方式、送信プロトコル、及び認証方式等のうちの1つ又は複数をさらに含んでもよい。このことは、限定されない。
ステップ507: IoTデバイス1は、IoT制御デバイスに暗号文2を送信する。
例えば、IoTデバイス1は、第2のルータに暗号文2を送信し、第2のルータは、IoT制御デバイスに暗号文2を送信する。
ステップ508: 暗号文2を受信した後に、IoT制御デバイスは、セッション鍵H1を使用することによって、暗号文2を復号化して、署名2及びセッション情報3を取得する。その次に、IoT制御デバイスは、IoTデバイス1の長期公開鍵G1を使用することによって、署名2を検証する。署名2の検証に成功した後に、IoT制御デバイスはセッション情報3及びセッション鍵H1を格納する。したがって、IoT制御デバイスとIoTデバイス1との間の暗号化された通信は、セッション鍵H1に基づいて、その後に実装されてもよい。IoTデバイス1の長期公開鍵G1は、(例えば、IoTデバイス1のデバイスID等の)IoTデバイス1のデバイス情報に基づいて、IoT制御デバイスによって発見される。
この出願のこの実施形態において、第1のローカルエリアネットワークの中のIoTデバイスは、発見メッセージから同じ公開キーを取得するが、セッション鍵を生成する際に、複数の異なるIoTデバイスが同じ乱数を使用する可能性は比較的低い。したがって、複数の異なるIoTデバイスのセッション鍵は、また、異なっている。したがって、この出願のこの実施形態における鍵交渉方法を使用することによって得られるセッション鍵が、暗号化された通信に使用されるときに、通信セキュリティは低下しない。
IoTデバイス1は、IoTデバイス及びIoT制御デバイスをバインドする手順を説明するためのある1つの例として使用される。例えば、図6に示されているように、具体的には、以下のステップを含む。
ステップ601: IoT制御デバイスは、第1の操作を受信する。第1の操作は、IoTデバイス1の個人識別番号(personal identification number, PIN)を入力するのに使用される。
ステップ602: 第1の操作の終了に応答して、IoT制御デバイスは、IoTデバイス1のPINを取得し、そして、IoTデバイス1にデバイスバインド要求を送信する。
例えば、第1の操作は、ユーザがIoTデバイス1のPINを入力する操作であってもよく、又は、ユーザがIoTデバイス1の2次元コードをスキャンする操作等であってもよい。例えば、IoT制御デバイスは、表示スクリーンにホームスクリーンを表示し、ホームスクリーンは、IoTアプリケーションのアイコンを含む。例えば、メインスクリーンは、図7A乃至図7Eに示されているスクリーン700である。IoT制御デバイスは、ユーザがIoTアプリケーションのアイコン701をタップする操作に応答して、表示スクリーンにIoTアプリケーションのスクリーンを表示してもよい。例えば、IoTアプリケーションのスクリーンは、図7A乃至図7Eに示されているスクリーン710である。スクリーン710は、IoTデバイスを追加するための制御711を含む。IoT制御デバイスは、ユーザがIoTデバイスの制御711をタップすることに応答して、スクリーン720を表示してもよい。スクリーン720は、制御721及び制御722を含む。さらに、IoTアプリケーションのユーザアカウントがログイン状態にあるときに、IoT制御デバイスは、ユーザがIoTデバイスの制御711をタップすることに応答して、スクリーン720を表示する。例えば、IoTアプリケーションのユーザアカウントが、非ログイン状態にあるときに、IoT制御デバイスは、ユーザアカウントへの登録又はログインをするようにユーザに催促する。例えば、IoT制御デバイスは、ユーザがIoTデバイスの制御711をタップすることに応答して、ログイン画面を表示する。例えば、ログイン画面は、図8に示され、ユーザアカウント入力ボックス801、ログインパスワード入力ボックス802、他のログインモードのための制御803、及び登録制御804等を含む。ユーザは、ユーザアカウント入力ボックス801の中にユーザアカウントを入力し、そして、ログインパスワード入力ボックスの中にログインパスワードを入力してもよく、それによって、IoTアプリケーションのユーザアカウントは、ログイン状態になる。ユーザアカウントは、モバイル番号、電子メールアドレス、又はニックネーム等であってもよく、ユーザIDである。
IoTデバイスは、ユーザが制御721をタップすることに応答して、表示スクリーンにスクリーン730を表示する。スクリーン730は、PIN入力ボックスを含む。ユーザは、PIN入力ボックスの中にIoTデバイスのPINを入力してもよい。IoT制御デバイスは、PIN入力ボックスから、IoTデバイス1のPINを取得してもよい。代替的に、IoTデバイスは、ユーザが制御722をタップすることに応答して、表示スクリーンにスクリーン740を表示する。スクリーン740は、スキャンボックスを含む。ユーザは、スキャンボックスの中のIoTデバイス1の2次元コードをスキャンして、IoTデバイス1のPINを取得してもよい。
複数の他の実施形態のうちのいくつかにおいて、IoT制御デバイスは、代替的に、ユーザがIoTデバイスの制御711をタップすることに応答して、スクリーン730又はスクリーン740を表示してもよい。
この出願のこの実施形態においては、IoTデバイス1のPIN入力スクリーン又は2次元コードスキャンスクリーンは、例えば、音声命令又はショートカットジェスチャ操作等の他の操作を使用することによって表示されてもよいということに留意すべきである。
ステップ603: デバイスバインド要求を受信した後に、IoTデバイス1は、IoT制御デバイスに乱数(また、ソルト値と称されてもよいソルト)を送信する。
ステップ604: IoT制御デバイスは、乱数(ソルト)を受信し、そして、IoTデバイス1に公開鍵Aを送信し、公開鍵A及び秘密鍵Aは、鍵ペアであり、乱数(ソルト)及びIoTデバイス1のPINに基づいて、IoT制御デバイスによって生成される。
例えば、IoT制御デバイスは、乱数(ソルト)、IoTデバイス1のPIN、及びパスワード認証されている鍵交渉(PAKE)プロトコルに基づいて、公開鍵A及び秘密鍵Aを生成する。
ステップ605: IoTデバイス1は、IoT制御デバイスに公開鍵Bを送信する。公開鍵B及び秘密鍵Bは、他の鍵ペアであり、乱数(ソルト)及びIoTデバイス1のPINに基づいてIoTデバイス1によって生成される。
ステップ606: 公開鍵Bを受信した後に、IoT制御デバイスは、公開鍵B及び秘密鍵Aに基づいて、共有鍵を生成する。その次に、IoT制御デバイスは、その共有鍵を使用することによって、IoT制御デバイスの長期公開鍵G0を暗号化して、IoT制御デバイスの長期公開鍵G0の暗号文を取得する。
ステップ607: IoT制御デバイスは、IoTデバイス1にIoT制御デバイスの長期公開鍵G0の暗号文を送信する。
ステップ608: 公開鍵Aを受信した後に、IoTデバイス1は、公開鍵A及び秘密鍵Bに基づいて、共有鍵を生成する。その次に、IoTデバイス1は、その共有鍵を使用することによって、IoTデバイス1の長期公開鍵G1を暗号化して、IoTデバイス1の長期公開鍵G1の暗号文を取得する。
ステップ609: IoTデバイス1は、IoT制御デバイスにIoTデバイス1の長期公開鍵G1の暗号文を送信する。
ステップ610: IoT制御デバイスの長期公開鍵G0の暗号文を受信した後に、IoTデバイス1は、共有鍵に基づいて、IoT制御デバイスの長期公開鍵G0の暗号文を復号化して、IoT制御デバイスの長期公開鍵G0を取得し、そして、IoT制御デバイスの長期公開鍵G0を局所的に格納する。
ステップ611: IoTデバイス1の長期公開鍵G1の暗号文を受信した後に、IoT制御デバイスは、共有鍵に基づいて、IoTデバイス1の長期公開鍵G1の暗号文を復号化して、IoTデバイス1の長期公開鍵G1を取得し、そして、IoTデバイス1の長期公開鍵G1を局所的に格納する。このようにして、IoT制御デバイスは、IoTデバイス1にバインドされる。
ステップ603とステップ605との間及びステップ604とステップ605との間では必然的な順序はないが、ステップ603は、ステップ604の前に位置するということに留意すべきである。
複数の実施形態のうちのいくつかにおいて、IoT制御デバイスが、IoTデバイス1にバインドされた後に、IoTアプリケーションのスクリーンに、IoTデバイス1のウィジェットを追加してもよい。例えば、IoTアプリケーションのスクリーンは、図9に示されているスクリーン900であり、IoTデバイス1のウィジェット901を含む。ユーザは、IoTデバイス1のウィジェット900にある制御に対してある操作を実行することによって、デバイスを有効化し又は無効化することが可能である。さらに、ユーザは、さらに、IoTデバイスのウィジェット901を操作することによって、表示スクリーンに、IoTデバイス1の制御を含む詳細なスクリーンを表示してもよい。ユーザは、そのスクリーンにある関連する制御に対して操作を実行してもよく、それによって、IoT制御デバイスは、IoTデバイス1に制御命令を送信して、そのIoTデバイスを制御する。
加えて、IoT制御デバイス及びIoTデバイス1の各々について、デバイスを配送する前に、長期公開鍵及び長期秘密鍵をあらかじめ構成してもよいということに留意すべきである。
加えて、IoTデバイスの中の(例えば、セッションID等の)セッション情報が失われず、且つ、セッション鍵が、依然として、有効期間に属しているシナリオにおいて、この出願のある1つの実施形態は、さらに、鍵交渉方法を提供して、IoTデバイスとIoT制御デバイスとの間の鍵交渉ステップを減少させるのに役立てるとともに、鍵交渉効率を改善するのに役立てる。
例えば、図10は、この出願のある1つの実施形態にしたがった他の鍵交渉方法を示す。その方法は、具体的には、以下のステップを含む。
ステップ1001: IoT制御デバイスは、第1のローカルエリアネットワークにおいて発見メッセージをマルチキャストする。その発見メッセージは、公開鍵K2を含む。その公開鍵K2は、乱数L2に基づいて生成される。第1のローカルエリアネットワークは、IoT制御デバイスがアクセスしているネットワークである。
ステップ1001については、ステップ501の関連する説明を参照すべきである。本明細書においては、詳細は繰り返しては説明されない。
ステップ1002: IoTデバイス1は、発見メッセージを受信した後に、公開鍵K2及び乱数L3に基づいて、セッション鍵H2を生成し、IoTデバイス1の中に格納されているIoTデバイス1とIoT制御デバイスとの間のセッション鍵H0が、依然として、有効期間に属しており、且つ、IoTデバイス1とIoT制御デバイスとの間のセッション情報が失われていない場合には、セッション鍵H2を使用することによって、IoTデバイス1の第1の情報を暗号化して、暗号文3を取得する。
第1の情報は、IoTデバイス1のデバイス情報を含む。加えて、第1の情報は、IoTデバイス1とIoT制御デバイスとの間のセッション情報又はIoTデバイス1の中に格納されている他の関連する情報をさらに含んでもよい。例えば、第1の情報の中に含まれるセッション情報は、セッションID等の情報であってもよい。
具体的には、IoTデバイス1のデバイス情報及びセッション鍵H2の生成等の関連する説明については、上記の実施形態における関連する説明を参照すべきである。本明細書においては、詳細は繰り返しては説明されない。
複数の実施形態のうちのいくつかにおいて、IoTデバイス1の中に格納されているIoTデバイスとIoTデバイス1との間のセッション鍵H1が、有効期間の範囲内にはないか、又は、セッション情報が失われている場合に、IoTデバイス1は、セッション鍵H2を使用することによって、IoTデバイス1のデバイス情報を暗号化して、暗号文0を取得し、そして、その次に、ステップ503及び以降のステップを実行する。
例えば、IoTデバイス1は、IoTデバイス1とIoT制御デバイスとの間のセッションの数が、システムが制限する最大値以上であるか否かを決定することによって、IoTデバイス1とIoT制御デバイスとの間のセッション情報が失われているか否かを決定してもよい。例えば、IoTデバイス1とIoT制御デバイスとの間のセッションの数が、システムが制限する最大値以上である場合に、IoTデバイス1は、IoTデバイス1とIoT制御デバイスとの間のセッション情報が失われているということを決定する。他の例では、IoTデバイス1とIoT制御デバイスとの間のセッション数が、システムが制限する最大値よりも小さい場合に、IoTデバイス1は、IoTデバイス1とIoT制御デバイスとの間のセッション情報が失われていないということを決定する。
ステップ1003: IoTデバイス1は、IoT制御デバイスに暗号文3及び公開鍵K3を送信する。公開鍵K3は、乱数L3に基づいて生成される。
ステップ1004: IoT制御デバイスは、暗号文3及び公開鍵K3を受信した後に、公開鍵K3及び乱数L2に基づいて、セッション鍵H2を生成する。その次に、IoT制御デバイスは、セッション鍵H2を使用することによって、暗号文3を復号化して、第1の情報を取得する。IoT制御デバイスの中に格納されているIoTデバイス1とIoT制御デバイスとの間のセッション鍵H0が、依然として、有効期間の範囲内にあり、且つ、IoT制御デバイスとIoTデバイス1との間のセッション情報が失われていない場合に、鍵交渉が完了しているということを決定する。
それ以降、IoT制御デバイスとIoTデバイス1との間の暗号化された通信は、セッション鍵H0に基づいて実装される。
複数の実施形態のうちのいくつかにおいて、IoT制御デバイスとIoTデバイス1との間のセッション情報が失われている場合に、IoT制御デバイスは、IoT制御デバイスの長期秘密鍵S0を使用することによって、セッション情報Aに署名して、署名Aを取得する。セッション情報Aは、公開鍵K2及び公開鍵K3を含む。例えば、セッション情報Aは、(公開鍵K2及び公開鍵K3)を含む。その次に、IoT制御デバイスは、セッション鍵H2を使用することによって、署名Aを暗号化して、暗号文Aを取得し、そして、IoTデバイス1に暗号文Aを送信する。暗号文Aを受信した後に、IoTデバイス1は、セッション鍵H2を使用することによって、暗号文Aを復号化して、署名Aを取得し、そして、その次に、IoT制御デバイスの長期公開鍵G0を使用することによって、署名Aを検証する。署名Aの検証に成功した後に、IoTデバイス1は、IoTデバイス1の長期秘密鍵S1を使用することによって、セッション情報Bに署名して、署名Bを取得する。セッション情報Bは、公開鍵K3及び公開鍵K2を含む。例えば、セッション情報Bは、(公開鍵K3、公開鍵K2)を含む。IoTデバイス1は、セッション鍵H2を使用することによって、署名B2及びセッション情報Cを暗号化して、暗号文Bを取得する。セッション情報Cについては、セッション情報3の関連する説明を参照すべきである。IoTデバイス1は、IoT制御デバイスに暗号文Bを送信する。暗号文Bを受信した後に、IoT制御デバイスは、セッション鍵H2を使用することによって、暗号文Bを復号化して、署名B及びセッション情報Cを取得する。IoT制御デバイスは、IoTデバイス1の長期公開鍵G1を使用することによって、署名Bを検証し、そして、署名Bの検証に成功した後に、セッション鍵H2及びセッション情報Cを格納する。したがって、IoT制御デバイスとIoTデバイス1との間の暗号化された通信は、それ以降、セッション鍵H2に基づいて実装されてもよい。
上記の実施形態は、個別に使用されてもよく、又は、互いに組み合わせて使用されてもよい。このことは、限定されない。
この出願によって提供される上記の複数の実施形態において、この出願のそれらの複数の実施形態によって提供される方法は、電子デバイスが実行体として使用されるという観点から説明されている。この出願の上記の複数の実施形態によって提供される方法における複数の機能を実装するために、電子デバイスは、ハードウェア構成及び/又はソフトウェアモジュールを含み、ハードウェア構成、ソフトウェアモジュール、又はハードウェア構成及びソフトウェアモジュールの形態で上記の複数の機能を実装してもよい。上記の複数の機能のうちのある機能が、ハードウェア構成の形態で実行されるか、ソフトウェアモジュールの形態で実行されるか、又はハードウェア構成及びソフトウェアモジュールの形態で実行されるかは、その技術的解決方法の特定の用途及び設計上の制約条件によって決まる。
同じ概念に基づいて、図11は、この出願にしたがった電子デバイス1100を示す。例えば、電子デバイス1100は、少なくとも1つのプロセッサ1110及びメモリ1120を含む。プロセッサ1110は、メモリ1120に結合される。この出願のこの実施形態における結合は、複数の装置、複数のユニット、又は複数のモジュールの間の間接的結合又は通信接続であり、電気的な形態、機械的な形態、又は他の形態をとってもよく、それらの複数の装置、複数のユニット、又は複数のモジュールの間の情報交換のために使用される。
具体的には、メモリ1120は、プログラム命令を格納するように構成される。プロセッサ1110がメモリ1120の中に格納されているプログラム命令を読み出すように構成されるときに、電子デバイス1100が、この出願の複数の実施形態における鍵交渉方法を実行することを可能とする。例えば、プロセッサ1110がメモリ1120の中に格納されているプログラム命令を呼び出すときに、電子デバイス1100が、図5又は図10に示されている鍵交渉方法においてIoT制御デバイス又はIoTデバイス1が実行するステップを実行することを可能とする。
複数の実施形態のうちのいくつかにおいて、電子デバイス1100は、トランシーバー1130をさらに含む。例えば、電子デバイス1100が、図5又は図10に示されている方法においてIoT制御デバイスが実行するステップを実行するときに、トランシーバー1130は、発見メッセージをマルチキャストし、IoTデバイスからの発見応答を受信等するように構成されてもよい。他の例では、電子デバイス1100が、図5又は図10に示されている方法においてIoTデバイス1が実行するステップを実行するときに、トランシーバー1130は、発見メッセージを受信し、IoT制御デバイスに発見応答を送信等するように構成されてもよい。
電子デバイス1100は、この出願の複数の実施形態における鍵交渉方法を実装するように構成されてもよいということを理解すべきである。関連する特徴については、上記の説明を参照すべきである。本明細書においては、詳細は繰り返しては説明されない。
加えて、この出願のある1つの実施形態は、さらに、通信システムを提供する。図12に示されているように、その通信システムは、IoT制御デバイス1201及び1つ又は複数のIoTデバイス1202を含む。IoT制御デバイス1201は、この出願の複数の実施形態における鍵交渉方法においてIoT制御デバイスが実行するステップを実行するように構成される。例えば、IoT制御デバイス1201は、図5又は図10に示されている鍵交渉方法においてIoT制御デバイスが実行するステップを実行する。IoTデバイス1202は、この出願の複数の実施形態における鍵交渉方法においてIoTデバイス1が実行するステップを示すように構成される。例えば、IoTデバイス1202は、図5又は図10に示されている鍵交渉方法においてIoTデバイス1が実行するステップを実行する。具体的な実装については、方法の部分の関連する説明を参照すべきである。本明細書においては、詳細は繰り返しては説明されない。
当業者は、ハードウェア、ファームウェア、又はそれらの組み合わせによって、この出願の複数の実施形態を実装することが可能であるということを明確に理解することが可能である。ソフトウェアによってこの出願のそれらの複数の実施形態を実装するときに、上記の複数の機能は、コンピュータ読み取り可能な媒体の中に格納されてもよく或いはコンピュータ読み取り可能な媒体の中の1つ又は複数の命令又はコードとして伝送されてもよい。コンピュータ読み取り可能な媒体は、コンピュータ記憶媒体及び通信媒体を含み、通信媒体は、コンピュータプログラムをある場所から他の場所へと伝送することを可能にするいずれかの媒体を含む。記憶媒体は、コンピュータにアクセス可能ないずれかの利用可能な媒体であってもよい。コンピュータ読み取り可能な媒体の例は、これらには限定されないが、RAM、ROM、電気的に消去可能な且つプログラム可能な読み取り専用メモリ(electrically erasable programmable read-only memory, EEPROM)、コンパクトディスク読み取り専用メモリ(compact disc read-only memory, CD-ROM)又は他の光ディスク記憶装置、ディスク記憶媒体又は他のディスク記憶装置、或いは、コマンドの形態又はデータ構造の形態で期待されるプログラムコードを搬送し又は格納するのに使用されてもよく、また、コンピュータによってアクセスされてもよい他の媒体を含む。加えて、コンピュータ読み取り可能な媒体として、任意の接続を適切に定義することが可能である。例えば、同軸ケーブル、光ファイバ/ケーブル、ツイストペア、ディジタル加入者線(digital subscriber line, DSL)、或いは、赤外線、無線、及びマイクロ波等の無線技術を使用することによって、ウェブサイト、サーバ、又は他のリモートソースからソフトウェアを伝送する場合に、同軸ケーブル、光ファイバ/ケーブル、ツイストペア、DSL、或いは、赤外線、無線、及びマイクロ波等の無線技術は、それらが属している媒体の固定に含まれる。この出願の複数の実施形態において使用されるディスク(disk)及び盤(disc)は、コンパクトディスク(compact disc, CD)、レーザディスク、光ディスク、ディジタルビデオディスク(digital video disc, DVD)、フロッピーディスク、及びブルーレイディスクを含み、ディスクは、一般的に、磁気手段によってデータをコピーし、ディスクは、レーザー手段によって光学的にデータをコピーする。上記の組み合わせは、また、コンピュータ読み取り可能な媒体の保護の範囲の中に含まれるべきである。
要約すると、上記で説明されている事項は、この出願の実施形態であるにすぎず、この出願の保護の範囲を限定することを意図してはいない。この出願の趣旨及び原理から離れることなく行われるいずれかの修正、等価な置換、又は改良は、この出願の保護の範囲に属するものとする。