JP2004350267A - デジタル証明書管理システム、デジタル証明書管理装置、デジタル証明書管理方法、更新手順決定方法およびプログラム - Google Patents
デジタル証明書管理システム、デジタル証明書管理装置、デジタル証明書管理方法、更新手順決定方法およびプログラム Download PDFInfo
- Publication number
- JP2004350267A JP2004350267A JP2004134113A JP2004134113A JP2004350267A JP 2004350267 A JP2004350267 A JP 2004350267A JP 2004134113 A JP2004134113 A JP 2004134113A JP 2004134113 A JP2004134113 A JP 2004134113A JP 2004350267 A JP2004350267 A JP 2004350267A
- Authority
- JP
- Japan
- Prior art keywords
- node
- server
- client
- interest
- nodes
- 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.)
- Granted
Links
Images
Abstract
【解決手段】 クライアント・サーバシステムを構成する各ノードに記憶させるルート鍵を更新する際の更新手順を、更新用の新ルート鍵及び/又はその新ルート鍵を用いて内容を確認可能なデジタル証明書を同時に送信する処理を対象ノード毎に順に実行する手順を含むように定める。その実行順は作業リストとして作成し、注目ノードを順次変更しながら、注目ノードの下位ノードのそれぞれについて、注目ノードがその下位ノードを通信相手とする際にクライアントとして機能する場合にその下位ノードを作業リストの後端に追加し(S407)、サーバとして機能する場合にその下位ノードを前記作業リストの前端に追加し(S406)て作成する。後端に代えて注目ノードよりも後ろ、前端に代えて注目ノードよりも前としてもよい。
【選択図】 図20
Description
このようなクライアント・サーバシステムにおいては、クライアント装置からサーバ装置に要求を送信し、サーバ装置がその要求に従った処理を行ってクライアント装置に対して応答を返す。そして、このようなクライアント・サーバシステムは、クライアント装置から商品の注文要求を送信し、サーバ装置においてその注文を受け付けるといった、いわゆる電子商取引にも広く用いられるようになっている。また、種々の電子装置にクライアント装置あるいはサーバ装置の機能を持たせてネットワークを介して接続し、相互間の通信によって電子装置の遠隔管理を行うシステムも提案されている。
この場合、認証処理を行うために、サーバ装置側にサーバ私有鍵及びサーバ公開鍵証明書(サーバ証明書)を記憶させると共に、クライアント装置側にルート鍵証明書を記憶させておく。ここで、サーバ私有鍵は、認証局(CA:certificate authority)がサーバ装置に対して発行した私有鍵である。そして、サーバ公開鍵証明書は、その私有鍵と対応する公開鍵にCAがデジタル署名を付してデジタル証明書としたものである。また、ルート鍵証明書は、CAがデジタル署名に用いた証明用私有鍵であるルート私有鍵と対応する証明用公開鍵(以下「証明鍵」ともいう)であるルート鍵に、デジタル署名を付してデジタル証明書としたものである。
図58(a)に示すように、サーバ公開鍵は、サーバ私有鍵を用いて暗号化された文書を復号化するための鍵本体と、その公開鍵の発行者(CA),発行相手(サーバ装置),有効期限等の情報を含む書誌情報とによって構成される。そして、CAは、鍵本体や書誌情報が改竄されていないことを示すため、サーバ公開鍵をハッシュ処理して得たハッシュ値を、ルート私有鍵を用いて暗号化し、デジタル署名としてサーバ公開鍵に付す。またこの際に、デジタル署名に用いるルート私有鍵の識別情報を署名鍵情報として公開鍵の書誌情報に加える。そして、このデジタル署名を付した公開鍵証明書が、サーバ公開鍵証明書である。
まずサーバ装置は、クライアント装置からの通信要求に応じて乱数を生成すると共に、これをサーバ私有鍵で暗号化し、その暗号化した乱数をサーバ公開鍵証明書と共にクライアント装置に送信する。
すると、これを受信したクライアント装置は、受信したサーバ公開鍵証明書の正当性をルート鍵証明書を用いて確認する。これには、上述のように損傷や改竄を受けていないことを確認するのみならず、書誌情報を参照してサーバ装置が適当な通信相手であることを確認する処理を含む。
また、上記の公開鍵や私有鍵で暗号化して共通鍵暗号の鍵を交換するようにすれば、安全に共通鍵を交換し、通信内容を共通鍵暗号によって暗号化した安全な通信経路を確立することができる。
このような鍵の更新に関する技術としては、例えば特許文献1に記載のものが挙げられる。
公開鍵暗号方式の場合、各装置に発行した鍵のペアを更新する場合には、その装置には新たな私有鍵に対応した新たな公開鍵証明書が記憶されることになり、通信相手にこれを渡せば、上述のような認証処理を支障なく行うことができる。
しかし、ルート鍵を更新する場合、新たなルート鍵では従前のデジタル証明書に付されたデジタル署名を復号化することができないため、新たなルート鍵と対応する新たなルート私有鍵を用いて各装置の公開鍵証明書を作成し直し、これを配布しなければ、認証処理の実行に支障を来してしまう(ただし、各装置の私有鍵は必ずしも更新する必要はない)。
この経路としては、例えば書留郵便が考えられ、証明書のデータを記録したメモリカードやフレキシブルディスク等の記録媒体を装置の管理者に書留郵便で送付し、管理者が装置の鍵を更新するという方式が考えられる。しかし、この方式では、クライアントやサーバの各装置について十分な知識を持った管理者がいる場合にしか適用できないし、CA側は記録媒体を送付した後の処理については装置の管理者を信用するしかなかった。従って、管理者が更新処理を怠ったり誤ったりした場合には、認証処理が行えなくなってしまうという問題があった。
また、CAやクライアント・サーバシステムによるサービスの提供者が、各装置の配置先にサービスマンを派遣して鍵の更新を行うことも考えられるが、広い地域でこのような方式を採るには多数のサービス拠点が必要になり、コストが嵩むことになる。また、サービスマンの教育や不正防止、更新作業用の管理者IDの管理も問題となる。例えば、認証情報を手入力する単純な方式を採ろうとすると、退職したサービスマンについての更新権限を抹消するためには、各装置に記憶させている認証情報を変更する必要があるが、顧客先に設置された多数の装置にこのような変更を行うことは困難である。
すなわち、この場合サーバ装置は、クライアント装置から接続要求があった場合にデジタル証明書をクライアント装置に送信するのであるが、不特定多数のクライアント装置から任意のタイミングで接続要求を受け得るサーバ装置の場合、通常通信用と更新処理用のいずれのデジタル証明書をクライアント装置に送信すればよいかを適切に判断することは困難である。
以上のように、ルート鍵更新用の特別な通信経路を設けることは、コストや管理の負担を増すことになるので、このような特別な通信経路を設けることなく、ルート鍵を安全に更新したいという要求があった。
(1)注目ノードに下位ノードが存在する場合、その下位ノードのそれぞれについて、順位を注目ノードの下位に設定すると共に、上記注目ノードがその下位ノードを通信相手とする際にクライアントとサーバのいずれとして機能するかを判断し、クライアントであればその下位ノードを上記作業リストの後端に追加し、サーバであればその下位ノードを上記作業リストの前端に追加する手順
(2)注目ノードを、その注目ノードと同順位であってまだ注目ノードになっていないノードがあればそのうちいずれかのノードに、そのようなノードがなければ、上記順位が注目ノードの下位であってまだ注目ノードになっていないいずれかのノードに変更する手順
(1)注目ノードに下位ノードが存在する場合、その下位ノードのそれぞれについて、上記注目ノードがその下位ノードを通信相手とする際にクライアントとサーバのいずれとして機能するかを判断し、クライアントであればその下位ノードを上記作業リストの後端に追加し、サーバであればその下位ノードを上記作業リストの前端に追加する手順
(2)注目ノードを、その注目ノードの下位ノードであってまだ注目ノードになっていないノードがあればそのうちいずれかのノードに変更し、そのようなノードがなければ、上位に向かってノードを順に辿り、まだ注目ノードになっていない下位ノードを持つノードがあった場合にその下位ノードのいずれかに変更する手順
さらにまた、上記の各更新手順決定方法において、上記各ノードの間の上記認証を、SSL又はTLSのプロトコルに従った認証とし、上記デジタル証明書をそれぞれ上記各ノードの公開鍵証明書とするとよい。
(1)注目ノードに下位ノードが存在する場合、その下位ノードのそれぞれについて、順位を注目ノードの下位に設定すると共に、上記注目ノードがその下位ノードを通信相手とする際にクライアントとサーバのいずれとして機能するかを判断し、クライアントであればその下位ノードを上記作業リストの後端に追加し、サーバであればその下位ノードを上記作業リストの前端に追加する手順
(2)注目ノードを、その注目ノードと同順位であってまだ注目ノードになっていないノードがあればそのうちいずれかのノードに、そのようなノードがなければ、上記順位が注目ノードの下位であってまだ注目ノードになっていないいずれかのノードに変更する手順
(1)注目ノードに下位ノードが存在する場合、その下位ノードのそれぞれについて、上記注目ノードがその下位ノードを通信相手とする際にクライアントとサーバのいずれとして機能するかを判断し、クライアントであればその下位ノードを上記作業リストの後端に追加し、サーバであればその下位ノードを上記作業リストの前端に追加する手順
(2)注目ノードを、その注目ノードの下位ノードであってまだ注目ノードになっていないノードがあればそのうちいずれかのノードに変更し、そのようなノードがなければ、上位に向かってノードを順に辿り、まだ注目ノードになっていない下位ノードを持つノードがあった場合にその下位ノードのいずれかに変更する手順
また、この発明のデジタル証明書管理システム及びデジタル証明書管理装置によれば、上記のような証明鍵の更新を、適切な手順で実行することができるので、上記と同様な効果を得ることができる。
また、この発明のプログラムによれば、コンピュータにデジタル証明書管理装置を制御させてこのようなデジタル証明書管理装置の特徴を実現し、同様な効果を得ることができる。
〔第1の実施形態:図1乃至図9〕
まず、この発明によるデジタル証明書管理装置である証明書管理装置と、クライアント・サーバシステムを構成するクライアント及びサーバによって構成される、この発明のデジタル証明書管理システムの第1の実施形態の構成について説明する。この実施形態においては、各1つのクライアント及びサーバによってクライアント・サーバシステムを構成しており、この実施形態は、この発明を最も基本的なシステムに適用した例である。図2に、このデジタル証明書管理システムを構成する各装置の、この実施形態の特徴となる部分の機能構成を示す機能ブロック図を示す。図2において、この実施形態の特徴と関連しない部分の図示は省略している。
そして、クライアント装置(クライアント)40及びサーバ装置(サーバ)30は、公開鍵暗号とデジタル証明書を用いる認証方式であるSSLによる認証処理によって互いを正当な通信相手として認証した場合に、互いに通信を確立させるようにしている。この認証が、互いが互いを認証する相互認証でも一方が他方を認証する片方向認証であってもよいことは、後述する通りである。そして、クライアント装置40が送信した要求に対し、サーバ装置30が必要な処理を行って応答を返すことにより、クライアント・サーバシステムとして機能する。証明書管理装置10は、その認証処理に用いるデジタル証明書を発行し、またそのデジタル証明書の管理や更新等を行うための装置であり、CAに相当する。
なお、RPCを実現するために、SOAP(Simple Object Access Protocol),HTTP(Hyper Text Transfer Protocol),FTP(File Transfer Protocol),COM(Component Object Model),CORBA(Common Object Request Broker Architecture)等の既知のプロトコル(通信規格),技術,仕様などを利用することができる。
(A)は、証明書管理装置10でクライアント装置40に対する要求が発生したケースである。このケースでは、証明書管理装置10が管理装置側要求aを生成し、これをサーバ装置30を経由して受け取ったクライアント装置40がこの要求に対する応答aを返すというモデルになる。なお、(A)では、応答aだけでなく応答遅延通知a′を返信するケースが表記されている。これは、クライアント装置40が、サーバ装置30を経由して管理装置側要求aを受け取って、当該要求に対する応答を即座に返せないと判断したときには、応答遅延通知を通知して一旦接続状態を切断し、次回の接続の際に上記要求に対する応答を改めて引き渡す構成としているためである。
なおここでは、サーバ装置30からクライアント装置40に対して通信を要求することはできないので、サーバ装置30からクライアント装置40に対して送信すべき要求は、クライアント装置40からサーバ装置30に対して接続要求があった場合に、これに対する応答として送信することになる。
図1は、図2に示した証明書管理装置のハードウェア構成を示すブロック図である。この図に示す通り、証明書管理装置10は、CPU11,ROM12,RAM13,HDD14,通信インタフェース(I/F)15を備え、これらがシステムバス16によって接続されている。そして、CPU11がROM12やHDD14に記憶している各種制御プログラムを実行することによってこの証明書管理装置10の動作を制御し、後述するようにこの発明に係る各手段(証明鍵更新手段,更新順制御手段,送信手段,その他の手段)として機能させる。
なお、証明書管理装置10のハードウェアとしては、適宜公知のコンピュータを採用することができる。もちろん、必要に応じて他のハードウェアを付加してもよい。
なお、この通信には、有線,無線を問わず、ネットワークを構築可能な各種通信回線(通信経路)を採用することができる。証明書管理装置10との間の通信についても同様である。
まず、証明書管理装置10は、証明用鍵作成部21,証明書発行部22,証明書管理部23,証明書更新部24,通信機能部25,構成記憶部26,更新順制御部27を備えている。
証明用鍵作成部21は、デジタル署名の作成に用いる証明用私有鍵であるルート私有鍵と、そのデジタル証明書の正当性を確認するための、ルート私有鍵と対応する証明用公開鍵(証明鍵)であるルート鍵とを作成する証明用鍵作成手段の機能を有する。
証明書管理部23は、証明書発行部22が発行したデジタル証明書、その作成に用いたルート私有鍵、およびそのルート私有鍵と対応するルート鍵を管理する証明書管理手段の機能を有する。そして、これらの証明書や鍵を、その有効期限や発行先、ID、更新の有無等の情報と共に記憶する。
構成記憶部26は、証明書管理装置10がデジタル証明書の管理を行う対象であるクライアント・サーバシステムを構成する各ノード(ここではサーバ装置30及びクライアント装置40)について、少なくとも該ノードの通信相手及び該通信相手との間でクライアントとサーバのいずれとして機能するかの情報を記憶し、構成記憶手段の機能を有する。ここではさらに、各ノードが相互認証に使用する私有鍵、公開鍵証明書、およびルート鍵証明書のID及び、鍵や証明書の更新状態に関する情報も記憶するものとする。
そして、これらの各部の機能は、図1に示したCPU11が所要の制御プログラムを実行して証明書管理装置10の各部の動作を制御することにより実現される。
証明書記憶部31は、SSLによる認証処理に用いる鍵を記憶する機能を有し、例えば相互認証を行う場合には、ルート鍵証明書、サーバ私有鍵、およびサーバ公開鍵証明書を記憶する。
通信機能部32は、ネットワークを介して外部装置と通信する機能を有し、受信したデータをサーバ機能部33に渡し、またサーバ機能部33の指示に従ってデータを外部装置に送信する。
そして、これらの各部の機能は、サーバ装置30のCPUが所要の制御プログラムを実行してサーバ装置30の各部の動作を制御することにより実現される。
証明書記憶部41は、SSLによる認証処理に用いる鍵を記憶する機能を有し、例えば相互認証を行う場合には、ルート鍵証明書、クライアント私有鍵、およびクライアント公開鍵証明書を記憶する。
通信機能部42は、ネットワークを介して外部装置と通信する機能を有し、受信したデータをクライアント機能部43に渡し、またクライアント機能部43の指示に従ってデータを外部装置に送信する。
そして、これらの各部の機能は、クライアント装置40のCPUが所要の制御プログラムを実行してクライアント装置40の各部の動作を制御することにより実現される。
また、上記のサーバ装置30及びクライアント装置40には、工場出荷時あるいはそれに順ずる時期、少なくともユーザが認証処理の運用を開始する前に、初めのルート鍵を記憶させておくものとする。このとき、公開鍵証明書及び私有鍵も共に記憶させるようにするとよい。
なお、以下の説明に用いるシーケンス図に記載するサーバ装置30とクライアント装置40と間の通信処理に際しては、個々に図示はしていないが、安全な通信経路の確立前にSSLによる認証処理を行い、認証が成功した場合のみ、そのSSLによって確保した通信経路でデータの転送を行うものとする。そして、この認証処理に支障を来さないようにルート鍵証明書を更新可能であることが、この実施形態の特徴である。以下の実施形態についても同様である。
またここでは、証明書管理装置10とサーバ装置30との間の通信は、直通回線等の、安全(データの改竄や盗聴がなされないこと)を確保できる通信経路を介して行うものとする。
図4は、クライアント装置とサーバ装置とがSSLによる相互認証を行う際の各装置において実行する処理のフローチャートを、その処理に用いる情報と共に示す図である。
図4に示すように、SSLによる相互認証を行う際には、まずクライアント装置40側にルート鍵証明書,クライアント私有鍵,クライアント公開鍵証明書(クライアント証明書)を記憶させておく。クライアント私有鍵は、証明書管理装置10がクライアント装置40に対して発行した私有鍵である。そして、クライアント公開鍵証明書は、その私有鍵と対応する公開鍵に証明書管理装置10がデジタル署名を付してデジタル証明書としたものである。また、ルート鍵証明書は、証明書管理装置10がデジタル署名に用いた証明用私有鍵であるルート私有鍵と対応する証明用公開鍵(以下「証明鍵」ともいう)であるルート鍵に、デジタル署名を付してデジタル証明書としたものである。
これらの各鍵や証明書の関係は、背景技術の項で図58を用いて説明した通りである。
一方サーバ装置30のCPUは、この接続要求を受信すると、所要の制御プログラムを実行することにより、図4の右側に示すフローチャートの処理を開始する。そして、ステップS21で第1の乱数を生成し、これをサーバ私有鍵を用いて暗号化する。そして、ステップS22でその暗号化した第1の乱数とサーバ公開鍵証明書とをクライアント装置40に送信する。
そして確認ができると、ステップS13で、受信したサーバ公開鍵証明書に含まれるサーバ公開鍵を用いて第1の乱数を復号化する。ここで復号化が成功すれば、第1の乱数は確かにサーバ公開鍵証明書の発行対象であるサーバ装置30から受信したものだと確認できる。そして、サーバ装置30を正当な通信相手として認証する。
このような処理を行うことにより、クライアント装置40とサーバ装置30が互いに相手を認証した上で安全に共通鍵を交換することができ、通信を確かな相手と安全に行うことができる。
そしてこの場合には、クライアント装置40に記憶させるのはルート鍵証明書のみでよく、クライアント私有鍵及びクライアント公開鍵証明書は不要である。また、サーバ装置30にはルート鍵証明書を記憶させる必要はない。従ってこの場合、以下に説明する各ルート鍵証明書の更新処理も、クライアント装置40のルート鍵証明書とサーバ装置30のサーバ公開鍵証明書のみを更新する処理に簡略化することが可能である。
このデジタル証明書管理システムの証明書管理装置10は、ルート鍵の更新事由を検出すると、図6のシーケンス図に示す処理を開始する。
この処理においては、証明書管理装置10はステップS101で、有効なルート私有鍵について、新たなルート私有鍵とルート鍵のペアを作成する。ここで、「有効な」ルート私有鍵とは、その時点でクライアント・サーバシステムにおける認証処理に使用中のルート私有鍵という意味であり、より正確には、そのルート私有鍵を用いてデジタル署名を付した証明書が、認証処理に用いられる状態でサーバ装置30又はクライアント装置40に記憶されているものをいうものとする。過去に作成した私有鍵が有効か否かは、証明書管理部23に記憶している公開鍵証明書及びルート鍵証明書の有効期限、その更新の有無の情報や、構成記憶部26に記憶している各ノードが使用している公開鍵証明書及びルート鍵証明書のIDの情報、および証明書に含まれる、デジタル署名に使用したルート私有鍵の識別情報等の情報を基に判断することができる。また、新たな鍵と置き換えられるべきそれまでの鍵を、「従前の」鍵と呼ぶことにする。証明書についても同様である。
そしてさらに、ステップS103において、ステップS101で作成した新ルート鍵に新ルート私有鍵を用いたデジタル署名を付して第2の証明鍵証明書として新ルート鍵証明書を作成する。
以上がルート鍵証明書作成処理である。
ここではまず、ステップS111で、証明書管理装置10が、クライアント装置40に対して発行してあるクライアント公開鍵に、新ルート私有鍵を用いたデジタル署名を付して新クライアント公開鍵証明書を作成する。なお、クライアント私有鍵は更新しないので、クライアント公開鍵自体も更新する必要はない。
サーバ装置30は、これに応じてクライアント装置40に対して配布用ルート鍵証明書とその更新要求とを送信するのであるが、サーバ装置30側から送信要求を行うことはできない。そこで、クライアント装置40が所定のタイミングで定期的にサーバ装置30に対して通信要求を送信して通信を要求するようにし(S113)、これに対する応答として配布用ルート鍵証明書とその更新要求とを送信するようにしている(S114)。
以上の処理により、証明書管理装置10からクライアント装置40に、サーバ装置30を介して各証明書とその更新要求とが送信されることになり、ステップS112の処理が送信手順の処理であり、この処理においては、証明書管理装置10のCPU11が送信手段として機能する。
そして、これが確認できると、次のステップS116で配布用ルート鍵証明書を証明書記憶部31に記憶する。
そして、これが確認できると、次のステップS118で新ルート鍵証明書を証明書記憶部31に記憶する。この時点で配布用ルート鍵は消去してしまってもよいが、ここでは記憶したままとする。従って、証明書記憶部31には3つのルート鍵証明書が記憶された状態となる。
以上のステップS115乃至S120において、クライアント装置40のCPUがクライアント側更新手段として機能する。
この場合、通信相手が既に新ルート鍵を(配布用ルート鍵証明書又は新ルート鍵証明書として)記憶していれば、新公開鍵証明書のデジタル署名を復号化できるので、問題なく認証を受けることができる。一方、通信相手がまだ新ルート鍵を記憶していない場合には、新公開鍵証明書のデジタル署名を復号化できず、認証が失敗した旨の応答を受けることになる。しかしこの場合でも、再度通信を要求し、この際に従前の公開鍵証明書を送信するようにすれば、従前のルート鍵によってそこに付されたデジタル署名を復号化できるので、問題なく認証を受けることができる。
ここではまだサーバ装置30に新ルート鍵を記憶させていないので、サーバ装置30は新公開鍵証明書のデジタル署名を復号化できず、認証が失敗した旨の応答を受けることになる。しかし上述のように、再度通信を要求し、この際に従前の公開鍵証明書を送信すれば、従前のルート鍵によってそこに付されたデジタル署名を復号化できるので、問題なく認証を受けることができるのである。
クライアント装置40はその後、ステップS121で証明書管理装置10に対して更新要求に対する応答として結果通知を返し、各証明書の記憶が成功していればその旨を、何らかの理由で失敗していればその旨を伝える。なお、この結果通知は、少なくともクライアント装置40が配布用ルート鍵証明書、新ルート鍵証明書、および新クライアント公開鍵証明書を受信したことを示す情報である。以下の結果通知も同様な意味を持つものとする。また、この結果通知はまずサーバ装置30に対して送信し、サーバ装置30がステップS122で証明書管理装置に対して送信する。
ここではまず、ステップS123で証明書管理装置10が、クライアント装置40に対して発行してあるサーバ公開鍵に新ルート私有鍵を用いたデジタル署名を付して、新サーバ公開鍵証明書を作成する。サーバ公開鍵自体の更新が不要であることは、上述のクライアント公開鍵の場合と同様である。
サーバ装置30は、この要求を受け取ると、ステップS125及びS126で、図7のステップS115及びS116の場合と同様に、従前のルート鍵証明書を用いて配布用ルート鍵証明書の正当性を確認し、これが確認できると配布用ルート鍵証明書を証明書記憶部31に記憶する。このとき、まだ従前のルート鍵証明書は消去しない。
このようにすると、従前のルート私有鍵を用いてデジタル署名を付したデジタル証明書は復号化できなくなってしまうが、この時点では既にクライアント装置40に新クライアント公開鍵証明書を記憶させてあるので、クライアント装置40から送られてくる公開鍵証明書の確認に支障はなく、認証処理に支障を来すことはない。従って、従前のルート鍵は不要であり、改めて廃棄要求を行うよりもここで廃棄してしまった方が処理の手順が簡単になるので、このようにしたものである。もちろん、証明書管理装置10が改めて廃棄要求を行い、その要求を受信した時点で廃棄を行うようにしてもよい。
以上のステップS125乃至S130において、サーバ装置30のCPUがサーバ側更新手段として機能する。
サーバ装置30の場合には、クライアント装置40から接続要求があった場合に公開鍵証明書をクライアント装置40に送信するのであるが、サーバ公開鍵証明書を複数記憶していたとすると、送信毎にそのうちいずれかを選択して送信することになる。そして、クライアント装置40側でデジタル証明書を復号化できないようなサーバ公開鍵証明書を送信してしまった場合には、認証は失敗することになる。例えば、クライアント装置40が新ルート鍵を記憶する前に新サーバ公開鍵証明書を送信した場合等である。
ここでは、ステップS130の時点では既にクライアント装置40に新ルート鍵を記憶させてあるので、サーバ装置30に新サーバ公開鍵証明書を記憶させておけば、認証処理には全く問題ない。
サーバ装置30はその後、ステップS131で証明書管理装置10に対して更新要求に対する応答として結果通知を返す。
以上の図8に示す処理により、サーバ装置30側ではルート鍵更新処理が完了する。
ここではまずステップS132で、証明書管理装置10がサーバ装置30に対して、不要になったデジタル証明書の廃棄を求める旧鍵廃棄要求をクライアント装置40に送信するよう要求する旧鍵廃棄要求送信要求を送信する。サーバ装置30は、これに応じて、図7のステップS113及びS114の場合と同様に、クライアント装置40からの通信要求(S133)に対する応答として旧鍵廃棄要求を送信するようにしている(S134)。
以上の処理により、証明書管理装置10からクライアント装置40にサーバ装置30を介して上記の旧鍵廃棄要求が送信されることになる。
クライアント装置40はその後、ステップS136で証明書管理装置10に対して更新要求に対する応答として結果通知を返すが、これはまずサーバ装置30に対して送信し、サーバ装置30がステップS137で証明書管理装置10に対して送信する。
以上により、ルート鍵更新処理を終了する。
なお、ステップS114′での受信応答が、クライアント装置40が更新要求及び配布用ルート鍵証明書等を受信した旨の情報となるが、図7に示したシーケンスに単に上記の考え方を採り入れたシーケンスでは、この情報はサーバ装置30がステップS122の結果通知を行うまで証明書管理装置10には伝わらない。
そこで、図11に破線で示したように、サーバ装置30が、クライアント装置40からの受信応答があった後、送信の成否のみを送信結果通知として証明書管理装置10へ通知するようにしてもよい。このようにすれば、クライアント装置40への送信の成否を速やかに証明書管理装置10に伝えることができる。
また、ここでは、図10及び図11に、それぞれ図8及び図7のシーケンスの変形例を示したのみであるが、以上のような考え方は、以降の実施例及び変形例に示すものも含め、全ての処理及びシーケンスに適用可能なものである。
図8のステップS129及びS130の説明において上述したように、サーバ装置30については公開鍵証明書を同時に2つ記憶させると不都合が生じるので、新サーバ公開鍵証明書を記憶させる際には従前のものを廃棄する必要があるのであるが、このような書き換えを行ってしまっても、クライアント装置40に新ルート鍵を記憶させた後であれば、認証処理に支障が生じることがない。
そして、オーバーヘッドが生じないようにするためには、サーバ装置30及びクライアント装置40の両方に新ルート鍵を記憶させた後でサーバ装置30及びクライアント装置40のそれぞれに新公開鍵証明書を記憶させ、さらにこれが完了した後でそれぞれの従前のルート鍵や公開鍵証明書を廃棄させることも考えられる。しかし、このようにすると、証明書管理装置10からサーバ装置30(あるいはサーバ装置30を介してクライアント装置40)に計6回の要求送信が必要になる。
また、処理1や処理2において、各証明書について正当性を確認した後で必要なものを一括して記憶するようにすれば、証明書を記憶する不揮発メモリへのアクセス回数を低減し、処理負荷を低減すると共に処理を高速化することができる。
さらにまた、ルート鍵を使用する際に、デジタル署名の確認を行わないようにすることもできるが、この場合にも、新ルート鍵証明書を別途送信する必要はなく、不要なルート鍵証明書の廃棄の際には従前のルート鍵証明書のみを廃棄すればよい。
次に、上述した第1の実施形態の変形例について説明する。
この変形例は、各1つのクライアント及びサーバによってクライアント・サーバシステムを構成する点は上述した第1の実施形態の場合と同様であるが、証明書管理装置10の直接の通信相手となる装置がクライアント装置40である点が第1の実施形態の場合と異なる。
この変形例のデジタル証明書管理システムを構成する各装置の機能構成を、図2と対応する図12の機能ブロック図に示す。この図において、図2と対応する部分には同一の符号を付している。
従って、詳細な処理シーケンスの図示は省略するが、この変形例の構成においても、上述した第1の実施形態の場合と同様に、サーバ装置30とクライアント装置40との間の認証処理に大きな影響を与えることなく、ルート鍵を自動制御で更新することができ、クライアント・サーバシステムにおけるSSLによる認証処理を、低コストで運用することができる。
次に、この発明によるデジタル証明書管理装置である証明書管理装置と、クライアント・サーバシステムを構成するクライアント装置及びサーバ装置とによって構成される、この発明のデジタル証明書管理システムの第2の実施形態の構成について説明する。
このデジタル証明書管理システムにおいては、図13に示すように、クライアント・サーバシステムを、上位ノードが下位ノードを従える形式で複数段に亘って構成している。すなわち、証明書管理装置の直接の通信相手となるノードOが最上位ノードであり、そのノードOの通信相手となるノードXとノードYがその下位に位置し、ノードXの通信相手となるノードAとノードBがその下位に位置し、ノードYの通信相手となるノードCとノードDがその下位に位置し、といったように、O,X,Y,A,B,C,Dの7つのノードによってクライアント・サーバシステムを構成している。
なおここでは、ノードO以外は、図に矢印で示したノード間以外では直接通信を行うことができないように認証処理の基準を設定してあるものとする。ただし、各ノードは、直接の通信相手とはならないノードや証明書管理装置10との通信を、間にある各ノードに仲介させて行うことができ、またこのような仲介を行うことができる。
このようなクライアント・サーバシステムにおいて、各ノードは、通信相手と通信を行う際、クライアントとサーバのいずれか一方として機能する。第1の実施形態で説明したとおり、クライアントは通信に際して接続要求を発する側、サーバはそれに対して応答を返す側である。
なおここでは、クライアントから接続要求があった場合に認証処理を行うために1つの公開鍵証明書をそのクライアントに返す構成単位が、1つのサーバであると考える。例えば共通のハードウェアをバーチャルサーバ等の機能を利用して複数のサーバとして機能させ、その各サーバについて異なった公開鍵証明書を用いるようにすることも考えられるが、このような場合には使用する公開鍵証明書毎に別々のサーバであるものと考え、同じハードウェアが複数のノードとして機能しているものとして取り扱う。
また、図13に示す構成には含まれていないが、どのノードと通信する場合もクライアントとして機能したり、どのノードと通信する場合もサーバとして機能したりというように、サーバとクライアントの一方のみとして機能するノードもありうる。
しかし、この実施形態においては、後述するように更新手順を決定する際、あるノードが同じ通信相手と通信する際の機能は、一意に定まっている必要がある。従って、上記のような場合には、機能の一方を自動又は手動で選択し、その一方の機能のみで通信を行うものとして取り扱ってルート鍵更新処理を行う必要がある。この場合、上位ノードがクライアントとなる方の機能を選択することが好ましい。後述のように、クライアントからサーバへは通信要求を待つことなくデータを送信することができるので、証明書管理装置10から対象ノードへ要求を送信する際に、通信要求待ちによる時間のロスを低減することができるためである。
そこで、このようにノードの機能が入れ替わる場合を考慮すると説明が複雑になることも鑑み、以後はこのような場合を考慮せずに説明を行うが、この発明は上記のように場合によって機能が入れ替わるノードがある場合にも適用可能であることは強調しておく。
いずれにせよ、各ノードは通信が行う際には、一方がサーバとして機能する場合には他方はクライアントとして機能し、逆もまた然りである。
ただし、最上位ノードが下位ノードとの関係でクライアントのみとして機能する場合でも、第1の実施形態の変形例で図12を用いて説明したクライアント装置40と同様、証明書管理装置10との通信においてはサーバとして機能する。サーバとクライアントの両方として機能するノードについても、概ね図12に示したクライアント装置40と同様な機能を有するが、証明書管理装置10以外のノードとの通信においてもサーバ機能部44を用いる点、クライアント機能部43も証明書等を受信して証明書記憶部41に記憶させる動作を行う場合もある点が変形例の場合と異なる。
ここで、「通信相手」とは、図13に矢印で示したように、認証処理を行った上で通信を行う相手を指すものとする。そして、「リンク」とは、あるノードとそのノードの通信相手となる他のノードとの間の通信経路を指すものとし、ここでは通信相手となるノードのID及びその通信相手と通信する際にクライアントとサーバのいずれとして機能するかを示す情報によってその内容が示される。
これらの情報が、構成情報である。
なお、「ノード状態」及び「リンク状態」は、後述するこの発明の更新順決定方法に係る処理において使用する情報であり、処理の進行に従って順次書き換え、処理の進行状況を示すために用いる。そして、「ノード状態」は、その情報を持つノードについての処理がどの程度進んだかを示す情報であり、「未処理」、「追加済」、「注目済」の状態を有し、通常はこの順に変化する。また、「リンク状態」は、その情報を持つノードからリンクの先の下位ノードを辿る処理がどの程度進んだかを示す情報であり、「未処理」、「処理待ち」、「処理済」の状態を有し、通常はこの順に変化する。これらの情報についてのより詳細な説明は、更新順決定処理の説明と共に後述する。
すなわち、ノードOについては、(a)に示すようにノードIDとして「ノードO」を記憶し、証明書管理装置10の直接の通信相手となるので世代数として「1」を記憶している。そして、通信相手となる下位ノードの情報として、ノードXとノードYの情報をそれぞれ記憶している。また、ノードXと通信する際にノードOはクライアントとして機能するのでその旨を記憶し、使用するルート鍵の情報としてはここでは「ルート鍵A」を記憶している。また、ノードYと通信する際にノードOはサーバとして機能するのでその旨を記憶し、使用するルート鍵の情報としてはこちらも「ルート鍵A」を記憶している。
上位ノードの情報も記憶するようにすれば、対象ノードについての情報を参照するのみでそのノードの通信相手となる全てのノードを知ることができるが、下位ノードの情報のみを記憶するようにすることにより、情報の記憶容量を抑えることができる。しかし、どちらの形態を取るにせよ、各ノードの通信相手及びその通信相手との間でクライアントとサーバのいずれとして機能するかの情報は記憶できているので、これを参照して後述のように証明鍵の更新手順を定めることができる。
また、場合によってはノード毎に認証処理に用いるルート鍵が異なる場合も考えられるが、この場合には、共通のルート鍵を使用するグループ毎に更新処理を行うものとする。すなわち、後述するものも含め、第1乃至第3の実施形態及びそれらの変形例をグループ毎に適用することにより、グループ毎に独立して更新処理を行うことができる。
図16には、1つの例として、最上位ノードPから最下位ノードTまでの5つのノードによって構成されるクライアント・サーバシステムにおいて、証明書管理装置10から最下位ノードTに対して要求を送信し、その要求に対応する処理を実行させて応答を受け取るまでの処理シーケンスを示している。各ノードが他のノードと通信する場合にクライアントとサーバのいずれとして機能するかは、ノード名の下側にC又はSの符号で示している。そしてこの処理は、証明書管理装置10及び各ノードのCPUが、所要の制御プログラムを実行することによって行うものである。
ノードT宛要求送信要求を受け取ったノードPは、処理内容や通信経路から判断して短時間で応答が返せないと判断した場合には、証明書管理装置10に対して応答遅延通知を返して通信を切断する(S202)。短時間で応答が返せると判断した場合にはそのまま次に進む。そして、ノードTまでの通信パスを辿り、次のノードQに対してノードT宛要求送信要求を送信する(S203)。ノードPはノードQと通信する場合にはクライアントとして機能するので、自分から通信を要求してこの送信を行うことができる。
ノードRも同様に、必要な場合に応答遅延通知を返し(S206)、ノードTまでの通信パスを辿って次のノードSに対してノードT宛要求送信要求を送信する。しかし、ノードRはノードSと通信する場合にはサーバとして機能するので、図7のステップS113及びS114の場合のように、ノードSからの通信要求(S207)を待ち、これに対する応答として送信するようにする(S208)。
ノードTは、この要求を受け取ると、ステップS210でそれに対応する処理(デジタル証明書の更新等)を行い、応答を返す(S211)。要求には送信元の情報が含まれており、ノードTは応答を証明書管理装置10に返すべきことは認識できるので、応答の送信先として証明書管理装置10を指定し、まず上位ノードであるノードSに送信する。そして、ノードSはこれをさらに上位のノードRに送信する(S212)。
以上の処理により、証明書管理装置10は、最下位のノードTに対して要求を送信して動作を行わせ、応答を受け取ってその動作の成否を知ることができる。
ここでは説明を簡単にするために各ノードが1つ(又は0)の下位ノードを有する場合の例について説明したが、図13に示した例の場合のように、下位ノードを複数有するノードが存在する場合であっても、動作要求の送信先を1つのノードに定めれば、ノードを順に辿る送信パスを定めることができ、以後は図16を用いて説明した例と同様に処理を行うことができる。
この処理は、第1の実施形態で図6を用いて説明した処理Sを実行した後、図17,図18に示す処理11,12を後述する順番で実行するものである。そこで、まず図17及び図18の各シーケンス図に示す処理の内容を説明してから、図19を用いてその実行順について説明する。そしてこれらの処理は、証明書管理装置10及び各ノードのCPUが、所要の制御プログラムを実行することによって行うものである。
この処理においてはまずステップS311で、証明書管理装置10が、対象ノードに対して発行してある公開鍵に新ルート私有鍵を用いたデジタル署名を付して新公開鍵証明書を作成する。なお新ルート私有鍵は、図6のステップS101で作成したものを用いるものとする。また、対象ノードの私有鍵は更新しないので、公開鍵自体は更新する必要はない。
そして、対象ノードまでの通信パスに当たる各ノードは、図16を用いて説明したような手順で順次送信要求を伝えていく。この要求が対象ノードのすぐ上位のノードまで到達すると、そのノードは、送信要求に係る各証明書と更新要求とを対象ノードに送信する(S314)。この場合において、送信元が対象ノードとの関係においてサーバとして機能する場合には、対象ノードからの通信要求(S313)に対する応答として送信する。
以上の処理により、証明書管理装置10から対象ノードに(もしあれば)上位のノードを介して上記の各証明書とそれらについての更新要求とが送信されることになり、ステップS312が送信手順の処理であり、この処理の処理においては、証明書管理装置10のCPU11が送信手段として機能する。
そしてさらにステップS317で、図7のステップS117の場合と同様に、記憶した配布用ルート鍵証明書を用いて新ルート鍵証明書の正当性を確認する。そして、これが確認できると、次のステップS318で新ルート鍵証明書を証明書記憶部に記憶する。この時点で配布用ルート鍵は消去してしまってもよいが、ここでは記憶したままとする。
ところで、ステップS320で新公開鍵証明書を記憶する際の従前の公開鍵証明書の扱いは、対象ノードの機能によって異なり、表1に示す通りである。
一方、サーバのみとして機能する場合には、ステップS320において従前の公開鍵証明書を廃棄する。図8のステップS130の説明において述べたように、サーバは常に同一の公開鍵証明書をクライアントに送信する必要があるためである。
なお、ステップS319及びS320の処理を、ステップS317及びS318の処理より前に行うようにしてもよい。この場合には、ステップS319における正当性の確認は、配布用ルート鍵証明書を用いて行うことになる。
以上が各ノードの証明書記憶処理である。
ここではまずステップS331で、証明書管理装置10が最上位のノードに対して、不要になったデジタル証明書の廃棄を求める旧鍵廃棄要求を対象ノードに送信するよう要求する旧鍵廃棄要求送信要求を送信する。そして、対象ノードまでの通信パスに当たる各ノードは、図16を用いて説明したような手順で順次送信要求を伝えていく。この要求が対象ノードのすぐ上位のノードまで到達すると、そのノードは、旧鍵廃棄要求を対象ノードに送信する(S333)。この場合において、送信元が対象ノードとの関係においてサーバとして機能する場合には、対象ノードからの通信要求(S332)に対する応答として送信する。
なお、対象ノードが最上位のノードである場合には、証明書管理装置10からそのノードに対して旧鍵廃棄要求を直接送信する。
以上の処理により、証明書管理装置10から対象ノードに(もしあれば)上位のノードを介して上記の旧鍵廃棄要求が送信されることになる。
対象ノードはその後、ステップS335で、証明書管理装置10に対して更新要求に対する応答として結果通知を返すが、これは上位の各ノードを介して証明書管理装置10に送信される(S336)。ただし、対象ノードが最上位のノードである場合には、直接証明書管理装置10に送信する。
以上が各ノードの旧鍵廃棄処理である。
サーバとして機能する場合には、新公開鍵証明書を記憶させた時点で従前の公開鍵証明書を認証処理に使用しないようにすることは上述したが、この処理を、通信相手のクライアントに新ルート鍵(新ルート鍵証明書あるいは配布用ルート鍵証明書)を記憶させる前に行うと、認証処理が行えなくなってしまう。
ただし、上記の条件を満たすのであれば、前のノードについての処理が完了するまで次のノードについての処理の開始を待つことは、必須ではない。また、図17のステップS311の新公開鍵証明書の作成処理を、ステップS312の送信処理の直前で行うことは必須ではなく、新公開鍵証明書が送信処理の前に用意できていればよい。例えば、処理Sで各ノードに送信すべき新公開鍵証明書を全て作成してしまってもよい。
このような更新手順は、証明書管理装置10の更新順制御部27が構成記憶部26に記憶している構成情報をもとに作成して管理する。そして、この更新手順の作成は、この発明の更新手順決定方法に係る処理である。
この処理においては、まずステップS401で初期化処理を行い、構成記憶部26に記憶している情報を参照して最上位のノードを特定すると共に、その他のノードについての世代数の情報をクリアし、さらに全てのノードおよびリンクについて、状態を「未処理」に設定する。また、最上位ノードの特定は、自身が直接通信する装置が最上位ノードであるとして行うことができる。
そして、処理11の実行順を格納する作業リストと、作業リストを作成する際の注目ノードを決めるための後述する注目点リストも初期化する。新たに空のリストを作成してもよい。
そして、ステップS402で最上位ノードを注目ノードとすると共に作業リストに追加し、そのノード状態を「注目済」に設定する。この「注目済」は、そのノードが既に注目ノードになったことを示すデータである。
ステップS404では、ステップS403で選択したリンクについて、そのリンク先の下位ノードについての情報を参照し、その下位ノードのノード状態が「未処理」であるか否か判断する。そして、「未処理」であればステップS405に進み、その下位ノードの世代数を注目ノードの世代数+1に設定する。
ここで、「処理待ち」は、リンクを辿ってその先の下位ノードを作業リストに追加したが、後で下位ノードを注目ノードとするためにもう一度そのリンクを辿る必要があることを示す情報である。また、「追加済」は、そのノードが既に作業リストに追加されたことを示す情報である。
ステップS410の終了後は、ステップS403に戻って処理を繰り返す。
また、ステップS404の判断がNOの場合には、ステップS411に進んでリンク状態を「処理済」に設定し、ステップS403に戻って処理を繰り返す。ここで、「処理済」は、もはやそのリンクを辿る必要がないということを示す情報である。
以上の処理を繰り返し、注目ノードについてリンク状態が「未処理」のリンクがなくなるか、初めからこのようなリンクがない場合、ステップS403の判断がNOになり、図21のステップS412に進む。
ここで、注目点リストは、後でリンクを参照して下位ノードを辿ったり、注目ノードにしたりする必要があるノードのデータをスタックしておくリストであり、注目ノードに下位ノードがない場合には、そのノードの下位には作業リストに追加すべきノードがなく、もはやそのノードの情報を参照する必要がないため、注目点リストには追加しないのである。
次のステップS414では、注目点リストにノードがあるか否か判断する。そして、あればステップS415に進み、注目点リストから前端のノードを削除し、そのノードの情報を参照する。
一方、ステップS416で「注目済」であった場合には、そのノードは既に注目ノードになっているので、もう一度注目ノードに定めることなく、ステップS417に進む。そして、そのノードについてリンク状態が「処理済」でないリンクを検索し、このようなリンクを発見したか否か判断する。
ここで、ステップS419で作業リストに追加されるノードは、図20のステップS409でリンク状態が「処理待ち」に設定されたリンクの先の下位ノード、すなわち、ステップS410でノード状態が「追加済」に設定され、まだ注目ノードになっていない下位ノードである。従って、このノードが注目点リストの前端にあってステップS415で参照される場合には、ステップS416の判断は常にNOになり、注目ノードがこのノードに変更されることになる。
この場合、ステップS415で初めに削除された注目点リストの前端のノードは、ステップS418で元通り前端に追加され、ステップS419で前端に追加された下位ノードはステップS414に戻ってからの次のステップS415で削除されるので、実質的に注目点リストの内容は変化しない。従ってその後のステップS420までで、注目点リストの前端のノードの下位ノードでまだ注目ノードになっていないノードがあった場合に注目ノードをそのノードに変更する処理を行ったことになる。
以上の処理を繰り返し、全てのノードが注目ノードになると注目点リストが空になるので、この場合にステップS414の判断がNOになり、全てのノードが注目ノードになったと判断して処理を終了する。
以上の処理により、上述した条件を満たす処理11の実行順を作業リストとして作成することができる。
なお、上述した処理において、世代数に係る処理は必須ではない。
作業リストの作成を行う場合には、まず図20のステップS401において、初期化処理を行う。構成情報から最上位ノードはノードOと特定され、各ノードについての情報の初期状態は、図15に示した状態から最上位ノードであるノードO以外の世代数の情報を消去したものである。そして、ステップS402でこのノードを注目ノードとし、作業リストに追加すると共にノード状態を「注目済」に設定する。そしてステップS403では、リンク状態が「未処理」のリンクがあるのでまずノードXへのリンクを選択して次に進む。
そしてステップS403に戻るが、まだノードYへのリンクが「未処理」であるので、今度はこのリンクについて同様な処理を行う。ただし、ノードOはノードYと通信する際にサーバとして機能するのでノードYはステップS408で作業リストの前端に追加する。
次に、ステップS414では注目点リストにノードがあるので、ステップS415に進み、前端のノードOをリストから削除してノードOの情報を参照する。そして、ノードOのノード状態は図22に示したように「注目済」であるので、ステップS416からS417に進む。また、ノードX,Yのどちらへのリンクも「処理済」でないので、ステップS418に進んで、ステップS415から参照中のノードOを注目点リストの前端に追加する。ステップS419ではノードXへのリンクについて処理を行うとすると、ノードXを注目点リストの前端に追加すると共にそのリンクのリンク状態を「処理済」に設定する。
そして、図20のステップS403に戻って処理を繰り返し、ノードXの下位ノードであるノードAとノードBを作業リストに追加すると共にこれらのノードへのリンクのリンク状態を「処理待ち」とし、これらのノードのノード状態を「追加済」とする。このとき、ノードXはノードAと通信する際にはクライアントとして機能するのでノードAは作業リストの後端に追加し、ノードXはノードBと通信する際にはサーバとして機能するのでノードBは作業リストの前端に追加する。これらの処理が完了し、注目ノードであるノードXに「未処理」のリンクがなくなると、再度ステップS403から図21のステップS412に進む。そして、ノードXには下位ノードがあるので、ステップS413で注目点リストの後端にノードXを追加する。
ここまでの処理で、ノードOについての情報は図28に示すように変更され、他のノードについての情報は図26の時点から変化していない。作業リストと注目点リストはそれぞれ図29に示す内容となっている。
そして、図20のステップS403に戻って処理を繰り返し、ノードYの下位ノードであるノードCとノードDを作業リストに追加すると共にこれらのノードへのリンクのリンク状態を「処理待ち」とし、これらのノードのノード状態を「追加済」とする。このとき、ノードYはノードCと通信する際にはクライアントとして機能するのでノードCは作業リストの後端に追加し、ノードYはノードDと通信する際にはサーバとして機能するのでノードDは作業リストの前端に追加する。これらの処理が完了し、注目ノードであるノードYに「未処理」のリンクがなくなると、再度ステップS403から図21のステップS412に進む。そして、ノードYには下位ノードがあるので、ステップS413で注目点リストの後端にノードYを追加する。
ここまでの処理で、ノードXについての情報は図33に示すように変更され、他のノードについての情報は図30の時点から変化していない。作業リストと注目点リストはそれぞれ図34に示す内容となっている。
そして、図20のステップS403に戻るが、ノードAにはそもそも下位ノードへのリンクがないので、そのままステップS412に進む。そして、ノードAには下位ノードがないので、注目点リストに追加することなくステップS414に進む。
ここまでの処理で、ノードAについての情報は図35に示すように変更され、他のノードについての情報は図33の時点から変化していない。作業リストと注目点リストはそれぞれ図36に示す内容となる。
以後、注目点リストが空になるまで同様に処理を繰り返すが、これ以後は作業リストに追加するノードはなく、このことを確認するための処理である。
図36に示した時点の後には、前端のノードXについてノードBへのリンクが「処理済」になっていないので、ノードXとノードBを注目点リストの前端に追加し(1)、ノードBが次の注目ノードとなる。しかしノードBには下位ノードはないのでそのままステップS414に戻ってくる(2)。そして、再度ノードXについてステップS415以下の処理を行うが、もう「処理済」でないリンクはないので、やはりそのままステップS414に戻ってくる(3)。
以上により作業リストが完成する。この状態では、各ノードについての情報はそれぞれ図38(a)〜(g)に示すようになっており、全てのノードのノード状態が「注目済」、全てのリンクのリンク状態が「処理済」になっている。また、作業リスト及び注目点リストは図39に示す内容となっており、作業リストは図36に示す状態から変化していないが、注目点リストは空になっている。
従って、処理11の実行順は、この完成した作業リストの通りD→B→Y→O→X→A→Cの順となる。そしてこの順は、サーバとして機能するノードについての処理を、そのノードの通信相手となる際にクライアントとして機能するノードの全てについて処理が完了してから行うという条件を満たす。
このような順番で注目ノードを変更できるのは、図21のステップS413で注目ノードを注目点リストの後端に追加し、注目ノードの下位ノードよりも、その上位ノードから見た別の下位ノードを先に次の注目ノードにして探索するようにしているためである。そして、この処理を繰り返すうちに注目ノードと同世代のノードが注目点リストに蓄積され、同世代の全てのノードが注目ノードになった後に、次世代のノードを順次探索して注目ノードにすることができるのである。
なお、処理12については、必ずしも全てのノードについて処理11が終了していなくても、少なくとも対象ノード及びそのノードの通信相手となる全てのノードについて処理11が完了していれば、開始して構わない。通信相手となる全てのノードに新ルート鍵及び新公開鍵証明書が記憶されていれば、もはや認証処理に従前のルート鍵や公開鍵証明書は不要だからである。
従って、このようなデジタル証明書管理システムを用いることにより、ルート鍵更新用の特別な通信経路を用意せずにルート鍵を更新することができるので、通信に際してSSLによる認証処理を行うクライアント・サーバシステムを、低コストで運用することができる。
また、この実施形態は、クライアント・サーバシステムの構成が図13に示すものである場合に限らず、上位ノードが下位ノードを従える形式で複数段に亘って構成される場合には、ノード数や各ノードのクライアント/サーバの機能の別によらずに適用することができる。図14に示すような形式で各ノードについての情報を記憶しておけば、どのような構成であってもこれを参照して図20及び図21に示す処理によって適切な更新手順を定めることができ、それに従って更新処理を行うことにより、各ノードの間の認証処理に大きな影響を与えることなく、ルート鍵を自動制御で更新することができる。これは後述の変形例及び第3の実施形態の場合も同様である。
次に、上述した第2の実施形態の変形例について説明する。
まず、図21のフローチャートに示した処理において、ステップS417とステップS418の間に図40に示すようにステップS421の処理を追加すると、更新順決定の処理におけるループ回数を低減することができる。
具体的には、ステップS417で探索した結果、リンク状態が「処理済」でないリンクを1つだけ発見した場合に、参照中のノードを注目点リストに追加せずにステップS421からステップS419に進むようにするのである。このような場合には、ステップS419でリンクのリンク状態を「処理済」にすると、参照中のノードにリンク状態が「処理済」でないリンクがなくなることになり、再度同じノードを参照する必要がないためである。
このような場合、初めにステップS415で注目点リストから前端のノードを削除してそのノードの情報を参照した後、その下位ノードのみを注目点リストに追加し、その後ステップS414に戻ってからの次のステップS415ではこの下位ノードを削除してしまうので、結果的には注目ノードをその下位ノードに変更する際に注目点リストの前端のノードを注目点リストから削除する処理を行うことになる。
この部分の処理において、図36に示した状態の後に前端のノードXについてステップS416以降の処理を行う際には、「処理済」でないリンクはノードBへのもののみであるので、ノードBのみを注目点リストの前端に追加し、ノードXは追加しない(1)。ノードBが次の注目ノードとなる点は図37の場合と同じであるが、下位ノードがなく処理がステップS414に戻った際には、注目点リストにはノードYのみが含まれることになる(2)。そして、次はノードYについてステップS415以下の処理を行って、リンク状態が「処理待ち」であるリンクの先のノードCを次の注目ノードとするが(3,4)、やはり下位ノードがないのでそのままステップS414に戻ってくる。
このように、変形例を適用することにより、ステップS414以下の処理を8回繰り返していたところが6回で済むようになり、処理を短縮して更新順決定の処理負荷を低減することができる。
すなわち、初めに最上位ノードを作業リストに追加した時点(1)と、最上位ノードを注目ノードとしてその下位ノードを作業リストに追加した時点(2)では上述の場合と変わらないが、その後ノードXを注目ノードとしてその下位ノードを作業リストに追加した時点(3)と、さらにその後ノードYを注目ノードとしてその下位ノードを作業リストに追加した時点(4)の作業リストは、図27や図31に示したものとは異なる。その後ノードA〜Dが注目ノードになった場合でも、新たなノードが作業リストに追加されることはないので、最終的に完成する作業リストも図42(4)に示すものである。
また、注目点リストについては、このようなリストを作成することは必須の要件ではなく、何らかの処理によって上述した順序で注目ノードを変更できるようにすればよい。そしてこのような処理は、例えば処理の再帰呼び出し等を用いて実現することもできる。また、作業リストについても、リストの形式で作成することは必須の要件ではなく、証明書管理装置10が各ノードに対する送信手順の実行順を認識できる形式であればよい。
次に、この発明によるデジタル証明書管理装置である証明書管理装置と、クライアント・サーバシステムを構成するクライアント装置及びサーバ装置とによって構成される、この発明のデジタル証明書管理システムの第3の実施形態の構成について説明する。
このデジタル証明書管理システムは、クライアント・サーバシステムや証明書管理装置の構成については第2の実施形態の場合と同様であり、作業リストの作成手順が第2の実施形態の場合と異なるのみであるので、この点についてのみ説明する。この実施形態における更新手順も、証明書管理装置10の更新順制御部27が構成記憶部26に記憶している構成情報をもとに作成して管理し、この更新手順の作成も、この発明の更新手順決定方法に係る処理である。
ステップS422については、注目ノードに下位ノードがある場合に注目ノードを注目点リストに追加する位置を、後端ではなく前端にした点が、第2の実施形態の場合と異なる。第3の実施形態における処理は、第2の実施形態の場合とほぼ同じなのであるが、このようにしたことより、更新手順を作成する際の注目ノードの変更順が大きく異なるのである。この点について、以下にこの実施形態における作業リストの作成例を用いて説明する。
この実施形態においても、クライアント・サーバシステムの構成は図13に示したものであり、各ノードについての情報の初期状態は、第2の実施形態の場合と同様である。そして、作業リストの作成を行う場合には、図20のステップS401から処理を開始する。その後、初めに最上位のノードOを注目ノードとしてその下位のノードX,Yを作業リストに追加し、続いてノードXを注目ノードとしてその下位ノードのノードA,Bを作業リストに追加するまでの処理は、第2の実施形態の場合と同様である。そしてこの時点では、ノードOについての情報は図24に示した通りに、ノードX,A,Bについての情報は図26に示した通りに、ノードYについての情報は図22(c)に示した通りになっている。
ここまでの処理で、ノードXについての情報は図45に示すように変更され、他のノードについての情報は図26の時点から変化していない。作業リストと注目点リストはそれぞれ図46に示す内容となっている。
ノードXのノード状態は図45に示したように「注目済」であるので、ステップS416からS417に進む。そして、「処理済」でないリンクはノードBへの1つのみあるので、ステップS421からS418は飛ばしてステップS419に進み、ノードBを注目点リストの前端に追加すると共にそのリンクのリンク状態を「処理済」に設定する。ここまでの処理で、注目点リストは図47(2)に示す内容となる。作業リストは図46に示した状態から変化していない。
そして、次はこのノードBが注目ノードとなるが、ノードBにも下位ノードへのリンクがないので、ステップS403からそのままステップS412に戻ってくる。そして、ノードBを注目点リストに追加することなくステップS414に進む。ここまでの処理で、注目点リストは図47(3)に示す内容となる。
そして、ノードOのノード状態は図24に示したように「注目済」であるので、ステップS416からS417に進み、「処理済」でないリンクはノードYへの1つのみあるので、ステップS421からS418は飛ばしてステップS419に進み、ノードYを注目点リストの前端に追加すると共にそのリンクのリンク状態を「処理済」に設定する。ここまでの処理で、注目点リストは図47(4)に示す内容となる。
これで全てのノードが作業リストに追加されたことになるが、処理中にはこのことはわからないため、以後、注目点リストが空になるまで同様に処理を繰り返す。そして、以後の注目点リストの変化は図49に示すようになる。図49には、処理がステップS414に達する毎に、その時点の注目点リストの状態を示している。
この場合において、第2の実施形態のようにステップS421の処理を行わないようにしてもよいし、その他第2の実施形態の場合と同様な変形を適用することができる。
上述した第2及び第3の実施形態のデジタル証明書管理システムの説明においては、クライアント・サーバシステムの構成が図13に示したものである場合について説明したため、両者の実施形態の処理によって作成した作業リストも同じものになったし、処理中における注目点リストの長さも同程度であった。しかし、クライアント・サーバシステムの構成が複雑になった場合、これらの処理は異なった結果をもたらし、それによって異なった効果を生じる。
この処理の流れは、図51及び図52に示している。これらの図には、処理中の注目点リスト及び作業リストの内容と注目ノードとを順を追って示しており、ステップS301は図20のステップS402の時点の状態、以降のステップは処理が図21のステップS414に達する度にその時点の状態を示している。また、注目点リスト及び作業リストにおいて、アルファベットの一文字が1つのノードを表わし(例えば「A」はノードA)、下線を付した文字は前のステップの時点と比べて追加されている情報を、小文字は前のステップの時点と比べて削除されている情報を示す。
これらの図からわかるように、第3の実施形態で説明した処理を行う場合には、注目ノードはO→X→A→E→F→B→G→Y→C→H→D→I→Jの順で変化する。従って、まず下位ノードを順に辿って注目ノードとし、最下位ノードに達した場合に上位ノードに戻ってまだ注目ノードになっていない別の下位ノードを注目ノードとしていることになる。そして、このようにするため、下位ノードを順に辿って注目ノードに定めている時点では、その辿った経路を注目点リストに蓄積していき、後でそこに戻って下位ノードを参照するようにしている。従って、注目点リストの最大長は、最下位ノードの世代数程度となる。
以上説明した各実施形態では、クライアント装置40とサーバ装置30あるいは各ノードが、図4又は図5を用いて説明したようなSSLによる認証処理を行う場合の例について説明した。しかし、この認証処理が必ずしもこのようなものでなくてもこの実施形態は効果を発揮する。
SSLを改良したTLS(Transport Layer Security)も知られているが、このプロトコルに基づく認証処理を行う場合にも当然適用可能である。
さらに、上述した各実施形態では、証明書管理装置10が証明鍵やデジタル証明書を自ら作成してこれを取得する例について説明したが、図2及び図12に示した証明用鍵作成部21や証明書発行部22の機能を証明書管理装置10とは別の装置に設け、証明書管理装置10がその装置から証明鍵やデジタル証明書の供給を受けてこれらを取得するようにしてもよい。
このようにするには、図55に示すように、クライアント装置40(最上位のノード)に、サーバ装置30(下位ノード)との認証処理に用いるクライアント私有鍵、クライアント公開鍵証明書及びルート鍵証明書(実施形態において説明したもの)とは別に、もう一組の私有鍵、公開鍵証明書及びルート鍵証明書(「第2のクライアント私有鍵」、「第2のクライアント公開鍵証明書」及び「第2のルート鍵証明書」と呼ぶ)を記憶させ、証明書管理装置10との認証処理にこれらを用いるようにすればよい。
このようにすれば、証明書管理装置10とクライアント装置40との間の認証処理と、クライアント装置40とサーバ装置30との間の認証処理とを、全く独立して行うことができる。
このような場合において、証明書管理装置10からの要求に応じてクライアント装置40とサーバ装置30との間の認証処理に用いるルート鍵証明書や公開鍵証明書を更新したとしても、証明書管理装置10とクライアント装置40との間の認証処理には全く影響がない。
なお、第2のルート鍵証明書を更新しようとする場合には、証明書管理装置10をクライアント、クライアント装置40をサーバとして、上述したいずれかの実施形態の手順に従って更新処理を行えばよい。このような更新処理を行っても、クライアント装置40とサーバ装置30との間の認証処理には全く影響がない。
すなわち、クライアントのみとして機能するノードについて、図19に示した証明書記憶処理として、図17に示した処理11に代えて、以下の図56に示す処理11′又は図57に示す処理11″を行うようにすればよい。
このような処理を行うことにより、クライアントのみとして機能するノードに新ルート鍵証明書を送信して記憶させることができる。
このような処理を採用した場合、証明書管理装置10及び上位のノードにおける処理は対象ノードがサーバのみとして機能したりクライアントとサーバの両方として機能したりする場合と共通化できる。従って、新公開鍵証明書を無駄に作成/送信することにはなるが、更新処理手順の管理は単純化することができる。
第1の実施形態についても同様にこのような変形を適用可能であることは、いうまでもない。
また、この発明によるプログラムは、クライアント・サーバシステムを構成する複数の装置とネットワークを介して直接的又は間接的に通信可能なコンピュータに、クライアント・サーバシステムの各ノードの間で認証処理に使用するデジタル証明書の正当性を確認するために用いる証明鍵を更新する機能を実現させるためのプログラムであって、構成情報を記憶し、これをもとに上述の各実施形態で説明したような処理を実行して証明鍵の更新手順を定める機能を実現させるためのプログラムであり、このようなプログラムをコンピュータに実行させることにより、上述したような効果を得ることができる。
さらに、ネットワークに接続され、プログラムを記録した記録媒体を備える外部機器あるいはプログラムを記憶手段に記憶した外部機器からダウンロードして実行させることも可能である。
従って、この発明を、クライアント・サーバシステムにおいて認証処理に使用する証明書の管理に適用することにより、安全に認証用公開鍵の更新が可能なシステムを安価に提供することができる。
12:ROM 13:RAM
14:HDD 15:通信I/F
16:システムバス 21:証明用鍵作成部
22:証明書発行部 23:証明書管理部
24:証明書更新部 25,32,42:通信機能部
30:サーバ装置 31,41:証明書記憶部
33,44:サーバ機能部 40:クライアント装置
43:クライアント機能部
Claims (19)
- 上位ノードが下位ノードを従える形式で複数段に亘って構成したクライアント・サーバシステムの各ノードに記憶させ、その各ノードの間で認証に使用するデジタル証明書の正当性を確認するために用いる証明鍵を、前記各ノードと通信可能なデジタル証明書管理装置によって更新する際の更新手順を定める更新手順決定方法であって、
前記デジタル証明書管理装置が、
前記クライアント・サーバシステムを構成する各ノードについての、該ノードの通信相手及び該通信相手との間でクライアントとサーバのいずれとして機能するかの情報をもとに、前記更新手順を、更新用の新証明鍵及び/又は、該新証明鍵を用いて正当性を確認可能な、対象のノードが前記認証に使用するための新デジタル証明書を、ノード毎に同時に送信する送信手順を含むよう定め、
その際に、前記各ノードに対する前記送信手順の実行順を作成する手順を実行し、該手順において、
まずいずれかのノードを前記実行順に追加し、その後、そのノードから始めて前記クライアント・サーバシステムを構成する各ノードを順次注目ノードとし、該注目ノードの通信相手となるノードであって前記実行順に追加されていないノードが存在する場合、その通信相手のそれぞれについて、前記注目ノードがその通信相手と通信とする際にクライアントとサーバのいずれとして機能するかを判断し、クライアントであればその通信相手を前記実行順のうち前記注目ノードよりも後に追加し、サーバであればその通信相手を前記実行順のうち前記注目ノードよりも前に追加するようにしたことを特徴とする更新手順決定方法。 - 上位ノードが下位ノードを従える形式で複数段に亘って構成したクライアント・サーバシステムの各ノードに記憶させ、その各ノードの間で認証に使用するデジタル証明書の正当性を確認するために用いる証明鍵を、前記各ノードと通信可能なデジタル証明書管理装置によって更新する際の更新手順を定める更新手順決定方法であって、
前記デジタル証明書管理装置が、
前記クライアント・サーバシステムを構成する各ノードについての、該ノードの通信相手及び該通信相手との間でクライアントとサーバのいずれとして機能するかの情報をもとに、前記更新手順を、更新用の新証明鍵及び/又は、該新証明鍵を用いて正当性を確認可能な、対象のノードが前記認証に使用するための新デジタル証明書を、ノード毎に同時に送信する送信手順を含むよう定め、
その際に、前記各ノードに対する前記送信手順の実行順を作業リストとして作成する手順を実行し、該手順において、
前記作業リストを初期化する手順と、前記クライアント・サーバシステムを構成するノードのうち最上位のノードを注目ノードとすると共に前記作業リストに追加する手順とを実行し、
注目ノードになったノードを記憶しておき、その後全てのノードが注目ノードになったと判断するまで以下の手順(1)及び(2)を繰り返すようにしたことを特徴とする更新手順決定方法。
(1)注目ノードに下位ノードが存在する場合、その下位ノードのそれぞれについて、順位を注目ノードの下位に設定すると共に、前記注目ノードがその下位ノードを通信相手とする際にクライアントとサーバのいずれとして機能するかを判断し、クライアントであればその下位ノードを前記作業リストの後端に追加し、サーバであればその下位ノードを前記作業リストの前端に追加する手順
(2)注目ノードを、その注目ノードと同順位であってまだ注目ノードになっていないノードがあればそのうちいずれかのノードに、そのようなノードがなければ、前記順位が注目ノードの下位であってまだ注目ノードになっていないいずれかのノードに変更する手順 - 請求項2記載の更新手順決定方法であって、
前記デジタル証明書管理装置が、前記手順(1)に代えて、
注目ノードに下位ノードが存在する場合、その下位ノードのそれぞれについて、順位を注目ノードの下位に設定すると共に、前記注目ノードがその下位ノードを通信相手とする際にクライアントとサーバのいずれとして機能するかを判断し、クライアントであればその下位ノードを前記作業リストのうち前記注目ノードの直後に追加し、サーバであればその下位ノードを前記作業リストのうち前記注目ノードの直前に追加する手順
を実行するようにしたことを特徴とする更新手順決定方法。 - 請求項2記載の更新手順決定方法であって、
前記デジタル証明書管理装置が、
前記手順(1)及び(2)に代えて次の手順(1)及び(2)を繰り返すようにしたことを特徴とする更新手順決定方法。
(1)注目ノードに下位ノードが存在する場合、その下位ノードのそれぞれについて、前記注目ノードがその下位ノードを通信相手とする際にクライアントとサーバのいずれとして機能するかを判断し、クライアントであればその下位ノードを前記作業リストの後端に追加し、サーバであればその下位ノードを前記作業リストの前端に追加する手順
(2)注目ノードを、その注目ノードの下位ノードであってまだ注目ノードになっていないノードがあればそのうちいずれかのノードに変更し、そのようなノードがなければ、上位に向かってノードを順に辿り、まだ注目ノードになっていない下位ノードを持つノードがあった場合にその下位ノードのいずれかに変更する手順 - 請求項4記載の更新手順決定方法であって、
前記デジタル証明書管理装置が、前記手順(1)に代えて、
注目ノードに下位ノードが存在する場合、その下位ノードのそれぞれについて、前記注目ノードがその下位ノードを通信相手とする際にクライアントとサーバのいずれとして機能するかを判断し、クライアントであればその下位ノードを前記作業リストのうち前記注目ノードの直後に追加し、サーバであればその下位ノードを前記作業リストのうち前記注目ノードの直前に追加する手順
を実行するようにしたことを特徴とする更新手順決定方法。 - 請求項2又は3記載の更新手順決定方法であって、
前記デジタル証明書管理装置が、
前記注目ノードの変更先を定めるための注目点リストを作成し、
前記作業リストを初期化する手順において前記注目点リストも初期化し、
前記手順(2)において、
前記注目ノードに下位ノードがある場合には該注目ノードを前記注目点リストの後端に追加し、
その後、前記注目点リストの前端のノードの下位ノードでまだ注目ノードになっていないノードがあれば注目ノードをそのノードに変更し、なければ前記注目点リストの前端のノードを該注目点リストから削除する注目ノード変更手順を、新たな注目ノードが定まるか前記注目点リストが空になるまで繰り返し、
前記注目点リストが空になった場合に全てのノードが注目ノードになったと判断するようにしたことを特徴とする更新手順決定方法。 - 請求項4又は5記載の更新手順決定方法であって、
前記デジタル証明書管理装置が、
前記注目ノードの変更先を定めるための注目点リストを作成し、
前記作業リストを初期化する手順において前記注目点リストも初期化し、
前記手順(2)において、
前記注目ノードに下位ノードがある場合には該注目ノードを前記注目点リストの前端に追加し、
その後、前記注目点リストの前端のノードの下位ノードでまだ注目ノードになっていないノードがあれば注目ノードをそのノードに変更し、なければ前記注目点リストの前端のノードを該注目点リストから削除する注目ノード変更手順を、新たな注目ノードが定まるか前記注目点リストが空になるまで繰り返し、
前記注目点リストが空になった場合に全てのノードが注目ノードになったと判断するようにしたことを特徴とする更新手順決定方法。 - 請求項6又は7記載の更新手順決定方法であって、
前記注目ノード変更手順において、前記注目点リストの前端のノードの下位ノードでまだ注目ノードになっていないノードが1つであった場合には、注目ノードをそのノードに変更する際に、前記注目点リストの前端のノードを前記注目点リストから削除するようにしたことを特徴とする更新手順決定方法。 - 請求項1乃至8のいずれか一項記載の更新手順決定方法であって、
前記各ノードの間の前記認証は、SSL又はTLSのプロトコルに従った認証であり、
前記デジタル証明書はそれぞれ前記各ノードの公開鍵証明書であることを特徴とする更新手順決定方法。 - 上位ノードが下位ノードを従える形式で複数段に亘って構成されるクライアント・サーバシステムの各ノードと通信可能なデジタル証明書管理装置を制御するコンピュータに、
前記クライアント・サーバシステムの各ノードに記憶させ、その各ノードの間で認証に使用するデジタル証明書の正当性を確認するために用いる証明鍵を更新する機能を実現させるためのプログラムであって、
前記コンピュータに、
前記クライアント・サーバシステムを構成する各ノードについての、該ノードの通信相手及び該通信相手との間でクライアントとサーバのいずれとして機能するかの情報をもとに、前記更新手順を、更新用の新証明鍵及び/又は、該新証明鍵を用いて正当性を確認可能な、対象のノードが前記認証に使用するための新デジタル証明書を、ノード毎に同時に送信する送信手順を含むよう定める機能を実現させ、
前記更新手順を定める際に、前記各ノードに対する前記送信手順の実行順を作成する手順を実行させ、該手順において、
まずいずれかのノードを前記実行順に追加し、その後、そのノードから始めて前記クライアント・サーバシステムを構成する各ノードを順次注目ノードとし、該注目ノードの通信相手となるノードであって前記実行順に追加されていないノードが存在する場合、その通信相手のそれぞれについて、前記注目ノードがその通信相手と通信とする際にクライアントとサーバのいずれとして機能するかを判断し、クライアントであればその通信相手を前記実行順のうち前記注目ノードよりも後に追加し、サーバであればその通信相手を前記実行順のうち前記注目ノードよりも前に追加する手順を実行させるためのプログラム。 - 上位ノードが下位ノードを従える形式で複数段に亘って構成されるクライアント・サーバシステムの各ノードと通信可能なデジタル証明書管理装置を制御するコンピュータに、
前記クライアント・サーバシステムの各ノードに記憶させ、その各ノードの間で認証に使用するデジタル証明書の正当性を確認するために用いる証明鍵を更新する機能を実現させるためのプログラムであって、
前記コンピュータに、
前記クライアント・サーバシステムを構成する各ノードについての、該ノードの通信相手及び該通信相手との間でクライアントとサーバのいずれとして機能するかの情報をもとに、前記更新手順を、更新用の新証明鍵及び/又は、該新証明鍵を用いて正当性を確認可能な、対象のノードが前記認証に使用するための新デジタル証明書を、ノード毎に同時に送信する送信手順を含むよう定める機能を実現させ、
前記更新手順を定める際に、前記各ノードに対する前記送信手順の実行順を作業リストとして作成する手順を実行させ、該手順において、
前記作業リストを初期化する手順と、前記クライアント・サーバシステムを構成するノードのうち最上位のノードを注目ノードとすると共に前記作業リストに追加する手順とを実行させ、
さらに、注目ノードになったノードを記憶しておき、その後全てのノードが注目ノードになったと判断するまで以下の手順(1)及び(2)を繰り返し実行させるためのプログラム。
(1)注目ノードに下位ノードが存在する場合、その下位ノードのそれぞれについて、順位を注目ノードの下位に設定すると共に、前記注目ノードがその下位ノードを通信相手とする際にクライアントとサーバのいずれとして機能するかを判断し、クライアントであればその下位ノードを前記作業リストの後端に追加し、サーバであればその下位ノードを前記作業リストの前端に追加する手順
(2)注目ノードを、その注目ノードと同順位であってまだ注目ノードになっていないノードがあればそのうちいずれかのノードに、そのようなノードがなければ、前記順位が注目ノードの下位であってまだ注目ノードになっていないいずれかのノードに変更する手順 - 請求項11記載のプログラムであって、
前記コンピュータに、前記手順(1)に代えて、
注目ノードに下位ノードが存在する場合、その下位ノードのそれぞれについて、順位を注目ノードの下位に設定すると共に、前記注目ノードがその下位ノードを通信相手とする際にクライアントとサーバのいずれとして機能するかを判断し、クライアントであればその下位ノードを前記作業リストのうち前記注目ノードの直後に追加し、サーバであればその下位ノードを前記作業リストのうち前記注目ノードの直前に追加する手順
を実行させるためのプログラム。 - 請求項11記載のプログラムであって、
前記コンピュータに、
前記手順(1)及び(2)に代えて以下の手順(1)及び(2)を繰り返し実行させるためのプログラム。
(1)注目ノードに下位ノードが存在する場合、その下位ノードのそれぞれについて、前記注目ノードがその下位ノードを通信相手とする際にクライアントとサーバのいずれとして機能するかを判断し、クライアントであればその下位ノードを前記作業リストの後端に追加し、サーバであればその下位ノードを前記作業リストの前端に追加する手順
(2)注目ノードを、その注目ノードの下位ノードであってまだ注目ノードになっていないノードがあればそのうちいずれかのノードに変更し、そのようなノードがなければ、上位に向かってノードを順に辿り、まだ注目ノードになっていない下位ノードを持つノードがあった場合にその下位ノードのいずれかに変更する手順 - 請求項13記載のプログラムであって、
前記コンピュータに、前記手順(1)に代えて、
注目ノードに下位ノードが存在する場合、その下位ノードのそれぞれについて、前記注目ノードがその下位ノードを通信相手とする際にクライアントとサーバのいずれとして機能するかを判断し、クライアントであればその下位ノードを前記作業リストのうち前記注目ノードの直後に追加し、サーバであればその下位ノードを前記作業リストのうち前記注目ノードの直前に追加する手順
を実行させるためのプログラム。 - 請求項11又は12記載のプログラムであって、
前記コンピュータに、
前記注目ノードの変更先を定めるための注目点リストを作成する機能を実現させ、
前記作業リストを初期化する手順において前記注目点リストも初期化させ、
前記手順(2)において、
前記注目ノードに下位ノードがある場合には該注目ノードを前記注目点リストの後端に追加させ、
その後、前記注目点リストの前端のノードの下位ノードでまだ注目ノードになっていないノードがあれば注目ノードをそのノードに変更し、なければ前記注目点リストの前端のノードを該注目点リストから削除する注目ノード変更手順を、新たな注目ノードが定まるか前記注目点リストが空になるまで繰り返させ、
前記注目点リストが空になった場合に全てのノードが注目ノードになったと判断させるためのプログラムをさらに含むことを特徴とするプログラム。 - 請求項13又は14記載のプログラムであって、
前記コンピュータに、
前記注目ノードの変更先を定めるための注目点リストを作成する機能を実現させ、
前記作業リストを初期化する手順において前記注目点リストも初期化させ、
前記手順(2)において、
前記注目ノードに下位ノードがある場合には該注目ノードを前記注目点リストの前端に追加させ、
その後、前記注目点リストの前端のノードの下位ノードでまだ注目ノードになっていないノードがあれば注目ノードをそのノードに変更し、なければ前記注目点リストの前端のノードを該注目点リストから削除する注目ノード変更手順を、新たな注目ノードが定まるか前記注目点リストが空になるまで繰り返させ、
前記注目点リストが空になった場合に全てのノードが注目ノードになったと判断させるためのプログラムをさらに含むことを特徴とするプログラム。 - 請求項10乃至16のいずれか一項記載のプログラムであって、
前記認証は、SSL又はTLSのプロトコルに従った認証であり、
前記デジタル証明書はそれぞれ前記各ノードの公開鍵証明書であることを特徴とするプログラム。 - 上位ノードが下位ノードを従える形式で複数段に亘って構成され、各ノード間でデジタル証明書を用いて認証を行うようにしたクライアント・サーバシステムに、前記各ノードと通信可能なデジタル証明書管理装置を接続したデジタル証明書管理システムであって、
前記デジタル証明書管理装置に、
前記各ノードが前記認証に使用する前記デジタル証明書の正当性を確認するための証明鍵を更新する証明鍵更新手段と、
前記クライアント・サーバシステムを構成する各ノードについて、該ノードの通信相手及び該通信相手との間でクライアントとサーバのいずれとして機能するかの情報をもとに、前記証明鍵更新手段による証明鍵の更新手順を制御する更新順制御手段とを設け、
該証明鍵更新手段に、
更新用の新証明鍵を取得する手段と、
該新証明鍵を用いて正当性を確認可能な、前記認証に使用するための新デジタル証明書を取得する手段と、
前記各ノードのための新デジタル証明書及び/又は前記新証明鍵をそれぞれ対応するノードに送信する送信手段とを設け、
前記更新順制御手段が、請求項1乃至9のいずれか一項記載の更新手順決定方法を用いて定めた更新手順に従って前記制御を行う手段であることを特徴とするデジタル証明書管理システム。 - 上位ノードが下位ノードを従える形式で複数段に亘って構成され、各ノード間でデジタル証明書を用いて認証を行うようにしたクライアント・サーバシステムを構成する各ノードと通信可能なデジタル証明書管理装置であって、
前記各ノードが前記認証に使用する前記デジタル証明書の正当性を確認するための証明鍵を更新する証明鍵更新手段と、
前記クライアント・サーバシステムを構成する各ノードについて、該ノードの通信相手及び該通信相手との間でクライアントとサーバのいずれとして機能するかの情報をもとに、前記証明鍵更新手段による証明鍵の更新手順を制御する更新順制御手段とを設け、
該証明鍵更新手段に、
更新用の新証明鍵を取得する手段と、
該新証明鍵を用いて正当性を確認可能な、前記認証に使用するための新デジタル証明書を取得する手段と、
前記各ノードのための新デジタル証明書及び/又は前記新証明鍵をそれぞれ対応するノードに送信する送信手段とを設け、
前記更新順制御手段が、請求項1乃至9のいずれか一項記載の更新手順決定方法を用いて定めた更新手順に従って前記制御を行う手段であることを特徴とするデジタル証明書管理装置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2004134113A JP4504083B2 (ja) | 2003-04-28 | 2004-04-28 | デジタル証明書管理システム、デジタル証明書管理装置、デジタル証明書管理方法、更新手順決定方法およびプログラム |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2003124383 | 2003-04-28 | ||
JP2004134113A JP4504083B2 (ja) | 2003-04-28 | 2004-04-28 | デジタル証明書管理システム、デジタル証明書管理装置、デジタル証明書管理方法、更新手順決定方法およびプログラム |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2004350267A true JP2004350267A (ja) | 2004-12-09 |
JP4504083B2 JP4504083B2 (ja) | 2010-07-14 |
Family
ID=33543373
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004134113A Expired - Fee Related JP4504083B2 (ja) | 2003-04-28 | 2004-04-28 | デジタル証明書管理システム、デジタル証明書管理装置、デジタル証明書管理方法、更新手順決定方法およびプログラム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4504083B2 (ja) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007102785A (ja) * | 2005-09-30 | 2007-04-19 | Samsung Electronics Co Ltd | 保安方法及びシステム、その方法を記録したコンピュータで読み取り可能な記録媒体 |
JP2007174314A (ja) * | 2005-12-22 | 2007-07-05 | Ricoh Co Ltd | 電子証明書管理方法および画像処理装置 |
US8270614B2 (en) | 2006-11-16 | 2012-09-18 | Samsung Electronics Co., Ltd. | Method of updating group key and group key update device using the same |
CN112956163A (zh) * | 2018-10-25 | 2021-06-11 | 索尼公司 | 通信装置、通信方法以及数据结构 |
US11431706B2 (en) | 2017-09-08 | 2022-08-30 | Kabushiki Kaisha Toshiba | Communication control system and communication control device |
US11736219B2 (en) | 2018-12-28 | 2023-08-22 | Kabushiki Kaisha Toshiba | Communication control device and communication control system |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001251297A (ja) * | 2000-03-07 | 2001-09-14 | Cti Co Ltd | 情報処理装置、該情報処理装置を具備する暗号通信システム及び暗号通信方法 |
-
2004
- 2004-04-28 JP JP2004134113A patent/JP4504083B2/ja not_active Expired - Fee Related
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001251297A (ja) * | 2000-03-07 | 2001-09-14 | Cti Co Ltd | 情報処理装置、該情報処理装置を具備する暗号通信システム及び暗号通信方法 |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007102785A (ja) * | 2005-09-30 | 2007-04-19 | Samsung Electronics Co Ltd | 保安方法及びシステム、その方法を記録したコンピュータで読み取り可能な記録媒体 |
US8638932B2 (en) | 2005-09-30 | 2014-01-28 | Samsung Electronics Co., Ltd. | Security method and system and computer-readable medium storing computer program for executing the security method |
JP2007174314A (ja) * | 2005-12-22 | 2007-07-05 | Ricoh Co Ltd | 電子証明書管理方法および画像処理装置 |
US8270614B2 (en) | 2006-11-16 | 2012-09-18 | Samsung Electronics Co., Ltd. | Method of updating group key and group key update device using the same |
US11431706B2 (en) | 2017-09-08 | 2022-08-30 | Kabushiki Kaisha Toshiba | Communication control system and communication control device |
CN112956163A (zh) * | 2018-10-25 | 2021-06-11 | 索尼公司 | 通信装置、通信方法以及数据结构 |
CN112956163B (zh) * | 2018-10-25 | 2023-06-30 | 索尼公司 | 通信装置以及通信方法 |
US11736219B2 (en) | 2018-12-28 | 2023-08-22 | Kabushiki Kaisha Toshiba | Communication control device and communication control system |
Also Published As
Publication number | Publication date |
---|---|
JP4504083B2 (ja) | 2010-07-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4504099B2 (ja) | デジタル証明書管理システム、デジタル証明書管理装置、デジタル証明書管理方法、更新手順決定方法およびプログラム | |
US7194619B2 (en) | Remotely booting devices in a dense server environment without manually installing authentication parameters on the devices to be booted | |
JP4712325B2 (ja) | 通信装置、通信システム、通信方法及びプログラム | |
JP4607567B2 (ja) | 証明書転送方法、証明書転送装置、証明書転送システム、プログラム及び記録媒体 | |
JP2006060779A (ja) | 証明書送信装置、通信システム、証明書送信方法、プログラム及び記録媒体 | |
JP2006060780A (ja) | 審査装置、通信システム、審査方法、プログラム及び記録媒体 | |
JP2005223892A (ja) | デジタル証明書無効化方法、デジタル証明書無効化装置、デジタル証明書無効化システム、プログラム及び記録媒体 | |
EP1517514B1 (en) | Method for installing and updating certificates used for device authentication. | |
CN104836835B (zh) | 用于检索配置相关数据的网络系统 | |
JP5012574B2 (ja) | 共通鍵自動共有システム及び共通鍵自動共有方法 | |
JP4504083B2 (ja) | デジタル証明書管理システム、デジタル証明書管理装置、デジタル証明書管理方法、更新手順決定方法およびプログラム | |
CN111224925A (zh) | 物联网设备的控制方法、装置、物联网设备及存储介质 | |
JP4713881B2 (ja) | トンネル自動設定装置、トンネル自動設定方法及びトンネル自動設定プログラム | |
JP7132150B2 (ja) | 通信制御システム | |
JP4611680B2 (ja) | 通信装置、通信システム、通信方法及びプログラム | |
JP4504067B2 (ja) | デジタル証明書管理システム、デジタル証明書管理装置、デジタル証明書管理方法、更新手順決定方法およびプログラム | |
JP4611676B2 (ja) | 通信装置、通信システム、通信方法及びプログラム | |
JP4611679B2 (ja) | 通信装置、通信システム、通信方法及びプログラム | |
WO2020075640A1 (ja) | 情報処理装置、及び情報処理システム | |
JP4504047B2 (ja) | デジタル証明書管理システム、デジタル証明書管理装置、デジタル証明書管理方法およびプログラム | |
JP4494827B2 (ja) | デジタル証明書管理システム、デジタル証明書管理装置、デジタル証明書管理方法およびプログラム | |
JP4509675B2 (ja) | 通信装置、通信システム及び通信方法 | |
JP4611678B2 (ja) | 通信装置、通信システム、通信方法及びプログラム | |
JP2008287587A (ja) | 電子メールシステム | |
JP4543789B2 (ja) | トランザクションに基づく証明書検証情報管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20061221 |
|
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: 20100420 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20100422 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130430 Year of fee payment: 3 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140430 Year of fee payment: 4 |
|
LAPS | Cancellation because of no payment of annual fees |