JP2004080512A - 鍵管理システム及び鍵管理方法並びに鍵管理プログラム - Google Patents
鍵管理システム及び鍵管理方法並びに鍵管理プログラム Download PDFInfo
- Publication number
- JP2004080512A JP2004080512A JP2002239564A JP2002239564A JP2004080512A JP 2004080512 A JP2004080512 A JP 2004080512A JP 2002239564 A JP2002239564 A JP 2002239564A JP 2002239564 A JP2002239564 A JP 2002239564A JP 2004080512 A JP2004080512 A JP 2004080512A
- Authority
- JP
- Japan
- Prior art keywords
- key
- generation information
- key generation
- controller device
- management server
- 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.)
- Withdrawn
Links
Images
Abstract
【課題】計算機資源の乏しい機器においても、安全な暗号化通信を行うことができる鍵管理システム及び鍵管理方法並びに鍵管理プログラムを提供する。
【解決手段】暗号化通信を行うコントローラ機器2とホームネットワーク100を介して接続されたターゲット機器1A〜1Cは、暗号化通信に使用する鍵の生成に必要な鍵生成情報の要求を受信すると、予め鍵生成情報を記憶する記憶手段より鍵生成情報を読み出し、鍵を生成する。また、鍵生成情報をコントローラ機器2に対して送信する。コントローラ機器2は鍵生成情報を受信すると、インターネット200を介してコントローラ機器2と接続された鍵管理サーバ3に対して鍵生成情報を送信する。鍵管理サーバ3は鍵生成情報を受信すると、鍵生成情報に基づいて鍵を生成し、コントローラ機器2に対して送信する。コントローラ機器2は鍵を受信すると、この鍵を用いてターゲット機器1A〜1Cと暗号化通信を行う。
【選択図】 図1
【解決手段】暗号化通信を行うコントローラ機器2とホームネットワーク100を介して接続されたターゲット機器1A〜1Cは、暗号化通信に使用する鍵の生成に必要な鍵生成情報の要求を受信すると、予め鍵生成情報を記憶する記憶手段より鍵生成情報を読み出し、鍵を生成する。また、鍵生成情報をコントローラ機器2に対して送信する。コントローラ機器2は鍵生成情報を受信すると、インターネット200を介してコントローラ機器2と接続された鍵管理サーバ3に対して鍵生成情報を送信する。鍵管理サーバ3は鍵生成情報を受信すると、鍵生成情報に基づいて鍵を生成し、コントローラ機器2に対して送信する。コントローラ機器2は鍵を受信すると、この鍵を用いてターゲット機器1A〜1Cと暗号化通信を行う。
【選択図】 図1
Description
【0001】
【発明の属する技術分野】
本発明は、暗号化通信を行うための鍵管理システム及び鍵管理方法並びに鍵管理プログラムに関する。
【0002】
【従来の技術】
従来、IPSec(Security Architecture for Internet Protocol)の鍵交換プロトコルとして、IKE(インターネット鍵交換)の利用が想定されている。IKE等の鍵交換プロトコルは、暗号化技術を組み合わせて、IP層にセキュリティを提供している。また、ここで使用する暗号アルゴリズムは取替えや組み合わせが自由に行えるように設計されている。IPSecは、それぞれのセキュリティ・プロトコルでどの暗号アルゴリズムを使うのか、セキュリティ・プロトコルや暗号化アルゴリズムで使う固有の情報を管理する。これらのパラメータはSA(Security Architecture)と呼ばれ、論理的なコネクションを構成する一部となっている。SAには、以下のパラメータがある。
・ 通信する2点間の識別子
・ セキュリティ・プロトコルの種類
・ 暗号アルゴリズムとその鍵
・ SAの生存時間
このように、セキュリティ・プロトコルが使われたパケットを受信した場合、受信者はどのSAが使われていたのかを知る必要がある。
【0003】
特開2001−292135において、IPSec通信を行う際に、秘密鍵を共有する方式が提案されており、通信端末が起動時にDHCPプロトコルの中で、秘密鍵を共有することがポイントになっている。
【0004】
特開2001−177514において、安全に秘密鍵を共有する方式が提案されており、秘密鍵を共有するネットワークとして、ISDNや公衆電話網等の秘匿性の高いネットワークで鍵交換をすることが提案されている。
【0005】
特開2000−358022において、暗号機能を持つ通信端末が事前に通信する相手毎の秘密鍵と対応づけられた識別子を記録媒体に格納し、識別子を特別なフレームで送受信することで鍵共有を行っている。
【0006】
【発明が解決しようとする課題】
しかし、様々なベンダーから供給されることが予想される情報家電や組み込み機器等においては、予め通信相手が特定できないため相互接続に問題が生じる場合があり、このような環境下での実装には向かないという問題点がある。
また、IKEの鍵交換では、Diffie Helmanの鍵交換アルゴリズムが採用されており、数百桁の素因数分解の計算を実行するので、多くの計算処理能力を必要とする。そのため、汎用PCに比べて計算機資源の乏しい情報家電や組込み機器への実装には大きな課題となっている。
【0007】
本発明は、このような事情を考慮してなされたものであり、その目的は、計算機資源の乏しい機器においても、安全な暗号化通信を行うことができる鍵管理システム及び鍵管理方法並びに鍵管理プログラムを提供することにある。
【0008】
【課題を解決するための手段】
この発明は上記の課題を解決すべくなされたもので、請求項1に記載の発明は、暗号化通信を行うターゲット機器と、前記ターゲット機器と鍵を用いて暗号化通信を行うコントローラ機器と、前記鍵を生成するための鍵生成情報を管理する鍵管理サーバとをネットワークを介して接続して構成される鍵管理システムであって、前記ターゲット機器は、前記鍵の生成に必要な鍵生成情報を記憶する第1の記憶手段と、前記鍵生成情報に基づいて前記鍵を生成する第1の鍵生成手段と、前記コントローラ機器より鍵生成情報の要求を受けて、該鍵生成情報を前記コントローラ機器へ送信する第1の送信手段と、前記第1の鍵生成手段によって生成した鍵を用いて前記コントローラ機器と通信を行う第1の通信手段とを具備し、前記コントローラ機器は、前記ターゲット機器に対して鍵生成情報の要求を行う第2の送信手段と、前記鍵生成情報を受信すると、前記鍵管理サーバに対して前記鍵の生成を要求し、該鍵生成情報を送信する第3の送信手段と、前記鍵管理サーバより前記鍵を受信すると、該受信した鍵を用いて前記ターゲット機器と通信を行う第2の通信手段とを具備し、前記鍵管理サーバは、前記コントローラ機器から鍵生成情報を受信すると、該鍵生成情報に基づいて前記鍵を生成する第2の鍵生成手段と、該第2の鍵生成手段によって生成した鍵を前記コントローラ機器に対して送信する第4の送信手段とを具備することを特徴とする。
【0009】
請求項2に記載の発明は、請求項1に記載の発明において、前記鍵生成情報は、前記ターゲット機器が使用する鍵生成アルゴリズムと、該鍵生成アルゴリズムにより生成される鍵の長さに関する情報とを含むことを特徴とする。
【0010】
請求項3に記載の発明は、請求項2に記載の発明において、前記鍵生成情報は、さらに、前記ターゲット機器に規定されたID番号に関する情報を含むことを特徴とする。
【0011】
請求項4に記載の発明は、請求項2または請求項3に記載の発明において、前記鍵生成情報は、さらに、テンポラリ情報を含むことを特徴とする。
【0012】
請求項5に記載の発明は、請求項1に記載の発明において、前記ターゲット機器は、さらに、前記鍵管理サーバに接続するためのURLを記録する第3の記憶手段を具備する
ことを特徴とする。
【0013】
請求項6に記載の発明は、請求項1に記載の発明において、前記第3の送信手段は、前記鍵生成情報を受信すると、前記鍵管理サーバと認証を行った後、該鍵管理サーバに対して前記鍵の生成を要求し、該鍵生成情報を送信することを特徴とする。
【0014】
請求項7に記載の発明は、暗号化通信を行うコントローラ機器とネットワークを介して接続され、前記コントローラ機器と鍵を用いて暗号化通信を行うターゲット機器であって、前記鍵の生成に必要な鍵生成情報を記憶する記憶手段と、前記鍵生成情報に基づいて前記鍵を生成する鍵生成手段と、前記コントローラ機器より鍵生成情報の要求を受けて、該鍵生成情報を送信する送信手段と、前記鍵生成手段によって生成した鍵を用いて前記コントローラ機器と通信を行う通信手段とを具備することを特徴とする。
【0015】
請求項8に記載の発明は、暗号化通信を行うターゲット機器と、前記ターゲット機器が暗号化通信において使用する鍵を生成するための鍵生成情報を管理する鍵管理サーバとにそれぞれ、ネットワークを介して接続され、前記ターゲット機器と暗号化通信を行うコントローラ機器であって、前記ターゲット機器に対して鍵生成情報の要求を行う第1の送信手段と、前記鍵生成情報を受信すると、前記鍵管理サーバに対して前記鍵の生成を要求し、該鍵生成情報を送信する第2の送信手段と、前記鍵管理サーバより前記鍵を受信すると、該受信した鍵を用いて前記ターゲット機器と通信を行う通信手段とを具備することを特徴とする。
【0016】
請求項9に記載の発明は、暗号化通信を行うコントローラ機器とネットワークを介して接続され、前記コントローラ機器が暗号化通信に使用する鍵を生成するための鍵生成情報を管理する鍵管理サーバであって、前記コントローラ機器より前記鍵生成情報を受信すると、該鍵情報に基づいて前記鍵を生成する鍵生成手段と、該第2の鍵生成手段によって生成した鍵を前記コントローラ機器に対して送信する送信手段とを具備することを特徴とする。
【0017】
請求項10に記載の発明は、暗号化通信を行うコントローラ機器とネットワークを介して接続され、該コントローラ機器と暗号化通信を行うターゲット機器が、前記コントローラ機器より、前記暗号化通信に使用する鍵の生成に必要な鍵生成情報の要求を受けて、該鍵生成情報を記憶する記憶手段より該鍵生成情報を読み出し、該鍵生成情報に基づいて前記鍵を生成するとともに、該鍵生成情報を前記コントローラ機器に対して送信し、前記コントローラ機器が、前記鍵生成情報を受信すると、ネットワークを介してコントローラ機器と接続され前記鍵生成情報を管理する鍵管理サーバに対して該鍵生成情報を送信し、前記鍵管理サーバが、該鍵生成情報を受信すると、該鍵生成情報に基づいて前記鍵を生成するとともに、該鍵を前記コントローラ機器に対して送信し、前記コントローラ機器が、該鍵を受信すると、該鍵を用いて前記ターゲット機器と暗号化通信を行うことを特徴とする。
【0018】
請求項11に記載の発明は、暗号化通信を行うターゲット機器と、前記ターゲット機器と鍵を用いて暗号化通信を行うコントローラ機器と、前記鍵を生成するための鍵生成情報を管理する鍵管理サーバとをネットワークを介して接続して構成される鍵管理システムにおいて、前記鍵の生成に必要な鍵生成情報を記憶する記憶処理と、前記鍵生成情報に基づいて前記鍵を生成する鍵生成処理と、前記コントローラ機器より鍵生成情報の要求を受けて、該鍵生成情報を送信する送信処理と、前記鍵生成処理によって生成した鍵を用いて前記コントローラ機器と通信を行う通信処理とをターゲット機器に実行させるための鍵管理プログラムである。
【0019】
請求項12に記載の発明は、暗号化通信を行うターゲット機器と、前記ターゲット機器と鍵を用いて暗号化通信を行うコントローラ機器と、前記鍵を生成するための鍵生成情報を管理する鍵管理サーバとをネットワークを介して接続して構成される鍵管理システムにおいて、前記ターゲット機器に対して鍵生成情報の要求を送信する第1の送信処理と、前記鍵生成情報を受信すると、前記鍵管理サーバに対して前記鍵の生成を要求し、該鍵生成情報を送信する第2の送信処理と、前記鍵管理サーバより前記鍵を受信すると、該受信した鍵を用いて前記ターゲット機器と通信を行う通信処理とをコントローラ機器に実行させるための鍵管理プログラムである。
【0020】
請求項13に記載の発明は、暗号化通信を行うターゲット機器と、前記ターゲット機器と鍵を用いて暗号化通信を行うコントローラ機器と、前記鍵を生成するための鍵生成情報を管理する鍵管理サーバとをネットワークを介して接続して構成される鍵管理システムにおいて、前記コントローラ機器より前記鍵生成情報を受信すると、該鍵情報に基づいて前記鍵を生成する鍵生成処理と、該鍵生成処理によって生成した鍵を前記コントローラ機器に対して送信する送信処理とを鍵管理サーバに実行させるための鍵管理プログラムである。
【0021】
従って、上述の発明によれば、計算機資源の乏しい機器においても、安全な暗号化通信を行うことができる効果を得ることができる。
【0022】
【発明の実施の形態】
以下、図面を参照して本発明の一実施形態における鍵管理システムについて説明する。図1は、本実施形態における鍵管理システムの全体構成図である。本実施形態の鍵管理システムは、複数のターゲット機器1A〜1C、コントローラ機器2をLAN等に接続して構成されるホームネットワーク100と、インターネット200を介してホームネットワーク100と接続される鍵管理サーバ3とから構成される。
【0023】
図2にターゲット機器1A〜1C及びコントローラ機器2の機能ブロック図を示す。ターゲット機器1A〜1Cは、コントローラ機器2から制御される側の機器であり、テンポラリ情報生成処理部11、記憶部12、鍵生成処理部1・13、拡張IPv6ヘッダ構成処理部14、IPSec処理部15、送受信処理部16から構成される。
テンポラリ情報生成処理部11は、リアルタイムタイマ等のテンポラリ情報を生成し、鍵生成処理部1・13へ出力する。
記憶部12は、シリアル番号等、全ターゲット機器の中から1のターゲット機器を識別可能とする識別子を記憶している。また、この識別子と対応付けられた秘密鍵の元となる固定のバイト列・ビット列(Seed情報)を記憶している。また、鍵管理サーバ3の通信エンドポイントを示すURLを記憶している。
鍵生成処理部1・13は、上述のSeed情報及びテンポラリ情報を元に秘密鍵を計算する秘密鍵生成機能を持つ。なお、この秘密鍵生成機能は、後述する鍵管理サーバ3の鍵生成処理部1・54〜3・56における秘密鍵計算処理と同一の処理を行う。
【0024】
拡張IPv6ヘッダ構成処理部14は、コントローラ機器2との間で送受信する情報をIPv6拡張ヘッダにセットする。上述の鍵共有プロトコルのIPv6の拡張ヘッダの構成を図4に示す。この鍵共有プロトコルを識別するために特定の番号が割り当てられ、IPv6ヘッダの次のヘッダフィールド(Next Header)には、その値がセットされる。Commandフィールドには、ターゲット機器1A〜1Cとコントローラ機器との間の鍵情報交換のために使用されるリクエストパケットとレスポンスパケットを識別するための識別用数値が割り当てられる。例えば、リクエストパケットであれば、Command=1、レスポンスパケットであれば、Command=2とする、
Nextヘッダフィールドは、RFC2460で規定されているNo Next Header(59)が入力される。
Session Identifierは、リクエストパケットまたは、レスポンスパケットを対応付けるためのIDが入力される。
Lengthフィールドには、RFC2460で規定されている他の拡張ヘッダと同様に、8オクテット単位の数値が入力される。
終点ヘッダ、中継ヘッダと同様に拡張ヘッダで指定する各種パラメータは、TLV(Type/Length/Value)形式で指定する。
【0025】
Option Valueでは以下のパラメータを複数個指定可能で、パラメータ毎にOptionのTypeフィールドの値を決めておく。
・ ターゲット機器の識別子
・ 暗号アルゴリズム(アルゴリズムと対応する値を予め規定)
・ 暗号化用秘密鍵の鍵長
・ ハッシュアルゴリズム(アルゴリズムと対応する値を予め規定)
・ ハッシュ用秘密鍵の鍵長
・ IPSecの動作モード(ESPトランスポート/ESPトンネル)
・ 秘密鍵生成のためのテンポラリ情報
・ SAの有効期限(Life Time)
・ 鍵管理サーバ(KDC Server)のURL
【0026】
各パラメータにおいて、TLVが8×nバイトとなるように、また拡張ヘッダ全体で8×nバイトとなるように1バイト用のパディング、2バイト以上のパディングを利用する。
なお、IPv4の場合は、IPオプションとして上述の拡張ヘッダを利用する。
【0027】
IPSec処理部15は、上述のレスポンスパケットで指定されたモードによって、コントローラ機器2とIPSecによる暗号化通信を行う。
送受信処理部16は、LAN等でホームネットワーク100に接続するインタフェースであり、コントローラ機器2とのパケット通信を行う。
【0028】
上述したように、ターゲット機器1A〜1Cは、IPSecによる暗号化通信機能を備えているが、IKEによる鍵交換機能を持たない。このため、ターゲット機器1A〜1Cは鍵交換機能の代わりに鍵共有機能を備える。
【0029】
コントローラ機器2は、ターゲット機器1A〜1Cを制御する側の機器であり、ターゲット機器1A〜1Cとの暗号化通信要求を送信する。またコントローラ機器2は、図2に示すように、ユーザインタフェース処理部31、拡張IPv6ヘッダ構成処理部32、共有鍵情報送受信部33、暗号化・認証通信処理部34、記憶部35、IPSec処理部36、送受信処理部37から構成される。
ユーザインタフェース処理部31は、ユーザが鍵管理サーバ3との認証ために入力する認証情報を処理する。すなわち、パスワード認証であれば、ID+パスワードが入力される。また、証明書認証であれば証明書アクセスのためのPINが入力される。
拡張IPv6ヘッダ構成処理部32は、上述の拡張IPv6ヘッダ構成処理部14と同様に、ターゲット機器1A〜1Cとの間で送受信する情報をIPv6拡張ヘッダにセットする。
【0030】
共有鍵情報送受信部33は、IPパケットの拡張ヘッダフィールドを利用して鍵共有情報をターゲット機器1A〜1C及び鍵管理サーバ3との間で送受信する。
暗号化・認証通信処理部34は、鍵管理サーバ3と安全に通信するための通信処理を行う。すなわち、SSL(Secure Soket Layer)によるサーバ認証であれば、ID+パスワードにより認証を行う。また、SSLによるクライアント認証であればデジタル証明書を用いて認証を行い、IKEによる認証の場合は、Pre−Shared、デジタル署名を使って認証を行う。
記憶部35は、上述の認証処理に必要な証明書等を記憶している。すなわち、例えば図2に示すように、SSLによるクライアント認証で使用されるデジタル証明書41を記憶している。
【0031】
IPSec処理部36は、上述のIPSec処理部15と同様に、レスポンスパケットで指定されたモードによって、ターゲット機器1A〜1CとIPSecによる暗号化通信を行う。
送受信処理部37は、上述の送受信処理部16と同様に、LAN等でホームネットワーク100及びインターネット200に接続するインタフェースであり、ターゲット機器1A〜1C及び鍵管理サーバ3とのパケット通信を行う。
【0032】
図3に鍵管理サーバ3の機能ブロック図を示す。鍵管理サーバ3は、インターネット200を介してコントローラ機器2と接続され、上述の鍵共有に関する情報をコントローラ機器2から受けて処理するサーバでであり、暗号化・認証通信処理部51、ユーザ認証処理部52、共有鍵情報送受信部53、鍵生成処理部1・54〜3・56、送受信処理部57から構成される。また、鍵管理サーバ3は、ユーザ認証に関する情報を記憶したユーザ認証DB・60及び秘密鍵生成に関する鍵生成情報を記憶した鍵生成情報DB・70と接続される。
暗号化・認証通信処理部51は、上述の暗号化・認証通信処理部34と同様にコントローラ機器2と安全に通信するための通信処理を行う。
ユーザ認証処理部52は、上述のユーザ認証DB・60に記憶されたサーバ認証に用いるID+パスワード、クライアント認証に用いるデジタル証明書(鍵管理サーバ3の証明書、CA(公証機関)、証明書廃棄リスト)を用いて、コントローラ機器2の認証を行う。
共有鍵情報送受信部53は、上述の共有鍵情報送受信部33と同様に、IPパケットの拡張ヘッダフィールドを利用して鍵共有情報を鍵管理サーバ3との間で送受信する。
【0033】
鍵生成処理部1・54〜3・56は、上述の鍵生成処理部1・13と同様に、鍵生成情報DB・70に記憶されたターゲット機器1A〜1Cのシリアル番号、Seed情報、鍵生成処理部のID番号及びコントローラ機器2を経由して受信した一時的に利用可能なビット列、バイト列であるテンポラリ情報等を用いて、ターゲット機器1A〜1Cとコントローラ機器2の間でIPSecによる暗号化通信をするための秘密鍵を計算する。すなわち、例えば、MD5やSHA−1等の暗号アルゴリズムにより秘密鍵生成計算を行う。
送受信処理部57は、上述の送受信処理部37と同様に、インターネット200に接続するインタフェースであり、鍵管理サーバ3とのパケット通信を行う。ユーザ認証DB・60は、コントローラ機器2、あるいはコントローラ機器2のユーザを認証するためのIDやパスワード、デジタル証明書を記憶している。鍵生成情報DB・70は、ターゲット機器1A〜1Cの識別子をインデックスとして、識別子と対応付けられた秘密鍵の元となる固定バイト列・ビット列(Seed情報)、を記憶している。
【0034】
以下、図面を参照して本実施形態の鍵管理システムにおける鍵管理及び鍵共有処理に関する具体的な処理動作について説明する。図5は、ターゲット機器1A〜1Cとコントローラ機器2との間でIPSecによる暗号化通信が確立されるまでの処理の流れを示すフローチャートである。なお、本実施形態のターゲット機器1A〜1Cはすべて同様の処理動作を行うため、以下ターゲット機器1Aの動作について説明する。
【0035】
コントローラ機器2は、ターゲット機器1Aに対して、識別子及びテンポラリ情報を要求するため、IPv6拡張ヘッダをセットし、リクエストパケットを送信する(図5のステップS1)。
図6にこのときセットされる鍵共有プロトコルのリクエストパケットのデータ構造を表すデータ構成図を示す。Src IP Addressフィールドには、送信元であるコントローラ機器2のIPアドレスが、Dst IP Addressフィールドには、送信先であるターゲット機器1AのIPアドレスが書き込まれる。
【0036】
このとき例えば、リクエストパケットのOption Typeで利用を希望する暗号アルゴリズム及びその鍵長/ハッシュアルゴリズム及びその鍵長を指定してもよい。また特殊なオプションタイプとして、例えば、IPSecの転送モード/暗号アルゴリズム及びその鍵長/ハッシュアルゴリズム及びその鍵長の組み合わせを予め定めておき、これを利用することで転送するパケットサイズを小さくすることも可能である。
なお、ターゲット機器が後述するレスポンスパケットで、リクエストパケットで指定された暗号アルゴリズム及びその鍵長/ハッシュアルゴリズム及びその鍵長パラメータ以外のパラメータを指定した場合、レスポンスパケットで指定されたパラメータが使用される。
【0037】
ターゲット機器1Aは、コントローラ機器2からリクエストバケットを受信すると(ステップS2)、受信したリクエストパケットを解析し、IPv6ヘッダの次ヘッダフィールドから鍵共有プロトコルの番号を識別する。
次にターゲット機器1Aは、自身がサポートしている暗号アルゴリズム、ハッシュアルゴリズムからIPSec暗号化通信で使用するアルゴリズムを選択する(ステップS3)。
暗号アルゴリズム及びハッシュアルゴリズムが決定すると、次にターゲット機器1Aは、テンポラリ情報生成処理部11において、例えば、リアルタイマ機能から現在時刻をテンポラリ情報として取得し、テンポラリ情報と記憶部に記憶しているSeed情報を元にハッシュ関数を利用して暗号アルゴリズム用秘密鍵とハッシュアルゴリズム用秘密鍵を生成する(ステップS4)。このとき生成する秘密鍵の長さはIPSec通信で利用するアルゴリズムによって決定される。
なお、上述の暗号化用秘密鍵とハッシュ用秘密鍵は、同一の鍵を利用してもよい。
【0038】
このとき、受信したリクエストパケットのOption Typeにコントローラ機器2が希望する暗号アルゴリズム及びその鍵長/ハッシュアルゴリズム及びその鍵長が指定されており、ターゲット機器1Aが該当するアルゴリズムをサポートしている場合は、指定されたアルゴリズムを使用する。
一方、サポートしていない場合は、IPSecで規定されている実装必須のアルゴリズム(DES、MD5)をパラメータにセットしてレスポンスパケットを作成する。
【0039】
そして、ターゲット機器1Aはコントローラ機器2と通信するためのSA(Security Association)データを作成しておき(ステップS5)、これを記憶部に記憶する。コントローラ機器2とのIPSec通信の準備のためである。なお、SAの通信相手のアドレス情報は、リクエストパケットの始点アドレスから取得する。
このとき、上述したようにIPSecの転送モード/暗号アルゴリズム及びその鍵長/ハッシュアルゴリズム及びその鍵長の組み合わせを予め定めておき、これを利用することで転送するパケットサイズを小さくすることも可能である。例えば、オプションタイプ=1ならば、ESPのトランスポートモード/DES56bit/MD5 128bitのパラメータと解釈する。
【0040】
ターゲット機器1Aは、コントローラ機器2に対してレスポンスパケットを送信する(ステップS6)。レスポンスパケットは、IPv6ヘッダとIPv6拡張ヘッダからなるパケットである。図7にこのときセットされる鍵共有プロトコルのレスポンスパケットのデータ構造を表すデータ構成図を示す。
拡張ヘッダには、図7に示すように以下の情報がTLV形式で格納される。
・ ターゲット機器1Aの識別番号
・ 暗号アルゴリズムの識別子と鍵長
・ ハッシュアルゴリズムの識別子と鍵長
・ IPSecの動作モード
・ ESPのトランスポートモード/ESPのトンネルモード
・ ターゲット機器1Aで生成したテンポラリ情報
・ SAの有効期限
・ 鍵管理サーバのURL
【0041】
コントローラ機器2は、レスポンスパケットを受信すると(ステップS7)、この受信したレスポンスパケットを解析し、拡張ヘッダに指定された情報を読み出す。
次にコントローラ機器2は、拡張ヘッダから取得した鍵管理サーバ3のURL情報を元に鍵管理サーバ3と通信を開始し、SSLセッションを確立して認証を行う(ステップS8)。SSLによる認証は、コントローラ機器が予め記憶部に記憶された任所情報を鍵管理サーバ3に送信して行ってもよいし、認証のたびにコントローラ機器のユーザがパスワード入力を行ってもよい。
【0042】
上述のSSL認証が完了すると、コントローラ機器2は、SSLセッション上でターゲット機器1Aから受信したターゲット機器1Aの識別番号とテンポラリ情報からなるターゲット機器情報を鍵管理サーバ3に送信する(ステップS9)。また、上述のレスポンスパケットに鍵長が指定されている場合は鍵長も鍵管理サーバ3に送信する。
鍵管理サーバ3は、SSLセッションで上述のターゲット機器情報を受信すると、受信したターゲット機器1Aの識別番号から予め鍵生成情報DB・70に記憶されたSeed情報を検索し(ステップS11)、また指定されたアルゴリズムによって秘密鍵を計算するための鍵生成処理部1・54〜3・56を検索し、該当するターゲット機器1AのSeed情報を読み出す。そして、このSeed情報と上述のテンポラリ情報から暗号アルゴリズム用の秘密鍵及びハッシュアルゴリズム用の秘密鍵を生成する(ステップS12)。そして、鍵管理サーバ3はSSLセッション上で、生成した秘密鍵をコントローラ機器2に対して送信する(ステップS13)。
【0043】
コントローラ機器2は上述の秘密鍵を受信すると(ステップS14)、受信した秘密鍵とレスポンスパケットの情報から、ターゲット機器1Aとの間のIPSec通信に必要なSAを生成する(ステップS15)。
そして、コントローラ機器2は、ターゲット機器1Aとレスポンスパケットで指定されたモードでIPSecによる暗号化通信を行う(ステップS14)。
【0044】
また、コントローラ機器2は、SAの有効期限が近くなると、所定の時点でターゲット機器1Aと継続してIPSecによる通信を行う場合は、上述のステップS1〜S16までの処理フローに従って新しいSAを生成する。
【0045】
以上説明したように、本実施形態の鍵管理システムによれば、ターゲット機器において、IKEのような複雑で処理の重い機能を実装する必要がなくなり、情報家電や組み込み機器等においても、十分に実装することができる効果が得られる。また、Seed情報やURL情報を予めターゲット機器1A〜1Cに記憶させておくため、ユーザによる設定作業等、鍵交換における運用上の負担を削減することができる効果が得られる。また鍵共有において、異なるベンダー同士で個々に規定された異なる交換モード間で通信を行う等の例外処理がなくなり、未登録のコントローラ機器2との間でもIPSecによる通信を行うことができる効果が得られる。また、鍵管理サーバのURLをターゲット機器1A〜1Cに記憶させておくため、鍵管理サーバ3において、ターゲット機器1A〜1Cの情報を一元管理できる効果が得られる。また、秘密鍵の生成処理においてテンポラリ情報を利用することにより、毎回異なる秘密鍵を生成することができ、これによりセキュリティを高めることができる効果が得られる。
コントローラ機器2においては、すべての暗号アルゴリズム、ハッシュアルゴリズムを実装する鍵管理サーバ3に秘密鍵の生成を分担させることで、すべてのターゲット機器1A〜1CとIPSec通信を行うことができる効果が得られる。また、通信するターゲット機器毎の秘密鍵生成に関する情報を設定する負担が削減できる効果が得られる。また、ターゲット機器1A〜1C毎に異なる可能性のある秘密鍵生成処理機能をコントローラ機器2に実装する必要が無くなる効果が得られる。また、鍵管理サーバ3との通信時に認証を行うことで、機器間の認証を鍵管理サーバ3に集約できる効果が得られる。
また、拡張ヘッダの長さをオクテット単位とし、バイトアライメンとを統一することで、16bit/32bit/64bitのCPUによるデータ操作を容易に実行できる効果が得られる。
【0046】
【図面の簡単な説明】
【図1】本実施形態における鍵管理システムの全体構成図である。
【図2】ターゲット機器1A〜1C及びコントローラ機器2の機能ブロック図である。
【図3】鍵管理サーバ3の機能ブロック図である。
【図4】鍵共有プロトコルのIPv6の拡張ヘッダの構成図である。
【図5】ターゲット機器1A〜1Cとコントローラ機器2との間でIPSecによる暗号化通信が確立されるまでの処理の流れを示すフローチャートである。
【図6】鍵共有プロトコルのリクエストパケットのデータ構造を表すデータ構成図である。
【図7】鍵共有プロトコルのレスポンスパケットのデータ構造を表すデータ構成図である。
【符号の説明】
1A〜1C…ターゲット機器
2…コントローラ機器
3…鍵管理サーバ
100…ホームネットワーク
200…インターネット
【発明の属する技術分野】
本発明は、暗号化通信を行うための鍵管理システム及び鍵管理方法並びに鍵管理プログラムに関する。
【0002】
【従来の技術】
従来、IPSec(Security Architecture for Internet Protocol)の鍵交換プロトコルとして、IKE(インターネット鍵交換)の利用が想定されている。IKE等の鍵交換プロトコルは、暗号化技術を組み合わせて、IP層にセキュリティを提供している。また、ここで使用する暗号アルゴリズムは取替えや組み合わせが自由に行えるように設計されている。IPSecは、それぞれのセキュリティ・プロトコルでどの暗号アルゴリズムを使うのか、セキュリティ・プロトコルや暗号化アルゴリズムで使う固有の情報を管理する。これらのパラメータはSA(Security Architecture)と呼ばれ、論理的なコネクションを構成する一部となっている。SAには、以下のパラメータがある。
・ 通信する2点間の識別子
・ セキュリティ・プロトコルの種類
・ 暗号アルゴリズムとその鍵
・ SAの生存時間
このように、セキュリティ・プロトコルが使われたパケットを受信した場合、受信者はどのSAが使われていたのかを知る必要がある。
【0003】
特開2001−292135において、IPSec通信を行う際に、秘密鍵を共有する方式が提案されており、通信端末が起動時にDHCPプロトコルの中で、秘密鍵を共有することがポイントになっている。
【0004】
特開2001−177514において、安全に秘密鍵を共有する方式が提案されており、秘密鍵を共有するネットワークとして、ISDNや公衆電話網等の秘匿性の高いネットワークで鍵交換をすることが提案されている。
【0005】
特開2000−358022において、暗号機能を持つ通信端末が事前に通信する相手毎の秘密鍵と対応づけられた識別子を記録媒体に格納し、識別子を特別なフレームで送受信することで鍵共有を行っている。
【0006】
【発明が解決しようとする課題】
しかし、様々なベンダーから供給されることが予想される情報家電や組み込み機器等においては、予め通信相手が特定できないため相互接続に問題が生じる場合があり、このような環境下での実装には向かないという問題点がある。
また、IKEの鍵交換では、Diffie Helmanの鍵交換アルゴリズムが採用されており、数百桁の素因数分解の計算を実行するので、多くの計算処理能力を必要とする。そのため、汎用PCに比べて計算機資源の乏しい情報家電や組込み機器への実装には大きな課題となっている。
【0007】
本発明は、このような事情を考慮してなされたものであり、その目的は、計算機資源の乏しい機器においても、安全な暗号化通信を行うことができる鍵管理システム及び鍵管理方法並びに鍵管理プログラムを提供することにある。
【0008】
【課題を解決するための手段】
この発明は上記の課題を解決すべくなされたもので、請求項1に記載の発明は、暗号化通信を行うターゲット機器と、前記ターゲット機器と鍵を用いて暗号化通信を行うコントローラ機器と、前記鍵を生成するための鍵生成情報を管理する鍵管理サーバとをネットワークを介して接続して構成される鍵管理システムであって、前記ターゲット機器は、前記鍵の生成に必要な鍵生成情報を記憶する第1の記憶手段と、前記鍵生成情報に基づいて前記鍵を生成する第1の鍵生成手段と、前記コントローラ機器より鍵生成情報の要求を受けて、該鍵生成情報を前記コントローラ機器へ送信する第1の送信手段と、前記第1の鍵生成手段によって生成した鍵を用いて前記コントローラ機器と通信を行う第1の通信手段とを具備し、前記コントローラ機器は、前記ターゲット機器に対して鍵生成情報の要求を行う第2の送信手段と、前記鍵生成情報を受信すると、前記鍵管理サーバに対して前記鍵の生成を要求し、該鍵生成情報を送信する第3の送信手段と、前記鍵管理サーバより前記鍵を受信すると、該受信した鍵を用いて前記ターゲット機器と通信を行う第2の通信手段とを具備し、前記鍵管理サーバは、前記コントローラ機器から鍵生成情報を受信すると、該鍵生成情報に基づいて前記鍵を生成する第2の鍵生成手段と、該第2の鍵生成手段によって生成した鍵を前記コントローラ機器に対して送信する第4の送信手段とを具備することを特徴とする。
【0009】
請求項2に記載の発明は、請求項1に記載の発明において、前記鍵生成情報は、前記ターゲット機器が使用する鍵生成アルゴリズムと、該鍵生成アルゴリズムにより生成される鍵の長さに関する情報とを含むことを特徴とする。
【0010】
請求項3に記載の発明は、請求項2に記載の発明において、前記鍵生成情報は、さらに、前記ターゲット機器に規定されたID番号に関する情報を含むことを特徴とする。
【0011】
請求項4に記載の発明は、請求項2または請求項3に記載の発明において、前記鍵生成情報は、さらに、テンポラリ情報を含むことを特徴とする。
【0012】
請求項5に記載の発明は、請求項1に記載の発明において、前記ターゲット機器は、さらに、前記鍵管理サーバに接続するためのURLを記録する第3の記憶手段を具備する
ことを特徴とする。
【0013】
請求項6に記載の発明は、請求項1に記載の発明において、前記第3の送信手段は、前記鍵生成情報を受信すると、前記鍵管理サーバと認証を行った後、該鍵管理サーバに対して前記鍵の生成を要求し、該鍵生成情報を送信することを特徴とする。
【0014】
請求項7に記載の発明は、暗号化通信を行うコントローラ機器とネットワークを介して接続され、前記コントローラ機器と鍵を用いて暗号化通信を行うターゲット機器であって、前記鍵の生成に必要な鍵生成情報を記憶する記憶手段と、前記鍵生成情報に基づいて前記鍵を生成する鍵生成手段と、前記コントローラ機器より鍵生成情報の要求を受けて、該鍵生成情報を送信する送信手段と、前記鍵生成手段によって生成した鍵を用いて前記コントローラ機器と通信を行う通信手段とを具備することを特徴とする。
【0015】
請求項8に記載の発明は、暗号化通信を行うターゲット機器と、前記ターゲット機器が暗号化通信において使用する鍵を生成するための鍵生成情報を管理する鍵管理サーバとにそれぞれ、ネットワークを介して接続され、前記ターゲット機器と暗号化通信を行うコントローラ機器であって、前記ターゲット機器に対して鍵生成情報の要求を行う第1の送信手段と、前記鍵生成情報を受信すると、前記鍵管理サーバに対して前記鍵の生成を要求し、該鍵生成情報を送信する第2の送信手段と、前記鍵管理サーバより前記鍵を受信すると、該受信した鍵を用いて前記ターゲット機器と通信を行う通信手段とを具備することを特徴とする。
【0016】
請求項9に記載の発明は、暗号化通信を行うコントローラ機器とネットワークを介して接続され、前記コントローラ機器が暗号化通信に使用する鍵を生成するための鍵生成情報を管理する鍵管理サーバであって、前記コントローラ機器より前記鍵生成情報を受信すると、該鍵情報に基づいて前記鍵を生成する鍵生成手段と、該第2の鍵生成手段によって生成した鍵を前記コントローラ機器に対して送信する送信手段とを具備することを特徴とする。
【0017】
請求項10に記載の発明は、暗号化通信を行うコントローラ機器とネットワークを介して接続され、該コントローラ機器と暗号化通信を行うターゲット機器が、前記コントローラ機器より、前記暗号化通信に使用する鍵の生成に必要な鍵生成情報の要求を受けて、該鍵生成情報を記憶する記憶手段より該鍵生成情報を読み出し、該鍵生成情報に基づいて前記鍵を生成するとともに、該鍵生成情報を前記コントローラ機器に対して送信し、前記コントローラ機器が、前記鍵生成情報を受信すると、ネットワークを介してコントローラ機器と接続され前記鍵生成情報を管理する鍵管理サーバに対して該鍵生成情報を送信し、前記鍵管理サーバが、該鍵生成情報を受信すると、該鍵生成情報に基づいて前記鍵を生成するとともに、該鍵を前記コントローラ機器に対して送信し、前記コントローラ機器が、該鍵を受信すると、該鍵を用いて前記ターゲット機器と暗号化通信を行うことを特徴とする。
【0018】
請求項11に記載の発明は、暗号化通信を行うターゲット機器と、前記ターゲット機器と鍵を用いて暗号化通信を行うコントローラ機器と、前記鍵を生成するための鍵生成情報を管理する鍵管理サーバとをネットワークを介して接続して構成される鍵管理システムにおいて、前記鍵の生成に必要な鍵生成情報を記憶する記憶処理と、前記鍵生成情報に基づいて前記鍵を生成する鍵生成処理と、前記コントローラ機器より鍵生成情報の要求を受けて、該鍵生成情報を送信する送信処理と、前記鍵生成処理によって生成した鍵を用いて前記コントローラ機器と通信を行う通信処理とをターゲット機器に実行させるための鍵管理プログラムである。
【0019】
請求項12に記載の発明は、暗号化通信を行うターゲット機器と、前記ターゲット機器と鍵を用いて暗号化通信を行うコントローラ機器と、前記鍵を生成するための鍵生成情報を管理する鍵管理サーバとをネットワークを介して接続して構成される鍵管理システムにおいて、前記ターゲット機器に対して鍵生成情報の要求を送信する第1の送信処理と、前記鍵生成情報を受信すると、前記鍵管理サーバに対して前記鍵の生成を要求し、該鍵生成情報を送信する第2の送信処理と、前記鍵管理サーバより前記鍵を受信すると、該受信した鍵を用いて前記ターゲット機器と通信を行う通信処理とをコントローラ機器に実行させるための鍵管理プログラムである。
【0020】
請求項13に記載の発明は、暗号化通信を行うターゲット機器と、前記ターゲット機器と鍵を用いて暗号化通信を行うコントローラ機器と、前記鍵を生成するための鍵生成情報を管理する鍵管理サーバとをネットワークを介して接続して構成される鍵管理システムにおいて、前記コントローラ機器より前記鍵生成情報を受信すると、該鍵情報に基づいて前記鍵を生成する鍵生成処理と、該鍵生成処理によって生成した鍵を前記コントローラ機器に対して送信する送信処理とを鍵管理サーバに実行させるための鍵管理プログラムである。
【0021】
従って、上述の発明によれば、計算機資源の乏しい機器においても、安全な暗号化通信を行うことができる効果を得ることができる。
【0022】
【発明の実施の形態】
以下、図面を参照して本発明の一実施形態における鍵管理システムについて説明する。図1は、本実施形態における鍵管理システムの全体構成図である。本実施形態の鍵管理システムは、複数のターゲット機器1A〜1C、コントローラ機器2をLAN等に接続して構成されるホームネットワーク100と、インターネット200を介してホームネットワーク100と接続される鍵管理サーバ3とから構成される。
【0023】
図2にターゲット機器1A〜1C及びコントローラ機器2の機能ブロック図を示す。ターゲット機器1A〜1Cは、コントローラ機器2から制御される側の機器であり、テンポラリ情報生成処理部11、記憶部12、鍵生成処理部1・13、拡張IPv6ヘッダ構成処理部14、IPSec処理部15、送受信処理部16から構成される。
テンポラリ情報生成処理部11は、リアルタイムタイマ等のテンポラリ情報を生成し、鍵生成処理部1・13へ出力する。
記憶部12は、シリアル番号等、全ターゲット機器の中から1のターゲット機器を識別可能とする識別子を記憶している。また、この識別子と対応付けられた秘密鍵の元となる固定のバイト列・ビット列(Seed情報)を記憶している。また、鍵管理サーバ3の通信エンドポイントを示すURLを記憶している。
鍵生成処理部1・13は、上述のSeed情報及びテンポラリ情報を元に秘密鍵を計算する秘密鍵生成機能を持つ。なお、この秘密鍵生成機能は、後述する鍵管理サーバ3の鍵生成処理部1・54〜3・56における秘密鍵計算処理と同一の処理を行う。
【0024】
拡張IPv6ヘッダ構成処理部14は、コントローラ機器2との間で送受信する情報をIPv6拡張ヘッダにセットする。上述の鍵共有プロトコルのIPv6の拡張ヘッダの構成を図4に示す。この鍵共有プロトコルを識別するために特定の番号が割り当てられ、IPv6ヘッダの次のヘッダフィールド(Next Header)には、その値がセットされる。Commandフィールドには、ターゲット機器1A〜1Cとコントローラ機器との間の鍵情報交換のために使用されるリクエストパケットとレスポンスパケットを識別するための識別用数値が割り当てられる。例えば、リクエストパケットであれば、Command=1、レスポンスパケットであれば、Command=2とする、
Nextヘッダフィールドは、RFC2460で規定されているNo Next Header(59)が入力される。
Session Identifierは、リクエストパケットまたは、レスポンスパケットを対応付けるためのIDが入力される。
Lengthフィールドには、RFC2460で規定されている他の拡張ヘッダと同様に、8オクテット単位の数値が入力される。
終点ヘッダ、中継ヘッダと同様に拡張ヘッダで指定する各種パラメータは、TLV(Type/Length/Value)形式で指定する。
【0025】
Option Valueでは以下のパラメータを複数個指定可能で、パラメータ毎にOptionのTypeフィールドの値を決めておく。
・ ターゲット機器の識別子
・ 暗号アルゴリズム(アルゴリズムと対応する値を予め規定)
・ 暗号化用秘密鍵の鍵長
・ ハッシュアルゴリズム(アルゴリズムと対応する値を予め規定)
・ ハッシュ用秘密鍵の鍵長
・ IPSecの動作モード(ESPトランスポート/ESPトンネル)
・ 秘密鍵生成のためのテンポラリ情報
・ SAの有効期限(Life Time)
・ 鍵管理サーバ(KDC Server)のURL
【0026】
各パラメータにおいて、TLVが8×nバイトとなるように、また拡張ヘッダ全体で8×nバイトとなるように1バイト用のパディング、2バイト以上のパディングを利用する。
なお、IPv4の場合は、IPオプションとして上述の拡張ヘッダを利用する。
【0027】
IPSec処理部15は、上述のレスポンスパケットで指定されたモードによって、コントローラ機器2とIPSecによる暗号化通信を行う。
送受信処理部16は、LAN等でホームネットワーク100に接続するインタフェースであり、コントローラ機器2とのパケット通信を行う。
【0028】
上述したように、ターゲット機器1A〜1Cは、IPSecによる暗号化通信機能を備えているが、IKEによる鍵交換機能を持たない。このため、ターゲット機器1A〜1Cは鍵交換機能の代わりに鍵共有機能を備える。
【0029】
コントローラ機器2は、ターゲット機器1A〜1Cを制御する側の機器であり、ターゲット機器1A〜1Cとの暗号化通信要求を送信する。またコントローラ機器2は、図2に示すように、ユーザインタフェース処理部31、拡張IPv6ヘッダ構成処理部32、共有鍵情報送受信部33、暗号化・認証通信処理部34、記憶部35、IPSec処理部36、送受信処理部37から構成される。
ユーザインタフェース処理部31は、ユーザが鍵管理サーバ3との認証ために入力する認証情報を処理する。すなわち、パスワード認証であれば、ID+パスワードが入力される。また、証明書認証であれば証明書アクセスのためのPINが入力される。
拡張IPv6ヘッダ構成処理部32は、上述の拡張IPv6ヘッダ構成処理部14と同様に、ターゲット機器1A〜1Cとの間で送受信する情報をIPv6拡張ヘッダにセットする。
【0030】
共有鍵情報送受信部33は、IPパケットの拡張ヘッダフィールドを利用して鍵共有情報をターゲット機器1A〜1C及び鍵管理サーバ3との間で送受信する。
暗号化・認証通信処理部34は、鍵管理サーバ3と安全に通信するための通信処理を行う。すなわち、SSL(Secure Soket Layer)によるサーバ認証であれば、ID+パスワードにより認証を行う。また、SSLによるクライアント認証であればデジタル証明書を用いて認証を行い、IKEによる認証の場合は、Pre−Shared、デジタル署名を使って認証を行う。
記憶部35は、上述の認証処理に必要な証明書等を記憶している。すなわち、例えば図2に示すように、SSLによるクライアント認証で使用されるデジタル証明書41を記憶している。
【0031】
IPSec処理部36は、上述のIPSec処理部15と同様に、レスポンスパケットで指定されたモードによって、ターゲット機器1A〜1CとIPSecによる暗号化通信を行う。
送受信処理部37は、上述の送受信処理部16と同様に、LAN等でホームネットワーク100及びインターネット200に接続するインタフェースであり、ターゲット機器1A〜1C及び鍵管理サーバ3とのパケット通信を行う。
【0032】
図3に鍵管理サーバ3の機能ブロック図を示す。鍵管理サーバ3は、インターネット200を介してコントローラ機器2と接続され、上述の鍵共有に関する情報をコントローラ機器2から受けて処理するサーバでであり、暗号化・認証通信処理部51、ユーザ認証処理部52、共有鍵情報送受信部53、鍵生成処理部1・54〜3・56、送受信処理部57から構成される。また、鍵管理サーバ3は、ユーザ認証に関する情報を記憶したユーザ認証DB・60及び秘密鍵生成に関する鍵生成情報を記憶した鍵生成情報DB・70と接続される。
暗号化・認証通信処理部51は、上述の暗号化・認証通信処理部34と同様にコントローラ機器2と安全に通信するための通信処理を行う。
ユーザ認証処理部52は、上述のユーザ認証DB・60に記憶されたサーバ認証に用いるID+パスワード、クライアント認証に用いるデジタル証明書(鍵管理サーバ3の証明書、CA(公証機関)、証明書廃棄リスト)を用いて、コントローラ機器2の認証を行う。
共有鍵情報送受信部53は、上述の共有鍵情報送受信部33と同様に、IPパケットの拡張ヘッダフィールドを利用して鍵共有情報を鍵管理サーバ3との間で送受信する。
【0033】
鍵生成処理部1・54〜3・56は、上述の鍵生成処理部1・13と同様に、鍵生成情報DB・70に記憶されたターゲット機器1A〜1Cのシリアル番号、Seed情報、鍵生成処理部のID番号及びコントローラ機器2を経由して受信した一時的に利用可能なビット列、バイト列であるテンポラリ情報等を用いて、ターゲット機器1A〜1Cとコントローラ機器2の間でIPSecによる暗号化通信をするための秘密鍵を計算する。すなわち、例えば、MD5やSHA−1等の暗号アルゴリズムにより秘密鍵生成計算を行う。
送受信処理部57は、上述の送受信処理部37と同様に、インターネット200に接続するインタフェースであり、鍵管理サーバ3とのパケット通信を行う。ユーザ認証DB・60は、コントローラ機器2、あるいはコントローラ機器2のユーザを認証するためのIDやパスワード、デジタル証明書を記憶している。鍵生成情報DB・70は、ターゲット機器1A〜1Cの識別子をインデックスとして、識別子と対応付けられた秘密鍵の元となる固定バイト列・ビット列(Seed情報)、を記憶している。
【0034】
以下、図面を参照して本実施形態の鍵管理システムにおける鍵管理及び鍵共有処理に関する具体的な処理動作について説明する。図5は、ターゲット機器1A〜1Cとコントローラ機器2との間でIPSecによる暗号化通信が確立されるまでの処理の流れを示すフローチャートである。なお、本実施形態のターゲット機器1A〜1Cはすべて同様の処理動作を行うため、以下ターゲット機器1Aの動作について説明する。
【0035】
コントローラ機器2は、ターゲット機器1Aに対して、識別子及びテンポラリ情報を要求するため、IPv6拡張ヘッダをセットし、リクエストパケットを送信する(図5のステップS1)。
図6にこのときセットされる鍵共有プロトコルのリクエストパケットのデータ構造を表すデータ構成図を示す。Src IP Addressフィールドには、送信元であるコントローラ機器2のIPアドレスが、Dst IP Addressフィールドには、送信先であるターゲット機器1AのIPアドレスが書き込まれる。
【0036】
このとき例えば、リクエストパケットのOption Typeで利用を希望する暗号アルゴリズム及びその鍵長/ハッシュアルゴリズム及びその鍵長を指定してもよい。また特殊なオプションタイプとして、例えば、IPSecの転送モード/暗号アルゴリズム及びその鍵長/ハッシュアルゴリズム及びその鍵長の組み合わせを予め定めておき、これを利用することで転送するパケットサイズを小さくすることも可能である。
なお、ターゲット機器が後述するレスポンスパケットで、リクエストパケットで指定された暗号アルゴリズム及びその鍵長/ハッシュアルゴリズム及びその鍵長パラメータ以外のパラメータを指定した場合、レスポンスパケットで指定されたパラメータが使用される。
【0037】
ターゲット機器1Aは、コントローラ機器2からリクエストバケットを受信すると(ステップS2)、受信したリクエストパケットを解析し、IPv6ヘッダの次ヘッダフィールドから鍵共有プロトコルの番号を識別する。
次にターゲット機器1Aは、自身がサポートしている暗号アルゴリズム、ハッシュアルゴリズムからIPSec暗号化通信で使用するアルゴリズムを選択する(ステップS3)。
暗号アルゴリズム及びハッシュアルゴリズムが決定すると、次にターゲット機器1Aは、テンポラリ情報生成処理部11において、例えば、リアルタイマ機能から現在時刻をテンポラリ情報として取得し、テンポラリ情報と記憶部に記憶しているSeed情報を元にハッシュ関数を利用して暗号アルゴリズム用秘密鍵とハッシュアルゴリズム用秘密鍵を生成する(ステップS4)。このとき生成する秘密鍵の長さはIPSec通信で利用するアルゴリズムによって決定される。
なお、上述の暗号化用秘密鍵とハッシュ用秘密鍵は、同一の鍵を利用してもよい。
【0038】
このとき、受信したリクエストパケットのOption Typeにコントローラ機器2が希望する暗号アルゴリズム及びその鍵長/ハッシュアルゴリズム及びその鍵長が指定されており、ターゲット機器1Aが該当するアルゴリズムをサポートしている場合は、指定されたアルゴリズムを使用する。
一方、サポートしていない場合は、IPSecで規定されている実装必須のアルゴリズム(DES、MD5)をパラメータにセットしてレスポンスパケットを作成する。
【0039】
そして、ターゲット機器1Aはコントローラ機器2と通信するためのSA(Security Association)データを作成しておき(ステップS5)、これを記憶部に記憶する。コントローラ機器2とのIPSec通信の準備のためである。なお、SAの通信相手のアドレス情報は、リクエストパケットの始点アドレスから取得する。
このとき、上述したようにIPSecの転送モード/暗号アルゴリズム及びその鍵長/ハッシュアルゴリズム及びその鍵長の組み合わせを予め定めておき、これを利用することで転送するパケットサイズを小さくすることも可能である。例えば、オプションタイプ=1ならば、ESPのトランスポートモード/DES56bit/MD5 128bitのパラメータと解釈する。
【0040】
ターゲット機器1Aは、コントローラ機器2に対してレスポンスパケットを送信する(ステップS6)。レスポンスパケットは、IPv6ヘッダとIPv6拡張ヘッダからなるパケットである。図7にこのときセットされる鍵共有プロトコルのレスポンスパケットのデータ構造を表すデータ構成図を示す。
拡張ヘッダには、図7に示すように以下の情報がTLV形式で格納される。
・ ターゲット機器1Aの識別番号
・ 暗号アルゴリズムの識別子と鍵長
・ ハッシュアルゴリズムの識別子と鍵長
・ IPSecの動作モード
・ ESPのトランスポートモード/ESPのトンネルモード
・ ターゲット機器1Aで生成したテンポラリ情報
・ SAの有効期限
・ 鍵管理サーバのURL
【0041】
コントローラ機器2は、レスポンスパケットを受信すると(ステップS7)、この受信したレスポンスパケットを解析し、拡張ヘッダに指定された情報を読み出す。
次にコントローラ機器2は、拡張ヘッダから取得した鍵管理サーバ3のURL情報を元に鍵管理サーバ3と通信を開始し、SSLセッションを確立して認証を行う(ステップS8)。SSLによる認証は、コントローラ機器が予め記憶部に記憶された任所情報を鍵管理サーバ3に送信して行ってもよいし、認証のたびにコントローラ機器のユーザがパスワード入力を行ってもよい。
【0042】
上述のSSL認証が完了すると、コントローラ機器2は、SSLセッション上でターゲット機器1Aから受信したターゲット機器1Aの識別番号とテンポラリ情報からなるターゲット機器情報を鍵管理サーバ3に送信する(ステップS9)。また、上述のレスポンスパケットに鍵長が指定されている場合は鍵長も鍵管理サーバ3に送信する。
鍵管理サーバ3は、SSLセッションで上述のターゲット機器情報を受信すると、受信したターゲット機器1Aの識別番号から予め鍵生成情報DB・70に記憶されたSeed情報を検索し(ステップS11)、また指定されたアルゴリズムによって秘密鍵を計算するための鍵生成処理部1・54〜3・56を検索し、該当するターゲット機器1AのSeed情報を読み出す。そして、このSeed情報と上述のテンポラリ情報から暗号アルゴリズム用の秘密鍵及びハッシュアルゴリズム用の秘密鍵を生成する(ステップS12)。そして、鍵管理サーバ3はSSLセッション上で、生成した秘密鍵をコントローラ機器2に対して送信する(ステップS13)。
【0043】
コントローラ機器2は上述の秘密鍵を受信すると(ステップS14)、受信した秘密鍵とレスポンスパケットの情報から、ターゲット機器1Aとの間のIPSec通信に必要なSAを生成する(ステップS15)。
そして、コントローラ機器2は、ターゲット機器1Aとレスポンスパケットで指定されたモードでIPSecによる暗号化通信を行う(ステップS14)。
【0044】
また、コントローラ機器2は、SAの有効期限が近くなると、所定の時点でターゲット機器1Aと継続してIPSecによる通信を行う場合は、上述のステップS1〜S16までの処理フローに従って新しいSAを生成する。
【0045】
以上説明したように、本実施形態の鍵管理システムによれば、ターゲット機器において、IKEのような複雑で処理の重い機能を実装する必要がなくなり、情報家電や組み込み機器等においても、十分に実装することができる効果が得られる。また、Seed情報やURL情報を予めターゲット機器1A〜1Cに記憶させておくため、ユーザによる設定作業等、鍵交換における運用上の負担を削減することができる効果が得られる。また鍵共有において、異なるベンダー同士で個々に規定された異なる交換モード間で通信を行う等の例外処理がなくなり、未登録のコントローラ機器2との間でもIPSecによる通信を行うことができる効果が得られる。また、鍵管理サーバのURLをターゲット機器1A〜1Cに記憶させておくため、鍵管理サーバ3において、ターゲット機器1A〜1Cの情報を一元管理できる効果が得られる。また、秘密鍵の生成処理においてテンポラリ情報を利用することにより、毎回異なる秘密鍵を生成することができ、これによりセキュリティを高めることができる効果が得られる。
コントローラ機器2においては、すべての暗号アルゴリズム、ハッシュアルゴリズムを実装する鍵管理サーバ3に秘密鍵の生成を分担させることで、すべてのターゲット機器1A〜1CとIPSec通信を行うことができる効果が得られる。また、通信するターゲット機器毎の秘密鍵生成に関する情報を設定する負担が削減できる効果が得られる。また、ターゲット機器1A〜1C毎に異なる可能性のある秘密鍵生成処理機能をコントローラ機器2に実装する必要が無くなる効果が得られる。また、鍵管理サーバ3との通信時に認証を行うことで、機器間の認証を鍵管理サーバ3に集約できる効果が得られる。
また、拡張ヘッダの長さをオクテット単位とし、バイトアライメンとを統一することで、16bit/32bit/64bitのCPUによるデータ操作を容易に実行できる効果が得られる。
【0046】
【図面の簡単な説明】
【図1】本実施形態における鍵管理システムの全体構成図である。
【図2】ターゲット機器1A〜1C及びコントローラ機器2の機能ブロック図である。
【図3】鍵管理サーバ3の機能ブロック図である。
【図4】鍵共有プロトコルのIPv6の拡張ヘッダの構成図である。
【図5】ターゲット機器1A〜1Cとコントローラ機器2との間でIPSecによる暗号化通信が確立されるまでの処理の流れを示すフローチャートである。
【図6】鍵共有プロトコルのリクエストパケットのデータ構造を表すデータ構成図である。
【図7】鍵共有プロトコルのレスポンスパケットのデータ構造を表すデータ構成図である。
【符号の説明】
1A〜1C…ターゲット機器
2…コントローラ機器
3…鍵管理サーバ
100…ホームネットワーク
200…インターネット
Claims (13)
- 暗号化通信を行うターゲット機器と、前記ターゲット機器と鍵を用いて暗号化通信を行うコントローラ機器と、前記鍵を生成するための鍵生成情報を管理する鍵管理サーバとをネットワークを介して接続して構成される鍵管理システムであって、
前記ターゲット機器は、前記鍵の生成に必要な鍵生成情報を記憶する第1の記憶手段と、前記鍵生成情報に基づいて前記鍵を生成する第1の鍵生成手段と、前記コントローラ機器より鍵生成情報の要求を受けて、該鍵生成情報を前記コントローラ機器へ送信する第1の送信手段と、前記第1の鍵生成手段によって生成した鍵を用いて前記コントローラ機器と通信を行う第1の通信手段とを具備し、
前記コントローラ機器は、前記ターゲット機器に対して鍵生成情報の要求を行う第2の送信手段と、前記鍵生成情報を受信すると、前記鍵管理サーバに対して前記鍵の生成を要求し、該鍵生成情報を送信する第3の送信手段と、前記鍵管理サーバより前記鍵を受信すると、該受信した鍵を用いて前記ターゲット機器と通信を行う第2の通信手段とを具備し、
前記鍵管理サーバは、前記コントローラ機器から鍵生成情報を受信すると、該鍵生成情報に基づいて前記鍵を生成する第2の鍵生成手段と、該第2の鍵生成手段によって生成した鍵を前記コントローラ機器に対して送信する第4の送信手段とを具備する
ことを特徴とする鍵管理システム。 - 前記鍵生成情報は、前記ターゲット機器が使用する鍵生成アルゴリズムと、該鍵生成アルゴリズムにより生成される鍵の長さに関する情報とを含む
ことを特徴とする請求項1に記載の鍵管理システム。 - 前記鍵生成情報は、さらに、前記ターゲット機器に規定されたID番号に関する情報を含む
ことを特徴とする請求項2に記載の鍵管理システム。 - 前記鍵生成情報は、さらに、テンポラリ情報を含む
ことを特徴とする請求項2または請求項3に記載の鍵管理システム。 - 前記ターゲット機器は、さらに、前記鍵管理サーバに接続するためのURLを記録する第3の記憶手段を具備する
ことを特徴とする請求項1に記載の鍵管理システム。 - 前記第3の送信手段は、前記鍵生成情報を受信すると、
前記鍵管理サーバと認証を行った後、該鍵管理サーバに対して前記鍵の生成を要求し、該鍵生成情報を送信する
ことを特徴とする請求項1に記載の鍵管理システム。 - 暗号化通信を行うコントローラ機器とネットワークを介して接続され、前記コントローラ機器と鍵を用いて暗号化通信を行うターゲット機器であって、
前記鍵の生成に必要な鍵生成情報を記憶する記憶手段と、
前記鍵生成情報に基づいて前記鍵を生成する鍵生成手段と、
前記コントローラ機器より鍵生成情報の要求を受けて、該鍵生成情報を送信する送信手段と、
前記鍵生成手段によって生成した鍵を用いて前記コントローラ機器と通信を行う通信手段と
を具備することを特徴とするターゲット機器。 - 暗号化通信を行うターゲット機器と、前記ターゲット機器が暗号化通信において使用する鍵を生成するための鍵生成情報を管理する鍵管理サーバとにそれぞれ、ネットワークを介して接続され、前記ターゲット機器と暗号化通信を行うコントローラ機器であって、
前記ターゲット機器に対して鍵生成情報の要求を行う第1の送信手段と、
前記鍵生成情報を受信すると、前記鍵管理サーバに対して前記鍵の生成を要求し、該鍵生成情報を送信する第2の送信手段と、
前記鍵管理サーバより前記鍵を受信すると、該受信した鍵を用いて前記ターゲット機器と通信を行う通信手段と
を具備することを特徴とするコントローラ機器。 - 暗号化通信を行うコントローラ機器とネットワークを介して接続され、前記コントローラ機器が暗号化通信に使用する鍵を生成するための鍵生成情報を管理する鍵管理サーバであって、
前記コントローラ機器より前記鍵生成情報を受信すると、該鍵情報に基づいて前記鍵を生成する鍵生成手段と、
該第2の鍵生成手段によって生成した鍵を前記コントローラ機器に対して送信する送信手段と
を具備することを特徴とする鍵管理サーバ - 暗号化通信を行うコントローラ機器とネットワークを介して接続され、該コントローラ機器と暗号化通信を行うターゲット機器が、前記コントローラ機器より、前記暗号化通信に使用する鍵の生成に必要な鍵生成情報の要求を受けて、該鍵生成情報を記憶する記憶手段より該鍵生成情報を読み出し、
該鍵生成情報に基づいて前記鍵を生成するとともに、該鍵生成情報を前記コントローラ機器に対して送信し、
前記コントローラ機器が、前記鍵生成情報を受信すると、ネットワークを介してコントローラ機器と接続され前記鍵生成情報を管理する鍵管理サーバに対して該鍵生成情報を送信し、
前記鍵管理サーバが、該鍵生成情報を受信すると、該鍵生成情報に基づいて前記鍵を生成するとともに、該鍵を前記コントローラ機器に対して送信し、
前記コントローラ機器が、該鍵を受信すると、該鍵を用いて前記ターゲット機器と暗号化通信を行う
ことを特徴とする鍵管理方法。 - 暗号化通信を行うターゲット機器と、前記ターゲット機器と鍵を用いて暗号化通信を行うコントローラ機器と、前記鍵を生成するための鍵生成情報を管理する鍵管理サーバとをネットワークを介して接続して構成される鍵管理システムにおいて、
前記鍵の生成に必要な鍵生成情報を記憶する記憶処理と、
前記鍵生成情報に基づいて前記鍵を生成する鍵生成処理と、
前記コントローラ機器より鍵生成情報の要求を受けて、該鍵生成情報を送信する送信処理と、
前記鍵生成処理によって生成した鍵を用いて前記コントローラ機器と通信を行う通信処理と
をターゲット機器に実行させるための鍵管理プログラム。 - 暗号化通信を行うターゲット機器と、前記ターゲット機器と鍵を用いて暗号化通信を行うコントローラ機器と、前記鍵を生成するための鍵生成情報を管理する鍵管理サーバとをネットワークを介して接続して構成される鍵管理システムにおいて、
前記ターゲット機器に対して鍵生成情報の要求を送信する第1の送信処理と、
前記鍵生成情報を受信すると、前記鍵管理サーバに対して前記鍵の生成を要求し、該鍵生成情報を送信する第2の送信処理と、
前記鍵管理サーバより前記鍵を受信すると、該受信した鍵を用いて前記ターゲット機器と通信を行う通信処理と
をコントローラ機器に実行させるための鍵管理プログラム。 - 暗号化通信を行うターゲット機器と、前記ターゲット機器と鍵を用いて暗号化通信を行うコントローラ機器と、前記鍵を生成するための鍵生成情報を管理する鍵管理サーバとをネットワークを介して接続して構成される鍵管理システムにおいて、
前記コントローラ機器より前記鍵生成情報を受信すると、該鍵情報に基づいて前記鍵を生成する鍵生成処理と、
該鍵生成処理によって生成した鍵を前記コントローラ機器に対して送信する送信処理と
を鍵管理サーバに実行させるための鍵管理プログラム。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002239564A JP2004080512A (ja) | 2002-08-20 | 2002-08-20 | 鍵管理システム及び鍵管理方法並びに鍵管理プログラム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002239564A JP2004080512A (ja) | 2002-08-20 | 2002-08-20 | 鍵管理システム及び鍵管理方法並びに鍵管理プログラム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2004080512A true JP2004080512A (ja) | 2004-03-11 |
Family
ID=32022637
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002239564A Withdrawn JP2004080512A (ja) | 2002-08-20 | 2002-08-20 | 鍵管理システム及び鍵管理方法並びに鍵管理プログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2004080512A (ja) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006186807A (ja) * | 2004-12-28 | 2006-07-13 | Hitachi Ltd | 通信支援サーバ、通信支援方法、および通信支援システム |
JP2006311622A (ja) * | 2006-08-09 | 2006-11-09 | Hitachi Ltd | 通信支援サーバ、通信支援方法、および通信支援システム |
KR20200065941A (ko) * | 2018-11-30 | 2020-06-09 | 사단법인 전국은행연합회 | 사용자 인증에 기초한 암호 키 제공 장치 및 방법 |
-
2002
- 2002-08-20 JP JP2002239564A patent/JP2004080512A/ja not_active Withdrawn
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2006186807A (ja) * | 2004-12-28 | 2006-07-13 | Hitachi Ltd | 通信支援サーバ、通信支援方法、および通信支援システム |
US8081758B2 (en) | 2004-12-28 | 2011-12-20 | Hitachi, Ltd. | Communication support server, communication support method, and communication support system |
JP2006311622A (ja) * | 2006-08-09 | 2006-11-09 | Hitachi Ltd | 通信支援サーバ、通信支援方法、および通信支援システム |
JP4690964B2 (ja) * | 2006-08-09 | 2011-06-01 | 株式会社日立製作所 | 通信支援システム |
KR20200065941A (ko) * | 2018-11-30 | 2020-06-09 | 사단법인 전국은행연합회 | 사용자 인증에 기초한 암호 키 제공 장치 및 방법 |
KR102209989B1 (ko) | 2018-11-30 | 2021-02-01 | 사단법인 금융결제원 | 사용자 인증에 기초한 암호 키 제공 장치 및 방법 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11265709B2 (en) | Efficient internet-of-things (IoT) data encryption/decryption | |
US9590954B2 (en) | Transferring encrypted and unencrypted data between processing devices | |
CN111416807B (zh) | 数据获取方法、装置及存储介质 | |
US6965992B1 (en) | Method and system for network security capable of doing stronger encryption with authorized devices | |
JP4000111B2 (ja) | 通信装置および通信方法 | |
US20040161110A1 (en) | Server apparatus, key management apparatus, and encrypted communication method | |
CN103155512B (zh) | 用于对服务提供安全访问的系统和方法 | |
US7539858B2 (en) | Packet encryption substituting device, method thereof, and program recording medium | |
EP1189407A2 (en) | Client-server system with securita function intermediary | |
CN108650227A (zh) | 基于数据报安全传输协议的握手方法及系统 | |
US11736304B2 (en) | Secure authentication of remote equipment | |
CN110463137A (zh) | 减少带宽的握手通信 | |
JP2004104542A (ja) | ネットワーク、IPsec設定サーバ装置、IPsec処理装置及びそれらに用いるIPsec設定方法 | |
US20120246473A1 (en) | Encryption information transmitting terminal | |
JP2003101570A (ja) | 通信処理システム、通信処理方法、およびサーバー装置、並びにコンピュータ・プログラム | |
JP2004343717A (ja) | モバイルアドホックネットワークにおけるノード間の暗号化キー割り当て方法及びこれを用いたネットワーク装置 | |
JP2006101051A (ja) | サーバ、vpnクライアント、vpnシステム、及びソフトウェア | |
JP3944182B2 (ja) | セキュリティ通信方法 | |
US20220141004A1 (en) | Efficient Internet-Of-Things (IoT) Data Encryption/Decryption | |
JP2005210193A (ja) | 共通秘密鍵生成装置 | |
KR20090102050A (ko) | 서버 기반 이동 인터넷 프로토콜 시스템에 있어서 보안방법 | |
JPH06318939A (ja) | 暗号通信システム | |
JP2004080512A (ja) | 鍵管理システム及び鍵管理方法並びに鍵管理プログラム | |
US8572383B2 (en) | Key exchange device, key exchange processing system, key exchange method, and program | |
CA3163962A1 (en) | Apparatus and methods for encrypted communication |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A300 | Application deemed to be withdrawn because no request for examination was validly filed |
Free format text: JAPANESE INTERMEDIATE CODE: A300 Effective date: 20051101 |