以下、図面を参照しつつ、本発明の様々な実施形態について説明する。ただし、本発明の技術的範囲はそれらの実施形態に限定されず、特許請求の範囲に記載された発明とその均等物に及ぶ点に留意されたい。
本実施形態の通信システムは、サービス証明書を用いてネットワークを介した所定のサービスの提供を受ける端末装置、及び、サービス証明書を端末装置に提供する証明書管理装置を有する。また、端末装置又は証明書管理装置は、端末装置におけるサービス証明書の使用期間、端末装置の装置仕様、又は、端末装置の認証頻度等の機器の性能等に応じて、サービス証明書に対応する鍵(公開鍵及び秘密鍵)の鍵長を決定する鍵長決定部を有する。なお、端末装置及び証明書管理装置の両者と異なる他の装置が、鍵長決定部を有してもよい。
サービス証明書は、端末装置がネットワークを介して所定のサービスの提供を受けるにあたって、サービスの提供主体(例えばサーバ装置等)が端末装置を認証するために用いられる電子証明書である。なお、端末装置2は、サービス証明書の有効期間が終了する前に、次の新しいサービス証明書を証明書管理装置から取得する。すなわち、サービス証明書は、各端末装置2において、有効期限に応じて断続的に更新される。
なお、端末装置を認証するために用いられる電子証明書が、端末装置の製造段階において、初期証明書として当該端末装置に記憶される。端末装置に記憶される初期証明書は、当該端末装置が初めてユーザに利用される利用開始時(例えば、端末装置がユーザ宅に設置される際に行われる初期設定の時)、又は、一度利用が終了された端末装置が、再度ユーザに利用される利用再開時において、サービス証明書を要求するために用いられる電子証明書である。なお、端末装置が製造されてから最初に利用されるまでの期間は、10年を超える場合があるため、初期証明書の有効期間として、サービス証明書よりも長い有効期間(20〜30年間等)が設定される。このように、初期証明書は、長期間に渡って使用される可能性が高く且つ使用頻度がサービス証明書に比べて著しく少ないため、初期証明書に対応する鍵(公開鍵及び秘密鍵)の鍵長は、サービス証明書に対応する鍵の鍵長以上に設定される。以降、初期証明書及びサービス証明書の両者を、クライアント証明書と称する場合がある。
端末装置は、サービス証明書を予め記憶しており、記憶されたサービス証明書の有効期間に応じた時期に、サービス証明書の再発行要求を証明書管理装置に送信する証明書更新部を有する。有効期間に応じた時期は、サービス証明書の有効期間の終了日時から所定時間前のタイミングであり、例えば、有効期限の終了日の1日前である。
証明書管理装置は、端末装置から再発行要求を受信した場合に、鍵長決定部によって決定された鍵長の鍵に対応する新たなサービス証明書を端末装置に送信する証明書管理部を有する。そして、端末装置の証明書更新部は、証明書管理装置から受信した新たなサービス証明書によって端末記憶部の記憶内容を更新する。この際、これまでのサービス証明書を新たなサービス証明書で上書きするよう更新してもよいし、これまでのサービス証明書を記憶したまま新たなサービス証明書を追加記憶するよう更新してもよい。いずれにせよ、以後、新たなサービス証明書を用いて認証処理される。
このように、通信システムは、端末装置におけるサービス証明書の使用期間、端末装置の装置仕様、又は、端末装置の認証頻度等、に応じた適切な長さの鍵長からなる電子証明書を用いて、機器認証を行うことができる。これにより、通信システムにおいて、安全性を担保しつつ、通信機器又はサーバ装置等の負荷を低減させる認証処理が可能となる。以下、証明書管理装置が鍵長決定部を有する場合を例にして説明する。
図1は、通信システム1の概略構成の一例を示す図である。通信システム1は、複数の端末装置2、証明書管理装置3及びサーバ装置4を有する。複数の端末装置2、証明書管理装置3及びサーバ装置4は、有線又は無線のネットワーク5で接続され、相互に各種の情報を送受信する。
端末装置2は、証明書管理装置3と通信し、証明書管理装置3からサービス証明書を受信する機能を有する。また、端末装置2は、サーバ装置4との間でサービス証明書を用いた認証処理を行ってセキュアチャネル(暗号化通信)を確立し、サーバ装置4から所定のサービスの提供を受ける機能を有する。端末装置2は、例えば、警備に用いられるコントローラ等である。なお、本実施形態では、証明書管理装置3との認証処理において、通信プロトコルとして、TLS(Transport Layer Security)を利用するが、TLSに限らず、DTLS(Datagram Transport Layer Security)、IPSec(Security Architecture for Internet Protocol)等、他の標準的なセキュアチャネルプロトコルが用いられてもよい。
証明書管理装置3は、端末装置2によって用いられるサービス証明書を管理するための装置であり、例えば、データベース装置及びウェブサーバ等により構成される。サーバ装置4は、複数の端末装置2と通信し、複数の端末装置2のそれぞれに対して所定のサービスを提供するための装置であり、例えば、ウェブサーバ等によって構成される。なお、証明書管理装置3及びサーバ装置4は、同一のウェブサーバ装置等によって構成されてもよい。例えば、サーバ装置4が証明書管理装置3の全ての機能を備えるように構成されてもよく、また、証明書管理装置3がサーバ装置4の全ての機能を備えるように構成されてもよい。
図2は、端末装置2の概略構成の一例を示す図である。端末装置2は、サービス証明書の有効期間の終了日時から所定時間前のタイミング(例えば、有効期限の終了日の1日前)において、サービス証明書の再発行要求を証明書管理装置3に送信し、証明書管理装置3から新たなサービス証明書を受信する機能を有する。また、端末装置2は、受信した新たなサービス証明書によって記憶されたサービス証明書を更新する機能を有する。そのために、端末装置2は、端末通信部21、入力部22、表示部23、端末記憶部24、端末制御部25を備える。
端末通信部21は、有線又は無線のLAN(Local Area Network)の通信インターフェース、USB(Universal Serial Bus)等と接続するためのインターフェース、所定の周波数帯を感受帯域とするアンテナを含む、通信インターフェース等である。端末装置2は、端末通信部21を介して証明書管理装置3又はサーバ装置4等と端末通信部21を介して接続され、各種データを送受する。
入力部22は、キーボード若しくはテンキー、又は外部入力端子等によって構成される。例えば、入力部22は、工場出荷時又はサービス開始時等において、初期設定に係る情報を入力するために用いられる。なお、入力部22が外部入力端子によって構成される場合では、外部入力端子に接続されたモバイル端末等からの情報が入力される。
表示部23は、例えば、有機EL(Electro−Luminescence)ディスプレイ、液晶ディスプレイ、又は、タッチパネル式の表示デバイス、LED等である。表示部23は、端末制御部25から供給された出力データに応じた表示出力を行う。
端末記憶部24は、例えば、ROM(Read Only Memory)、RAM(Random access memory)等の半導体メモリ装置、又は、ハードディスク、光ディスク等を備え、端末制御部25での処理に用いられるプログラム、データ等を記憶するデータベース装置等によって構成される。なお、プログラム及びデータは、端末装置2の製造段階において、記録装置によって端末記憶部24に書き込まれてもよい。また、端末記憶部24は、データとして、クライアント証明書(初期証明書241、サービス証明書242)、認証局証明書243等を記憶する。なお、認証局証明書243は、サーバ証明書を検証するための電子証明書であって、当該サーバ証明書を発行した認証局自身の電子証明書である。
端末制御部25は、一又は複数個のプロセッサ及びその周辺回路を備える。端末制御部25は、端末装置2の全体的な動作を統括的に制御するものであり、例えば、CPU(Central Processing Unit)である。端末制御部25は、端末記憶部24に記憶されているプログラムに基づいて処理を実行する。端末制御部25は、少なくとも証明書更新部251、証明書要求部252、端末認証処理部253を備える。これらの各部は、端末制御部25が備えるプロセッサで実行されるプログラムにより実現される機能モジュールである。あるいは、これらの各部は、ファームウェアとして端末装置2に実装されてもよい。
証明書更新部251は、証明書管理装置3から送信されたサービス証明書242を、端末通信部21を介して受信すると、受信したサービス証明書242を端末記憶部24に記憶する。なお、証明書更新部251の詳細は後述する。
証明書要求部252は、サービス証明書242の発行要求と再発行要求とを、端末通信部21を介して証明書管理装置3に送信する。証明書要求部252の詳細は後述する。
端末認証処理部253は、証明書管理装置3及びサーバ装置4との間でサービス証明書242等を用いて認証処理を行ってセキュアチャネルを確立する。この確立によってサービスの提供を受けることが可能となる。この際、端末認証処理部253は、クライアント証明書(初期証明書241、サービス証明書242)と、証明書管理装置3及びサーバ装置4のサーバ証明書を検証できる認証局証明書243と、を用いてセキュアチャネルを確立するものとする。これらの電子証明書のうちサービス証明書242の処理量が使用頻度の観点から問題となり、認証局証明書243と異なり鍵長の制御が可能であるため問題解決に寄与する。なお、TLSを用いたセキュアチャネルの確立方法は従来技術であるため、詳細な説明を省略する。
図3は、証明書管理装置3の概略構成の一例を示す図である。証明書管理装置3は、端末装置からサービス証明書発行要求又は再発行要求を受信した場合に、決定された鍵長に対応する鍵を含む新たなサービス証明書を端末装置に送信する機能を有する。そのために、証明書管理装置3は、少なくとも管理通信部31、管理記憶部32、管理制御部33を備える。
管理通信部31は、有線又は無線のLANの通信インターフェース、USB等と接続するためのインターフェース、所定の周波数帯を感受帯域とするアンテナを含む、通信インターフェース等である。証明書管理装置3は、管理通信部31を介して端末装置2等と接続され、管理通信部31は、管理制御部33から供給されたデータを、端末装置2等に送信する。また、管理通信部31は、端末装置2等から受信したデータを管理制御部33に供給する。
管理記憶部32は、例えば、ROM、RAM等の半導体メモリ装置、又は、ハードディスク、光ディスク等を備え、管理制御部33での処理に用いられるプログラム、データ等を記憶するデータベース装置等によって構成される。なお、プログラムは、例えばCD−ROM(Compact Disk Read Only Memory)、DVD−ROM(Digital Versatile Disk Read Only Memory)等のコンピュータ読み取り可能な可搬型記録媒体から、公知のセットアッププログラム等を用いて管理記憶部32にインストールされてもよい。また、管理記憶部32は、データとして、後述する端末管理テーブル321、証明書管理テーブル322等を記憶する。
管理制御部33は、一又は複数個のプロセッサ及びその周辺回路を備える。管理制御部33は、証明書管理装置3の全体的な動作を統括的に制御するものであり、例えば、CPUである。管理制御部33は、管理記憶部32に記憶されているプログラムに基づいて処理を実行する。管理制御部33は、少なくとも鍵長決定部331、証明書管理部332、管理認証処理部333を備える。これらの各部は、管理制御部33が備えるプロセッサで実行されるプログラムにより実現される機能モジュールである。あるいは、これらの各部は、ファームウェアとして証明書管理装置3に実装されてもよい。
鍵長決定部331は、各端末装置2の性能(使用期間、計算能力、電池容量等)等に応じて、サービス証明書に対応する鍵の鍵長を複数種類決定する。なお、鍵長決定部331の詳細は後述する。
なお、鍵長決定部331は、各端末装置2に備えられてもよい。この場合、各端末装置2は、自身の性能(使用期間、計算能力、電池容量等)に関する情報を記憶し、各端末装置2の鍵長決定部が、当該情報に基づいてサービス証明書の鍵長を決定する。そして、各端末装置2の証明書要求部252は、決定した鍵長を証明書管理装置3に送信することにより、証明書管理装置3によって生成された、必要とする鍵長の鍵に対応するサービス証明書を受信する。
また、鍵長決定部331は、別途設置されネットワーク接続されている図示しない他の装置や他のサーバに備えられてもよい。この場合、他の装置や他のサーバが端末管理テーブルを記憶し、他の装置や他のサーバが備える鍵長決定部は、決定した鍵長を証明書管理装置3に送信することにより、端末装置2は、必要とする鍵長を取得することができる。
証明書管理部332は、端末装置2からサービス証明書発行要求を受信した場合に、鍵長決定部331が決定した鍵長に対応する鍵に対応する新たなサービス証明書を端末装置2に送信する。なお、証明書管理部332の詳細は後述する。
管理認証処理部333は、管理通信部31を介して端末装置2からTLS接続要求を受信すると、端末装置2と証明書管理装置3との間でセキュアチャネルを確立する。この際、管理認証処理部333は、証明書管理装置3に対して発行されたサーバ証明書(図示なし)と、端末装置2のクライアント証明書(サービス証明書242、初期証明書241)を検証できる認証局証明書(図示なし)を用いてセキュアチャネルを確立するものとする。なお、これらのサーバ証明書及び認証局証明書は、予め管理記憶部32に記憶されているものとする。
図4は、サーバ装置4の概略構成の一例を示す図である。サーバ装置4は、端末装置2から受信したサービス証明書によって、端末装置2とのTLS接続を確立し、端末装置2に所定のサービスを提供する機能を有する。そのために、サーバ装置4は、サーバ通信部41、サーバ記憶部42、サーバ制御部43を備える。なお、端末装置2との暗号化通信において、TLSに限らず、DTLS、IPSec等、他の標準的なセキュアチャネルプロトコルが用いられてもよい。
サーバ通信部41は、有線又は無線のLANの通信インターフェース、USB等と接続するためのインターフェース、所定の周波数帯を感受帯域とするアンテナを含む、通信インターフェース等である。サーバ装置4は、サーバ通信部41を介して端末装置2等と接続され、サーバ通信部41は、サーバ制御部43から供給されたデータを、端末装置2等に送信する。また、サーバ通信部41は、端末装置2等から受信したデータをサーバ制御部43に供給する。
サーバ記憶部42は、例えば、ROM、RAM等の半導体メモリ装置、又は、ハードディスク、光ディスク等を備え、サーバ制御部43での処理に用いられるプログラム、データ等を記憶する。なお、プログラムは、例えばCD−ROM、DVD−ROM等のコンピュータ読み取り可能な可搬型記録媒体から、公知のセットアッププログラム等を用いてサーバ記憶部42にインストールされてもよい。また、サーバ記憶部42は、データとして、後述するサーバ証明書421、認証局証明書422等を記憶する。なお、サーバ証明書421は、当該サーバ装置4を認証するための電子証明書である。また、認証局証明書422は、サービス証明書を検証するための電子証明書であってサービス証明書を発行した認証局自身の電子証明書である。
サーバ制御部43は、一又は複数個のプロセッサ及びその周辺回路を備える。サーバ制御部43は、サーバ装置4の全体的な動作を統括的に制御するものであり、例えば、CPUである。サーバ制御部43は、サーバ記憶部42に記憶されているプログラムに基づいて処理を実行する。サーバ制御部43は、サーバ認証処理部431を備える。サーバ認証処理部431は、サーバ制御部43が備えるプロセッサで実行されるプログラムにより実現される機能モジュールである。あるいは、サーバ認証処理部431は、ファームウェアとしてサーバ装置4に実装されてもよい。
サーバ認証処理部431は、サーバ通信部41を介して端末装置2からTLS接続要求を受信した場合、当該端末装置2を認証し、当該端末装置2とサーバ装置4との間のセキュアチャネルを確立する。この際、サーバ認証処理部431は、サーバ装置4に対して発行されたサーバ証明書421と、端末装置のサービス証明書を検証できる認証局証明書422とを用いてセキュアチャネルを確立するものとする。
以下、図5(a)〜(c)を参照して、クライアント証明書(初期証明書241、サービス証明書242)、サーバ証明書421、及び認証局証明書422の各電子証明書について説明する。なお、各電子証明書は、例えば、ITU−T(国際電気通信連合―電気通信標準化部門, International Telecommunication Union Telecommunication Standardization Sector)によって定められた規格である「X.509 v3 証明書フォーマット」に対応するデータ構造等によって構成される。
図5は、電子証明書のデータ構造の一例を示す図であり、同図(a)がクライアント証明書(初期証明書241、サービス証明書242)、同図(b)がサーバ証明書421、同図(c)が認証局証明書422のデータ構造の一例を示している。これらの電子証明書は、発行者ID(identification)、証明書ID、端末ID/サーバID/認証局ID、公開鍵、有効期間開始、有効期間終了、署名値、フィンガープリント等から構成される。
発行者IDは、電子証明書を発行(生成)した認証局を一意に識別するための識別情報の一例である。証明書IDは、同一発行者(認証局)によって発行された電子証明書を一意に識別するための識別情報の一例である。すなわち、異なる発行者によって発行された電子証明書の証明書IDと同一の証明書IDの証明書が他の発行者によって発行されることがある。
端末ID/サーバID/認証局IDは、電子証明書によって認証される対象である端末装置2/サーバ装置4/認証局を一意に識別するための識別情報の一例である。公開鍵は、初期証明書及びサービス証明書とともに発行された秘密鍵によって署名された情報を検証するための鍵情報であり、秘密鍵に基づいて生成される。
有効期間開始は、電子証明書が有効である期間の開始日時を示す情報であり、有効期間終了は、電子証明書が有効である期間の終了日時を示す情報である。有効期間開始及び有効期間終了によって、電子証明書の有効期間が規定される。
署名値は、電子証明書を構成する、発行者ID、証明書ID、端末ID、公開鍵、有効期間開始及び有効期間終了の一連のデータ列を、電子証明書の発行者である認証局の秘密鍵によって署名した情報である。なお、認証局は階層構造で関連付けられており、例えば、最上位の認証局(所謂「ルート認証局」)等は、下位の認証局の認証局証明書を発行する。また、ルート認証局は、自身に対して認証局証明書を発行する。
フィンガープリントは、電子証明書を構成する、発行者ID、証明書ID、端末ID/サーバID/認証局ID、公開鍵、有効期間開始、有効期間終了及び署名値の一連のデータ列が、ハッシュ関数によって生成(変換)されたハッシュ値である。フィンガープリントは、電子証明書のデータ量に関わらず同じ固定長を有する、電子証明書に対して固有の英数字の文字列情報である。なお、ハッシュ関数は、例えば、NIST(National Institute of Standards and Technology)によって標準化されたSHA−1、SHA−2等が用いられる。
以下、図6(a)及び(b)を参照して、証明書管理装置3の管理記憶部32に記憶される端末管理テーブル321及び証明書管理テーブル322について説明する。
図6(a)は、端末管理テーブル321のデータ構造の一例を示す図である。端末管理テーブル321には、複数の端末装置2のそれぞれの性能を記憶するためのテーブルであり、端末装置2ごとに、当該端末装置2の端末ID、計算能力及び電池容量と、当該端末装置2が利用するサービス証明書の使用期間と、が互いに関連付けて記憶される。端末IDは、各端末装置2を一意に識別するための端末IDである。
使用期間は、各端末装置2において、サービス証明書を使用し続ける最大期間を示す情報であり、端末装置2の運用要件に基づいて管理者等に指定される情報である。例えば、外部ネットワーク(例:インターネット)への通信を頻繁に行えない端末装置2については、運用上、当該外部ネットワークを介してサービス証明書の更新を頻繁に行うことができないため、当該端末装置2の使用期間を長めに設定しておく必要がある。なお、サービス証明書は、使用開始時から使用期間を超えないよう更新が行われる必要がある。計算能力は、端末装置2の端末制御部25(CPU等)における処理能力を示す情報である。電池容量は、端末装置2の図示しない電池の容量である。なお、端末管理テーブル321において、各端末装置2がサーバ装置4と通信を行う頻度を示すアクセス頻度が、端末装置2ごとに記憶されてもよい。
図6(b)は、証明書管理テーブル322のデータ構造の一例を示す図である。証明書管理テーブル322には、端末ID、サービス証明書、鍵長が互いに関連付けて記憶される。端末IDは、関連付けられたサービス証明書の送信先として規定された端末装置2を識別するための端末IDである。
サービス証明書には、図5(a)に示すデータ構造のサービス証明書のデータ本体が当該サービス証明書に含まれる公開鍵に対応する秘密鍵を含む形式(PKCS#12(Public Key Cryptography Standards # 12))に従って記憶される。鍵長は、関連付けられたサービス証明書に記憶される公開鍵のデータの大きさ(bit)を示す情報である。
図6(b)に示す例では、例えば、端末ID「0001」によって識別される端末装置2は、A1024、A2048、A4096の中のいずれかのサービス証明書と、B1024、B2048、B4096の中のいずれかのサービス証明書との計2つをサービス証明書として使用する。A1024、A2048、A4096の3つのサービス証明書は、それぞれ発行者ID、端末IDは同一である。これらのA1024、A2048、A4096の3つのサービス証明書のうち、鍵長決定部331によって決定された鍵長に対応するサービス証明書が、端末装置2に送信される。
なお、証明書管理装置3は、証明書管理テーブル322に記憶されている各レコードを定期的に又は不定期に更新する。例えば、端末装置2にサービス証明書が送信された後、当該端末装置2の次回の更新時に使用する新しいサービス証明書を登録するための証明書管理テーブル更新処理が行われる。例えば、証明書管理テーブル更新処理では、まず、証明書管理装置3は、端末装置2に送信されたサービス証明書の有効期限が切れる数日前から有効期間の開始となる新たなサービス証明書の発行依頼を認証局に対して行う。そして、証明書管理装置3は、認証局から発行された新たなサービス証明書(複数の鍵長の鍵に対応する複数のサービス証明書)を証明書管理テーブル322に記憶し、証明書管理テーブル更新処理を終了する。
図7は、通信システム1の初期設定シーケンスの一例を示す図である。図7に示す初期設定シーケンスは、当該端末装置2が初めてユーザに利用される利用開始時、又は、一度ユーザによる利用が終了された端末装置2が、再度ユーザに利用される利用再開時において、実施される動作シーケンスの一例である。初期設定シーケンスは、予め端末記憶部24及び管理記憶部32に記憶されているプログラムに基づいて、主に端末制御部25及び管理制御部33により、端末装置2及び証明書管理装置3の各要素と協働して実行される。
端末装置2には、利用開始時においてサービス証明書が記憶されておらず、または、利用再開時はサービス証明書の有効期間が終了している恐れがある。そのため、端末装置2の端末認証処理部253は、初期証明書を用いて証明書管理装置3との間でTLS接続によるセキュアチャネルを確立する(ステップS101)。この際、証明書管理装置3の管理認証処理部333は、証明書管理装置3に対して発行されたサーバ証明書(図示なし)と、端末装置2の初期証明書を検証できる認証局証明書(図示なし)を用いてセキュアチャネルを確立するものとする。
次に、端末装置2の証明書要求部252は、端末装置2の初回起動時又はユーザによる入力部22の入力に応じた所定の指示(例えば、端末装置2を初期設定した後の起動指示等)を取得した場合、端末装置2の端末IDを含むサービス証明書発行要求を、証明書管理装置3に送信する(ステップS102)。
次に、証明書管理装置3の証明書管理部332は、管理通信部31を介して端末装置2からサービス証明書発行要求を受信すると、サービス証明書発行要求に含まれる端末IDを抽出し、端末管理テーブル321から、抽出した端末IDに対応する使用期間、計算能力及び電池容量を取得する(ステップS103)。
次に、証明書管理装置3の鍵長決定部331は、鍵長決定処理を実行する(ステップS104)。鍵長決定処理の詳細は後述する。
次に、証明書管理部332は、抽出したIDと鍵長決定処理によって決定された鍵長とに関連付けられたサービス証明書を、証明書管理テーブル322から読み出す(ステップS105)。
そして、証明書管理部332は、読み出したサービス証明書と当該サービス証明書に含まれる公開鍵に対応する秘密鍵とを、当該サービス証明書に含まれる端末IDによって識別される端末装置2(すなわち、サービス証明書発行要求を行った端末装置2)に送信する(ステップS106)。
なお、端末装置2の証明書更新部251は、端末通信部21を介して証明書管理装置3からサービス証明書を取得すると、当該サービス証明書により端末記憶部24の記憶内容を更新する。
図8は、通信システム1の更新シーケンスの一例を示す図である。図8に示す更新シーケンスは、端末装置2に記憶されたサービス証明書242の有効期間の終了日時から所定時間前のタイミング(例えば、有効期限の終了日の1日前)において実施される動作シーケンスの一例である。なお、更新シーケンスは、サービス証明書242の有効期間の終了日時から所定時間前のタイミングに限らず、ユーザによる入力部22の入力に応じた所定の指示(例えば、サービス証明書の取得指示等)を取得したタイミングにおいて実施されてもよい。更新シーケンスは、予め端末記憶部24及び管理記憶部32に記憶されているプログラムに基づいて、主に端末制御部25及び管理制御部33により、端末装置2及び証明書管理装置3の各要素と協働して実行される。
端末装置2には、既にサービス証明書242が記憶されている。そのため、最初に、端末装置2の端末認証処理部253は、既に記憶されているサービス証明書242を用いて証明書管理装置3との間でTLS接続によるセキュアチャネルを確立する(ステップS201)。この際、証明書管理装置3の管理認証処理部333は、証明書管理装置3に対して発行されたサーバ証明書(図示なし)と、端末装置2のサービス証明書を検証できる認証局証明書(図示なし)とを用いてを用いてセキュアチャネルを確立するものとする。次に、端末装置2の証明書要求部252は、端末装置2の端末IDを含むサービス証明書の再発行要求を、証明書管理装置3に送信する(ステップS202)。
次に、証明書管理装置3の証明書管理部332は、管理通信部31を介して端末装置2からサービス証明書の再発行要求を受信すると、サービス証明書の再発行要求に含まれる端末IDを抽出し、端末管理テーブル321から、抽出した端末IDに対応する使用期間、計算能力及び電池容量を取得する(ステップS203)。
次に、証明書管理装置3の鍵長決定部331は、鍵長決定処理を実行する(ステップS204)。鍵長決定処理の詳細は後述する。
次に、証明書管理部332は、抽出した端末IDと鍵長決定処理によって決定された鍵長とに関連付けられたサービス証明書を、証明書管理テーブル322から読み出す(ステップS205)。そして、証明書管理部332は、読み出したサービス証明書と当該サービス証明書に含まれる公開鍵に対応する秘密鍵とを、当該サービス証明書に含まれる端末IDによって識別される端末装置2に送信する(ステップS206)。この際、秘密鍵を含むサービス証明書のデータ形式(PKCS#12)によって送信してもよい。
なお、端末装置2の証明書更新部251は、更新シーケンスによって証明書管理装置3から新たなサービス証明書を取得すると、当該新たなサービス証明書を用いて端末記憶部24を更新する。
図9は、通信システム1の更新シーケンスの他の例を示す図である。図8の更新シーケンスでは、予め認証局によって発行された複数のサービス証明書を証明書管理装置3に記憶させている場合の例を示したが、図9の更新シーケンスは端末装置2からサービス証明書の再発行要求がなされると、その都度、認証局において新たなサービス証明書を発行する場合の例を示すものである。図9に示す更新シーケンスは、図8に示す更新シーケンスと同様に、端末装置2に記憶されたサービス証明書242の有効期間の終了日時から所定時間前のタイミング(例えば、有効期限の終了日の1日前、又は、ユーザによる入力部22の入力に応じた所定の指示(例えば、サービス証明書の取得指示等)を取得したタイミング等)において実施される動作シーケンスの一例である。この更新シーケンスは、予め端末記憶部24及び管理記憶部32に記憶されているプログラムに基づいて、主に端末制御部25及び管理制御部33により、端末装置2及び証明書管理装置3の各要素並びに認証局6と協働して実行される。なお、証明書管理装置3と認証局6との間には、別途セキュアチャネルが確立されているものとする(ステップS301)。
図9におけるステップS302〜S305の処理は、図8におけるステップS201〜S204の処理と同じであるため、ここでは詳細な説明を省略する。
ステップS306では、証明書管理部332は、ステップS305の鍵長決定処理によって決定された鍵長に対応する秘密鍵及び公開鍵を生成する。例えば、証明書管理部332は、ステップS305にて決定された鍵長からなる秘密鍵を乱数に基づいて生成し、当該秘密鍵に既知の一方向関数に基づく演算を行うことにより公開鍵を生成する。そして、証明書管理部332は、端末装置2の端末IDと生成した公開鍵とを含むサービス証明書発行依頼を、管理通信部31を介して認証局6に送信する(ステップS307)。
次に、認証局6は、証明書管理装置3から送信されたサービス証明書発行依頼を受信すると、サービス証明書発行依頼に含まれる端末ID及び公開鍵を含むサービス証明書を発行(生成)する(ステップS308)。そして、認証局6は、生成したサービス証明書を、サービス証明書発行依頼を送信した証明書管理装置3に送信する(ステップS309)。
なお、証明書管理装置3は鍵長のみを決定し、証明書管理部332は、端末ID及び鍵長を含むサービス証明書発行依頼を認証局6に送信してもよい。この場合、認証局6は、生成するサービス証明書に対応する秘密鍵及び公開鍵を生成し、生成した公開鍵を含むサービス証明書を発行し、発行したサービス証明書に、生成した秘密鍵を含めたPKCS#12形式のサービス証明書を証明書管理装置3に送信する。
そして、証明書管理部332は、認証局6から受信したサービス証明書と、生成した秘密鍵とを、当該サービス証明書に含まれる端末IDによって識別される端末装置2に送信する(ステップS310)。この際、秘密鍵を含むサービス証明書のデータ形式(PKCS#12)によって送信してもよい。
なお、端末装置2の証明書更新部251は、図9の更新シーケンスにより証明書管理装置3から新たなサービス証明書を取得すると、取得した新たなサービス証明書を用いて端末記憶部24を更新する。
図10は、証明書管理装置3の鍵長決定部331による鍵長決定処理の動作フローの一例を示す図である。図10に示される鍵長決定処理は、図7のステップS104、図8のステップS204、図9のステップS305において実行される。
最初に、鍵長決定部331は、ステップS303において抽出された使用期間が1ヶ月以上であるか否かを判定する(ステップS401)。
次に、鍵長決定部331は、使用期間が1ヶ月以上であると判定した場合(ステップS401−Yes)、後述するステップS406に処理を進める。また、鍵長決定部331は、使用期間が1ヶ月未満であると判定した場合(ステップS401−No)、ステップS303において抽出された電池容量が十分であるか否か(例えば、電池容量が1000mAh以上であるか否か)を判定する(ステップS402)。
次に、鍵長決定部331は、電池容量が十分であると判定した場合(ステップS402−Yes)、後述するステップS404に処理を進める。また、鍵長決定部331は、電池容量が十分でないと判定した場合(ステップS402−No)、公開鍵及び秘密鍵の鍵長を1024bitに決定し(ステップS403)、一連のステップを終了する。
ステップS404において、鍵長決定部331は、ステップS303において抽出された計算能力が十分であるか否か(例えば、計算能力が500MHz以上であるか否か)を判定する。鍵長決定部331は、計算能力が十分であると判定した場合(ステップS404−Yes)、後述するステップS406に処理を進める。また、鍵長決定部331は、計算能力が十分でない(小さい)と判定した場合(ステップS404−No)、公開鍵及び秘密鍵の鍵長を2048bitに決定し(ステップS405)、一連のステップを終了する。
ステップS406において、公開鍵及び秘密鍵の鍵長を4096bitに決定し、一連のステップを終了する。
このように、鍵長決定部331は、サービス証明書の使用期間が長いほど長い鍵長となるよう決定する。これにより、端末装置2が運用上、サービス証明書242を長期間更新できない場合であっても、更新されるまでの間にサービス証明書の秘密鍵が危殆化(例えば、暗号解読による秘密鍵の漏洩等)される恐れが無くなり、安全な状態を保つことができる。反対に、使用期間が短い端末装置2、すなわち、サービス証明書の更新スパンが短い端末装置2ほど短い鍵長となるよう決定されることにより、端末装置2の計算コストを低減させることが可能となる。
また、鍵長決定部331は、端末装置の電池容量(例えば、規定された総バッテリ量、又は現時点の残バッテリ量)が少ないほど、短い鍵長となるよう決定される。これにより、認証処理による計算コストによって電池容量が少ない端末装置の電池が尽きる頻度を低減させることができ、電池交換のための運用コストを抑制することが可能となる。
また、鍵長決定部331は、端末装置の計算能力が小さいほど、短い鍵長となるよう決定される。これにより、認証処理による計算コストによって端末装置の全体の処理遅延を抑制することが可能となり、また、端末装置2の電池が尽きる頻度を低減することも可能となる。
なお、鍵長決定部331は、使用期間、計算能力及び電池容量を用いて鍵長を決定したが、端末装置2の他の性能を示す指標を用いて鍵長を決定してもよい。例えば、鍵長決定部331は、端末装置2に記憶されたサービス証明書を用いた認証頻度(サーバ装置4に対してアクセスする頻度)が多いほど、短い鍵長となるように決定してもよい。また、鍵長決定部331は、サーバ装置4の処理負荷の大きさが大きくなるほど、短い鍵長となるように決定してもよい。また、鍵長決定部331は、サーバ装置4に接続される端末装置数が多くなるほど、短い鍵長となるように決定してもよい。
上述のとおり、通信システム1は、機器の性能等に応じた適切な長さの鍵長を決定する鍵長決定部331を有し、決定された鍵長に応じた公開鍵を含むサービス証明書を生成する。これにより、安全性を担保しつつ、通信機器又はサーバ装置等の負荷を低減させる認証処理が可能となる。
当業者は、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。