(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022163414
(43)【公開日】2022-10-26
(54)【発明の名称】通信システム、通信方法及びプログラム
(51)【国際特許分類】
H04L 9/32 20060101AFI20221019BHJP
G09C 1/00 20060101ALI20221019BHJP
H04L 9/08 20060101ALI20221019BHJP
G06F 21/44 20130101ALI20221019BHJP
G06F 21/60 20130101ALI20221019BHJP
【FI】
H04L9/00 675B
G09C1/00 640E
H04L9/00 601C
G06F21/44
G06F21/60 360
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021068326
(22)【出願日】2021-04-14
(71)【出願人】
【識別番号】000003193
【氏名又は名称】凸版印刷株式会社
(74)【代理人】
【識別番号】100149548
【弁理士】
【氏名又は名称】松沼 泰史
(74)【代理人】
【識別番号】100139686
【弁理士】
【氏名又は名称】鈴木 史朗
(74)【代理人】
【識別番号】100169764
【弁理士】
【氏名又は名称】清水 雄一郎
(74)【代理人】
【識別番号】100147267
【弁理士】
【氏名又は名称】大槻 真紀子
(72)【発明者】
【氏名】國重 尚棋
(57)【要約】
【課題】大容量の情報をデバイス装置に記憶させなくとも、デバイス装置とサーバ装置とがセキュアな通信を行うことができるようにする。
【解決手段】サーバ秘密鍵を記憶するサーバ装置は、一時的に使用する一時サーバ公開鍵と一時サーバ秘密鍵のペアである鍵ペアを生成し、サーバ秘密鍵を用いて一時サーバ公開鍵の電子署名であるサーバ署名を生成し、一時サーバ公開鍵及びサーバ署名を、デバイス装置に送信する。サーバ公開鍵を記憶するデバイス装置は、サーバ公開鍵を用いてサーバ署名を検証し、一時サーバ公開鍵とサーバ秘密鍵とを用いてサーバ署名が生成されたものであると判定した場合、サーバ装置が正当な装置であると判定する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
デバイス装置とサーバ装置とを備える通信システムにおいて、
前記デバイス装置は、
前記サーバ装置と通信するデバイス通信部と、
デバイス秘密鍵、及びサーバ公開鍵を記憶するデバイス記憶部と、
通信先の装置が正当な装置であるか否かを判定する認証をするデバイス制御部と、
を有し、
前記サーバ装置は、
前記デバイス装置と通信するサーバ通信部と、
サーバ秘密鍵、及びデバイス証明書を記憶するサーバ記憶部と、
通信先の装置が正当な装置であるか否かを判定する認証をするサーバ制御部と、
を有し、
前記サーバ制御部は、一時的に使用する一時サーバ公開鍵と一時サーバ秘密鍵のペアである鍵ペアを生成し、前記サーバ秘密鍵を用いて前記一時サーバ公開鍵の電子署名であるサーバ署名を生成し、前記一時サーバ公開鍵及び前記サーバ署名を、前記デバイス装置に送信し、
前記デバイス制御部は、前記サーバ公開鍵を用いて前記サーバ署名を検証し、前記一時サーバ公開鍵と前記サーバ秘密鍵を用いて前記サーバ署名が生成されたものであると判定した場合、前記サーバ装置が正当な装置であると判定する、
ことを特徴とする通信システム。
【請求項2】
前記デバイス制御部は、一時的に使用する一時デバイス公開鍵と一時デバイス秘密鍵のペアである鍵ペアを生成し、前記デバイス秘密鍵を用いて前記一時デバイス公開鍵の電子署名であるデバイス署名を生成し、前記一時デバイス公開鍵及び前記デバイス署名を、前記サーバ装置に送信し、
前記サーバ制御部は、前記デバイス証明書に含まれるデバイス公開鍵を用いて前記デバイス署名を検証し、前記一時デバイス公開鍵と前記デバイス秘密鍵を用いて前記デバイス署名が生成されたものであると判定した場合、前記デバイス装置が正当な装置であると判定する、
請求項1に記載の通信システム。
【請求項3】
前記デバイス記憶部は、電源が供給されている場合に情報を記憶する揮発性記憶部と、電源が供給されなくとも情報を記憶する不揮発性記憶部とからなり、
前記デバイス制御部は、一時的に使用する一時デバイス公開鍵と一時デバイス秘密鍵のペアである鍵ペアを生成し、前記サーバ装置が正当な装置であると判定した場合、前記一時サーバ公開鍵と前記一時デバイス秘密鍵とを用いて、前記サーバ装置との通信に用いる第1セッション鍵を生成し、前記第1セッション鍵を、前記不揮発性記憶部に記憶させ、前記第1セッション鍵を用いて前記サーバ装置と暗号化通信を行う、
請求項1又は請求項2に記載の通信システム。
【請求項4】
前記デバイス制御部は、前記サーバ装置から前記一時サーバ公開鍵及び前記サーバ署名を受信した場合、前記サーバ公開鍵を用いて前記サーバ署名を検証し、前記一時サーバ公開鍵と前記サーバ秘密鍵を用いて前記サーバ署名が生成されたものであると判定した場合に前記サーバ装置が正当な装置であると判定し、前記一時サーバ公開鍵と前記一時デバイス秘密鍵とを用いて、前記サーバ装置との通信に用いる第2セッション鍵を生成し、前記不揮発性記憶部に前記第2セッション鍵を記憶させ、前記第2セッション鍵を用いて前記サーバ装置と暗号化通信を行う、
請求項3に記載の通信システム。
【請求項5】
前記サーバ公開鍵を前記デバイス装置に送信する管理装置を更に備え、
前記管理装置は、前記サーバ装置を証明する第1認証局の証明書である第1認証局証明書を記憶し、
前記サーバ記憶部は、前記サーバ公開鍵とサーバ秘密鍵の鍵ペア、及び、前記第1認証局により署名された、前記サーバ公開鍵の電子署名が含まれるサーバ証明書を記憶し、
前記サーバ制御部は、前記サーバ証明書を前記管理装置に送信し、
前記管理装置は、前記第1認証局証明書を用いて前記サーバ証明書を検証した検証結果に基づいて、前記サーバ証明書が正当な証明書であると判定した場合、前記サーバ証明書から前記サーバ公開鍵を取得し、前記取得した前記サーバ公開鍵を前記デバイス装置に送信する、
請求項1から請求項4のいずれか一項に記載の通信システム。
【請求項6】
前記デバイス秘密鍵を前記デバイス装置に送信し、前記デバイス証明書を前記サーバ装置に送信する管理装置を更に備え、
前記サーバ記憶部は、前記デバイス装置を証明する第2認証局の証明書である第2認証局証明書を記憶し、
前記管理装置は、デバイス公開鍵と前記デバイス秘密鍵の鍵ペアを生成し、生成した鍵ペアのうちの前記デバイス公開鍵を含むデバイス証明書の生成を前記第2認証局に要求して前記第2認証局から前記デバイス証明書を取得し、前記デバイス秘密鍵を前記デバイス装置に送信し、前記デバイス証明書を前記サーバ装置に送信する、
請求項1から請求項5のいずれか一項に記載の通信システム。
【請求項7】
前記管理装置は、前記デバイス証明書の有効期限に応じて、前記有効期限が到来する前に新たなデバイス公開鍵と前記デバイス秘密鍵の鍵ペアを生成し、前記新たに生成した鍵ペアのうちの前記デバイス公開鍵を含むデバイス証明書の生成を前記第2認証局に要求して前記第2認証局から新たな前記デバイス証明書を取得し、前記新たに生成した前記デバイス秘密鍵を前記デバイス装置に送信し、前記新たに取得した前記デバイス証明書を前記サーバ装置に送信する、
請求項6に記載の通信システム。
【請求項8】
デバイス装置とサーバ装置とを備える通信システムにおける通信方法であって、
サーバ秘密鍵を記憶する前記サーバ装置が、一時的に使用する一時サーバ公開鍵と一時サーバ秘密鍵のペアである鍵ペアを生成し、前記サーバ秘密鍵を用いて前記一時サーバ公開鍵の電子署名であるサーバ署名を生成し、前記一時サーバ公開鍵及び前記サーバ署名を、前記デバイス装置に送信するサーバ制御工程と、
サーバ公開鍵を記憶する前記デバイス装置が、前記サーバ公開鍵を用いて前記サーバ署名を検証し、前記一時サーバ公開鍵と前記サーバ秘密鍵とを用いて前記サーバ署名が生成されたものであると判定した場合、前記サーバ装置が正当な装置であると判定するデバイス制御工程と、
を含む通信方法。
【請求項9】
サーバ秘密鍵を記憶するサーバ装置のコンピュータに、
一時的に使用する一時サーバ公開鍵と一時サーバ秘密鍵のペアである鍵ペアを生成し、前記サーバ秘密鍵を用いて前記一時サーバ公開鍵の電子署名であるサーバ署名を生成し、前記一時サーバ公開鍵及び前記サーバ署名を、デバイス装置に送信するステップ、
を実行させるためのプログラム。
【請求項10】
サーバ公開鍵を記憶するデバイス装置のコンピュータに、
一時的に使用する一時サーバ公開鍵と一時サーバ秘密鍵のペアである鍵ペアに含まれる前記一時サーバ公開鍵及び、サーバ秘密鍵を用いて生成された前記一時サーバ公開鍵の電子署名であるサーバ署名を、サーバ装置から受信するステップと、
前記サーバ公開鍵を用いて前記サーバ署名を検証し、前記一時サーバ公開鍵と前記サーバ秘密鍵を用いて前記サーバ署名が生成されたものであると判定した場合、前記サーバ装置が正当な装置であると判定するステップと、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信システム、通信方法及びプログラムに関する。
【背景技術】
【0002】
IoT(Internet of Things)システムでは、デバイス装置とサーバ装置との相互認証を行うことによってセキュアな通信が実現されている(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0003】
【発明の概要】
【発明が解決しようとする課題】
【0004】
しかしながら、デバイス装置は、装置コストを抑えるために、搭載するストレージやメモリの容量を非常に小さく抑えているものがほとんどである。相互認証を行うためのクライアント証明書のような数キロバイト程度の情報であってもデバイス装置にとっては大容量の情報となる。このため、デバイス装置にとっては、クライアント証明書を記憶することが困難である。この対策として、高価な大容量メモリをデバイス装置に搭載させると製品コストがかかってしまうという問題があった。
【0005】
上述の課題を鑑み、本発明は、クライアント証明書のような大容量の情報をデバイス装置に記憶させなくとも、デバイス装置とサーバ装置とがセキュアな通信を行うことができる、通信システム、通信方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0006】
本発明の一態様に係る通信システムは、デバイス装置とサーバ装置とを備える通信システムにおいて、前記デバイス装置は、前記サーバ装置と通信するデバイス通信部と、デバイス秘密鍵、及びサーバ公開鍵を記憶するデバイス記憶部と、通信先の装置が正当な装置であるか否かを判定する認証をするデバイス制御部と、を有し、前記サーバ装置は、前記デバイス装置と通信するサーバ通信部と、サーバ秘密鍵、及びデバイス証明書を記憶するサーバ記憶部と、通信先の装置が正当な装置であるか否かを判定する認証をするサーバ制御部と、を有し、前記サーバ制御部は、一時的に使用する一時サーバ公開鍵と一時サーバ秘密鍵のペアである鍵ペアを生成し、前記サーバ秘密鍵を用いて前記一時サーバ公開鍵の電子署名であるサーバ署名を生成し、前記一時サーバ公開鍵及び前記サーバ署名を、前記デバイス装置に送信し、前記デバイス制御部は、前記サーバ公開鍵を用いて前記サーバ署名を検証し、前記一時サーバ公開鍵と前記サーバ秘密鍵を用いて前記サーバ署名が生成されたものであると判定した場合、前記サーバ装置が正当な装置であると判定する、ことを特徴とする。
【0007】
本発明の一態様に係る通信方法は、デバイス装置とサーバ装置とを備える通信システムにおける通信方法であって、サーバ秘密鍵を記憶する前記サーバ装置が、一時的に使用する一時サーバ公開鍵と一時サーバ秘密鍵のペアである鍵ペアを生成し、前記サーバ秘密鍵を用いて前記一時サーバ公開鍵の電子署名であるサーバ署名を生成し、前記一時サーバ公開鍵及び前記サーバ署名を、前記デバイス装置に送信するサーバ制御工程と、サーバ公開鍵を記憶する前記デバイス装置が、前記サーバ公開鍵を用いて前記サーバ署名を検証し、前記一時サーバ公開鍵と前記サーバ秘密鍵を用いて前記サーバ署名が生成されたものであると判定した場合、前記サーバ装置が正当な装置であると判定するデバイス制御工程と、を含む。
【0008】
本発明の一態様に係るプログラムは、サーバ秘密鍵を記憶するサーバ装置のコンピュータに、一時的に使用する一時サーバ公開鍵と一時サーバ秘密鍵のペアである鍵ペアを生成し、前記サーバ秘密鍵を用いて前記一時サーバ公開鍵の電子署名であるサーバ署名を生成し、前記一時サーバ公開鍵及び前記サーバ署名を、デバイス装置に送信するステップ、を実行させるためのプログラムである。
【0009】
本発明の一態様に係るプログラムは、サーバ公開鍵を記憶するデバイス装置のコンピュータに、一時的に使用する一時サーバ公開鍵と一時サーバ秘密鍵のペアである鍵ペアに含まれる前記一時サーバ公開鍵及び、サーバ秘密鍵を用いて生成された前記一時サーバ公開鍵の電子署名であるサーバ署名を、サーバ装置から受信するステップと、前記サーバ公開鍵を用いて前記サーバ署名を検証し、前記一時サーバ公開鍵と前記サーバ秘密鍵を用いて前記サーバ署名が生成されたものであると判定した場合、前記サーバ装置が正当な装置であると判定するステップと、を実行させるためのプログラムである。
【発明の効果】
【0010】
本発明によれば、大容量の情報をデバイス装置に記憶させなくとも、デバイス装置とサーバ装置とがセキュアな通信を行うことができる。
【図面の簡単な説明】
【0011】
【
図1】本発明の実施形態による通信システムの概略構成図である。
【
図2】本発明の実施形態によるデバイス装置とサーバ装置との通信の事前処理の動作を示すシーケンス図である。
【
図3】本発明の本実施形態によるサーバ装置へのデバイス証明書連携処理の動作を示すシーケンス図である。
【
図4】、本発明の本実施形態によるデバイス装置とサーバ装置との相互認証及びセッション鍵共有処理の動作を示すシーケンス図である。
【発明を実施するための形態】
【0012】
以下、本発明の実施の形態について図面を参照しながら説明する。
【0013】
図1は、本実施形態による通信システムS1の概略構成図である。通信システムS1は、デバイス装置1と、サーバ装置2と、管理装置3とを含んで構成される。デバイス装置1は、サーバ装置2に対してクライアントとなる端末装置である。例えば、デバイス装置1は、カメラ等のセンサを備えるセンサデバイスである。サーバ装置2は、デバイス装置1とネットワークを介して通信するサーバ装置である。管理装置3は、デバイス装置1の証明書や鍵を管理する証明書・鍵管理システムのサーバ装置である。デバイス装置1とサーバ装置2と管理装置3とは、ネットワークを介して通信可能に接続される。
【0014】
ここで、用語について説明する。デバイス装置1との通信には、デバイス公開鍵(pub_B)、デバイス秘密鍵(priv_B)、デバイス証明書(cert_B)、一時デバイス公開鍵(e_pub_B)、一時デバイス秘密鍵(e_priv_B)、及びデバイス署名(sig_B)が用いられる。
【0015】
デバイス公開鍵(pub_B)とデバイス秘密鍵(priv_B)とは、デバイス装置1との認証においてペア(組)となる鍵である。例えば、デバイス装置1と通信を行う通信先の装置が、デバイス秘密鍵(priv_B)を用いて署名された情報を、デバイス公開鍵(pub_B)を用いて検証する。デバイス証明書(cert_B)は、デバイス公開鍵(pub_B)が記載され、認証局の署名が付された情報である。一時デバイス公開鍵(e_pub_B)と、一時デバイス秘密鍵(e_priv_B)は、セッション鍵を共有するために、デバイス装置1によって一時的に生成される鍵ペアである。デバイス署名(sig_B)は、デバイス装置1が、自身が送信するメッセージに対してデバイス装置1から送信されたメッセージであることを証明する場合に付することができる署名である。デバイス証明書(cert_B)は、デバイス公開鍵(pub_B)が認証局によって署名された情報である。デバイス署名(sig_B)は、デバイス秘密鍵(priv_B)を用いて生成される。
【0016】
サーバ装置2との通信には、サーバ公開鍵(pub_A)、サーバ秘密鍵(priv_A)、サーバ証明書(cert_A)、一時サーバ公開鍵(e_pub_A)、一時サーバ秘密鍵(e_priv_A)、及びサーバ署名(sig_A)が用いられる。
【0017】
サーバ公開鍵(pub_A)とサーバ秘密鍵(priv_A)とは、サーバ装置2との認証においてペア(組)となる鍵である。例えば、サーバ装置2と通信を行う通信先の装置が、サーバ秘密鍵(priv_A)を用いて署名された情報を、サーバ公開鍵(pub_A)を用いて検証する。サーバ証明書(cert_A)は、サーバ公開鍵(pub_A)が記載され、認証局の署名が付された情報である。一時サーバ公開鍵(e_pub_A)と、一時サーバ秘密鍵(e_priv_A)は、セッション鍵を共有するために、サーバ装置2によって一時的に生成される鍵ペアである。サーバ署名(sig_A)は、サーバ装置2が、自身が送信するメッセージに対して、サーバ装置2から送信されたメッセージであることを証明する場合に付することができる署名である。サーバ証明書(cert_A)は、サーバ公開鍵(pub_A)が認証局によって署名された情報である。サーバ署名(sig_A)は、サーバ秘密鍵(priv_A)を用いて生成される。
【0018】
図示するように、デバイス装置1は、デバイス通信部11と、デバイス記憶部12と、デバイス制御部13とを備えている。デバイス通信部11は、サーバ装置2または管理装置3と通信する。
【0019】
デバイス記憶部12は、デバイス秘密鍵(priv_B)、及びサーバ公開鍵(pub_A)を記憶する。すなわち、本実施形態では、デバイス記憶部12は、サーバ証明書(cert_A)を記憶しない。
【0020】
デバイス記憶部12は、電源が供給されている場合に情報を記憶する揮発性記憶部121と、電源が供給されなくとも情報を記憶する不揮発性記憶部122とからなる。揮発性記憶部121は、例えば、RAM(Random Access Memory)等のメモリである。また、不揮発性記憶部122は、例えば、フラッシュメモリ等から構成されるストレージである。
【0021】
デバイス制御部13は、通信先の装置が正当な装置であるか否かを判定する認証をする。例えば、デバイス制御部13は、サーバ装置2から、一時サーバ公開鍵(e_pub_A)及び、サーバ署名(sig_A)を受信する。ここで受信するサーバ署名(sig_A)は、一時サーバ公開鍵(e_pub_A)に、サーバ秘密鍵(priv_A)を用いて署名された情報である。
デバイス制御部13は、サーバ公開鍵(pub_A)を用いてサーバ署名(sig_A)を検証する。具体的には、デバイス制御部13は、サーバ署名(sig_A)を、サーバ公開鍵(pub_A)を用いて検証する。
より具体的には、デバイス制御部13は、サーバ装置2から受信した一時サーバ公開鍵(e_pub_A)及び、サーバ公開鍵(pub_A)を用いて、サーバ署名(sig_A)が、一時サーバ公開鍵(e_pub_A)及び、サーバ秘密鍵(priv_A)を用いて生成されたものであるかを検証する。デバイス制御部13は、検証の結果、サーバ装置2から受信したサーバ署名(sig_A)が一時サーバ公開鍵(e_pub_A)及びサーバ秘密鍵(priv_A)を用いて生成されたものであると確認できた場合に、サーバ装置2が正当な装置であり、かつサーバ装置2から受信した一時サーバ公開鍵(e_pub_A)はサーバ装置2が生成した情報であると判定する。
【0022】
また、デバイス制御部13は、自デバイス装置1を認証してもらうために、一時デバイス公開鍵(e_pub_B)と、一時デバイス秘密鍵(e_priv_B)のペアである鍵ペアを生成する。また、デバイス制御部13は、デバイス秘密鍵(priv_B)を用いて一時デバイス公開鍵(e_pub_B)の電子署名であるデバイス署名(sig_B)を生成する。そして、デバイス制御部13は、生成した一時デバイス公開鍵(e_pub_B)及びデバイス署名(sig_B)を、サーバ装置2に送信する。
【0023】
また、デバイス制御部13は、サーバ装置2が正当な装置であると判定した場合、一時サーバ公開鍵(e_pub_A)と、一時デバイス秘密鍵(e_priv_B)とを用いて、サーバ装置2との通信に用いる第1セッション鍵を生成する。デバイス制御部13は、生成した第1セッション鍵を、不揮発性記憶部122に記憶させる。その後のサーバ装置2との通信において、デバイス制御部13は、不揮発性記憶部122に記憶させた第1セッション鍵を用いて暗号化通信を行う。
【0024】
本実施形態では、第1セッション鍵を不揮発性記憶部122に記憶させている。このため、電源が供給されていない状態であっても第1セッション鍵を記憶しておくことができる。したがって、通電している間に行われたセッションだけでなく、その後、第1セッション鍵が更新されるまで、何度でも第1セッション鍵を用いた暗号化通信を行うことが可能である。これにより、電源投入後にサーバ装置2と通信を開始する度に認証する必要がなく、デバイス装置1の処理負荷を低減させることが可能である。
【0025】
なお、第1セッション鍵を使いまわすことにより生じ得るセキュリティの低下を抑制するため、デバイス装置1又はサーバ装置2が、所定のタイミングで、セッション鍵の更新を行うようにしてよい。セッション鍵の更新するタイミングは任意に設定されてよい。セッション鍵の更新は、デバイス装置1及びサーバ装置2が、上述したような相互に認証を行うことにより、実行される。
【0026】
具体的には、デバイス制御部13は、すでに、第1セッション鍵を記憶している状態において、サーバ装置2から一時サーバ公開鍵(e_pub_A)及びサーバ署名(sig_A)を受信する。この場合において、一時サーバ公開鍵(e_pub_A)は、サーバ装置2が一時的に作成する鍵であり、生成する度に、異なる値を示す情報である。
【0027】
デバイス制御部13は、サーバ公開鍵(pub_A)を用いてサーバ署名(sig_A)を検証する。デバイス制御部13は、サーバ装置2から受信した一時サーバ公開鍵(e_pub_A)及びサーバ公開鍵(pub_A)を用いて、サーバ署名(sig_A)が一時サーバ公開鍵(e_pub_A)及びサーバ秘密鍵(priv_A)を用いて生成されたものであると確認できた場合に、サーバ装置2が正当な装置であると判定する。
【0028】
そして、デバイス制御部13は、サーバ装置2から受信した一時サーバ公開鍵(e_pub_A)と、デバイス装置1が生成した一時デバイス秘密鍵(e_priv_B)とを用いて、サーバ装置2との通信に用いる第2セッション鍵を生成する。ここで、一時サーバ公開鍵(e_pub_A)は、第1セッション鍵を記憶している状態において、今回、新たにサーバ装置2から受信したものであり、前回第1セッション鍵の生成に用いた値とは異なる値である。
【0029】
また、ここで第2セッション鍵の生成に用いられる一時デバイス秘密鍵(e_priv_B)についても、前回第1セッション鍵の生成に用いた値とは異なる値である。例えば、デバイス制御部13は、サーバ装置2が正当な装置であると判定した場合に、自デバイス装置1を、サーバ装置2に認証してもらうために、鍵ペア(一時デバイス公開鍵(e_pub_B)と、一時デバイス秘密鍵(e_priv_B)のペア)を生成する。或いは、デバイス制御部13、第1セッション鍵を生成してから所定時間か経過する等、セッション鍵を更新する更新条件を満たす場合に、鍵ペア(一時デバイス公開鍵(e_pub_B)と、一時デバイス秘密鍵(e_priv_B)のペア)を生成する。デバイス制御部13は、生成した鍵ペアのうちの一時デバイス公開鍵(e_pub_B)を、サーバ装置2に送信する。一時デバイス公開鍵(e_pub_B)と、一時デバイス秘密鍵(e_priv_B)の鍵ペアは、生成する度に異なる値となることから、今回作成した鍵ペアは、前回第1セッション鍵の生成に用いた値とは異なる値となる。
【0030】
このことから、デバイス制御部13により生成される第2セッション鍵は、第1セッション鍵とは異なる値となる。これにより、セッション鍵が、第1セッション鍵とは値が異なる第2セッション鍵に更新される。
【0031】
デバイス制御部13は、不揮発性記憶部122に第2セッション鍵を記憶させ、以降のサーバ装置2と通信において、第2セッション鍵を用いた暗号化通信を行う。
【0032】
サーバ装置2は、サーバ通信部21と、サーバ記憶部22と、サーバ制御部23とを備えている。
【0033】
サーバ通信部21は、デバイス装置1または管理装置3と通信する。サーバ記憶部22は、例えば、サーバ公開鍵(pub_A)と、サーバ秘密鍵(priv_A)のペアであるサーバ鍵ペアと、デバイス証明書(cert_B)と、サーバ証明書(cert_A)と、第1認証局の証明書と、第2認証局の証明書を記憶する。第1認証局はサーバ装置2を証明する認証局である。第2認証局はデバイス装置1を証明する認証局である。サーバ証明書(cert_A)には、第1認証局により署名されたサーバ公開鍵が含まれる。
【0034】
サーバ制御部23は、通信先の装置が正当な装置であるか否かを判定する認証をする。例えば、サーバ制御部23は、サーバ装置2を認証してもらうために、一時サーバ公開鍵(e_pub_A)、一時サーバ秘密鍵(e_priv_A)のペアである鍵ペアを生成する。サーバ制御部23は、サーバ秘密鍵(priv_A)を用いて一時サーバ公開鍵(e_pub_A)の電子署名であるサーバ署名(sig_A)を生成する。サーバ制御部23は、生成した一時サーバ公開鍵(e_pub_A)及びサーバ署名(sig_A)を、デバイス装置1に送信する。
【0035】
また、サーバ制御部23は、デバイス装置1から、一時デバイス公開鍵(e_pub_B)と及びデバイス署名(sig_B)を受信する。サーバ制御部23は、サーバ記憶部22に記憶しているデバイス証明書(cert_B)に含まれるデバイス公開鍵(pub_B)を用いて、デバイス署名(sig_B)を検証する。サーバ制御部23は、一時デバイス公開鍵(e_pub_B)とデバイス公開鍵(pub_B)を用いて、デバイス署名(sig_B)が一時デバイス公開鍵(e_pub_B)とデバイス秘密鍵(priv_B)を用いて生成されたものであるか否かを判定することにより、デバイス署名(sig_B)を検証する。サーバ制御部23は、検証の結果、デバイス署名(sig_B)が、一時デバイス公開鍵(e_pub_B)及びデバイス秘密鍵(priv_B)を用いて生成されたものであると確認できた場合、デバイス装置1が正当な装置であると判定する。
【0036】
また、サーバ制御部23は、デバイス装置1が正当な装置であると判定した場合、一時デバイス公開鍵(e_pub_B)と、一時サーバ秘密鍵(e_priv_A)とを用いて、デバイス装置1との通信に用いる第1セッション鍵を生成する。サーバ制御部23は、以降のデバイス装置1との通信する際には、第1セッション鍵を用いた暗号化通信を行う。
【0037】
また、サーバ制御部23は、サーバ証明書(cert_A)を管理装置3に送信する。これは、従来、デバイス装置1に記憶させることによりセキュアな通信を実現されてきた仕組みの一部を、管理装置3に代行させるためである。管理装置3が行う処理の詳細を以下に説明する。
【0038】
まず、従来行われている一般的なTLS(Transport Layer Security)のシーケンスについて説明する。デバイス装置は、自身が信用する認証局により発行された認証局証明書を予め記憶する。デバイス装置は、自身の通信先となるサーバ装置からサーバ証明書を受信すると、受信したサーバ証明書が上記の認証局によって署名されたものか否かを判定する。デバイス装置は、受信したサーバ証明書が上記の認証局によって署名されたものであれば、受信したサーバ証明書が正当であると判定する。そして、デバイス装置は、サーバ装置からサーバ署名を受信すると、受信したサーバ署名がサーバ秘密鍵で生成された正当なサーバ署名であるか否かを、上記によって正当であると判定したサーバ証明書に含まれるサーバ公開鍵を用いて検証する。デバイス装置は、受信したサーバ署名が、サーバ装置しか保有していないサーバ秘密鍵を用いて生成された正当な署名であると検証できた場合、サーバ装置が正当な装置であると判定する。
【0039】
従来行われている一般的なTLSを本実施形態に適用しようとした場合、デバイス装置1に予め第1認証局の証明書を記憶させ、サーバ証明書(cert_A)そのものは、認証の都度、サーバ装置2からデバイス装置1に送信するように運用する必要がある。この場合、デバイス装置1は第1認証局の証明書を記憶しておかなければならない。デバイス装置に搭載するストレージ及びメモリ容量は限られている。
【0040】
例えば、一般的なPC(Personal Computer)のストレージ容量が数百GB以上であるのに対し、一般的なデバイス装置のストレージ容量は数百KB程度である。また、一般的なPCのメモリ容量が数GB以上であるのに対し、一般的なデバイス装置のメモリ容量は数KB程度である。そして、一般的な電子証明書は数KB以上の情報である場合が多い。このため、デバイス装置1にとっては大容量となる第1認証局の証明書を記憶しておくことは負担が大きい。
【0041】
また、従来行われている一般的なTLSを本実施形態に適用しようとした場合、認証の都度、デバイス装置1は、サーバ証明書(cert_A)を受信しなければならない。デバイス装置1では、消費電力を抑えて長距離の無線通信を可能にするために、例えば、LPWA(Low Power Wide Area)などの通信方式が適用される。このような通信方式では、通信速度を低速にして消費電力を抑えている。
【0042】
例えば、一般的なPCの通信方式として用いられる無線LAN(Local Area Network)の通信規格を定めたIEEE802.11nでは、通信速度が300[Mbps]程度となるように策定されている。一方、LPWA規格の一つであるZETA(登録商標)では、通信速度は100[bps]~50[kbps]程度である。また、一度の通信で送受信可能なデータのサイズにも違いがある。一般的なPCで利用されるイーサネット規格のケーブルであれば一度の通信で1500[Byte]程度のデータを送受信することができる。一方、ZETA(登録商標)では、一度の通信で送受信可能なデータは8[byte]、又は50[byte]である。このため、デバイス装置1が、認証の都度、デバイス装置1にとって大容量の電子証明書を受信するような運用では負担が大きく、現実的でない。
【0043】
また、一般的なデバイス装置は、電源が確保できない屋外のような環境で長期間にわたり使用される場合があり、乾電池等のバッテリ駆動にて設計される場合が多い。バッテリ駆動で長期間の使用を可能とするために、できる限り、電力を消費しないように運用されることが好ましい。
【0044】
すなわち、従来行われている一般的なTLSでは、デバイス装置1のようなストレージ容量及びメモリ容量が小さな容量に制限され、尚且つ、通信速度が低速な装置を想定した認証を規定していない。このため、デバイス装置1にとって、従来の一般的なTLSを用いたセキュアな通信を行うことが困難であった。
【0045】
この対策として、本実施形態では、デバイス装置1に予め第1認証局の証明書を記憶させなくとも、また、検証の都度、デバイス装置1がサーバ証明書(cert_A)を受信しなくとも、サーバ署名(sig_A)を検証できるようにする。
【0046】
具体的に、管理装置3が、予め第1認証局の証明書を記憶し、サーバ証明書(cert_A)が正当な証明書であるか否かを検証する。そして、管理装置3は、サーバ証明書(cert_A)が正当であると判定した場合に、サーバ証明書(cert_A)に含まれるサーバ公開鍵(pub_A)を、デバイス装置1に送信する。デバイス装置1は、管理装置3から受信したサーバ公開鍵(pub_A)を用いて、サーバ署名(sig_A)を検証する。
【0047】
管理装置3は、管理通信部31と、管理記憶部32と、管理制御部33とを備えている。管理通信部31は、デバイス装置1またはサーバ装置2と通信する。管理記憶部32は、サーバ装置2を証明する第1認証局の証明書である第1認証局証明書を記憶する。
【0048】
管理制御部33は、サーバ装置2から受信したサーバ証明書(cert_A)が間違いなくサーバ装置2のものであり、正当な証明書であるか否かを、第1認証局証明書を用いて判定する。管理制御部33は、例えば、第1認証局証明書を用いてサーバ証明書(cert_A)を検証し、サーバ証明書(cert_A)が第1認証局によって署名された正当な証明書であるか否かを判定する。管理制御部33は、サーバ証明書(cert_A)が正当な証明書であると判定した場合、サーバ証明書(cert_A)からサーバ公開鍵(pub_A)を取得し、取得したサーバ公開鍵(pub_A)をデバイス装置1に送信する。これにより、デバイス装置1は、自身の記憶部(デバイス記憶部12)にサーバ証明書(cert_A)を記憶することなく、サーバ公開鍵(pub_A)を取得することができる。
【0049】
なお、管理装置3は、サーバ証明書(cert_A)が正当な証明書であるか否かの検証に加え、サーバ装置2が正当な装置であるか否かを判定する検証を行うようにしてもよい。この場合、既存のTLSの仕組みを利用した検証が可能である。この場合、例えば、管理装置3は、サーバ装置2からサーバ署名(sig_A)を受信する。サーバ署名(sig_A)は、サーバ秘密鍵(priv_A)を用いて生成された電子署名である。管理装置3は、サーバ装置2から受信したサーバ署名(sig_A)を、サーバ証明書(cert_A)に含まれるサーバ公開鍵(pub_A)を用いて検証する。
【0050】
ここで、一般に、サーバ証明書(cert_A)には、サーバ公開鍵(pub_A)の有効期限が記載されている。本実施形態のデバイス装置1は、サーバ証明書(cert_A)を記憶していないため、サーバ公開鍵(pub_A)の有効期限を把握して、更新等の対応をすることが困難である。
【0051】
この対策として、管理装置3は、サーバ公開鍵(pub_A)の有効期限を管理する。具体的に、管理制御部33は、サーバ公開鍵(pub_A)の有効期限に応じて、例えば有効期限が到来する前に、新たに生成されたサーバ証明書(cert_A)をサーバ装置2から受信する。管理制御部33は、更新前と同様に、第1認証局証明書を用いてサーバ証明書(cert_A)を検証し、サーバ証明書(cert_A)が正当な証明書であるか否かを判定する。サーバ証明書(cert_A)が正当な証明書であると判定した場合、管理制御部33は、サーバ証明書(cert_A)からサーバ公開鍵(pub_A)を取得し、取得したサーバ公開鍵(pub_A)をデバイス装置1に送信する。これにより、サーバ公開鍵(pub_A)が更新される。
【0052】
また、管理制御部33は、デバイス装置1の代わりに、デバイス公開鍵(pub_B)とデバイス秘密鍵(priv_B)とのペアであるデバイス鍵ペアを生成する。管理制御部33は、生成したデバイス鍵ペアのうちのデバイス公開鍵(pub_B)を第2認証局に送信し、デバイス公開鍵(pub_B)を含むデバイス証明書(cert_B)の生成を要求する通知(CSR、Certificate Signing Request)を行う。管理制御部33は、第2認証局からデバイス証明書(cert_B)を取得する。管理制御部33は、取得したデバイス証明書(cert_B)をサーバ装置2に送信する。また、管理制御部33は、生成したデバイス鍵ペアのうちのデバイス秘密鍵(priv_B)をデバイス装置1に送信する。
【0053】
また、管理制御部33は、デバイス証明書(cert_B)の有効期限に応じて、例えば有効期限が到来する前に、新たなデバイス公開鍵(pub_B)とデバイス秘密鍵(priv_B)とのデバイス鍵ペアを生成する。管理制御部33は、新たに生成したデバイス鍵ペアのうちのデバイス公開鍵(pub_B)を第2認証局に送信し、その新たに生成したデバイス公開鍵(pub_B)を含むデバイス証明書(cert_B)の生成を要求する通知(CSR、Certificate Signing Request)を行うことにより、デバイス証明書(cert_B)を更新する。管理制御部33は、第2認証局から、更新されたデバイス証明書(cert_B)を取得し、取得したデバイス証明書(cert_B)をサーバ装置2に送信する。これにより、デバイス証明書(cert_B)が更新される。また、管理制御部33は、新たに生成したデバイス鍵ペアのうちのデバイス秘密鍵(priv_B)をデバイス装置1に送信する。これにより、デバイス秘密鍵(priv_B)が更新される。
【0054】
図2は、本実施形態によるデバイス装置1とサーバ装置2との通信の事前処理の動作を示すシーケンス図である。本図を説明する前提として、管理装置3は、保有データとして、サーバ装置2を証明する第1認証局の証明書である第1認証局証明書を予め記憶している。また、サーバ装置2は、保有データとして、サーバ鍵ペアと、第1認証局が署名したサーバ証明書(cert_A)とを予め記憶している。例えば、サーバ装置2は、デバイス装置1の出荷時や起動時等、デバイス装置1と最初に通信する前に、本図に示す処理を実行する。或いは、サーバ装置2は、サーバ証明書(cert_A)の有効期限を更新する際に、本図に示す処理を実行する。
【0055】
ステップS100:まず、サーバ装置2及び管理装置3が、ステップS101~S103に示す事前処理を実行する。
ステップS101:サーバ装置2のサーバ制御部23は、サーバ通信部21を介して、サーバ証明書(cert_A)を管理装置3に送信する。管理装置3の管理制御部33は、管理通信部31を介して、サーバ証明書(cert_A)を受信する。
ステップS102:管理装置3の管理制御部33は、第1認証局証明書を用いてサーバ証明書(cert_A)を検証する。
ステップS103:管理制御部33は、検証結果に基づいてサーバ証明書(cert_A)が正当な証明書であると判定した場合、サーバ証明書(cert_A)からサーバ公開鍵(pub_A)を取得する。
【0056】
ステップS110:続いて、管理装置3及びデバイス装置1が、ステップS111~S113に示す、デバイス装置1にサーバ公開鍵(pub_A)をダウンロードさせるサーバ公開鍵(pub_A)をダウンロードする処理を実行する。
ステップS111:管理装置3の管理制御部33は、管理通信部31を介して、デバイス装置1が管理装置3を認証するための認証データをデバイス装置1に送信する。認証データは、例えば、IDとパスワード等である。デバイス装置1のデバイス制御部13は、デバイス通信部11を介して、認証データを受信する。
ステップS112:デバイス装置1のデバイス制御部13は、受信した認証データを用いて管理装置3を認証し、認証が成功したか否かを判定する。デバイス制御部13は、認証に失敗した場合(ステップS112:No)、処理を終了する。一方、デバイス制御部13は、認証に成功した場合(ステップS112:Yes)、その旨通知するデータを管理装置3に送信して、処理をステップS113に進める。
ステップS113:管理装置3の管理制御部33は、管理通信部31を介して、サーバ公開鍵(pub_A)をデバイス装置1に送信する。デバイス装置1のデバイス制御部13は、デバイス通信部11を介してサーバ公開鍵(pub_A)を受信し、受信したサーバ公開鍵(pub_A)をデバイス記憶部12の不揮発性記憶部122に書き込む。これにより、不揮発性記憶部122がサーバ公開鍵(pub_A)を記憶する。その後、処理を終了する。
【0057】
図3は、本実施形態によるサーバ装置2へのデバイス証明書(cert_B)を連携させる処理の動作を示すシーケンス図である。
サーバ装置2は、保有データとして、デバイス装置1を証明する第2認証局の証明書である第2認証局証明書を予め記憶している。管理装置3は、サーバ装置2とデバイス装置1とが最初に通信する前、例えば上述した通信の事前処理の前後等に、本図に示す処理を実行する。或いは、管理装置3は、デバイス証明書(cert_B)の有効期限を更新する際に、本図に示す処理を実行する。
【0058】
ステップS201:管理装置3の管理制御部33は、デバイス公開鍵(pub_B)とデバイス秘密鍵(priv_B)とのデバイス鍵ペアを生成する。
ステップS202:管理制御部33は、第2認証局にデバイス証明書(cert_B)の生成をリクエストしてデバイス証明書(cert_B)を取得する。
【0059】
ステップS203:管理制御部33は、管理通信部31を介して、デバイス装置1が管理装置3を認証するための認証データをデバイス装置1に送信する。デバイス装置1のデバイス制御部13は、デバイス通信部11を介して、認証データを受信する。
ステップS204:デバイス装置1のデバイス制御部13は、受信した認証データを用いて管理装置3を認証し、認証が成功したか否かを判定する。デバイス制御部13は、認証に失敗した場合(ステップS204:No)、処理を終了する。一方、デバイス制御部13は、認証に成功した場合(ステップS204:Yes)、その旨通知するデータを管理装置3に送信して、処理をステップS205に進める。
【0060】
ステップS205:管理装置3の管理制御部33は、管理通信部31を介して、デバイス秘密鍵(priv_B)をデバイス装置1に送信する。デバイス装置1のデバイス制御部13は、デバイス通信部11を介してデバイス秘密鍵(priv_B)を受信し、受信したデバイス秘密鍵(priv_B)をデバイス記憶部12の不揮発性記憶部122に書き込む。これにより、不揮発性記憶部122がデバイス秘密鍵(priv_B)を記憶する。
ステップS206:管理制御部33は、管理通信部31を介して、デバイス証明書(cert_B)をサーバ装置2に送信する。サーバ装置2のサーバ制御部23は、サーバ通信部21を介して、デバイス証明書(cert_B)を受信する。
ステップS207:サーバ装置2のサーバ制御部23は、第2認証局証明書を用いてデバイス証明書(cert_B)を検証する。サーバ制御部23は、検証結果に基づいてデバイス証明書(cert_B)が正当な証明書であると判定した場合、デバイス証明書(cert_B)をサーバ記憶部22に書き込む。これにより、サーバ記憶部22がデバイス証明書(cert_B)を記憶する。その後、処理を終了する。
【0061】
なお、本図に示す処理では、管理装置3がデバイス鍵ペアを生成しているが、これに限らず、デバイス装置1がデバイス鍵ペアを生成し、生成したデバイス鍵のうちの公開鍵のみを管理装置3に送信し、デバイス鍵のうちの秘密鍵をデバイス記憶部12に記憶させるようにしてもよい。
【0062】
図4は、本実施形態によるデバイス装置1とサーバ装置2との相互認証及びセッション鍵共有処理の動作を示すシーケンス図である。サーバ装置2は、保有データとして、サーバ秘密鍵(priv_A)とデバイス証明書(cert_B)とを予め記憶している。また、デバイス装置1は、保有データとして、サーバ公開鍵(pub_A)とデバイス秘密鍵(priv_B)とを予め記憶している。デバイス装置1またはサーバ装置2は、暗号化通信に使用するセッション鍵を新たに生成し、セッションを更新する際に、本図に示す処理を実行する。例えば、セッション鍵を新たに生成するタイミングは、セッション鍵の使用期間が一定期間(例えば、1月や3月等、一般的な暗号化通信に用いるセッション鍵の使用期間より長い期間)に達したタイミングや、セッション鍵の使用回数が一定回数に達したタイミングや、サーバ装置2またはデバイス装置1の操作者からの明示的な指示があったとき等である。
【0063】
ステップS301:サーバ装置2のサーバ制御部23は、一時的に使用する一時サーバ公開鍵(e_pub_A)と一時サーバ秘密鍵(e_priv_A)とのペアである一時サーバ鍵ペアを生成する。
ステップS302:サーバ制御部23は、サーバ秘密鍵(priv_A)を用いて一時サーバ公開鍵(e_pub_A)の電子署名であるサーバ署名(sig_A)を生成する。
ステップS303:サーバ制御部23は、サーバ通信部21を介して、一時サーバ公開鍵(e_pub_A)とサーバ署名(sig_A)とをデバイス装置1に送信する。デバイス装置1のデバイス制御部13は、デバイス通信部11を介して、一時サーバ公開鍵(e_pub_A)とサーバ署名(sig_A)とを受信する。
【0064】
ステップS304:デバイス装置1のデバイス制御部13は、サーバ公開鍵(pub_A)を用いてサーバ署名(sig_A)を検証し、一時サーバ公開鍵(e_pub_A)とサーバ秘密鍵(priv_A)を用いてサーバ署名(sig_A)が生成されたものであると判定した場合にサーバ装置2が正当な装置であると判定する。
ステップS305:デバイス制御部13は、サーバ装置2が正当な装置であると判定した場合、一時的に使用する一時デバイス公開鍵(e_pub_B)と一時デバイス秘密鍵(e_priv_B)のペアである一時デバイス鍵ペアを生成する。
ステップS306:デバイス制御部13は、デバイス秘密鍵(priv_B)を用いて一時デバイス公開鍵(e_pub_B)の電子署名であるデバイス署名(sig_B)を生成する。
ステップS307:デバイス制御部13は、デバイス通信部11を介して、一時デバイス公開鍵(e_pub_B)とデバイス署名(sig_B)とをサーバ装置2に送信する。サーバ装置2のサーバ制御部23は、サーバ通信部21を介して、一時デバイス公開鍵(e_pub_B)とデバイス署名(sig_B)とを受信する。
【0065】
ステップS308:サーバ装置2のサーバ制御部23は、デバイス証明書(cert_B)に含まれるデバイス公開鍵(pub_B)を用いてデバイス署名(sig_B)を検証し、一時デバイス公開鍵(e_pub_B)とデバイス秘密鍵(priv_B)を用いてデバイス署名(sig_B)が生成されたものであると判定した場合にデバイス装置1が正当な装置であると判定する。
ステップS309:サーバ制御部23は、デバイス装置1が正当な装置であると判定した場合、一時デバイス公開鍵(e_pub_B)と一時サーバ秘密鍵(e_priv_A)とを用いて、デバイス装置1との通信に用いるセッション鍵を生成する。
ステップS311:デバイス装置1のデバイス制御部13は、一時サーバ公開鍵(e_pub_A)と一時デバイス秘密鍵(e_priv_B)とを用いて、サーバ装置2との通信に用いるセッション鍵を生成する。例えば、デバイス制御部13及びサーバ制御部23は、ECDH(Elliptic curve Diffie-Hellman key exchange)によりセッション鍵を生成する。
ステップS312:デバイス制御部13は、セッション鍵をデバイス記憶部12の不揮発性記憶部122に書き込む。これにより、不揮発性記憶部122がセッション鍵を記憶する。
ステップS313:デバイス装置1とサーバ装置2とは、それぞれが生成したセッション鍵を用いて暗号化通信を行う。
【0066】
なお、本図に示す処理では、サーバ装置2から一時サーバ公開鍵(e_pub_A)とサーバ署名(sig_A)とを送信して処理を開始しているが、これに限らず、デバイス装置1から一時デバイス公開鍵(e_pub_B)とデバイス署名(sig_B)とを送信して処理を開始してもよい。例えば、デバイス装置1は、セッション鍵を使った回数を記憶しておき、使用回数が一定回数になった場合に、一時デバイス公開鍵(e_pub_B)とデバイス署名(sig_B)とをサーバ装置2に送信して相互認証及びセッション鍵共有処理を開始してもよい。或いは、デバイス装置1は、セッション鍵の使用回数が一定回数になると、サーバ装置2にセッション鍵の更新を要求して、サーバ装置2から相互認証及びセッション鍵共有処理を開始させてもよい。
【0067】
このように、本実施形態よれば、デバイス装置1とサーバ装置2とを備える通信システムS1において、デバイス装置1は、サーバ装置2と通信するデバイス通信部11と、デバイス秘密鍵(priv_B)、及びサーバ公開鍵(pub_A)を記憶するデバイス記憶部12と、通信先の装置が正当な装置であるか否かを判定する認証をするデバイス制御部13とを有する。また、サーバ装置2は、デバイス装置1と通信するサーバ通信部21と、サーバ秘密鍵(priv_A)、及びデバイス証明書(cert_B)を記憶するサーバ記憶部22と、通信先の装置が正当な装置であるか否かを判定する認証をするサーバ制御部23と、を有する。そして、サーバ制御部23は、一時的に使用する一時サーバ公開鍵(e_pub_A)と一時サーバ秘密鍵(e_priv_A)のペアである一時サーバ鍵ペアを生成し、サーバ秘密鍵(priv_A)を用いて一時サーバ公開鍵(e_pub_A)の電子署名であるサーバ署名(sig_A)を生成し、一時サーバ公開鍵(e_pub_A)及びサーバ署名(sig_A)を、デバイス装置1に送信し、デバイス制御部13は、サーバ公開鍵(pub_A)を用いてサーバ署名(sig_A)を検証し、一時サーバ公開鍵(e_pub_A)とサーバ秘密鍵(priv_A)を用いてサーバ署名(sig_A)が生成されたものであると判定した場合、サーバ装置2が正当な装置であると判定する。
【0068】
このような構成により、デバイス装置1は、サーバ公開鍵(pub_A)のみを記憶することで、サーバ装置2を認証することができる。すなわち、デバイス装置1は、サーバ証明書(cert_A)や第1認証局公開鍵を含む第1認証局証明書等の大容量の情報を記憶しなくとも、サーバ装置2を認証することができる。よって、デバイス装置1は、不揮発性記憶部122の記憶容量が少なくとも、サーバ装置2とセキュアな通信を行うことができる。つまり、大容量の情報をデバイス装置1に記憶させなくとも、デバイス装置1とサーバ装置2とがセキュアな通信を行うことができる。また、サーバ装置2が認証のために送信する認証データは一時サーバ公開鍵(e_pub_A)及びサーバ署名(sig_A)のみであるため、通信データのサイズを小さくすることができる。これにより、一度の通信で送受信できるデータのサイズが小さく、かつ通信速度が遅いデバイス装置1であっても、サーバ装置2を認証することができる。
【0069】
また、デバイス制御部13は、一時的に使用する一時デバイス公開鍵(e_pub_B)と一時デバイス秘密鍵(e_priv_B)のペアである一時デバイス鍵ペアを生成し、デバイス秘密鍵(priv_B)を用いて一時デバイス公開鍵(e_pub_B)の電子署名であるデバイス署名(sig_B)を生成し、一時デバイス公開鍵(e_pub_B)及びデバイス署名(sig_B)を、サーバ装置2に送信する。また、サーバ制御部23は、デバイス証明書(cert_B)に含まれるデバイス公開鍵(pub_B)を用いてデバイス署名(sig_B)を検証し、一時デバイス公開鍵(e_pub_B)とデバイス秘密鍵(priv_B)を用いてデバイス署名(sig_B)が生成されたものであると判定した場合、デバイス装置1が正当な装置であると判定する。
【0070】
なお、実施形態では、デバイス証明書(cert_B)の検証を、
図3に示すステップS206、及びS207で行う場合を例示して説明した。しかしながら、これに限定されない。例えば、
図4に示すステップS307とS308の間で、サーバ装置2が、第2認証局証明書を用いて、デバイス証明書(cert_B)を検証するようにしてもよい。デバイス証明書(cert_B)を検証は、例えば、デバイス証明書(cert_B)が正当な証明書であるか否かを検証する整合性のチェックと、デバイス証明書(cert_B)の有効期限のチェックである。これにより、デバイス装置1と、サーバ装置2とが相互に認証する(
図4の処理を実行する)度に、デバイス証明書(cert_B)の有効期限が切れていないかを確認することができ、有効期限が切れている場合は認証エラーにして、ステップS309以降の処理を実行しないようにすることが可能になる。
【0071】
このような構成により、デバイス装置1がデバイス秘密鍵(priv_B)のみを記憶していれば、サーバ装置2はデバイス装置1を認証することができる。すなわち、デバイス装置1は、サーバ装置2に認証してもらうためにデバイス公開鍵(pub_B)を含むデバイス証明書(cert_B)を記憶する必要がない。これにより、不揮発性記憶部122の記憶容量が少ないデバイス装置1であっても、サーバ装置2とセキュアな通信を行うことができる。よって、大容量の情報をデバイス装置1に記憶させなくとも、デバイス装置1とサーバ装置2とがセキュアな通信を行うことができる。また、デバイス装置1が認証のために送信する認証データは一時デバイス公開鍵(e_pub_B)及びデバイス署名(sig_B)のみであるため、通信データのサイズを小さくすることができる。これにより、一度の通信で送受信できるデータのサイズが小さく、かつ通信速度が遅いデバイス装置1であっても、サーバ装置2に認証してもらうことができる。
【0072】
また、デバイス装置1及びサーバ装置2は、相互の認証データをそれぞれ1度送受信するだけで相互認証及びセッション鍵共有が可能である。すなわち、一時サーバ公開鍵(e_pub_A)及びサーバ署名(sig_A)が、サーバ装置2を認証するための認証データと、デバイス装置1がセッション鍵を生成するための生成データとを兼ねている。また、一時デバイス公開鍵(e_pub_B)及びデバイス署名(sig_B)が、デバイス装置1を認証するための認証データと、サーバ装置2がセッション鍵を生成するための生成データとを兼ねている。よって、デバイス装置1及びサーバ装置2は、相互認証及びセッション鍵共有のための通信回数を削減することができる。これにより、通信速度が低速なデバイス装置1や1度の通信で送受信できるデータのサイズが小さいデバイス装置1であっても、サーバ装置2とセキュアな通信を行うことができる。
【0073】
また、デバイス記憶部12は、電源が供給されている場合に情報を記憶する揮発性記憶部121と、電源が供給されなくとも情報を記憶する不揮発性記憶部122とからなり、デバイス制御部13は、サーバ装置2が正当な装置であると判定した場合、一時サーバ公開鍵(e_pub_A)と一時デバイス秘密鍵(e_priv_B)とを用いて、サーバ装置2との通信に用いる第1セッション鍵を生成し、第1セッション鍵を、不揮発性記憶部122に記憶させ、第1セッション鍵を用いてサーバ装置2と暗号化通信を行う。このように、第1セッション鍵を不揮発性記憶部122に記憶させることにより、第1セッション鍵を長期間使用できるようになる。これにより、デバイス装置1及びサーバ装置2は、相互認証及びセッション鍵共有のための通信を都度行う必要がなくなる。これにより、通信回数を削減して通信のために消費する電力を削減することができる。また、相互認証やセッション鍵共有のための処理に消費する電力を削減することができる。よって、低速な通信や省電力が求められるデバイス装置1であっても、サーバ装置2とセキュアな通信を行うことができる。
【0074】
また、デバイス制御部13は、サーバ装置2から一時サーバ公開鍵(e_pub_A)及びサーバ署名(sig_A)を受信した場合、サーバ公開鍵(pub_A)を用いてサーバ署名(sig_A)を検証し、一時サーバ公開鍵(e_pub_A)とサーバ秘密鍵(priv_A)を用いてサーバ署名(sig_A)が生成されたものであると判定した場合にサーバ装置が正当な装置であると判定し、一時サーバ公開鍵(e_pub_A)と一時デバイス秘密鍵(e_priv_B)とを用いて、サーバ装置2との通信に用いる第2セッション鍵を生成し、不揮発性記憶部122に第2セッション鍵を記憶させ、第2セッション鍵を用いて前記サーバ装置と暗号化通信を行う。これにより、サーバ装置2が任意のタイミングで再度、一時サーバ公開鍵(e_pub_A)及びサーバ署名(sig_A)をデバイス装置1に送信することにより、相互認証及びセッション鍵共有処理を再度実行してセッション鍵を更新することができる。これにより、セッション鍵の漏洩による通信の傍受等のセッション鍵を長期間使用することによる弊害を防ぎ、セキュリティ要求のレベルに応じた柔軟な対応が可能である。
【0075】
また、サーバ公開鍵(pub_A)をデバイス装置1に送信する管理装置3を更に備え、管理装置3は、サーバ装置2を証明する第1認証局の証明書である第1認証局証明書を記憶し、サーバ記憶部22は、サーバ公開鍵(pub_A)とサーバ秘密鍵(priv_A)の鍵ペア、及び、第1認証局により署名された、サーバ公開鍵(pub_A)の電子署名が含まれるサーバ証明書(cert_A)を記憶し、サーバ制御部23は、サーバ証明書(cert_A)を管理装置3に送信し、管理装置3は、第1認証局証明書を用いてサーバ証明書(cert_A)を検証した検証結果に基づいて、サーバ証明書が正当であると判定した場合、サーバ証明書(cert_A)からサーバ公開鍵(pub_A)を取得し、取得したサーバ公開鍵(pub_A)をデバイス装置1に送信する。このような構成により、管理装置3が事前処理でサーバ証明書(cert_A)を検証することができるため、デバイス装置1は、サーバ装置2のサーバ証明書(cert_A)を検証する処理を実行することなく、正当な装置のサーバ公開鍵(pub_A)を取得することができる。これにより、デバイス装置1は、サーバ装置2を認証する度にサーバ公開鍵(pub_A)の正当性を検証する必要がなくなる。よって、デバイス装置1に第1認証局証明書を記憶することなく、かつデバイス装置1がサーバ証明書(cert_A)を受信することなく、第1認証局証明書とサーバ証明書(cert_A)を使用したサーバ署名(sig_A)のチェーン検証と同等のセキュリティ機能を実現することができる。
【0076】
なお、管理装置3は、サーバ証明書が正当であるか否かの検証に加え、サーバ装置2が正当な装置であるか否かを判定する検証を行うようにしてもよい。この場合、既存のTLSの仕組みを利用した検証が可能である。
【0077】
また、デバイス秘密鍵(priv_B)をデバイス装置1に送信し、デバイス証明書(cert_B)をサーバ装置2に送信する管理装置3を更に備え、サーバ記憶部22は、デバイス装置1を証明する第2認証局の証明書である第2認証局証明書を記憶し、管理装置3は、デバイス公開鍵(pub_B)とデバイス秘密鍵(priv_B)の鍵ペアを生成し、生成した鍵ペアのうち、デバイス公開鍵(pub_B)を含むデバイス証明書(cert_B)の生成を第2認証局に要求して第2認証局からデバイス証明書(cert_B)を取得し、デバイス秘密鍵(priv_B)をデバイス装置1に送信し、デバイス証明書(cert_B)をサーバ装置2に送信する。このような構成により、管理装置3が第2認証局からデバイス証明書(cert_B)を取得するため、デバイス装置1がデバイス証明書(cert_B)を取得する処理を実行する必要がない。また、サーバ装置2と高速に通信できる管理装置3がデバイス証明書(cert_B)をサーバ装置2に送信することで、デバイス装置1の通信速度が低速であっても、サーバ装置2にデバイス証明書(cert_B)を送信することができる。
【0078】
また、管理装置3は、デバイス証明書(cert_B)の有効期限に応じて、有効期限が到来する前に新たなデバイス公開鍵(pub_B)とデバイス秘密鍵(priv_B)の鍵ペアを生成し、新たに生成した鍵ペアのうち、デバイス公開鍵(pub_B)を含むデバイス証明書(cert_B)の生成を第2認証局に要求して第2認証局から新たなデバイス証明書(cert_B)を取得し、新たに生成したデバイス秘密鍵(priv_B)をデバイス装置1に送信し、新たに取得したデバイス証明書(cert_B)をサーバ装置2に送信する。このような構成により、管理装置3がデバイス証明書の有効期限を管理し、有効期限が到来する前にデバイス証明書(cert_B)を更新することができる。よって、デバイス装置1がデバイス証明書(cert_B)を記憶しなくとも、デバイス証明書(cert_B)の有効期限管理をすることができる。
【0079】
上述した実施形態における通信システムS1の全部または一部をコンピュータで実現するようにしてもよい。その場合、この機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって実現してもよい。なお、ここでいう「コンピュータシステム」とは、OSや周辺機器等のハードウェアを含むものとする。また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ROM、CD-ROM等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。さらに「コンピュータ読み取り可能な記録媒体」とは、インターネット等のネットワークや電話回線等の通信回線を介してプログラムを送信する場合の通信線のように、短時間の間、動的にプログラムを保持するもの、その場合のサーバやクライアントとなるコンピュータシステム内部の揮発性メモリのように、一定時間プログラムを保持しているものも含んでもよい。また上記プログラムは、前述した機能の一部を実現するためのものであってもよく、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであってもよく、FPGA等のプログラマブルロジックデバイスを用いて実現されるものであってもよい。
【0080】
以上、この発明の実施形態について図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
【符号の説明】
【0081】
S1…通信システム、1…デバイス装置、11…デバイス通信部、12…デバイス記憶部、121…揮発性記憶部、122…不揮発性記憶部、13…デバイス制御部、2…サーバ装置、21…サーバ通信部、22…サーバ記憶部、23…サーバ制御部、3…管理装置、31…管理通信部、32…管理記憶部、33…管理制御部