JP6444359B2 - 通信システム、通信装置、通信方法、及びプログラム - Google Patents

通信システム、通信装置、通信方法、及びプログラム Download PDF

Info

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
Application number
JP2016224423A
Other languages
English (en)
Other versions
JP2018082353A (ja
Inventor
竹森 敬祐
敬祐 竹森
隆将 磯原
隆将 磯原
輝彰 本間
輝彰 本間
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
KDDI Corp
Original Assignee
KDDI Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by KDDI Corp filed Critical KDDI Corp
Priority to JP2016224423A priority Critical patent/JP6444359B2/ja
Publication of JP2018082353A publication Critical patent/JP2018082353A/ja
Application granted granted Critical
Publication of JP6444359B2 publication Critical patent/JP6444359B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Description

本発明の実施形態は、通信システム、通信装置、通信方法、及びプログラムに関する。
信号機、気象観測センサー等の特定用途の組込み機器が、社会の至る所に設置されている。これらの組込み機器に搭載されているIoTデバイスは、インターネットに接続され、情報を送受信することができる。こうしたモノのインターネット(Internet of Things:IoT)の世界では、IoTシステムは、多種多様で膨大な数の非力なIoTデバイスを含む。IoTシステムに含まれるサーバは、IoTデバイスが送信した情報を取得すると、該情報を処理する。
通信データの秘匿を図る技術の一つとして公開鍵暗号方式が知られている。公開鍵暗号方式では、一般に、PKI(Public Key Infrastructure、公開鍵基盤)を利用して公開鍵(公開鍵証明書)がやり取りされる(例えば、非特許文献1参照)。
ITpro、"情報セキュリティ入門 − PKI(後編)−−−X.509証明書とPKIの仕組み"、インターネット<URL:http://itpro.nikkeibp.co.jp/article/COLUMN/20060725/244233/>
インターネットに偽のIoTデバイスが接続され、該偽のIoTデバイスから誤った情報がサーバへ送信されることが想定される。この場合、サーバが処理した結果は誤ったものになってしまう。しかしながら、インターネットに接続されるIoTデバイスが真のIoTデバイスであるか偽のIoTデバイスであるかの真贋を判定することは難しい。
また、IoTデバイスのセキュリティが侵害されるおそれがある。しかしながら、非力なIoTデバイスに高度なセキュリティ対策機能を追加することは難しい。
本発明は、上記問題を解決すべくなされたもので、IoTシステムに含まれるIoTデバイスのセキュリティを向上させることを目的とする。
(1)本発明の一態様は、サーバと該サーバと通信を行う第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の認証部とを備える、通信システムである。
(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の認証部とを備える、通信システムである。
(3)本発明の一態様は、上記(1)又は上記(2)に記載の通信システムにおいて、前記第1の鍵生成部は、生成する鍵を識別する情報に基づいて、第1の共通鍵を生成する、通信システムである。
)本発明の一態様は、サーバと通信を行う通信装置であって、マスター鍵と、第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の共通鍵を暗号化した結果を使用して、前記他の通信装置との間で相互認証を行うステップとを実行させる、プログラムである。
(7)本発明の一態様は、サーバと通信を行う通信装置のコンピュータに、マスター鍵と、第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の認証部とを備える、通信システムである。
(9)本発明の一態様は、上記()に記載の通信システムにおいて、前記認証局アプリは、第2の通信装置公開鍵証明書を発行し、前記第2の認証部は、前記第2の共通鍵で、前記第2の通信装置公開鍵証明書を暗号化する、通信システムである
10)本発明の一態様は、サーバと通信を行う通信装置であって、ルート公開鍵証明書と、認証局アプリと、第2の共通鍵とを記憶する記憶部と、通信装置公開鍵と、該通信装置公開鍵とペアをなす通信装置秘密鍵とを生成し、前記第2の共通鍵と他の通信装置の識別情報とに基づいて、第3の共通鍵を生成する鍵生成部と、前記サーバとの間で相互認証を行い、前記第2の共通鍵で前記第3の共通鍵を暗号化した結果を使用して、前記他の通信装置との間で相互認証を行う認証部とを備え、前記認証局アプリは、通信装置公開鍵証明書を発行し、前記認証部は、前記通信装置公開鍵証明書と前記通信装置秘密鍵とを使用して、前記サーバとの間で相互認証を行う、通信装置である。
11)本発明の一態様は、サーバと該サーバと通信を行う第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の通信装置との間で相互認証を行うステップと、を有する通信方法である。
12)本発明の一態様は、サーバと通信を行う通信装置のコンピュータに、ルート公開鍵証明書と、認証局アプリと、第2の共通鍵とを記憶するステップと、通信装置公開鍵と、該通信装置公開鍵とペアをなす通信装置秘密鍵とを生成するステップと、前記第2の共通鍵と他の通信装置の識別情報とに基づいて、第3の共通鍵を生成するステップと、通信装置公開鍵証明書を発行するステップと、前記通信装置公開鍵証明書と前記通信装置秘密鍵とを使用して、前記サーバとの間で相互認証を行うステップと、前記第2の共通鍵で前記第3の共通鍵を暗号化した結果を使用して、前記他の通信装置との間で相互認証を行うステップとを実行させる、プログラムである。
本発明の実施形態によれば、IoTシステムに含まれるIoTデバイスのセキュリティを向上させることができる。
第1の実施形態に係る通信システムの一例を示す図である。 第1の実施形態に係る通信システムを構成するセンタサーバ、IoTデバイス、及び管理サーバの一例を示す図である。 第1の実施形態に係る通信システムの動作の一例を示すシーケンスチャートである。 第2の実施形態に係る通信システムの一例を示す図である。 第2の実施形態に係る通信システムを構成するセンタサーバ、IoTデバイス、及び管理サーバの一例を示す図である。 第2の実施形態に係る通信システムの動作の一例を示すシーケンスチャートである。 第2の実施形態の変形例に係る通信システムの動作の一例を示すシーケンスチャートである。 公開鍵証明書のフォームの一例を示す図である。 第3の実施形態に係る通信システムの一例を示す図である。 第3の実施形態に係る通信システムを構成するセンタサーバ、IoTデバイス、及びルート認証局の一例を示す図である。 第3の実施形態に係る通信システムの動作の一例を示すシーケンスチャートである。 第4の実施形態に係る通信システムの一例を示す図である。 第4の実施形態に係る通信システムを構成するセンタサーバ、IoTデバイス、及びルート認証局の一例を示す図である。 第4の実施形態に係る通信システムの動作の一例を示すシーケンスチャートである。 第4の実施形態の変形例に係る通信システムの動作(その1)の一例を示すシーケンスチャートである。 第4の実施形態の変形例に係る通信システムの動作(その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生成用に用いる鍵を指定するための識別情報である。
IoTデバイス200は、デバイスIDが通知されると、該デバイスIDとマスター鍵MasterSecret2と鍵種別IDとから共通鍵Kc_genを生成する。IoTデバイス200は、共通鍵Kc_genを生成すると、チャレンジ(乱数g)を生成し、生成したチャレンジ(乱数g)とIoTデバイス200のデバイスIDとを、センタサーバ100へ送信する。
センタサーバ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へ送信する。
IoTデバイス200は、センタサーバ100が送信したチャレンジ(乱数s)とレスポンスKc_gen(乱数g)とを取得すると、レスポンスKc_gen(乱数g)を検証する。IoTデバイス200は、レスポンスKc_gen(乱数g)の検証が成功した場合には、共通鍵Kc_genで、チャレンジ(乱数s)を暗号化することで、レスポンスKc_gen(乱数s)を生成する。IoTデバイス200は、レスポンスKc_gen(乱数s)を生成すると、該レスポンスKc_gen(乱数s)を、センタサーバ100へ送信する。
センタサーバ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)を受信する。
制御部104は、例えばCPU(Central Processing Unit)等の演算処理装置によって構成され、記憶部120に記憶されたプログラム124を実行することにより、鍵生成部106と認証部108と検証部110として機能する。
鍵生成部106は、通信部102が受信したIoTデバイス200のデバイスIDを取得する。鍵生成部106は、IoTデバイス200のデバイスIDを取得すると、マスター鍵MasterSecret1と該デバイスIDと後述する鍵種別ID122に含まれるCMAC生成用に用いる鍵を指定する識別情報とから、共通鍵Kc_genを生成する。具体的には、鍵生成部106は、マスター鍵MasterSecret1とIoTデバイス200のデバイスIDとCMAC生成用に用いる鍵を指す識別情報との連結データを入力値に使用してハッシュ値を算出し、算出したハッシュ値を共通鍵Kc_genに使用する。
認証部108は、IoTデバイス200の正当性を確認する。認証部108は、通信部102がチャレンジ(乱数g)を受信すると、該チャレンジ(乱数g)を取得する。認証部108は、鍵生成部106が共通鍵Kc_genを生成すると、該共通鍵Kc_genを取得する。認証部108は、共通鍵Kc_genで、チャレンジ(乱数g)を暗号化することによって、レスポンスKc_gen(乱数g)を作成する。また、認証部108は、チャレンジ(乱数s)を生成し、生成したチャレンジ(乱数s)とレスポンスKc_gen(乱数g)とを、通信部102からIoTデバイス200へ送信する。
認証部108は、通信部102がレスポンスKc_gen(乱数s)を受信すると、検証部110に該レスポンスKc_gen(乱数s)の検証を要求する。認証部108は、検証部110から検証が成功であることが通知された場合、IoTデバイス200が正当であると判断する。
検証部110は、通信部102がレスポンスKc_gen(乱数s)を受信し、且つ認証部108から該レスポンスKc_gen(乱数s)の検証が要求された場合に、該レスポンスKc_gen(乱数s)を取得する。検証部110は、該レスポンスKc_gen(乱数s)を取得すると、該レスポンスKc_gen(乱数s)を検証する。検証部110は、該レスポンスKc_gen(乱数s)を検証すると、検証が成功したか否かを、認証部108へ通知する。
記憶部120は、不揮発性メモリ等の記憶装置によって実現される。記憶部120は、マスター鍵MasterSecret1と鍵種別ID122とプログラム124とを記憶する。
(IoTデバイス)
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)を送信する。
制御部204は、例えば演算処理装置によって構成され、記憶部120に記憶されたプログラム224を実行することにより、鍵生成部206と認証部208と検証部210として機能する。
鍵生成部206は、通信部202が受信したデバイスIDを取得する。鍵生成部206は、デバイスIDを取得すると、SIM230に記憶されているマスター鍵MasterSecret2を取得する。鍵生成部206は、マスター鍵MasterSecret2とデバイスIDと後述する鍵種別ID232に含まれるCMAC生成用に用いる鍵を指示する識別情報とから、共通鍵Kc_genを生成する。具体的には、鍵生成部206は、マスター鍵MasterSecret1とIoTデバイス200のデバイスIDとCMAC生成用に用いる鍵を指示する識別情報との連結データを入力値に使用してハッシュ値を算出し、算出したハッシュ値を共通鍵Kc_genに使用する。
認証部208は、センタサーバ100の正当性を確認する。認証部208は、鍵生成部206が共通鍵Kc_genを生成すると、該共通鍵Kc_genを取得する。認証部208は、チャレンジ(乱数g)を生成し、生成したチャレンジ(乱数g)とIoTデバイス200のデバイスIDとを、通信部202からセンタサーバ100へ送信する。
認証部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へ送信する。
検証部210は、通信部202がレスポンスKc_gen(乱数g)を受信し、且つ認証部208から該レスポンスKc_gen(乱数g)の検証が要求された場合に、該レスポンスKc_gen(乱数g)を取得する。検証部210は、認証部208からレスポンスKc_gen(乱数g)を取得すると、該レスポンスKc_gen(乱数g)を検証する。検証部210は、該レスポンスKc_gen(乱数g)を検証すると、検証が成功したか否かを、認証部208へ通知する。
記憶部220は、不揮発性メモリ等の記憶装置によって実現される。記憶部220は、通信部202が受信したIoTデバイス200のデバイスID222とプログラム224とを記憶する。
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へ送信する。
ステップS308では、センタサーバ100の通信部102は、IoTデバイス200が送信したチャレンジ(乱数g)とIoTデバイス200のデバイスID222とを受信する。センタサーバ100の鍵生成部106は、IoTデバイス200のデバイスID222を取得すると、マスター鍵MasterSecret1とIoTデバイス200のデバイスIDと鍵種別ID122とから共通鍵Kc_genを生成する。
ステップS310では、センタサーバ100の認証部108は、鍵生成部106が生成した共通鍵Kc_genでチャレンジ(乱数g)を暗号化することによって、レスポンスKc_gen(乱数g)を生成する。また、認証部108は、チャレンジ(乱数s)を生成する。認証部108は、チェレンジ(乱数s)とレスポンスKc_gen(乱数g)とを、通信部102からIoTデバイス200へ送信する。
ステップS312では、IoTデバイス200の通信部202は、センタサーバ100が送信したチェレンジ(乱数s)とレスポンスKc_gen(乱数g)とを受信する。IoTデバイス200の認証部208は、レスポンスKc_gen(乱数g)を取得すると、検証部210へ該レスポンスKc_gen(乱数g)の正真性の検証を要求する。検証部210は、認証部208からの要求に応じて、通信部202からレスポンスKc_gen(乱数g)を取得し、該レスポンスKc_gen(乱数g)を検証する。具体的には、検証部210は、鍵生成部206が生成した共通鍵Kc_genで、レスポンスKc_gen(乱数g)を復号し、復号した結果と認証部208が生成したチャレンジ(乱数g)とが一致するか否かを判定する。検証部210は、一致する場合には検証が成功であり、レスポンスKc_gen(乱数g)がセンタサーバ100から送信されたものであると判定する。一方、検証部210は、一致しない場合には検証が失敗であり、レスポンスKc_gen(乱数g)がセンタサーバ100から送信されたものでないと判定する。検証部210は、検証が成功したか否かを表す情報を認証部208へ出力する。
ステップS314では、IoTデバイス200の認証部208は、検証部210から検証が成功したか否かを表す情報が通知されると、該情報が、認証が成功したことを示す場合に、鍵生成部206が生成した共通鍵Kc_genでチャレンジ(乱数s)を暗号化することによって、レスポンスKc_gen(乱数s)を生成する。認証部208は、レスポンスKc_gen(乱数s)を生成すると、該レスポンスKc_gen(乱数s)を、通信部202からセンタサーバ100へ送信する。一方、IoTデバイス200の認証部208は、検証部210から取得した検証が成功したか否かを表す情報が、認証が失敗したことを示す場合に、所定のエラー処理を行う。
ステップS316では、センタサーバ100の通信部102は、IoTデバイス200が送信したレスポンスKc_gen(乱数s)を受信する。センタサーバ100の認証部108は、レスポンスKc_gen(乱数s)を取得すると、検証部110へ該レスポンスKc_gen(乱数s)の正真性の検証を要求する。検証部110は、認証部108からの要求に応じて、通信部102からレスポンスKc_gen(乱数s)を取得し、該レスポンスKc_gen(乱数s)の正真性を検証する。具体的には、検証部110は、鍵生成部106が生成した共通鍵Kc_genで、レスポンスKc_gen(乱数s)を復号し、復号した結果と認証部108が生成したチャレンジ(乱数s)とが一致するか否かを判定する。検証部110は、一致する場合には検証が成功であり、レスポンスKc_gen(乱数s)がIoTデバイス200から送信されたものであると判定する。一方、検証部110は、一致しない場合には検証が失敗であり、レスポンスKc_gen(乱数s)がIoTデバイス200から送信されたものでないと判定する。検証部110は、検証が成功したか否かを表す情報を認証部108へ出力する。認証部108は、検証部110から検証が成功したか否かを表す情報が通知されると、該情報が、認証が成功したことを示す場合に、IoTデバイス200との間で、データの送受を行う。一方、センタサーバ100の認証部108は、検証部110から検証が成功したか否かを表す情報が、認証が失敗したことを示す場合に、所定のエラー処理を行う。
本実施形態に係る通信システムは、IoTデバイス200に通信モジュールやSIMが組み込まれている場合に、センタサーバ100、及びIoTデバイス200は、共通鍵を生成し、該共通鍵を使用して相互認証を行う。このように構成することによって、通信システムに含まれるIoTデバイスのセキュリティを向上させることができる。
<第2の実施形態>
<通信システム>
図4は、本実施形態に係る通信システムを示す図である。通信システム2は、センタサーバ100と管理サーバ300とIoTデバイス400とIoTデバイス500とを備える。センタサーバ100と管理サーバ300とIoTデバイス400とIoTデバイス500とは、インターネット等の通信網50を介して接続される。
IoTデバイス400、及びIoTデバイス500は、ブルートゥース(登録商標)、ワイファイ(登録商標)、近距離無線通信技術等の無線通信技術で無線通信を行う無線デバイスを搭載する。また、センタサーバ100にはマスター鍵(MasterSecret1)がプリセットされ、IoTデバイス400にはマスター鍵(MasterSecret4)と共通鍵Kc_初期とがプリセットされ、IoTデバイス500には該IoTデバイス500のデバイスID522と共通鍵Kc_初期とがプリセットされる。センタサーバ100にプリセットされるマスター鍵(MasterSecret1)とIoTデバイス400にプリセットされるマスター鍵(MasterSecret4)とは同じである。また、センタサーバ100、IoTデバイス400及びIoTデバイス500には、鍵種別IDが記憶される。鍵種別IDは、暗号用に用いる鍵、又はCMAC生成用に用いる鍵を指定する識別情報である。
IoTデバイス400は、該IoTデバイス400のデバイスIDが通知されると、該IoTデバイス400のデバイスIDとマスター鍵MasterSecret4と鍵種別IDとから共通鍵Kc_genを生成する。
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デバイス500は、IoTデバイス400が送信したチャレンジ(乱数g)とレスポンスKc_初期(乱数e)とを受信すると、レスポンスKc_初期(乱数e)を検証する。IoTデバイス500は、レスポンスKc_初期(乱数e)の検証が成功した場合には、共通鍵Kc_初期で、チャレンジ(乱数g)を暗号化することによって、レスポンスKc_初期(乱数g)を生成する。IoTデバイス500は、レスポンスKc_初期(乱数g)を生成すると、該レスポンスKc_初期(乱数g)を、IoTデバイス400へ送信する。
IoTデバイス400は、IoTデバイス500が送信したレスポンスKc_初期(乱数g)を受信すると、レスポンスKc_初期(乱数g)を検証する。IoTデバイス400はレスポンスKc_初期(乱数g)の検証が成功した場合には、マスター鍵MasterSecret4とIoTデバイス500のデバイスID522と鍵種別IDとから共通鍵Kc_gen_eを生成する。
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を共通鍵にセットする。
IoTデバイス400は、チャレンジ(乱数g)を生成し、生成したチャレンジ(乱数g)とIoTデバイス400のデバイスID422とを、センタサーバ100へ送信する。
センタサーバ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へ送信する。
IoTデバイス400は、センタサーバ100が送信したチャレンジ(乱数s)とレスポンスKc_gen(乱数g)とを取得すると、レスポンスKc_gen(乱数g)の正真性を検証する。IoTデバイス400は、レスポンスKc_gen(乱数g)の正真性の検証が成功した場合には、共通鍵Kc_genで、チャレンジ(乱数s)を暗号化することによって、レスポンスKc_gen(乱数s)を生成する。IoTデバイス400は、レスポンスKc_gen(乱数s)を生成すると、該レスポンスKc_gen(乱数s)を、センタサーバ100へ送信する。
センタサーバ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デバイス)
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)を送信する。
制御部404は、例えば、演算処理装置によって構成され、記憶部420に記憶されたプログラム424を実行することにより、鍵生成部406と認証部408と検証部410として機能する。
鍵生成部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は、IoTデバイス500の正当性を確認する。認証部408は、認証部208の機能に加えて、以下の機能を有する。認証部408は、通信部402がチャレンジ(乱数e)を受信すると、該チャレンジ(乱数e)を取得する。認証部408は、共通鍵Kc_初期で、チャレンジ(乱数e)を暗号化し、レスポンスKc_初期(乱数e)を生成する。また、認証部408は、チャレンジ(乱数g)を生成し、生成したチャレンジ(乱数g)とレスポンスKc_初期(乱数e)とを、通信部402からIoTデバイス500へ送信する。
認証部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へ送信する。
検証部410は、検証部210の機能に加えて、以下の機能を有する。検証部410は、通信部402がレスポンスKc_初期(乱数g)を受信し、且つ認証部408から該レスポンスKc_初期(乱数g)の検証が要求された場合に、該レスポンスKc_初期(乱数g)を取得する。検証部410は、該レスポンスKc_初期(乱数g)を取得すると、該レスポンスKc_初期(乱数g)を検証する。検証部410は、該レスポンスKc_初期(乱数g)を検証すると、検証が成功したか否かを、認証部408へ通知する。
記憶部420は、不揮発性メモリ等の記憶装置によって実現される。記憶部420は、IoTデバイス400のデバイスID422とプログラム424とを記憶する。
SIM430は、SIM識別情報simid400とマスター鍵MasterSecret4と共通鍵Kc_初期と鍵種別ID432とを記憶する。このマスター鍵MasterSecret4は、センタサーバ100の記憶部120に記憶されているマスター鍵MasterSecret1と同じものである。
(IoTデバイス)
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)を受信する。
制御部504は、例えば演算処理装置によって構成され、記憶部520に記憶されたプログラム524を実行することにより、鍵生成部506と認証部508と検証部510として機能する。
鍵生成部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を共通鍵として設定する。
検証部510は、検証部210の機能に加えて、以下の機能を有する。検証部510は、通信部502がチャレンジ(乱数g)とレスポンスKc_初期(乱数e)を受信し、且つ認証部508から該レスポンスKc_初期(乱数e)の検証が要求された場合に、該レスポンスKc_初期(乱数e)を取得する。検証部510は、該レスポンスKc_初期(乱数e)を取得すると、該レスポンスKc_初期(乱数e)を検証する。検証部510は、該レスポンスKc_初期(乱数e)を検証すると、検証が成功したか否かを、認証部508へ通知する。
記憶部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を生成する。
ステップS606では、IoTデバイス500の認証部508は、チャレンジ(乱数e)を生成する。認証部508は、チャレンジ(乱数e)を生成すると、該チャレンジ(乱数e)とIoTデバイス500のデバイスID522とを、通信部502からIoT400へ送信する。
ステップ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へ送信する。
ステップS610では、IoTデバイス500の通信部502は、IoTデバイス400が送信したチェレンジ(乱数g)とレスポンスKc_初期(乱数e)とを受信する。IoTデバイス500の認証部508は、通信部502が受信したレスポンスKc_初期(乱数e)を取得すると、検証部510へ該レスポンスKc_初期(乱数e)の正真性の検証を要求する。検証部510は、認証部508からの要求に応じて、レスポンスKc_初期(乱数e)の正真性を検証する。具体的には、検証部510は、記憶部520に記憶されている共通鍵Kc_初期で、レスポンスKc_初期(乱数e)を復号し、復号した結果と認証部508が生成したチャレンジ(乱数e)とが一致するか否かを判定する。検証部510は、一致する場合には検証が成功であり、レスポンスKc_初期(乱数e)がIoTデバイス400から送信されたものであると判定する。一方、検証部510は、一致しない場合には検証が失敗であり、レスポンスKc_初期(乱数e)がIoTデバイス400から送信されたものでないと判定する。検証部510は、検証が成功したか否かを表す情報を認証部508へ出力する。
ステップS612では、IoTデバイス500の認証部508は、検証部510から検証が成功したか否かを表す情報が通知されると、該情報が、認証が成功したことを示す場合に、記憶部520に記憶されている共通鍵Kc_初期でチャレンジ(乱数g)を暗号化することによって、レスポンスKc_初期(乱数g)を生成する。認証部508は、レスポンスKc_初期(乱数g)を生成すると、該レスポンスKc_初期(乱数g)を、通信部502からIoTデバイス400へ送信する。一方、IoTデバイス500の認証部508は、検証部510から通知された検証が成功したか否かを表す情報が、認証が失敗したことを示す場合に、所定のエラー処理を行う。
ステップS614では、IoTデバイス400の通信部402は、IoTデバイス500が送信したレスポンスKc_初期(乱数g)を受信する。IoTデバイス400の認証部408は、レスポンスKc_初期(乱数g)を取得すると、検証部410へ該レスポンスKc_初期(乱数g)の正真性の検証を要求する。検証部410は、認証部408からの要求に応じて、レスポンスKc_初期(乱数g)の正真性を検証する。具体的には、検証部410は、SIM430に記憶されている共通鍵Kc_初期で、レスポンスKc_初期(乱数g)を復号し、復号した結果と認証部408が生成したチャレンジ(乱数g)とが一致するか否かを判定する。検証部410は、一致する場合には検証が成功であり、レスポンスKc_初期(乱数g)がIoTデバイス500から送信されたものであると判定する。一方、検証部410は、一致しない場合には検証が失敗であり、レスポンスKc_初期(乱数g)がIoTデバイス500から送信されたものでないと判定する。検証部410は、検証が成功したか否かを表す情報を認証部408へ出力する。
ステップS616では、IoTデバイス400の認証部408は、検証部410から検証が成功したか否かを表す情報が通知されると、該情報が、認証が成功したことを示す場合に、鍵生成部406へ、共通鍵Kc_gen_eを生成する命令を出力する。鍵生成部406は、認証部108から共通鍵Kc_gen_eを生成する命令を取得すると、IoTデバイス500のデバイスID522とSIM430に記憶されているマスター鍵MasterSecret4と鍵種別ID432とから共通鍵Kc_gen_eを生成する。
ステップS618では、IoTデバイス400の認証部408は、SIM430に記憶された共通鍵Kc_初期で共通鍵Kc_gen_eを暗号化することによって、Kc_初期(Kc_gen_e)を生成する。認証部408は、Kc_初期(Kc_gen_e)を、通信部402からIoTデバイス500へ送信する。
ステップS620では、IoTデバイス500の通信部502は、IoTデバイス400が送信したKc_初期(Kc_gen_e)を受信する。IoTデバイス500の認証部508は、Kc_初期(Kc_gen_e)を取得すると、記憶部520に記憶している共通鍵Kc_初期で該Kc_初期(Kc_gen_e)を復号する。認証部508は、共通鍵Kc_初期で該Kc_初期(Kc_gen_e)を復号した結果であるKc_gen_eを、共通鍵として設定する。
ステップ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)攻撃の踏み台にされないようにできる。
本実施形態に係る通信システムでは、IoTデバイス400にIoTデバイス500が従属し、IoTデバイス400及びIoTデバイス500に通信モジュールとSIMが組み込まれている。さらに、IoTデバイス400とIoTデバイス500には、共通鍵Kc_初期がプリセットされている。この場合、IoTデバイス400、及びIoTデバイス500は、共通鍵Kc_初期鍵を使用して相互認証を行う。相互認証の後、IoTデバイス400は、共通鍵Kc_gen_eを生成し、共通鍵Kc_初期で共通鍵Kc_gen_eを暗号化して、IoTデバイス500へ送信することによって、共通鍵Kc_gen_eを共有できる。さらに、IoTデバイス400を経由して、センタサーバ100とIoTデバイス500との間で相互認証が行うことができる。このように構成することによって、通信システムに含まれるIoTデバイスのセキュリティを向上させることができる。
(変形例)
本変形例に係る通信システムは、図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デバイス400にIoTデバイス500が従属し、IoTデバイス400及びIoTデバイス500に通信モジュールとSIMが組み込まれている。さらに、IoTデバイス400とIoTデバイス500には、共通鍵Kc_初期がプリセットされている。IoTデバイス400は、該IoTデバイス400のデバイスIDとマスター鍵とから共通鍵Kc_genを生成する。IoTデバイス400、及びIoTデバイス500は、共通鍵Kc_初期鍵を使用して相互認証を行う。相互認証の後、IoTデバイス400は、共通鍵Kc_初期で共通鍵Kc_genを暗号化して、IoTデバイス500へ送信することによって、共通鍵Kc_genを共有できる。さらに、IoTデバイス400を経由して、センタサーバ100とIoTデバイス500との間で相互認証が行うことができる。このように構成することによって、通信システムに含まれるIoTデバイスのセキュリティを向上させることができる。
(第3の実施形態)
本実施形態に係る通信システムは、ルート認証局とセンタサーバとIoTデバイスとを備える。ルート認証局とセンタサーバとIoTデバイスとは、インターネット等の通信網を介して接続される。
本実施形態に係る通信システムは、プライベートなルート認証局が基点となり、センタサーバ、IoTデバイスにルート公開鍵証明書Kp_rを設定する。また、センタサーバは、事前に公開鍵と秘密鍵のペアを生成しておき、プライベートなルート認証局からサーバ公開鍵証明書Kp_sの発行を受けておく。
SIMの中にある認証局アプリとは、プライベートなルート認証局の秘密鍵を保持して、公開鍵証明書の発行処理を担うアプリであり、ルート認証局と同じ役割を果たす。
図8は、センタサーバ100が発行する公開鍵証明書のフォームの一例を示す。図8に示される公開鍵証明書のフォームにおいて、「issue(発行者)」の欄にはSIMのアプリ領域にある認証局アプリが記載される。また、「Subject(主体者)」の欄には公開鍵証明書の発行を受けるIoTデバイス(SIM所有者)を示す。
図9は、本実施形態に係る通信システムを示す図である。通信システム3は、ルート認証局600とセンタサーバ700とIoTデバイス800とを備える。
IoTデバイス800は、ブルートゥース(登録商標)、ワイファイ(登録商標)、近距離無線通信技術等の無線通信技術で無線通信を行う無線デバイスを搭載する。また、センタサーバ700にはルート公開鍵証明書Kp_rとサーバ公開鍵証明書Kp_sとサーバ秘密鍵Ks_sとがプリセットされ、IoTデバイス800にはルート公開鍵証明書Kp_rがプリセットされる。また、IoTデバイス800には、認証局アプリがインストールされる。
IoTデバイス800が設置され、各種設定がされると、IoTデバイス800は、GW公開鍵証明書Kp_gと該GW公開鍵証明書Kp_gとペアをなすGW秘密鍵Ks_gとを発行する。さらに、IoTデバイス800は、チャレンジ(乱数g)を生成し、生成したチャレンジ(乱数g)とGW公開鍵証明書Kp_gとを、センタサーバ700へ送信する。
センタサーバ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へ送信する。
IoTデバイス800は、センタサーバ700が送信したチャレンジ(乱数s)とレスポンスKs_s(乱数g)とサーバ公開鍵証明書Kp_sとを受信すると、ルート公開鍵証明書Kp_rを用いて、サーバ公開鍵証明書Kp_sを検証する。IoTデバイス800は、サーバ公開鍵証明書Kp_sの検証が成功した場合、該サーバ公開鍵証明書Kp_sで、レスポンスKs_s(乱数g)を検証する。IoTデバイス800は、レスポンスKs_s(乱数g)の検証が成功である場合、GW秘密鍵Ks_gで、チャレンジ(乱数s)を暗号化することによって、レスポンスKs_g(乱数s)を生成する。さらに、IoTデバイス800は、レスポンスKs_g(乱数s)を、センタサーバ700へ送信する。
センタサーバ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とを備える。
通信部602は、通信モジュールによって実現される。通信部602は、通信網50を経由して、センタサーバ700、及びIoTデバイス800と通信を行う。通信部602は、センタサーバ700が送信したサーバ公開鍵を受信する。また、通信部602は、センタサーバ700へサーバ公開鍵証明書Kp_sとルート公開鍵証明書Kp_rとを送信する。また、通信部602は、IoTデバイス800が送信したGW公開鍵を受信する。また、通信部602は、IoTデバイス800へGW公開鍵証明書Kp_gとルート公開鍵証明書Kp_rを送信する。
制御部604は、例えばCPU等の演算処理装置によって構成され、記憶部620に記憶されたプログラム(図示なし)を実行することにより、生成部603として機能する。
生成部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)を受信する。
制御部704は、例えばCPU等の演算処理装置によって構成され、記憶部720に記憶されたプログラム724を実行することにより、鍵生成部706と認証部708と検証部710として機能する。
鍵生成部706は、サーバ公開鍵Kp_sとサーバ秘密鍵Ks_sのペアを生成する。鍵生成部706は、記憶部720に、サーバ秘密鍵Ks_sを記憶する。
認証部708は、IoTデバイス800の正当性を確認する。認証部708は、通信部702がチャレンジ(乱数g)とGW公開鍵証明書Kp_gとを受信すると、該GW公開鍵証明書Kp_gを取得する。認証部708は、GW公開鍵証明書Kp_gを取得すると、検証部710に該GW公開鍵証明書Kp_gの検証を要求する。認証部708は、検証部710から検証が成功であることが通知された場合、IoTデバイス800が正当であると判断する。認証部708は、検証部710から検証が成功であることが通知された場合、サーバ秘密鍵Ks_sでチャレンジ(乱数g)を暗号化することによって、レスポンスKs_s(乱数g)を生成する。認証部708は、チャレンジ(乱数s)を生成し、生成したチャレンジ(乱数s)とレスポンスKs_s(乱数g)とサーバ公開鍵証明書Kp_sとを、通信部702からIoTデバイス800へ送信する。
認証部708は、通信部702がレスポンスKs_g(乱数s)を受信すると、検証部210に該レスポンスKs_g(乱数s)の検証を要求する。認証部708は、検証部710から検証が成功であることが通知された場合、IoTデバイス800が正当であると判断する。
検証部710は、認証部708からの要求に応じて、ルート公開鍵証明書Kp_rを用いて、GW公開鍵証明書Kp_gを検証する。検証部710は、該GW公開鍵証明書Kp_gを検証すると、検証が成功したか否かを、認証部708へ通知する。
また、検証部710は、認証部708からの要求に応じて、GW公開鍵Kp_gでレスポンスKs_g(乱数s)を検証する。検証部710は、該レスポンスKs_g(乱数s)を検証すると、検証が成功したか否かを、認証部708へ通知する。
記憶部720は、不揮発性メモリ等の記憶装置によって実現される。記憶部720は、ルート公開鍵証明書Kp_rとサーバ公開鍵証明書Kp_sとサーバ秘密鍵Ks_sとプログラム724とを記憶する。
(IoTデバイス)
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)を送信する。
制御部804は、例えば演算処理装置によって構成され、記憶部820に記憶されたプログラム824を実行することにより、鍵生成部806と認証部808と検証部810として機能する。
鍵生成部806は、GW公開鍵Kp_gと該GW公開鍵Kp_gとペアとなるGW秘密鍵Ks_gとを生成する。鍵生成部806は、記憶部820へ、GW秘密鍵Ks_gを記憶する。
認証部808は、センタサーバ700の正当性を確認する。認証部808は、チャレンジ(乱数g)を生成し、生成したチャレンジ(乱数g)とGW公開鍵証明書Kp_gとを、通信部802からセンタサーバ700へ送信する。認証部808は、センタサーバ700が送信したレスポンスKs_s(乱数g)とチャレンジ(乱数s)とサーバ公開鍵証明書Kp_sとを受信すると、検証部810に該サーバ公開鍵証明書Kp_sの検証を要求する。認証部808は、検証部810から検証が成功であることが通知された場合、センタサーバ700が正当であると判断する。認証部808は、検証部810から検証が成功であることが通知された場合、GW秘密鍵Ks_gでチャレンジ(乱数s)を暗号化することによって、レスポンスKs_g(乱数s)を生成する。認証部808は、レスポンスKs_g(乱数s)を、通信部802からセンタサーバ700へ送信する。
検証部810は、認証部808からの要求に応じて、ルート公開鍵証明書Kp_rを用いて、サーバ公開鍵証明書Kp_sを検証する。検証部810は、該サーバ公開鍵証明書Kp_sを検証すると、検証が成功したか否かを、認証部808へ通知する。
記憶部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へ送信する。
ステップS1108では、センタサーバ700の通信部702は、IoTデバイス800が送信したチャレンジ(乱数g)とGW公開鍵証明書Kp_gとを受信する。センタサーバ700の検証部710は、記憶部720に記憶されているルート公開鍵証明書Kp_rを用いてGW公開鍵証明書Kp_gを検証する。GW公開鍵証明書Kp_gの検証が失敗した場合、所定のエラー処理が行われる。ここでは、GW公開鍵証明書Kp_gの検証が成功した場合について説明を続ける。
ステップS1110では、センタサーバ700の認証部708は、検証部710から検証が成功したことが通知されると、サーバ秘密鍵Ks_sでチャレンジ(乱数g)を暗号化することによって、レスポンスKs_s(乱数g)を生成する。そして、認証部708は、チャレンジ(乱数s)を生成し、該チャレンジ(乱数s)とレスポンスKs_s(乱数g)とサーバ公開鍵証明書Kp_sとを、通信部702からIoTデバイス800へ送信する。
ステップS1112では、IoTデバイス800の通信部802は、センタサーバ700が送信したチャレンジ(乱数s)とレスポンスKs_s(乱数g)とサーバ公開鍵証明書Kp_sとを受信する。IoTデバイス800の検証部810は、SIM830に記憶されているルート公開鍵証明書Kp_rを用いてサーバ公開鍵証明書Kp_sを検証する。サーバ公開鍵証明書Kp_sの検証が失敗した場合、所定のエラー処理が行われる。ここでは、サーバ公開鍵証明書Kp_sの検証が成功した場合について説明を続ける。IoTデバイス800の認証部808は、検証部810から検証が成功したことが通知されると、記憶部820に記憶されているGW秘密鍵Ks_gでチャレンジ(乱数s)を暗号化することによって、レスポンスKs_g(乱数s)を生成する。そして、認証部808は、該レスポンスKs_g(乱数s)を、通信部802からセンタサーバ700へ送信する。
ステップS1116では、センタサーバ700の検証部710は、GW公開鍵でレスポンスKs_g(乱数s)を検証する。検証部710は、該レスポンスKs_g(乱数s)を検証すると、検証が成功したか否かを、認証部708へ通知する。認証部708は、検証部710から検証が成功であることが通知された場合、IoTデバイス800が正当であると判断する。
本実施形態に係る通信システムでは、プライベートなルート認証局600が基点となり、センタサーバ700、及びIoTデバイス800にルート公開鍵証明書Kp_rを設定する。センタサーバ700は、事前にサーバ公開鍵とサーバ秘密鍵のペアを生成し、ルート認証局600からサーバ公開鍵証明書Kp_sの発行を受けておく。IoTデバイス800は、SIMに記憶されている認証局アプリからGW公開鍵証明書Kp_gの発行を受け、該GW公開鍵証明書Kp_gを用いて、センタサーバ700との間で相互認証を行う。このように構成することによって、通信システムに含まれるIoTデバイスのセキュリティを向上させることができる。
<第4の実施形態>
<通信システム>
図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デバイス900が設置され、各種設定がされると、IoTデバイス900は、GW公開鍵とGW秘密鍵Ks_gとのペアを生成する。そして、IoTデバイス900は、GW公開鍵証明書Kp_gを発行する。
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へ送信する。
IoTデバイス1000は、IoTデバイス900が送信したチャレンジ(乱数g)とレスポンスKc_初期(乱数e)とを受信すると、プリセットされている共通鍵Kc_初期を用いて、レスポンスKc_初期(乱数e)を検証する。IoTデバイス1000は、レスポンスKc_初期(乱数e)の検証が成功した場合、共通鍵Kc_初期でチャレンジ(乱数g)を暗号化することによって、レスポンスKc_初期(乱数g)を生成する。IoTデバイス1000は、該レスポンスKc_初期(乱数g)をIoTデバイス900へ送信する。
IoTデバイス900は、IoTデバイス1000が送信したレスポンスKc_初期(乱数g)を受信すると、プリセットされている共通鍵Kc_初期を用いて、該レスポンスKc_初期(乱数g)を検証する。IoTデバイス900は、レスポンスKc_初期(乱数g)の検証が成功した場合、認証局アプリが管理するルート認証局の秘密鍵Ks_rを用いて、エンド公開鍵証明書Kp_eを発行し、プリセットされている共通鍵Kc_初期で該エンド公開鍵証明書Kp_eを暗号化することで、Kc_初期(エンド公開鍵証明書Kp_e)+を生成する。IoTデバイス900は、IoTデバイス1000へ、Kc_初期(エンド公開鍵証明書Kp_e)を送信する。
<通信システムの構成>
図13は、本実施形態に係る通信システム4に含まれるルート認証局600とセンタサーバ700とIoTデバイス900とIoTデバイス1000との構成の一例を示す。
(IoTデバイス)
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)を送信する。
制御部904は、例えば演算処理装置によって構成され、記憶部920に記憶されたプログラム924を実行することにより、鍵生成部906と認証部908と検証部910として機能する。
鍵生成部906は、鍵生成部806の機能に加えて、以下の機能を有する。鍵生成部906は、GW公開鍵とGW秘密鍵Ks_gのペアを生成する。鍵生成部906は、記憶部920へ、GW秘密鍵Ks_gを記憶する。
認証部908は、認証部808の機能に加えて、以下の機能を有する。認証部908は、IoTデバイス1000とセンタサーバ700との正当性を確認する。認証部908は、IoTデバイス1000が送信したチャレンジ(乱数e)とエンド公開鍵Kp’eとを取得すると、SIM930にプリセットされている共通鍵Kc_初期を用いて、チャレンジ(乱数e)を暗号化することによって、レスポンスKc_初期(乱数e)を生成する。認証部908は、チャレンジ(乱数g)を生成すると、該チャレンジ(乱数(g)とレスポンスKc_初期(乱数e)とを、通信部902からIoTデバイス1000へ送信する。
認証部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は、チャレンジ(乱数g)を生成し、生成したチャレンジ(乱数g)とGW公開鍵証明書Kp_gとを、通信部902からセンタサーバ700へ送信する。
認証部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は、検証部910の機能に加えて、以下の機能を有する。検証部910は、認証部908からの要求に応じて、SIM930にプリセットされている共通鍵Kc_初期を用いて、レスポンスKc_初期(乱数g)を検証する。検証部910は、該レスポンスKc_初期(乱数g)を検証すると、検証が成功したか否かを、認証部908へ通知する。
検証部910は、認証部908からの要求に応じて、サーバ公開鍵を用いて、レスポンスKs_s(乱数g)を検証する。検証部910は、該レスポンスKs_s(乱数g)を検証すると、検証が成功したか否かを、認証部908へ通知する。
検証部910は、認証部908からの要求に応じて、ルート公開鍵証明書Kp_rを用いて、サーバ公開鍵証明書Kp_sを検証する。検証部910は、該サーバ公開鍵証明書Kp_sを検証すると、検証が成功したか否かを、認証部908へ通知する。
記憶部920は、不揮発性メモリ等の記憶装置によって実現される。記憶部920は、IoTデバイス900のデバイスID922とプログラム924とGW秘密鍵Ks_gとを記憶する。
SIM930は、SIM識別情報simid900と認証局アプリ934とRoot公開鍵証明書Kp_rと共通鍵Kc_初期とを記憶する。認証局アプリ934は、プライベートなルート認証局の秘密鍵を保持する。認証局アプリ934は、公開鍵証明書の発行処理を行うアプリであり、ルート認証局と同じ役割を果たす。具体的には、認証局アプリ934は、該認証局アプリが管理するルート認証局600の秘密鍵Ks_rを用いて、エンド公開鍵証明書Kp_eを発行する。認証局アプリ934は、エンド公開鍵証明書Kp_eを発行すると、該エンド公開鍵証明書Kp_eを認証部908へ出力する。
(IoTデバイス)
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)を受信する。
制御部1004は、例えば演算処理装置によって構成され、記憶部1020に記憶されたプログラム1024を実行することにより、鍵生成部1006と認証部1008と検証部1010として機能する。
鍵生成部1006は、鍵生成部806の機能に加えて、以下の機能を有する。鍵生成部806は、エンド公開鍵Kp’_eとエンド秘密鍵Ks_eのペアを生成する。鍵生成部1006は、記憶部1020へ、エンド秘密鍵Ks_eを記憶する。
認証部1008は、認証部808の機能に加えて、以下の機能を有する。認証部1008は、IoTデバイス900とセンタサーバ700との正当性を確認する。
認証部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を取得する。
検証部1010は、検証部810の機能に加えて、以下の機能を有する。検証部10101は、認証部1008からの要求に応じて、記憶部1020にプリセットされている共通鍵Kc_初期を用いて、レスポンスKc_初期(乱数e)を検証する。検証部1010は、該レスポンスKc_初期(乱数e)を検証すると、検証が成功したか否かを、認証部1008へ通知する。
記憶部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へ送信する。
ステップS1410では、IoTデバイス900の認証部908は、SIM930にプリセットされている共通鍵Kc_初期で、チャレンジ(乱数e)を暗号化することで、レスポンスKc_初期(乱数e)を生成する。認証部908は、チャレンジ(乱数g)を生成すると、該チャレンジ(乱数g)とレスポンスKc_初期(乱数e)とを通信部902からIoTデバイス1000へ送信する。
ステップS1412では、IoTデバイス1000の検証部1010は、記憶部1020に記憶されている共通鍵Kc_初期を用いて、レスポンスKc_初期(乱数e)を検証する。レスポンスKc_初期(乱数e)の検証が失敗した場合、所定のエラー処理が行われる。ここでは、検証が成功した場合について説明を続ける。
ステップS1414では、認証部1008は、記憶部1020に記憶されている共通鍵Kc_初期で、チャレンジ(乱数g)を暗号化することによって、レスポンスKc_初期(乱数g)を生成する。認証部1008は、該レスポンスKc_初期(乱数g)を、通信部1002からIoTデバイス900へ送信する。
ステップS1416では、IoTデバイス900の通信部902は、IoTデバイス1000が送信したレスポンスKc_初期(乱数g)を受信する。IoTデバイス900の検証部910は、SIM930に記憶されている共通鍵Kc_初期を用いて、該レスポンスKc_初期(乱数g)を検証する。レスポンスKc_初期(乱数g)の検証が失敗した場合、所定のエラー処理が行われる。ここでは、レスポンスKc_初期(乱数g)の検証が成功した場合について説明を続ける。
ステップ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へ送信する。
ステップS1422では、IoTデバイス1000の通信部1002は、IoTデバイス900が送信したKc_初期(エンド公開鍵証明書Kp_e)を受信する。認証部1008は、記憶部1020に記憶された共通鍵Kc_初期を用いて、Kc_初期(エンド公開鍵証明書Kp_e)を復号することによって、エンド公開鍵証明書Kp_eを取得する。
ステップ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攻撃の踏み台にされないようにできる。
本実施形態に係る通信システムでは、IoTデバイス900にIoTデバイス1000が従属し、IoTデバイス900及びIoTデバイス1000に通信モジュールとSIMが組み込まれる。さらに、IoTデバイス900とIoTデバイス1000には、共通鍵Kc_初期がプリセットされて、該共通鍵Kc_初期を用いて相互認証を行う。相互認証を行った後、IoTデバイス900は、IoTデバイス1000へエンド公開鍵証明書Kp_eを発行する。このように構成することによって、通信システムに含まれるIoTデバイスのセキュリティを向上させることができる。
(第4の実施形態の変形例(その1))
第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の実施形態の変形例(その2))
第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へ配布することができる。
前述した実施形態及び変形例において、マスター鍵MasterSecretや認証局アプリは、SIMの製造段階でプリセットするか、アプリ領域へオーバーザエアー(Over the Air)で送り込んでもよい。
前述した実施形態及び変形例では、IoTデバイスが通信網に無線接続される場合について説明したが、この例に限られない。例えば、IoTデバイスが通信網に有線接続されてもよい。
前述した実施形態及び変形例では、鍵生成部がマスター鍵MasterSecretとデバイスIDとCMAC生成用に用いる鍵を指示する識別情報との連結データを入力値に使用してハッシュ値を算出し、算出したハッシュ値を共通鍵Kc_genに使用する場合について説明したがこの例に限られない。例えば、鍵生成部106は、マスター鍵MasterSecretとデバイスIDとCMAC生成用に用いる鍵を指す識別情報との連結データを入力値に使用して排他的論理和演算を実行し、演算結果の値「マスター鍵 xor デバイスID xor CMAC生成用に用いる鍵を指す識別子」を共通鍵に使用する。但し、「A xor B xor C」はAとBとCの排他的論理和である。
前述した実施形態及び変形例によれば、多種多様で膨大な数にのぼるIoTデバイスに対して、簡易で堅牢な鍵管理によって、認証や署名を行うことができる。特に、非力なIoTデバイスについても共通鍵ベースの処理を適用することができる。また、非力なIoTデバイスについても公開鍵証明書の発行も容易になる。
前述した実施形態及び変形例は、各種センサー、家電製品等がネットワークに繋がる際に、暗号通信や認証、署名検証に用いる鍵管理方式に広く適用できる。
以上、本発明の実施形態及びその変形例を説明したが、これらの実施形態及びその変形例は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態及びその変形例は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更、組合せを行うことができる。これら実施形態及びその変形例は、発明の範囲や要旨に含まれると同時に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
なお、前述のセンタサーバ、IoTデバイス、管理サーバ、及びルート認証局は内部にコンピュータを有している。そして、前述した各装置の各処理の過程は、プログラムの形式でコンピュータ読み取り可能な記録媒体に記憶されており、このプログラムをコンピュータが読み出して実行することによって、上記処理が行われる。ここでコンピュータ読み取り可能な記録媒体とは、磁気ディスク、光磁気ディスク、CD−ROM、DVD−ROM、半導体メモリ等をいう。また、このコンピュータプログラムを通信回線によってコンピュータに配信し、この配信を受けたコンピュータが当該プログラムを実行するようにしてもよい。
また、上記プログラムは、前述した機能の一部を実現するためのものであってもよい。
さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるもの、いわゆる差分ファイル(差分プログラム)であってもよい。
前述した実施形態において、IoTデバイスは通信装置、第1の通信装置、及び第2の通信装置の一例であり、デバイスIDは通信装置の識別情報、第1の通信装置の識別情報、及び第2の通信装置の識別情報の一例であり、共通鍵Kc_genは第1の共通鍵の一例であり、鍵種別IDは生成する鍵を識別する情報の一例であり、共通鍵Kc_初期は第2の共通鍵の一例であり、共通鍵Kc_gen_eは第3の共通鍵の一例であり、GW公開鍵は第1の通信装置公開鍵の一例であり、GW秘密鍵は第1の通信装置秘密鍵の一例であり、GW公開鍵証明書は第1の通信装置公開鍵証明書であり、エンド公開鍵は第2の通信装置公開鍵の一例であり、エンド秘密鍵は第2の通信装置秘密鍵の一例であり、エンド公開鍵証明書は第2の通信装置公開鍵証明書である。
50…通信網、100、700…センタサーバ、102、202、402、502、602、702、802、902、1002…通信部、104、204、404、504、604、704、804、904、1004…制御部、106、206、406、706、806、906、1006…鍵生成部、108、208、408、508、708、808、908、1008…認証部、110、210、410、510、710、810、910、1010…検証部、120、220、420、520、620、720、820、920、1020…記憶部、124、224、424、524、724、824、924、1024…プログラム、150、250、450、550、750、850、950、1050…バスライン、200、400、500、800、900、1000…IoTデバイス、300…管理サーバ、222、422、822、922、1022…デバイスID、230、430、830、930…SIM、232…鍵種別ID、600…ルート認証局、603…生成部、834、934…認証局アプリ

Claims (12)

  1. サーバと該サーバと通信を行う第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の認証部と
    を備える、通信システム。
  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の認証部と
    を備える、通信システム。
  3. 前記第1の鍵生成部は、生成する鍵を識別する情報に基づいて、第1の共通鍵を生成する、請求項1又は請求項2に記載の通信システム。
  4. サーバと通信を行う通信装置であって、
    マスター鍵と、第2の共通鍵とを記憶する記憶部と、
    前記通信装置の識別情報と前記記憶部に記憶されている前記マスター鍵とに基づいて、第1の共通鍵を生成し、他の通信装置の識別情報に基づいて第3の共通鍵を生成する鍵生成部と、
    サーバへ前記通信装置の識別情報を送信する送信部と、
    前記鍵生成部が生成した前記第1の共通鍵を使用して、前記サーバとの間で相互認証を行い、前記記憶部に記憶されている前記第2の共通鍵で前記第3の共通鍵を暗号化した結果を使用して、前記他の通信装置との間で相互認証を行う認証部と
    を備え、
    前記送信部は、前記第2の共通鍵で前記第3の共通鍵を暗号化した結果を、前記他の通信装置へ送信する、通信装置。
  5. サーバと、該サーバと通信を行う第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の通信装置との間で相互認証を行うステップと
    を有する、通信方法。
  6. サーバと通信を行う通信装置のコンピュータに、
    マスター鍵と、第2の共通鍵とを記憶するステップと、
    前記通信装置の識別情報と前記マスター鍵とに基づいて、第1の共通鍵を生成し、他の通信装置の識別情報に基づいて第3の共通鍵を生成するステップと、
    サーバへ前記通信装置の識別情報を送信するステップと、
    前記第1の共通鍵を使用して、前記サーバとの間で相互認証を行うステップと、
    前記第2の共通鍵で前記第3の共通鍵を暗号化した結果を、前記他の通信装置へ送信するステップと、
    前記第2の共通鍵で前記第3の共通鍵を暗号化した結果を使用して、前記他の通信装置との間で相互認証を行うステップと
    を実行させる、プログラム。
  7. サーバと通信を行う通信装置のコンピュータに、
    マスター鍵と、第2の共通鍵とを記憶するステップと、
    前記通信装置の識別情報と前記マスター鍵とに基づいて、第1の共通鍵を生成するステップと、
    サーバへ前記通信装置の識別情報を送信するステップと、
    前記第1の共通鍵を使用して、前記サーバとの間で相互認証を行うステップと、
    前記第2の共通鍵で前記第1の共通鍵を暗号化した結果を、他の通信装置へ送信するステップと、
    前記第2の共通鍵で前記第1の共通鍵を暗号化した結果を使用して、前記他の通信装置との間で相互認証を行うステップと
    を実行させる、プログラム。
  8. サーバと、該サーバと通信を行う第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の認証部と
    を備える、通信システム。
  9. 前記認証局アプリは、第2の通信装置公開鍵証明書を発行し、
    前記第2の認証部は、前記第2の共通鍵で、前記第2の通信装置公開鍵証明書を暗号化する、請求項8に記載の通信システム。
  10. サーバと通信を行う通信装置であって、
    ルート公開鍵証明書と、認証局アプリと、第2の共通鍵とを記憶する記憶部と、
    通信装置公開鍵と、該通信装置公開鍵とペアをなす通信装置秘密鍵とを生成し、前記第2の共通鍵と他の通信装置の識別情報とに基づいて、第3の共通鍵を生成する鍵生成部と、
    前記サーバとの間で相互認証を行い、前記第2の共通鍵で前記第3の共通鍵を暗号化した結果を使用して、前記他の通信装置との間で相互認証を行う認証部と
    を備え、
    前記認証局アプリは、通信装置公開鍵証明書を発行し、
    前記認証部は、前記通信装置公開鍵証明書と前記通信装置秘密鍵とを使用して、前記サーバとの間で相互認証を行う、通信装置。
  11. サーバと、該サーバと通信を行う第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の通信装置との間で相互認証を行うステップと、
    を有する通信方法。
  12. サーバと通信を行う通信装置のコンピュータに、
    ルート公開鍵証明書と、認証局アプリと、第2の共通鍵とを記憶するステップと、
    通信装置公開鍵と、該通信装置公開鍵とペアをなす通信装置秘密鍵とを生成するステップと、
    前記第2の共通鍵と他の通信装置の識別情報とに基づいて、第3の共通鍵を生成するステップと、
    通信装置公開鍵証明書を発行するステップと、
    前記通信装置公開鍵証明書と前記通信装置秘密鍵とを使用して、前記サーバとの間で相互認証を行うステップと、
    前記第2の共通鍵で前記第3の共通鍵を暗号化した結果を使用して、前記他の通信装置との間で相互認証を行うステップと
    を実行させる、プログラム。
JP2016224423A 2016-11-17 2016-11-17 通信システム、通信装置、通信方法、及びプログラム Active JP6444359B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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

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