JP6444359B2 - 通信システム、通信装置、通信方法、及びプログラム - Google Patents
通信システム、通信装置、通信方法、及びプログラム Download PDFInfo
- Publication number
- JP6444359B2 JP6444359B2 JP2016224423A JP2016224423A JP6444359B2 JP 6444359 B2 JP6444359 B2 JP 6444359B2 JP 2016224423 A JP2016224423 A JP 2016224423A JP 2016224423 A JP2016224423 A JP 2016224423A JP 6444359 B2 JP6444359 B2 JP 6444359B2
- Authority
- JP
- Japan
- Prior art keywords
- communication device
- key
- server
- common key
- unit
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Description
通信データの秘匿を図る技術の一つとして公開鍵暗号方式が知られている。公開鍵暗号方式では、一般に、PKI(Public Key Infrastructure、公開鍵基盤)を利用して公開鍵(公開鍵証明書)がやり取りされる(例えば、非特許文献1参照)。
また、IoTデバイスのセキュリティが侵害されるおそれがある。しかしながら、非力なIoTデバイスに高度なセキュリティ対策機能を追加することは難しい。
本発明は、上記問題を解決すべくなされたもので、IoTシステムに含まれるIoTデバイスのセキュリティを向上させることを目的とする。
(2)本発明の一態様は、サーバと、該サーバと通信を行う第1の通信装置と、前記サーバ及び前記第1の通信装置と通信を行う第2の通信装置とを備える通信システムであって、サーバは、マスター鍵を記憶する第1の記憶部と、前記第1の通信装置が送信した該第1の通信装置の識別情報を受信する受信部と、前記第1の通信装置の識別情報と前記第1の記憶部に記憶されているマスター鍵とに基づいて、第1の共通鍵を生成する第1の鍵生成部と、前記第1の鍵生成部が生成した第1の共通鍵を使用して、前記第1の通信装置との間で相互認証を行う第1の認証部とを備え、前記第1の通信装置は、マスター鍵と、第2の共通鍵とを記憶する第2の記憶部と、前記第1の通信装置の識別情報と前記第2の記憶部に記憶されている前記マスター鍵とに基づいて、第1の共通鍵を生成する第2の鍵生成部と、前記サーバへ前記第1の通信装置の識別情報を送信する送信部と、前記第2の鍵生成部が生成した第1の共通鍵を使用して、前記サーバとの間で相互認証を行い、前記第2の記憶部に記憶されている第2の共通鍵で前記第2の鍵生成部が生成した前記第1の共通鍵を暗号化した結果を使用して、前記第2の通信装置との間で相互認証を行う第2の認証部とを備え、前記送信部は、前記第2の共通鍵で該第1の共通鍵を暗号化した結果を、前記第2の通信装置へ送信し、前記第2の通信装置は、第2の共通鍵を記憶する第3の記憶部と、前記第3の記憶部に記憶されている前記第2の共通鍵を使用して、前記サーバ、及び前記第1の通信装置との間で相互認証を行う第3の認証部とを備える、通信システムである。
(7)本発明の一態様は、サーバと通信を行う通信装置のコンピュータに、マスター鍵と、第2の共通鍵とを記憶するステップと、前記通信装置の識別情報と前記マスター鍵とに基づいて、第1の共通鍵を生成するステップと、サーバへ前記通信装置の識別情報を送信するステップと、前記第1の共通鍵を使用して、前記サーバとの間で相互認証を行うステップと、前記第2の共通鍵で前記第1の共通鍵を暗号化した結果を、他の通信装置へ送信するステップと、前記第2の共通鍵で前記第1の共通鍵を暗号化した結果を使用して、前記他の通信装置との間で相互認証を行うステップとを実行させる、プログラムである。
<通信システム>
図1は、本実施形態に係る通信システムを示す図である。通信システム1は、センタサーバ100とIoTデバイス200と管理サーバ300とを備える。センタサーバ100とIoTデバイス200と管理サーバ300とは、インターネット等の通信網50を介して接続される。
IoTデバイス200は、ブルートゥース(Bluetooth)(登録商標)、ワイファイ(WiFi)(登録商標)、近距離無線通信技術(Near Field Communication:NFC)等の無線通信技術で無線通信を行う無線デバイスを搭載する。また、センタサーバ100には、マスター鍵(MasterSecret1)がプリセットされ、IoTデバイス200にはマスター鍵(MasterSecret2)と鍵種別IDとがプリセットされる。センタサーバ100にプリセットされるマスター鍵(MasterSecret1)とIoTデバイス200にプリセットされるマスター鍵(MasterSecret2)とは同じである。ここで、鍵種別IDは、暗号用に用いる鍵、又はCMAC生成用に用いる鍵を指定するための識別情報である。
センタサーバ100は、IoTデバイス200が送信したチャレンジ(乱数g)とデバイスIDとを取得すると、該デバイスIDとマスター鍵MasterSecret1と鍵種別IDとから共通鍵Kc_genを生成する。該共通鍵Kc_genは、IoTデバイス200において生成された共通鍵Kc_genと同じである。センタサーバ100は、共通鍵Kc_genを生成すると、共通鍵Kc_genでチャレンジ(乱数g)を暗号化することで、レスポンスKc_gen(乱数g)を生成する。センタサーバ100は、レスポンスKc_gen(乱数g)を生成すると、チャレンジ(乱数s)を生成し、生成したチャレンジ(乱数s)とレスポンスKc_gen(乱数g)とを、IoTデバイス200へ送信する。
センタサーバ100は、IoTデバイス200が送信したレスポンスKc_gen(乱数s)を取得すると、レスポンスKc_gen(乱数s)を検証する。
図2は、本実施形態に係る通信システム1に含まれるセンタサーバ100とIoTデバイス200の構成の一例を示す。なお、図2には、IoTデバイス200が設置され、各種設定が行われるときに、該IoTデバイス200へ、デバイスIDを通知する管理サーバ300も示されている。
センタサーバ100は、通信部102と制御部104と記憶部120と上記各構成要素を図2に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン150とを備える。
通信部102は、通信モジュールによって実現される。通信部102は、通信網50を経由して、IoTデバイス200と通信を行う。通信部102は、IoTデバイス200が送信したチャレンジ(乱数g)とIoTデバイス200のデバイスIDとを受信する。また、通信部102は、IoTデバイス200へ、チャレンジ(乱数s)とレスポンスKc_gen(乱数g)とを送信する。また、通信部102は、IoTデバイス200が送信したレスポンスKc_gen(乱数s)を受信する。
鍵生成部106は、通信部102が受信したIoTデバイス200のデバイスIDを取得する。鍵生成部106は、IoTデバイス200のデバイスIDを取得すると、マスター鍵MasterSecret1と該デバイスIDと後述する鍵種別ID122に含まれるCMAC生成用に用いる鍵を指定する識別情報とから、共通鍵Kc_genを生成する。具体的には、鍵生成部106は、マスター鍵MasterSecret1とIoTデバイス200のデバイスIDとCMAC生成用に用いる鍵を指す識別情報との連結データを入力値に使用してハッシュ値を算出し、算出したハッシュ値を共通鍵Kc_genに使用する。
認証部108は、通信部102がレスポンスKc_gen(乱数s)を受信すると、検証部110に該レスポンスKc_gen(乱数s)の検証を要求する。認証部108は、検証部110から検証が成功であることが通知された場合、IoTデバイス200が正当であると判断する。
記憶部120は、不揮発性メモリ等の記憶装置によって実現される。記憶部120は、マスター鍵MasterSecret1と鍵種別ID122とプログラム124とを記憶する。
IoTデバイス200は、通信部202と制御部204と記憶部220とSIM230と上記各構成要素を図2に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン250とを備える。
通信部202は、通信モジュールによって実現される。通信部202は、通信網50を経由して、センタサーバ100、及び管理サーバ300と通信を行う。通信部202は、IoTデバイス200が設置された際に、管理サーバ300が送信したデバイスIDを受信する。また、通信部202は、センタサーバ100へ、チャレンジ(乱数g)とIoTデバイス200のデバイスIDとを送信する。また、通信部202は、センタサーバ100が送信したチャレンジ(乱数s)とレスポンスKc_gen(乱数g)とを受信する。また、通信部102は、IoTデバイス200へ、レスポンスKc_gen(乱数s)を送信する。
鍵生成部206は、通信部202が受信したデバイスIDを取得する。鍵生成部206は、デバイスIDを取得すると、SIM230に記憶されているマスター鍵MasterSecret2を取得する。鍵生成部206は、マスター鍵MasterSecret2とデバイスIDと後述する鍵種別ID232に含まれるCMAC生成用に用いる鍵を指示する識別情報とから、共通鍵Kc_genを生成する。具体的には、鍵生成部206は、マスター鍵MasterSecret1とIoTデバイス200のデバイスIDとCMAC生成用に用いる鍵を指示する識別情報との連結データを入力値に使用してハッシュ値を算出し、算出したハッシュ値を共通鍵Kc_genに使用する。
認証部208は、通信部202がチャレンジ(乱数s)とレスポンスKc_gen(乱数g)とを受信すると、検証部210に該レスポンスKc_gen(乱数g)の検証を要求する。認証部208は、検証部210から検証が成功であることが通知された場合、センタサーバ100が正当であると判断する。認証部208は、検証部210から検証が成功であることが通知された場合、共通鍵Kc_genで、チャレンジ(乱数s)を暗号化し、レスポンスKc_gen(乱数s)を作成する。認証部208は、レスポンスKc_gen(乱数s)を、通信部202からセンタサーバ100へ送信する。
SIM230は、SIM(Subscriber Identity Module)によって実現される。SIM230は、SIM識別情報simid200とマスター鍵MasterSecret2と鍵種別ID232とを記憶する。このマスター鍵MasterSecret2は、センタサーバ100の記憶部120に記憶されているマスター鍵MasterSecret1と同じものである。
管理サーバ300は、IoTデバイス200が設置されたときに、該IoTデバイス200へ、該IoTデバイス200のデバイスIDを通知する。
図3は、本実施形態に係る通信システムの動作の一例を示すシーケンスチャートである。
ステップS302では、IoTデバイス200が設置され、各種設定が行われる。管理サーバ300は、IoTデバイス200へ、該IoTデバイス200のデバイスID222を通知する。IoTデバイス200の記憶部220は、管理サーバ300が送信したデバイスID222を記憶する。
ステップS304では、IoTデバイス200の鍵生成部206は、SIM230に記憶されているマスター鍵MasterSecret2とIoTデバイス200のデバイスID222と鍵種別ID232とから共通鍵Kc_genを生成する。
ステップS306では、IoTデバイス200の認証部208は、チャレンジ(乱数g)を生成する。認証部208は、チャレンジ(乱数g)を生成すると、該チャレンジ(乱数g)とIoTデバイス200のデバイスID222とを、通信部202からセンタサーバ100へ送信する。
ステップS310では、センタサーバ100の認証部108は、鍵生成部106が生成した共通鍵Kc_genでチャレンジ(乱数g)を暗号化することによって、レスポンスKc_gen(乱数g)を生成する。また、認証部108は、チャレンジ(乱数s)を生成する。認証部108は、チェレンジ(乱数s)とレスポンスKc_gen(乱数g)とを、通信部102からIoTデバイス200へ送信する。
<通信システム>
図4は、本実施形態に係る通信システムを示す図である。通信システム2は、センタサーバ100と管理サーバ300とIoTデバイス400とIoTデバイス500とを備える。センタサーバ100と管理サーバ300とIoTデバイス400とIoTデバイス500とは、インターネット等の通信網50を介して接続される。
IoTデバイス500は、チャレンジ(乱数e)を生成し、生成したチャレンジ(乱数e)とIoTデバイス500のデバイスID522とを、IoTデバイス400へ送信する。
IoTデバイス400は、IoTデバイス500が送信したチャレンジ(乱数e)とIoTデバイス500のデバイスID522とを受信すると、共通鍵Kc_初期で、チャレンジ(乱数e)を暗号化することによって、レスポンスKc_初期(乱数e)を生成する。また、IoTデバイス400は、チャレンジ(乱数g)を生成し、生成したチャレンジ(乱数g)とレスポンスKc_初期(乱数e)とを、IoTデバイス500へ送信する。
IoTデバイス400は、プリセットされている共通鍵Kc_初期で共通鍵Kc_gen_eを暗号化することによって、Kc_初期(Kc_gen_e)を生成する。IoTデバイス400は、生成したKc_初期(Kc_gen_e)をIoTデバイス500へ、送信する。
IoTデバイス500は、IoTデバイス400が送信したKc_初期(Kc_gen_e)を受信すると、プリセットされているKc_初期で、Kc_初期(Kc_gen_e)を復号し、復号した結果であるKc_gen_eを共通鍵にセットする。
センタサーバ100は、IoTデバイス400が送信したチャレンジ(乱数g)とIoTデバイス400のデバイスID422とを取得すると、該IoTデバイス400のデバイスID422とマスター鍵MasterSecret1と鍵種別IDとから共通鍵Kc_genを生成する。該共通鍵Kc_genは、IoTデバイス400が生成した共通鍵Kc_genと同じである。センタサーバ100は、共通鍵Kc_genを生成すると、共通鍵Kc_genでチャレンジ(乱数g)を暗号化することによって、レスポンスKc_gen(乱数g)を生成する。センタサーバ100は、チャレンジ(乱数s)を生成すると、生成したチャレンジ(乱数s)とレスポンスKc_gen(乱数g)とを、IoTデバイス400へ送信する。
センタサーバ100は、IoTデバイス400が送信したレスポンスKc_gen(乱数s)を取得すると、レスポンスKc_gen(乱数s)の正真性を検証する。センタサーバ100は、レスポンスKc_gen(乱数s)の正真性の検証が成功した場合には、IoTデバイス400が正当であると判断する。
センタサーバ100とIoTデバイス500との間でも、センタサーバ100とIoTデバイス400との間と同様の処理が行われる。ただし、IoTデバイス500がセットした共通鍵Kc_gen_eを用いて、IoTデバイス400を経由して、センタサーバ100とIoTデバイス500との間で相互認証が行われる。
図5は、本実施形態に係る通信システム2に含まれるセンタサーバ100とIoTデバイス400とIoTデバイス500との構成の一例を示す。なお、図5には、IoTデバイス400が設置され、各種設定が行われるときに、該IoTデバイス400へ、該IoTデバイス400のデバイスID422を通知する管理サーバ300も示されている。
IoTデバイス400は、通信部402と制御部404と記憶部420とSIM430と上記各構成要素を図5に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン450とを備える。
通信部402は、通信モジュールによって実現される。通信部402は、通信網50を経由して、センタサーバ100、管理サーバ300、及びIoTデバイス500と通信を行う。また、通信部402は、通信網50を経由せずに、例えば、ワイファイ(登録商標)、ブルートゥース(登録商標)等の近距離無線通信技術によって、IoTデバイス500と直接通信を行う。通信部402は、通信部202の機能に加えて、以下の機能を有する。通信部402は、IoTデバイス500が送信したチャレンジ(乱数e)とIoTデバイス500のデバイスID522とを受信する。また、通信部402は、IoTデバイス500へ、チャレンジ(乱数g)とレスポンスKc_初期(乱数e)とを送信する。また、通信部402は、IoTデバイス500が送信したレスポンスKc_初期(乱数g)を受信する。また、通信部402は、IoTデバイス500へ、Kc_初期(Kc_gen_e)を送信する。
鍵生成部406は、鍵生成部206の機能に加えて、以下の機能を有する。鍵生成部406は、通信部402が受信したIoTデバイス400のデバイスID422を取得する。鍵生成部406は、IoTデバイス400のデバイスID422を取得すると、マスター鍵MasterSecret4とIoTデバイス400のデバイスID422と後述する鍵種別ID432に含まれるCMAC生成用に用いる鍵を指定する識別情報とから、共通鍵Kc_genを生成する。具体的には、鍵生成部406は、マスター鍵MasterSecret4とIoTデバイス400のデバイスID422とCMAC生成用に用いる鍵を指定する識別情報との連結データを入力値に使用してハッシュ値を算出し、算出したハッシュ値を共通鍵Kc_genに使用する。
また、鍵生成部406は、認証部408からIoTデバイス500が正当であることが通知された場合、マスター鍵MasterSecret4とIoTデバイス500のデバイスID522と鍵種別ID432に含まれるCMAC生成用に用いる鍵を指定する識別情報とから、共通鍵Kc_gen_eを生成する。具体的には、鍵生成部406は、マスター鍵MasterSecret4とIoTデバイス500のデバイスID522とCMAC生成用に用いる鍵を指定する識別情報との連結データを入力値に使用してハッシュ値を算出し、算出したハッシュ値を共通鍵Kc_genに使用する。鍵生成部406は、共通鍵Kc_gen_eを生成すると、該共通鍵Kc_gen_eを、認証部408へ出力する。
認証部408は、通信部402がレスポンスKc_初期(乱数g)を受信すると、検証部410に該レスポンスKc_初期(乱数g)の検証を要求する。認証部408は、検証部410から検証が成功であることが通知された場合、IoTデバイス500が正当であると判断する。認証部408は、IoTデバイス500が正当であると判断した場合、鍵生成部406へ、IoTデバイス500が正当であることを通知する。
認証部408は、鍵生成部406が出力した共通鍵Kc_gen_eを取得すると、SIM430に記憶されている共通鍵Kc_初期で該共通鍵Kc_gen_eを暗号化することによって、Kc_初期(Kc_gen_e)を生成し、該Kc_初期(Kc_gen_e)を通信部402からIoTデバイス500へ送信する。
記憶部420は、不揮発性メモリ等の記憶装置によって実現される。記憶部420は、IoTデバイス400のデバイスID422とプログラム424とを記憶する。
SIM430は、SIM識別情報simid400とマスター鍵MasterSecret4と共通鍵Kc_初期と鍵種別ID432とを記憶する。このマスター鍵MasterSecret4は、センタサーバ100の記憶部120に記憶されているマスター鍵MasterSecret1と同じものである。
IoTデバイス500は、通信部502と制御部504と記憶部520とSIM530と上記各構成要素を図5に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン550とを備える。
通信部502は、通信モジュールによって実現される。通信部502は、通信網50を経由して、センタサーバ100、IoTデバイス400、及び管理サーバ300と通信を行う。また、通信部502は、通信網50を経由せずに、例えば、ワイファイ(登録商標)、ブルートゥース(登録商標)等の近距離無線通信技術によって、IoTデバイス400と直接通信を行う。通信部502は、IoTデバイス400へ、チャレンジ(乱数e)とIoTデバイス500のデバイスID522とを送信する。また、通信部502は、IoTデバイス400が送信したチャレンジ(乱数g)とレスポンスKc_初期(乱数e)とを受信する。また、通信部502は、IoTデバイス400へ、レスポンスKc_初期(乱数g)を送信する。また、通信部502は、IoTデバイス400が送信したKc_初期(Kc_gen_e)を受信する。
鍵生成部506は、鍵生成部206を適用できる。
認証部508は、認証部208の機能に加えて、以下の機能を有する。認証部508は、IoTデバイス400の正当性を確認する。認証部508は、チャレンジ(乱数e)を生成し、生成したチャレンジ(乱数e)とIoTデバイス500のデバイスID522とを、通信部502からIoTデバイス400へ送信する。認証部508は、IoTデバイス400が送信したチャレンジ(乱数g)とレスポンスKc_初期(乱数e)とを取得すると、検証部510に該レスポンスKc_初期(乱数e)の検証を要求する。認証部508は、検証部510から検証が成功であることが通知された場合、IoTデバイス400が正当であると判断する。認証部508は、検証部510から検証が成功であることが通知された場合、共通鍵Kc_初期で、チャレンジ(乱数g)を暗号化することによって、レスポンスKc_初期(乱数g)を作成する。認証部508は、レスポンスKc_初期(乱数g)を作成すると、該レスポンスKc_初期(乱数g)を、通信部502からIoTデバイス400へ送信する。認証部508は、通信部502が受信したKc_初期(Kc_gen_e)を取得すると、記憶部520に記憶されている共通鍵Kc_初期で、該Kc_初期(Kc_gen_e)を復号することによって、Kc_gen_eを取得する。認証部508は、Kc_gen_eを取得すると、該Kc_gen_eを共通鍵として設定する。
記憶部520は、不揮発性メモリ等の記憶装置によって実現される。記憶部520は、IoTデバイス500のデバイスID522と共通鍵Kc_初期とプログラム524とを記憶する。
SIM530は、SIM識別情報simid500とマスター鍵MasterSecret5と鍵種別ID532とを記憶する。このマスター鍵MasterSecret5は、センタサーバ100の記憶部120に記憶されているマスター鍵MasterSecret1と同じものである。
管理サーバ300は、IoTデバイス400が設置された場合に、該IoTデバイス400へ、該IoTデバイス400のデバイスIDを通知する。
図6は、本実施形態に係る通信システムの動作の一例を示すシーケンスチャートである。
ステップS602では、IoTデバイス400が設置され、各種設定が行われる。管理サーバ300は、IoTデバイス400へ、該IoTデバイス400のデバイスID422を通知する。IoTデバイス400の記憶部420は、管理サーバ300が送信したデバイスID422を記憶する。
ステップS604では、IoTデバイス400の鍵生成部406は、SIM430に記憶されているマスター鍵MasterSecret4と記憶部420に記憶されているIoTデバイス400のデバイスID422と鍵種別ID432とから共通鍵Kc_genを生成する。
ステップS608では、IoTデバイス400の通信部402は、IoTデバイス500が送信したチャレンジ(乱数e)とIoTデバイス500のデバイスID522とを受信する。IoTデバイス400の認証部408は、通信部402が受信したチャレンジ(乱数e)を取得すると、SIM430に記憶されている共通鍵Kc_初期で、該チャレンジ(乱数e)を暗号化することによって、レスポンスKc_初期(乱数e)を生成する。また、認証部408は、チャレンジ(乱数g)を生成すると、レスポンスKc_初期(乱数e)とチェレンジ(乱数g)とを、通信部502からIoTデバイス500へ送信する。
ステップS618では、IoTデバイス400の認証部408は、SIM430に記憶された共通鍵Kc_初期で共通鍵Kc_gen_eを暗号化することによって、Kc_初期(Kc_gen_e)を生成する。認証部408は、Kc_初期(Kc_gen_e)を、通信部402からIoTデバイス500へ送信する。
ステップS622−S632は、図3のステップS306−S316を適用できる。
ステップS634で、センタサーバ100とIoTデバイス500との間で行われる処理は、ステップS622−S630を適用できる。ただし、IoTデバイス500がセットした共通鍵Kc_gen_eを用いて、IoTデバイス400を経由して、センタサーバ100とIoTデバイス500との間で相互認証が行われる。この相互認証によって、センタサーバ100とIoTデバイス500との間で共通鍵が交換された後、センタサーバ100とIoTデバイス500との間で、通信網50を経由して、通信を行う。
IoTデバイス500は、共通鍵を交換したデバイスとのみ通信ができる。このように構成することによって、IoTデバイス500が、DDos(Distributed Denial of Service)攻撃の踏み台にされないようにできる。
本変形例に係る通信システムは、図4を適用できる。ただし、IoTデバイス400は、IoTデバイス500が送信したレスポンスKc_初期(乱数g)を受信すると、レスポンスKc_初期(乱数g)を検証し、レスポンスKc_初期(乱数g)の検証が成功した場合には、SIM430にプリセットされている共通鍵Kc_初期で、鍵生成部406が生成した共通鍵Kc_genを暗号化することによって、Kc_初期(Kc_gen)を生成する。IoTデバイス400は、生成したKc_初期(Kc_gen)をIoTデバイス500へ、送信する。
IoTデバイス500は、IoTデバイス400が送信したKc_初期(Kc_gen)を受信すると、プリセットされているKc_初期で、Kc_初期(Kc_gen)を復号し、復号した結果であるKc_genを共通鍵にセットする。
変形例に係る通信システム2に含まれるセンタサーバ100とIoTデバイス400とIoTデバイス500との構成は、図5を適用できる。ただし、IoTデバイス400の認証部408は、通信部402からレスポンスKc_初期(乱数g)を取得すると、検証部410に該レスポンスKc_初期(乱数g)の検証を要求し、検証部410から検証が成功であることが通知された場合、IoTデバイス500が正当であると判断する。認証部408は、IoTデバイス500が正当であると判断した場合、共通鍵Kc_初期で共通鍵Kc_genを暗号化することによって、Kc_初期(Kc_gen)を生成し、該Kc_初期(Kc_gen)を通信部402からIoTデバイス500へ送信する。
IoTデバイス500の認証部508は、IoTデバイス400が送信したKc_初期(Kc_gen)を受信すると、記憶部520に記憶されている共通鍵Kc_初期で、Kc_初期(Kc_gen)を復号することによって、Kc_genを取得する。認証部508は、Kc_genを取得すると、該Kc_genを共通鍵として設定する。
図7は、本変形例に係る通信システムの動作の一例を示すシーケンスチャートである。
ステップS702−S714は、図6のステップS602−S614を適用できる。
ステップS716では、IoTデバイス400の認証部408は、検証部410から検証が成功したか否かを表す情報が通知されると、該情報が、認証が成功したことを示す場合に、SIM430に記憶された共通鍵Kc_初期で共通鍵Kc_genを暗号化する。認証部408は、共通鍵Kc_初期で共通鍵Kc_genを暗号化した結果であるKc_初期(Kc_gen)を、通信部402からIoTデバイス500へ送信する。
ステップS718では、IoTデバイス500の通信部502は、IoTデバイス400が送信したKc_初期(Kc_gen)を受信する。IoTデバイス500の認証部508は、Kc_初期(Kc_gen)を取得すると、記憶部520に記憶している共通鍵Kc_初期で該Kc_初期(Kc_gen)を復号する。認証部508は、共通鍵Kc_初期で該Kc_初期(Kc_gen)を復号した結果であるKc_genを、共通鍵として設定する。
ステップS720−S732は、図6のステップS622−S634を適用できる。ただし、IoTデバイス500がセットした共通鍵Kc_genを用いて、IoTデバイス400を経由して、センタサーバ100とIoTデバイス500との間で相互認証が行われる。
本実施形態に係る通信システムは、ルート認証局とセンタサーバとIoTデバイスとを備える。ルート認証局とセンタサーバとIoTデバイスとは、インターネット等の通信網を介して接続される。
本実施形態に係る通信システムは、プライベートなルート認証局が基点となり、センタサーバ、IoTデバイスにルート公開鍵証明書Kp_rを設定する。また、センタサーバは、事前に公開鍵と秘密鍵のペアを生成しておき、プライベートなルート認証局からサーバ公開鍵証明書Kp_sの発行を受けておく。
図8は、センタサーバ100が発行する公開鍵証明書のフォームの一例を示す。図8に示される公開鍵証明書のフォームにおいて、「issue(発行者)」の欄にはSIMのアプリ領域にある認証局アプリが記載される。また、「Subject(主体者)」の欄には公開鍵証明書の発行を受けるIoTデバイス(SIM所有者)を示す。
IoTデバイス800は、ブルートゥース(登録商標)、ワイファイ(登録商標)、近距離無線通信技術等の無線通信技術で無線通信を行う無線デバイスを搭載する。また、センタサーバ700にはルート公開鍵証明書Kp_rとサーバ公開鍵証明書Kp_sとサーバ秘密鍵Ks_sとがプリセットされ、IoTデバイス800にはルート公開鍵証明書Kp_rがプリセットされる。また、IoTデバイス800には、認証局アプリがインストールされる。
センタサーバ700は、IoTデバイス800が送信したチャレンジ(乱数g)とGW公開鍵証明書Kp_gとを受信すると、ルート公開鍵証明書Kp_rを用いて、GW公開鍵証明書Kp_gを検証する。センタサーバ700は、GW公開鍵証明書Kp_gの検証が成功した場合、サーバ秘密鍵Ks_sで、チャレンジ(乱数g)を暗号化することによって、レスポンスKs_s(乱数g)を生成する。また、センタサーバ700は、チャレンジ(乱数s)を生成し、生成したチャレンジ(乱数s)とレスポンスKs_s(乱数g)とサーバ公開鍵証明書Kp_sとをIoTデバイス800へ送信する。
センタサーバ700は、IoTデバイス800が送信したレスポンスKs_g(乱数s)を受信すると、IoTデバイス800のGW公開鍵Kp_gで、該レスポンスKs_gを検証する。
図10は、本実施形態に係る通信システム3に含まれるルート認証局600とセンタサーバ700とIoTデバイス800の構成の一例を示す。
(ルート認証局)
ルート認証局600は、通信部602と制御部604と記憶部620と上記各構成要素を図10に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン650とを備える。
生成部603は、記憶部620に記憶されているルート秘密鍵Ks_rと、センタサーバ700が送信したサーバ公開鍵を使用して、サーバ公開鍵証明書Kp_sを生成する。生成部603は、通信部602からセンタサーバ700へ、生成したサーバ公開鍵証明書Kp_sを送信する。生成部603は、サーバ公開鍵証明書Kp_sとともに、ルート公開鍵証明書Kp_rを送信するようにしてもよい。
また、生成部603は、記憶部620に記憶されているルート秘密鍵Ks_rとIoTデバイス800が送信したGW公開鍵Kp_gとを使用して、GW公開鍵証明書Kp_gを生成する。生成部603は、通信部602からIoTデバイス800へ、生成したGW公開鍵証明書Kp_gを送信する。生成部603は、IoTデバイス公開鍵証明書Kp_gとともに、ルート公開鍵証明書Kp_rを送信するようにしてもよい。
記憶部620は、不揮発性メモリ等の記憶装置によって実現される。記憶部620は、ルート公開鍵証明書Kp_rとルート秘密鍵Ks_rとプログラム(図示なし)とを記憶する。
センタサーバ700は、通信部702と制御部704と記憶部720と上記各構成要素を図10に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン750とを備える。
通信部702は、通信モジュールによって実現される。通信部702は、通信網50を経由して、ルート認証局600、及びIoTデバイス800と通信を行う。通信部702は、IoTデバイス800が送信したチャレンジ(乱数g)とGW公開鍵証明書Kp_gとを受信する。また、通信部702は、IoTデバイス800へ、チャレンジ(乱数s)とレスポンスKs_s(乱数g)とサーバ公開鍵証明書Kp_sとを送信する。また、通信部702は、IoTデバイス800が送信したレスポンスKs_g(乱数s)を受信する。
鍵生成部706は、サーバ公開鍵Kp_sとサーバ秘密鍵Ks_sのペアを生成する。鍵生成部706は、記憶部720に、サーバ秘密鍵Ks_sを記憶する。
認証部708は、通信部702がレスポンスKs_g(乱数s)を受信すると、検証部210に該レスポンスKs_g(乱数s)の検証を要求する。認証部708は、検証部710から検証が成功であることが通知された場合、IoTデバイス800が正当であると判断する。
また、検証部710は、認証部708からの要求に応じて、GW公開鍵Kp_gでレスポンスKs_g(乱数s)を検証する。検証部710は、該レスポンスKs_g(乱数s)を検証すると、検証が成功したか否かを、認証部708へ通知する。
記憶部720は、不揮発性メモリ等の記憶装置によって実現される。記憶部720は、ルート公開鍵証明書Kp_rとサーバ公開鍵証明書Kp_sとサーバ秘密鍵Ks_sとプログラム724とを記憶する。
IoTデバイス800は、通信部802と制御部804と記憶部820とSIM830と上記各構成要素を図10に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン850とを備える。
通信部802は、通信モジュールによって実現される。通信部802は、通信網50を経由して、ルート認証局600、及びセンタサーバ700と通信を行う。通信部802は、IoTデバイス800が設置された際に、ルート認証局600が発行したGW公開鍵証明書Kp_gを受信する。また、通信部802は、センタサーバ700へ、チャレンジ(乱数g)とGW公開鍵証明書Kp_gとを送信する。また、通信部802は、センタサーバ700が送信したレスポンスKs_s(乱数g)とチャレンジ(乱数s)とサーバ公開鍵証明書Kp_sとを受信する。また、通信部802は、センタサーバ700へ、レスポンスKs_g(乱数s)を送信する。
鍵生成部806は、GW公開鍵Kp_gと該GW公開鍵Kp_gとペアとなるGW秘密鍵Ks_gとを生成する。鍵生成部806は、記憶部820へ、GW秘密鍵Ks_gを記憶する。
記憶部820は、不揮発性メモリ等の記憶装置によって実現される。記憶部820は、IoTデバイス800のデバイスID822とプログラム824とGW秘密鍵Ks_gとを記憶する。
SIM830は、SIM識別情報simid800と認証局アプリ834とRoot公開鍵証明書Kp_rとRoot公開鍵証明書Kp_rとを記憶する。認証局アプリ834は、プライベートなルート認証局の秘密鍵を保持する。認証局アプリ834は、公開鍵証明書の発行処理を行うアプリであり、ルート認証局と同じ役割を果たす。
図11は、本実施形態に係る通信システムの動作の一例を示すシーケンスチャートである。
ステップS1102では、IoTデバイス800が設置され、各種設定が行われる。
ステップS1104では、IoTデバイス800の鍵生成部806は、GW公開鍵とGW秘密鍵Ks_gとのペアを生成し、該GW秘密鍵Ks_gを記憶部820に記憶する。また、IoTデバイス800の認証部808は、ルート認証局600が発行したGW公開鍵証明書Kp_gを取得する。
ステップS1106では、IoTデバイス800の認証部808は、チャレンジ(乱数g)を生成し、該チャレンジ(乱数g)とGW公開鍵証明書Kp_gとを、通信部802からセンタサーバ700へ送信する。
ステップS1110では、センタサーバ700の認証部708は、検証部710から検証が成功したことが通知されると、サーバ秘密鍵Ks_sでチャレンジ(乱数g)を暗号化することによって、レスポンスKs_s(乱数g)を生成する。そして、認証部708は、チャレンジ(乱数s)を生成し、該チャレンジ(乱数s)とレスポンスKs_s(乱数g)とサーバ公開鍵証明書Kp_sとを、通信部702からIoTデバイス800へ送信する。
ステップS1116では、センタサーバ700の検証部710は、GW公開鍵でレスポンスKs_g(乱数s)を検証する。検証部710は、該レスポンスKs_g(乱数s)を検証すると、検証が成功したか否かを、認証部708へ通知する。認証部708は、検証部710から検証が成功であることが通知された場合、IoTデバイス800が正当であると判断する。
<通信システム>
図12は、本実施形態に係る通信システムを示す図である。通信システム4は、ルート認証局600とセンタサーバ700とIoTデバイス900とIoTデバイス1000とを備える。ルート認証局600とセンタサーバ700とIoTデバイス900とIoTデバイス1000とは、インターネット等の通信網50を介して接続される。
IoTデバイス900、及びIoTデバイス1000は、ブルートゥース(登録商標)、ワイファイ(登録商標)、近距離無線通信技術等の無線通信技術で無線通信を行う無線デバイスを搭載する。また、センタサーバ700にはルート公開鍵証明書Kp_rとサーバ公開鍵証明書Kp_sとサーバ秘密鍵Ks_sとがプリセットされ、IoTデバイス900には共通鍵Kc_初期とルート公開鍵証明書Kp_rとがプリセットされ、IoTデバイス1000には共通鍵Kc_初期がプリセットされる。また、IoTデバイス900及びIoTデバイス1000には、認証局アプリがインストールされる。
IoTデバイス1000は、エンド公開鍵Kp’_eとエンド秘密鍵Ks_eとのペアを生成する。IoTデバイス1000は、チャレンジ(乱数e)を生成すると、該チャレンジ(乱数e)とエンド公開鍵Kp’_eとを、IoTデバイス900へ送信する。
IoTデバイス900は、IoTデバイス1000が送信したチャレンジ(乱数e)とエンド公開鍵Kp’_eとを受信すると、プリセットされている共通鍵Kc_初期で、チャレンジ(乱数e)を暗号化することによって、レスポンスKc_初期(乱数e)を生成する。IoTデバイス900は、チャレンジ(乱数g)を生成し、該チャレンジ(乱数g)とレスポンスKc_初期(乱数e)とをIoTデバイス1000へ送信する。
図13は、本実施形態に係る通信システム4に含まれるルート認証局600とセンタサーバ700とIoTデバイス900とIoTデバイス1000との構成の一例を示す。
IoTデバイス900は、通信部902と制御部904と記憶部920とSIM930と上記各構成要素を図13に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン950とを備える。
通信部902は、通信モジュールによって実現される。通信部902は、通信網50を経由して、ルート認証局600、センタサーバ700、及びIoTデバイス1000と通信を行う。通信部902は、IoTデバイス900が設置された際に、ルート認証局600が発行したGW公開鍵証明書Kp_gを受信する。また、通信部902は、IoTデバイス1000が送信したチャレンジ(乱数e)とエンド公開鍵Kp‘_eとを受信する。また、通信部902は、IoTデバイス1000へ、チャレンジ(乱数g)とレスポンスKc_初期(乱数e)とを送信する。また、通信部902は、IoTデバイス1000が送信したレスポンスKc_初期(乱数g)を受信する。また、通信部902は、IoTデバイス1000へ、Kc_初期(エンド公開鍵証明書Kp_e)を送信する。
また、通信部902は、センタサーバ700へ、チャレンジ(乱数g)とGW公開鍵証明書Kp_gとを送信する。また、通信部902は、センタサーバ700が送信したレスポンスKs_s(乱数g)とチャレンジ(乱数s)とサーバ公開鍵証明書Kp_sとを受信する。また、通信部902は、センタサーバ700へ、レスポンスKs_g(乱数s)を送信する。
鍵生成部906は、鍵生成部806の機能に加えて、以下の機能を有する。鍵生成部906は、GW公開鍵とGW秘密鍵Ks_gのペアを生成する。鍵生成部906は、記憶部920へ、GW秘密鍵Ks_gを記憶する。
認証部908は、IoTデバイス1000が送信したレスポンスKc_初期(乱数g)を取得すると、検証部910に該レスポンスKc_初期(乱数g)の検証を要求する。認証部908は、検証部910から検証が成功であることが通知された場合、IoTデバイス1000が正当であると判断する。認証部908は、検証部910から検証が成功であることが通知された場合、認証局アプリ934が作成したエンド公開鍵証明書Kp_eを取得する。認証部908は、共通鍵Kc_初期でエンド公開鍵証明書Kp_eを暗号化することによって、Kc_初期(エンド公開鍵証明書Kp_e)を生成する。認証部908は、Kc_初期(エンド公開鍵証明書Kp_e)を、通信部902からIoTデバイス1000へ送信する。
認証部908は、センタサーバ700が送信したレスポンスKs_s(乱数g)とチャレンジ(乱数s)とサーバ公開鍵証明書Kp_sとを取得すると、検証部910に該サーバ公開鍵証明書Kp_sの検証を要求する。認証部908は、検証部910から検証が成功であることが通知された場合、センタサーバ700が正当であると判断する。認証部908は、検証部910から検証が成功であることが通知された場合、GW秘密鍵Ks_gでチャレンジ(乱数s)を暗号化することで、レスポンスKs_g(乱数s)を生成する。認証部908は、レスポンスKs_g(乱数s)を、通信部902からセンタサーバ700へ送信する。
検証部910は、認証部908からの要求に応じて、サーバ公開鍵を用いて、レスポンスKs_s(乱数g)を検証する。検証部910は、該レスポンスKs_s(乱数g)を検証すると、検証が成功したか否かを、認証部908へ通知する。
検証部910は、認証部908からの要求に応じて、ルート公開鍵証明書Kp_rを用いて、サーバ公開鍵証明書Kp_sを検証する。検証部910は、該サーバ公開鍵証明書Kp_sを検証すると、検証が成功したか否かを、認証部908へ通知する。
SIM930は、SIM識別情報simid900と認証局アプリ934とRoot公開鍵証明書Kp_rと共通鍵Kc_初期とを記憶する。認証局アプリ934は、プライベートなルート認証局の秘密鍵を保持する。認証局アプリ934は、公開鍵証明書の発行処理を行うアプリであり、ルート認証局と同じ役割を果たす。具体的には、認証局アプリ934は、該認証局アプリが管理するルート認証局600の秘密鍵Ks_rを用いて、エンド公開鍵証明書Kp_eを発行する。認証局アプリ934は、エンド公開鍵証明書Kp_eを発行すると、該エンド公開鍵証明書Kp_eを認証部908へ出力する。
IoTデバイス1000は、通信部1002と制御部1004と記憶部1020とSIM1030と上記各構成要素を図13に示されているように電気的に接続するためのアドレスバスやデータバス等のバスライン1050とを備える。
通信部1002は、通信モジュールによって実現される。通信部1002は、通信網50を経由して、ルート認証局600、センタサーバ700、及びIoTデバイス900と通信を行う。また、通信部1002は、通信網50を経由せずに、例えば、ワイファイ(登録商標)、ブルートゥース(登録商標)等の近距離無線通信技術によって、IoTデバイス900と直接通信を行う。通信部1002は、IoTデバイス900へ、チャレンジ(乱数e)とエンド公開鍵Kp’_eとを送信する。また、通信部1002は、IoTデバイス900が送信したチャレンジ(乱数g)とレスポンスKc_初期(乱数e)とを受信する。また、通信部1002は、IoTデバイス900へ、レスポンスKc_初期(乱数g)を送信する。また、通信部1002は、IoTデバイス900が送信したKc_初期(エンド公開鍵証明書Kp_e)を受信する。
鍵生成部1006は、鍵生成部806の機能に加えて、以下の機能を有する。鍵生成部806は、エンド公開鍵Kp’_eとエンド秘密鍵Ks_eのペアを生成する。鍵生成部1006は、記憶部1020へ、エンド秘密鍵Ks_eを記憶する。
認証部1008は、チャレンジ(乱数e)を生成し、生成したチャレンジ(乱数e)とエンド公開鍵Kp’_eとを、通信部1002からIoTデバイス900へ送信する。
また、認証部1008は、IoTデバイス900が送信したチャレンジ(乱数g)とレスポンスKc_初期(乱数e)とを取得すると、検証部1010に該レスポンスKc_初期(乱数e)の検証を要求する。認証部1008は、検証部1010から検証が成功であることが通知された場合、IoTデバイス900が正当であると判断する。認証部1008は、検証部1010から検証が成功であることが通知された場合、記憶部1020にプリセットされている共通鍵Kc_初期を用いて、チャレンジ(乱数g)を暗号化することによって、レスポンスKc_初期(乱数g)を生成する。認証部1008は、レスポンスKc_初期(乱数g)を、通信部1002からIoTデバイス900へ送信する。
認証部1008は、IoTデバイス900が送信したKc_初期(エンド公開鍵証明書Kp_e)を取得すると、記憶部1020に記憶されている共通鍵Kc_初期で該Kc_初期(エンド公開鍵証明書Kp_e)を復号することによって、エンド公開鍵証明書Kp_eを取得する。
記憶部1020は、不揮発性メモリ等の記憶装置によって実現される。記憶部1020は、IoTデバイス1000のデバイスID1022と共通鍵Kc_初期とプログラム1024とエンド秘密鍵Ks_eとを記憶する。
SIM1030は、SIM識別情報simid1000と認証局アプリ1034とルート公開鍵証明書Kp_rとを記憶する。
図14は、本実施形態に係る通信システムの動作の一例を示すシーケンスチャートである。
ステップS1402では、IoTデバイス900が設置され、各種設定が行われる。
ステップS1404では、IoTデバイス900の鍵生成部906は、GW公開鍵とGW秘密鍵Ks_gとのペアを生成する。認証局アプリ934は、GW公開鍵に対するGW公開鍵証明書Kp_gを生成する。
ステップS1406では、IoTデバイス1000の鍵生成部1006は、エンド公開鍵Kp’_eとエンド秘密鍵Ks_eのペアを生成する。
ステップS1408では、IoTデバイス1000の認証部1008は、チャレンジ(乱数e)を生成し、該チャレンジ(乱数e)とエンド公開鍵Kp’_eとを、通信部1002からIoTデバイス900へ送信する。
ステップS1412では、IoTデバイス1000の検証部1010は、記憶部1020に記憶されている共通鍵Kc_初期を用いて、レスポンスKc_初期(乱数e)を検証する。レスポンスKc_初期(乱数e)の検証が失敗した場合、所定のエラー処理が行われる。ここでは、検証が成功した場合について説明を続ける。
ステップS1414では、認証部1008は、記憶部1020に記憶されている共通鍵Kc_初期で、チャレンジ(乱数g)を暗号化することによって、レスポンスKc_初期(乱数g)を生成する。認証部1008は、該レスポンスKc_初期(乱数g)を、通信部1002からIoTデバイス900へ送信する。
ステップS1418では、IoTデバイス900の認証局アプリ934は、ルート認証局のルート秘密鍵Ks_rを用いて、エンド公開鍵証明書Kp_eを発行する。
ステップS1420では、IoTデバイス900の認証部908は、SIM930に記憶されている共通鍵Kc_初期で、エンド公開鍵証明書Kp_eを暗号化することによって、Kc_初期(エンド公開鍵証明書Kp_e)を生成する。IoTデバイス900の認証部908は、Kc_初期(エンド公開鍵証明書Kp_e)を、通信部902からIoTデバイス1000へ送信する。
ステップS1424−S1436は、図11のステップS1106−S1114を適用できる。ただし、IoTデバイス1000が取得したエンド公開鍵証明書Kp_eを用いて、IoTデバイス900を経由して、センタサーバ700とIoTデバイス1000との間で相互認証が行われる。この相互認証によって、センタサーバ700とIoTデバイス1000との間で公開鍵証明書が交換された後、センタサーバ700とIoTデバイス1000との間で、通信網50を経由して、通信を行う。
IoTデバイス1000は、公開鍵証明書を交換したデバイスとのみ通信ができる。このように構成することによって、IoTデバイス1000が、DDos攻撃の踏み台にされないようにできる。
第4の実施形態の変形例に係る通信システムは、図12を適用できる。ただし、IoTデバイス900とIoTデバイス1000との間の認証や暗号通信は共通鍵方式で行われ、センタサーバ700とIoTデバイス900との間の認証や暗号通信は公開鍵方式で行われる。
IoTデバイス1000は、前述したIoT500を適用できる。
図15は、本変形例に係る通信システムの動作の一例を示すシーケンスチャートである。
ステップS1502では、IoTデバイス900が設置され、各種設定が行われる。管理サーバ300は、IoTデバイス900へ、該IoTデバイス900のデバイスID922を通知する。IoTデバイス900の記憶部920は、管理サーバ300が送信したデバイスID922を記憶する。
ステップS1504は、前述したステップS1404を適用できる。
ステップS1506−S1520は、前述したステップS606−S620を適用できる。
ステップS1522−S1532は、前述したステップS1424−S1434を適用できる。
本変形例によれば、IoTデバイス900とIoTデバイス1000との間の認証や暗号通信を共通鍵方式で行うことによって、IoTデバイス900の処理負荷を低減できる。
第4の実施形態の変形例に係る通信システムは、図12を適用できる。ただし、IoTデバイス1000は、IoTデバイス900が生成した共通鍵を使用する。
IoTデバイス1000は、前述したIoT500を適用できる。
図16は、本変形例に係る通信システムの動作の一例を示すシーケンスチャートである。
ステップS1602は、前述したステップS1502を適用できる。
ステップS1604では、IoTデバイス900の鍵生成部906は、GW公開鍵Kp_gとGW秘密鍵Ks_gとのペアを生成する。認証局アプリ934は、GW公開鍵Kp_gに対するGW公開鍵証明書Kp_gを生成する。さらに、鍵生成部906は、SIM930に記憶されている共通鍵Kc_初期と記憶部920に記憶されているデバイスID922とに基づいて共通鍵Kc_genを生成する。
ステップS1606−S1614は、前述したステップS606−S614を適用できる。
ステップS1616−S1618は、前述したステップS716−S718を適用できる。
ステップS1620−S1630は、前述したステップS1424−S1434を適用できる。
本変形例によれば、IoTデバイス900とIoTデバイス1000との間で相互認証が成功した後に、IoTデバイス900が生成した共通鍵を、IoTデバイス1000へ配布することができる。
前述した実施形態及び変形例では、IoTデバイスが通信網に無線接続される場合について説明したが、この例に限られない。例えば、IoTデバイスが通信網に有線接続されてもよい。
前述した実施形態及び変形例では、鍵生成部がマスター鍵MasterSecretとデバイスIDとCMAC生成用に用いる鍵を指示する識別情報との連結データを入力値に使用してハッシュ値を算出し、算出したハッシュ値を共通鍵Kc_genに使用する場合について説明したがこの例に限られない。例えば、鍵生成部106は、マスター鍵MasterSecretとデバイスIDとCMAC生成用に用いる鍵を指す識別情報との連結データを入力値に使用して排他的論理和演算を実行し、演算結果の値「マスター鍵 xor デバイスID xor CMAC生成用に用いる鍵を指す識別子」を共通鍵に使用する。但し、「A xor B xor C」はAとBとCの排他的論理和である。
前述した実施形態及び変形例は、各種センサー、家電製品等がネットワークに繋がる際に、暗号通信や認証、署名検証に用いる鍵管理方式に広く適用できる。
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。
さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
Claims (12)
- サーバと、該サーバと通信を行う第1の通信装置と、前記サーバ及び前記第1の通信装置と通信を行う第2の通信装置とを備える通信システムであって、
サーバは、
マスター鍵を記憶する第1の記憶部と、
前記第1の通信装置が送信した該第1の通信装置の識別情報を受信する受信部と、
前記第1の通信装置の識別情報と前記第1の記憶部に記憶されているマスター鍵とに基づいて、第1の共通鍵を生成する第1の鍵生成部と、
前記第1の鍵生成部が生成した第1の共通鍵を使用して、前記第1の通信装置との間で相互認証を行う第1の認証部と
を備え、
前記第1の通信装置は、
マスター鍵と、第2の共通鍵とを記憶する第2の記憶部と、
前記第1の通信装置の識別情報と前記第2の記憶部に記憶されている前記マスター鍵とに基づいて、第1の共通鍵を生成し、前記第2の通信装置の識別情報に基づいて第3の共通鍵を生成する第2の鍵生成部と、
前記サーバへ前記第1の通信装置の識別情報を送信する送信部と、
前記第2の鍵生成部が生成した第1の共通鍵を使用して、前記サーバとの間で相互認証を行い、前記第2の記憶部に記憶されている第2の共通鍵で前記第3の共通鍵を暗号化した結果を使用して、前記第2の通信装置との間で相互認証を行う第2の認証部と
を備え、
前記送信部は、前記第2の共通鍵で前記第3の共通鍵を暗号化した結果を、前記第2の通信装置へ送信し、
前記第2の通信装置は、
第2の共通鍵を記憶する第3の記憶部と、
前記第3の記憶部に記憶されている前記第2の共通鍵を使用して、前記サーバ、及び前記第1の通信装置との間で相互認証を行う第3の認証部と
を備える、通信システム。 - サーバと、該サーバと通信を行う第1の通信装置と、前記サーバ及び前記第1の通信装置と通信を行う第2の通信装置とを備える通信システムであって、
サーバは、
マスター鍵を記憶する第1の記憶部と、
前記第1の通信装置が送信した該第1の通信装置の識別情報を受信する受信部と、
前記第1の通信装置の識別情報と前記第1の記憶部に記憶されているマスター鍵とに基づいて、第1の共通鍵を生成する第1の鍵生成部と、
前記第1の鍵生成部が生成した第1の共通鍵を使用して、前記第1の通信装置との間で相互認証を行う第1の認証部と
を備え、
前記第1の通信装置は、
マスター鍵と、第2の共通鍵とを記憶する第2の記憶部と、
前記第1の通信装置の識別情報と前記第2の記憶部に記憶されている前記マスター鍵とに基づいて、第1の共通鍵を生成する第2の鍵生成部と、
前記サーバへ前記第1の通信装置の識別情報を送信する送信部と、
前記第2の鍵生成部が生成した第1の共通鍵を使用して、前記サーバとの間で相互認証を行い、前記第2の記憶部に記憶されている第2の共通鍵で前記第2の鍵生成部が生成した前記第1の共通鍵を暗号化した結果を使用して、前記第2の通信装置との間で相互認証を行う第2の認証部と
を備え、
前記送信部は、前記第2の共通鍵で該第1の共通鍵を暗号化した結果を、前記第2の通信装置へ送信し、
前記第2の通信装置は、
第2の共通鍵を記憶する第3の記憶部と、
前記第3の記憶部に記憶されている前記第2の共通鍵を使用して、前記サーバ、及び前記第1の通信装置との間で相互認証を行う第3の認証部と
を備える、通信システム。 - 前記第1の鍵生成部は、生成する鍵を識別する情報に基づいて、第1の共通鍵を生成する、請求項1又は請求項2に記載の通信システム。
- サーバと通信を行う通信装置であって、
マスター鍵と、第2の共通鍵とを記憶する記憶部と、
前記通信装置の識別情報と前記記憶部に記憶されている前記マスター鍵とに基づいて、第1の共通鍵を生成し、他の通信装置の識別情報に基づいて第3の共通鍵を生成する鍵生成部と、
サーバへ前記通信装置の識別情報を送信する送信部と、
前記鍵生成部が生成した前記第1の共通鍵を使用して、前記サーバとの間で相互認証を行い、前記記憶部に記憶されている前記第2の共通鍵で前記第3の共通鍵を暗号化した結果を使用して、前記他の通信装置との間で相互認証を行う認証部と
を備え、
前記送信部は、前記第2の共通鍵で前記第3の共通鍵を暗号化した結果を、前記他の通信装置へ送信する、通信装置。 - サーバと、該サーバと通信を行う第1の通信装置と、前記サーバ及び前記第1の通信装置と通信を行う第2の通信装置とが実行する通信方法であって、
サーバが、マスター鍵を記憶するステップと、
第1の通信装置が、マスター鍵と、第2の共通鍵とを記憶するステップと、
第2の通信装置が、第2の共通鍵を記憶するステップと、
前記第1の通信装置が、前記第1の通信装置の識別情報と前記マスター鍵とに基づいて、第1の共通鍵を生成するステップと、
前記第1の通信装置が、サーバへ前記第1の通信装置の識別情報を送信するステップと、
前記サーバが、前記第1の通信装置が送信した該第1の通信装置の識別情報を受信するステップと、
前記サーバが、前記第1の通信装置の識別情報と前記マスター鍵とに基づいて、第1の共通鍵を生成するステップと、
前記サーバが、前記第1の共通鍵を生成するステップで生成した前記第1の共通鍵を使用して、前記第1の通信装置との間で相互認証を行うステップと、
前記第1の通信装置が、前記第1の共通鍵を使用して、前記サーバとの間で相互認証を行うステップと、
前記第1の通信装置が、前記第2の通信装置の識別情報に基づいて、第3の共通鍵を生成するステップと、
前記第1の通信装置が、前記第2の共通鍵で前記第3の共通鍵を暗号化した結果を、前記第2の通信装置へ送信するステップと、
前記第1の通信装置が、前記第2の共通鍵で前記第3の共通鍵を暗号化した結果を使用して、前記第2の通信装置との間で相互認証を行うステップと、
前記第2の通信装置が、前記第2の共通鍵を使用して、前記サーバ、及び前記第1の通信装置との間で相互認証を行うステップと
を有する、通信方法。 - サーバと通信を行う通信装置のコンピュータに、
マスター鍵と、第2の共通鍵とを記憶するステップと、
前記通信装置の識別情報と前記マスター鍵とに基づいて、第1の共通鍵を生成し、他の通信装置の識別情報に基づいて第3の共通鍵を生成するステップと、
サーバへ前記通信装置の識別情報を送信するステップと、
前記第1の共通鍵を使用して、前記サーバとの間で相互認証を行うステップと、
前記第2の共通鍵で前記第3の共通鍵を暗号化した結果を、前記他の通信装置へ送信するステップと、
前記第2の共通鍵で前記第3の共通鍵を暗号化した結果を使用して、前記他の通信装置との間で相互認証を行うステップと
を実行させる、プログラム。 - サーバと通信を行う通信装置のコンピュータに、
マスター鍵と、第2の共通鍵とを記憶するステップと、
前記通信装置の識別情報と前記マスター鍵とに基づいて、第1の共通鍵を生成するステップと、
サーバへ前記通信装置の識別情報を送信するステップと、
前記第1の共通鍵を使用して、前記サーバとの間で相互認証を行うステップと、
前記第2の共通鍵で前記第1の共通鍵を暗号化した結果を、他の通信装置へ送信するステップと、
前記第2の共通鍵で前記第1の共通鍵を暗号化した結果を使用して、前記他の通信装置との間で相互認証を行うステップと
を実行させる、プログラム。 - サーバと、該サーバと通信を行う第1の通信装置と、前記サーバ及び前記第1の通信装置と通信を行う第2の通信装置とを備える通信システムであって、
サーバは、
ルート公開鍵証明書と、サーバ公開鍵と、該サーバ公開鍵とペアをなすサーバ秘密鍵と、サーバ公開鍵証明書とを記憶する第1の記憶部と、
前記第1の記憶部に記憶されている前記サーバ秘密鍵と前記サーバ公開鍵証明書とを使用して、前記第1の通信装置との間で相互認証を行う第1の認証部と
を備え、
前記第1の通信装置は、
ルート公開鍵証明書と、認証局アプリと、第2の共通鍵とを記憶する第2の記憶部と、
第1の通信装置公開鍵と、該第1の通信装置公開鍵とペアをなす第1の通信装置秘密鍵とを生成し、前記第2の共通鍵と第2の通信装置の識別情報とに基づいて、第3の共通鍵を生成する第2の鍵生成部と、
前記サーバとの間で相互認証を行い、前記第2の共通鍵で前記第3の共通鍵を暗号化した結果を使用して、前記第2の通信装置との間で相互認証を行う第2の認証部と
を備え、
前記認証局アプリは、第1の通信装置公開鍵証明書を発行し、
前記第2の認証部は、前記第1の通信装置公開鍵証明書と前記第1の通信装置秘密鍵とを使用して、前記サーバとの間で相互認証を行い、
前記第2の通信装置は、
第2の共通鍵を記憶する第3の記憶部と、
第2の通信装置公開鍵と、該第2の通信装置公開鍵とペアをなす第2の通信装置秘密鍵とを生成する第3の鍵生成部と、
前記第2の共通鍵と前記第2の通信装置公開鍵とを使用して、前記サーバ、及び前記第1の通信装置との間で相互認証を行う第3の認証部と
を備える、通信システム。 - 前記認証局アプリは、第2の通信装置公開鍵証明書を発行し、
前記第2の認証部は、前記第2の共通鍵で、前記第2の通信装置公開鍵証明書を暗号化する、請求項8に記載の通信システム。 - サーバと通信を行う通信装置であって、
ルート公開鍵証明書と、認証局アプリと、第2の共通鍵とを記憶する記憶部と、
通信装置公開鍵と、該通信装置公開鍵とペアをなす通信装置秘密鍵とを生成し、前記第2の共通鍵と他の通信装置の識別情報とに基づいて、第3の共通鍵を生成する鍵生成部と、
前記サーバとの間で相互認証を行い、前記第2の共通鍵で前記第3の共通鍵を暗号化した結果を使用して、前記他の通信装置との間で相互認証を行う認証部と
を備え、
前記認証局アプリは、通信装置公開鍵証明書を発行し、
前記認証部は、前記通信装置公開鍵証明書と前記通信装置秘密鍵とを使用して、前記サーバとの間で相互認証を行う、通信装置。 - サーバと、該サーバと通信を行う第1の通信装置と、前記サーバ及び前記第1の通信装置と通信を行う第2の通信装置とが実行する通信方法であって、
サーバが、ルート公開鍵証明書と、サーバ公開鍵と、該サーバ公開鍵とペアをなすサーバ秘密鍵と、サーバ公開鍵証明書とを記憶するステップと、
前記第1の通信装置が、ルート公開鍵証明書と、認証局アプリと、第2の共通鍵とを記憶するステップと、
前記第2の通信装置が、第2の共通鍵を記憶するステップと、
前記第1の通信装置が、第1の通信装置公開鍵と、該第1の通信装置公開鍵とペアをなす第1の通信装置秘密鍵とを生成するステップと、
前記第1の通信装置の認証局アプリが、第1の通信装置公開鍵証明書を発行するステップと、
前記サーバが、前記サーバ秘密鍵と前記サーバ公開鍵証明書とを使用して、前記第1の通信装置との間で相互認証を行うステップと、
前記第1の通信装置が、前記第1の通信装置公開鍵証明書と前記第1の通信装置秘密鍵とを使用して、前記サーバとの間で相互認証を行うステップと、
前記第1の通信装置が、前記第2の共通鍵と第2の通信装置の識別情報とに基づいて、第3の共通鍵を生成するステップと、
前記第2の通信装置が、第2の通信装置公開鍵と、該第2の通信装置公開鍵とペアをなす第2の通信装置秘密鍵とを生成するステップと、
前記第1の通信装置が、前記第2の共通鍵で前記第3の共通鍵を暗号化した結果を使用して、前記第2の通信装置との間で相互認証を行うステップと、
前記第2の通信装置が、前記第2の共通鍵と前記第2の通信装置公開鍵とを使用して、前記サーバ、及び前記第1の通信装置との間で相互認証を行うステップと、
を有する通信方法。 - サーバと通信を行う通信装置のコンピュータに、
ルート公開鍵証明書と、認証局アプリと、第2の共通鍵とを記憶するステップと、
通信装置公開鍵と、該通信装置公開鍵とペアをなす通信装置秘密鍵とを生成するステップと、
前記第2の共通鍵と他の通信装置の識別情報とに基づいて、第3の共通鍵を生成するステップと、
通信装置公開鍵証明書を発行するステップと、
前記通信装置公開鍵証明書と前記通信装置秘密鍵とを使用して、前記サーバとの間で相互認証を行うステップと、
前記第2の共通鍵で前記第3の共通鍵を暗号化した結果を使用して、前記他の通信装置との間で相互認証を行うステップと
を実行させる、プログラム。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016224423A JP6444359B2 (ja) | 2016-11-17 | 2016-11-17 | 通信システム、通信装置、通信方法、及びプログラム |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| JP2016224423A JP6444359B2 (ja) | 2016-11-17 | 2016-11-17 | 通信システム、通信装置、通信方法、及びプログラム |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2018082353A JP2018082353A (ja) | 2018-05-24 |
| JP6444359B2 true JP6444359B2 (ja) | 2018-12-26 |
Family
ID=62197274
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2016224423A Active JP6444359B2 (ja) | 2016-11-17 | 2016-11-17 | 通信システム、通信装置、通信方法、及びプログラム |
Country Status (1)
| Country | Link |
|---|---|
| JP (1) | JP6444359B2 (ja) |
Families Citing this family (4)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP7185978B2 (ja) * | 2018-07-03 | 2022-12-08 | 株式会社ソラコム | 認証情報の設定を仲介するための装置及び方法 |
| JP6700371B1 (ja) * | 2018-11-29 | 2020-05-27 | ソフトバンク株式会社 | 管理装置、通信システム、プログラム及び制御方法 |
| JP7711365B2 (ja) * | 2020-10-14 | 2025-07-23 | Toppanホールディングス株式会社 | IoT機器認証システム、IoT機器認証方法、鍵配信用サーバおよびICチップ |
| CN114095150B (zh) * | 2021-11-12 | 2024-01-26 | 微位(深圳)网络科技有限公司 | 身份鉴定方法、装置、设备及可读存储介质 |
Family Cites Families (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP4427693B2 (ja) * | 1998-10-02 | 2010-03-10 | ソニー株式会社 | データ処理装置および方法、並びにデータ復号処理装置および方法 |
| JP5729057B2 (ja) * | 2011-03-18 | 2015-06-03 | 株式会社リコー | 通信装置、通信システムおよびプログラム |
| EP2874421A1 (en) * | 2013-11-13 | 2015-05-20 | Gemalto SA | System and method for securing communications between a card reader device and a remote server |
-
2016
- 2016-11-17 JP JP2016224423A patent/JP6444359B2/ja active Active
Also Published As
| Publication number | Publication date |
|---|---|
| JP2018082353A (ja) | 2018-05-24 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| CN111835752B (zh) | 基于设备身份标识的轻量级认证方法及网关 | |
| US10951423B2 (en) | System and method for distribution of identity based key material and certificate | |
| US10015159B2 (en) | Terminal authentication system, server device, and terminal authentication method | |
| JP6471112B2 (ja) | 通信システム、端末装置、通信方法、及びプログラム | |
| KR101706117B1 (ko) | 휴대용 단말기에서 다른 휴대용 단말기를 인증하는 장치 및 방법 | |
| US20170085543A1 (en) | Apparatus and method for exchanging encryption key | |
| WO2018040758A1 (zh) | 认证方法、认证装置和认证系统 | |
| JP6548172B2 (ja) | 端末認証システム、サーバ装置、及び端末認証方法 | |
| CN104412537A (zh) | 基于id的控制单元遥控钥匙配对 | |
| CN108964897B (zh) | 基于群组通信的身份认证系统和方法 | |
| CN110192381A (zh) | 密钥的传输方法及设备 | |
| CN111699706B (zh) | 用于通过蓝牙低能耗连接进行通信的主从系统 | |
| JP6444359B2 (ja) | 通信システム、通信装置、通信方法、及びプログラム | |
| JP2013207376A (ja) | 情報処理装置およびプログラム | |
| CN109728913A (zh) | 一种设备合法性验证方法、相关设备以及系统 | |
| KR102415628B1 (ko) | Dim을 이용한 드론 인증 방법 및 장치 | |
| WO2017069155A1 (ja) | 通信装置、通信方法、およびコンピュータプログラム | |
| CN102916810B (zh) | 传感器认证方法、系统和装置 | |
| JP2011239146A (ja) | 通信装置および通信方法 | |
| CN103404076B (zh) | 在第三实体上认证第一和第二实体的方法 | |
| CN109218251B (zh) | 一种防重放的认证方法及系统 | |
| JP2016184892A (ja) | 認証方法、認証システム及び通信機器 | |
| JP6408536B2 (ja) | 通信システム、通信装置、サーバ装置、通信方法、及びコンピュータプログラム | |
| JP7021376B2 (ja) | 通信装置、通信方法、およびコンピュータプログラム | |
| KR20120039133A (ko) | 인증정보를 생성하고 인증정보를 증명하는 장치 및 방법 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20180711 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20180828 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20181018 |
|
| A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A821 Effective date: 20181019 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20181106 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20181127 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 6444359 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |