説明

通信装置、通信システムおよびプログラム

【課題】通信相手の装置から、どの認証局が発行した証明書を用いて認証を行うかの選択を任意に受け付ける場合であっても、少ない負荷で、その通信相手の要求を満たした通信を行えるようにする。
【解決手段】 証明書を用いて認証を行って複数の相手先装置と通信する通信装置において、相手先装置から認証局情報を受信し(S103)、その認証局情報で指定された認証局の発行した自身の証明書を記憶していない場合に(S104でNO)、その認証局の発行した自身の証明書を取得し(S105〜S113)、その取得した証明書を、上記認証局情報の送信元と通信を行う場合に認証に用いる証明書として設定し(S116)、上記認証局情報で指定された認証局の発行した自身の証明書を記憶していた場合には(S104でYES)、その記憶している証明書を、上記認証局情報の送信元と通信を行う場合に認証に用いる証明書として設定するようにした。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、証明書を用いて認証を行って複数の相手先装置と通信する通信装置、上位装置と下位装置とが証明書を用いて認証を行って通信する通信システム、および証明書を用いて認証を行って複数の通信相手と通信する通信装置を制御するコンピュータに実行させるプログラムに関する。
【背景技術】
【0002】
通信装置が通信相手と通信を行う際にデジタル証明書を用いて通信相手を認証し、通信路を暗号化することは広く知られている。またこのような通信装置を接続した通信システムも広く知られている。通信プロトコルとしては例えばSSL(Secure Socket Layer)が広く用いられている。通信装置または通信システムとしては、例えば通信装置にサーバ装置とクライアント装置の機能を持たせ、これらをネットワークを介して接続したクライアントサーバシステムが広く知られている。また、例えば種々の電子装置にサーバ装置および/またはクライアント装置の機能を持たせ上位装置または下位装置とし、これらをネットワークを介して接続し、相互の通信によって電子装置の遠隔管理を行うシステムも提案されている。
【0003】
また、以上のような通信装置または通信システムにおいて、必要に応じて証明書を更新したいという要望があった。例えば、暗号技術が進展することで既存の証明書が対応する暗号強度が十分でなくなり、より強い暗号強度へ移行すべき状況になった場合等である。このような要望に応えるため、通信装置が認証局に証明書発行要求を送信し新たな証明書の発行を受けて、証明書を更新する技術は既に知られている。また、複数の通信装置が認証局の証明書を用いて通信相手のデジタル証明書を認証し通信する通信システムにおいて、上位装置が通信相手である下位装置の新たな証明書の発行を受けて、その新たな証明書を下位装置に送信して記憶させ、その下位装置の証明書を更新する技術も既に知られている。
【0004】
例えば、特許文献1には、遠隔管理システムにおいて上位装置である通信装置が認証局に証明書発行要求を送信し新たなデジタル証明書の発行を受けて、下位装置である通信相手に記憶させる技術が開示されている。
また、特許文献2には、下位装置が事前に保持している、プライベート認証局が発行したレスキュー証明書と呼ばれる証明書を利用して上位装置との間で認証を行い、これが成立した後に、パブリック認証局が発行した証明書を下位装置に格納する技術が開示されている。
【発明の概要】
【発明が解決しようとする課題】
【0005】
ところで、以上のような通信装置または通信システムにおいて、さらに、通信相手がどの認証局が発行した証明書を用いて認証を行いたいか、すなわちどの認証局の証明書を信頼するかという選択を受け付けられるようにしたいという要望があった。
例えば、遠隔管理システムでは上位装置と下位装置はユーザのネットワーク環境に設置され、遠隔管理サービス提供者のネットワーク環境に設置された更なる上位装置(以下、管理装置と呼ぶことがある)が利用者のネットワーク環境に設置された上位装置とインターネットを介して通信するネットワーク構成がありうる。このとき、ユーザのネットワーク環境に配置された「上位装置」は、「管理装置」との関係では下位装置となり、管理装置と下位装置との通信を仲介する仲介装置という位置付けになる。
【0006】
この場合、仲介装置と下位装置は、ユーザ環境内に配置されるため、これらの間の通信に使用する証明書は、ユーザのネットワーク環境のセキュリティポリシーに基づいて定めたいという要望がある等である。
一方、仲介装置と管理装置との間の通信で用いられるデジタル証明書は、遠隔管理サービスの提供者のセキュリティポリシーに基づいて定めることが好ましい。
よって、両者のセキュリティポリシーの違いから、一つの管理システムを構成する装置内で、異なる認証局が発行した証明書を用いることを要求される場合がある。例えばユーザのセキュリティポリシーで定められた認証局は遠隔管理サービスを受けていない他の電子装置と共通であるため、遠隔管理サービス提供者のセキュリティポリシーで定められた認証局と違う場合である。
【0007】
しかし、特許文献1に記載のものを含め、従来の通信装置や通信システムにおいては、どの認証局が発行した証明書を用いて認証を行うかの選択を下位装置から任意に受け付けることは、特に考慮されていない。
そして、これを可能とするために、上位装置において、単純に、下位装置毎にその下位装置と通信するための証明書としてその下位装置により指定された認証局が発行した証明書を用意するとすると、通信相手となる下位装置の台数に応じて、上位装置が管理すべき証明書の数や、上位装置から認証局への証明書発行要求の回数が増大するという問題があった。特に通信相手となる下位装置の数が多い場合にこの点が問題となる。
【0008】
この発明は、このような背景に基づいてなされたものであり、通信相手の装置から、どの認証局が発行した証明書を用いて認証を行うかの選択を任意に受け付ける場合であっても、少ない負荷で、その通信相手の要求を満たした通信を行えるようにすることを目的とする。
【課題を解決するための手段】
【0009】
上記目的を達成するため、この発明による通信装置は、証明書を用いて認証を行って複数の相手先装置と通信する通信装置において、一以上の証明書を記憶可能な記憶手段と、相手先装置において受け付けられた認証局の情報である認証局情報をその相手先装置から受信する受信手段と、上記認証局情報で指定された認証局の発行したその通信装置の証明書を上記記憶手段が記憶しているか否か判断する判断手段と、上記判断手段が上記認証局情報で指定された認証局の発行したその通信装置の証明書を上記記憶手段が記憶していないと判断した場合に、上記認証局情報で指定された認証局の発行したその通信装置の証明書を取得して上記記憶手段に記憶させる証明書取得手段と、上記判断手段が上記認証局情報で指定された認証局の発行したその通信装置の証明書を上記記憶手段が記憶していないと判断した場合に、上記証明書取得手段が取得したその通信装置の証明書を、上記認証局情報の送信元である相手先装置と通信を行う場合に認証のためにその相手先装置に送信する証明書として設定し、上記判断手段が上記認証局情報で指定された認証局の発行したその通信装置の証明書を上記記憶手段が記憶していると判断した場合に、その記憶している証明書を、上記認証局情報の送信元である相手先装置と通信を行う場合に認証のためにその相手先装置に送信する証明書として設定する証明書設定手段とを設けたものである。
【0010】
このような通信装置において、上記受信手段が、通信相手にアクセスして認証局情報を受信し、上記判断手段が、上記受信手段が受信した認証局情報が前回受信時から変更されていた場合に、上記受信した認証局情報で指定された認証局の発行したその通信装置の証明書を上記記憶手段が記憶しているか否か判断するようにするとよい。
さらに、上記記憶手段が所定の認証局の発行したその通信装置の証明書を予め記憶し、上記証明書設定手段が、上記受信手段が相手先装置にアクセスしても上記認証局情報を受信できない場合に、上記所定の認証局の発行したその通信装置の証明書を、その相手先装置から通信を要求された場合に認証のためにその相手先装置に送信する証明書として設定するようにするとよい。
【0011】
また、この発明の通信システムは、上位装置と下位装置とが証明書を用いて認証を行って通信する通信システムにおいて、上記下位装置に、認証局の指定を受け付ける受付手段と、上記受付手段により指定された認証局の情報である認証局情報を上記上位装置に送信する手段とを設け、上記上位装置に、一以上の証明書を記憶可能な記憶手段と、上記下位装置から上記認証局情報を受信する受信手段と、上記認証局情報で指定された認証局の発行した上記上位装置の証明書を上記記憶手段が記憶しているか否か判断する判断手段と、上記判断手段が上記認証局情報で指定された認証局の発行した上記上位装置の証明書を上記記憶手段が記憶していないと判断した場合に、上記認証局情報で指定された認証局の発行した上記上位装置の証明書を取得して上記記憶手段に記憶させる証明書取得手段と、上記判断手段が上記認証局情報で指定された認証局の発行したその通信装置の証明書を上記記憶手段が記憶していないと判断した場合に、上記証明書取得手段が取得した上記上位装置の証明書を、上記認証局情報の送信元である下位装置と通信を行う場合に認証のためにその下位装置に送信する証明書として設定し、上記判断手段が上記認証局情報で指定された認証局の発行した上記上位装置の証明書を上記記憶手段が記憶していると判断した場合に、その記憶している証明書を、上記認証局情報の送信元である下位装置と通信を行う場合に認証のためにその下位装置に送信する証明書として設定する証明書設定手段とを設けたものである。
【0012】
このような通信システムにおいて、上記下位装置に、認証局情報を記憶する手段をさらに設け、上記上位装置の上記受信手段は、通信相手にアクセスして認証局情報を受信し、上記上位装置の上記判断手段が、上記受信手段が受信した認証局情報が前回受信時から変更されていた場合に、上記受信した認証局情報で指定された認証局の発行した上記上位装置の証明書を上記記憶手段が記憶しているか否か判断するようにするとよい。
さらに、上記上位装置において、上記記憶手段が所定の認証局の発行した上記上位装置の証明書を予め記憶し、上記証明書設定手段が、上記受信手段が上記下位装置にアクセスしても上記認証局情報を受信できない場合に、上記所定の認証局の発行した上記上位装置の証明書を、その下位装置から通信を要求された場合に認証のためにその下位装置に送信する証明書として設定するようにするとよい。
【0013】
また、この発明のプログラムは、証明書を用いて認証を行って複数の通信相手と通信する通信装置であって、一以上の証明書を記憶可能な記憶手段を有する通信装置を制御するコンピュータを、相手先装置において受け付けられた認証局の情報である認証局情報をその相手先装置から受信する受信手段と、上記認証局情報で指定された認証局の発行した上記通信装置の証明書を上記記憶手段が記憶しているか否か判断する判断手段と、上記判断手段が上記認証局情報で指定された認証局の発行した上記通信装置の証明書を上記記憶手段が記憶していないと判断した場合に、上記認証局情報で指定された認証局の発行した上記通信装置の証明書を取得して上記記憶手段に記憶させる証明書取得手段と、上記判断手段が上記認証局情報で指定された認証局の発行した上記通信装置の証明書を上記記憶手段が記憶していないと判断した場合に、上記証明書取得手段が取得した上記通信装置の証明書を、上記認証局情報の送信元である相手先装置と通信を行う場合に認証のためにその相手先装置に送信する証明書として設定し、上記判断手段が上記認証局情報で指定された認証局の発行した上記通信装置の証明書を上記記憶手段が記憶していると判断した場合に、その記憶している証明書を、上記認証局情報の送信元である相手先装置と通信を行う場合に認証のためにその相手先装置に送信する証明書として設定する証明書設定手段として機能させるためのプログラムである。
【発明の効果】
【0014】
以上のようなこの発明による通信装置、通信システムおよびプログラムによれば、通信の際に通信相手を証明書を用いて認証する通信装置あるいはこのような通信装置を用いて構成した通信システムにおいて、通信相手の装置から、どの認証局が発行した証明書を用いて認証を行うかの選択を任意に受け付ける場合であっても、少ない負荷で、その通信相手の要求を満たした通信を行えるようにすることができる。
【図面の簡単な説明】
【0015】
【図1】この発明の一実施形態である通信システムの構成を示す図である。
【図2】図1に示した上位装置又は下位装置として機能する通信装置のハードウェア構成例を示す図である。
【図3】初めに図1に示す通信システムを形成する際に下位装置20A,20B、上位装置30及び管理装置40に記憶させておく認証情報の例を示す図である。
【図4】図3に示した状態から更新X、Y1及びY2を行った後の、下位装置20A,20B、上位装置30及び管理装置40が記憶する認証情報の例を示す図である。
【図5】更新Xに係る処理の手順を示すシーケンス図である。
【図6】更新Y2に係る処理の手順を示すシーケンス図である。
【図7】更新Y1に係る処理の手順を示すシーケンス図である。
【発明を実施するための形態】
【0016】
以下、この発明を実施するための最良の形態を図面を参照して説明する。
まず、この発明の一実施形態である通信システムについて説明する。
図1は、本実施形態の通信システムの構成例を示す図である。図2は、図1に示した上位装置又は下位装置として機能する通信装置のハードウェア構成例を示す図である。
【0017】
図1に示す通信システム1は、図2に示す通信装置10としてのハードウェア構成を有する下位装置20A,20B(個体を区別する必要がない場合には符号「20」を用いて示す)と、同じく通信装置10としてのハードウェア構成を有し下位装置20A,20Bの通信相手となる上位装置30とを、ネットワーク70Aを介して接続して構成したものである。
【0018】
また、ネットワーク70Aはインターネット80に接続され、このインターネット80には、ネットワーク70Bが接続される。また、管理装置40、新認証局50Cおよび認証局60がネットワーク70Bに接続され、新認証局50A,50Bがインターネット80に接続されている。なお、図1に示した各装置及びネットワークを接続するための通信回線は、有線無線を問わず任意のものを用いることができる。
【0019】
これらの装置の機能を詳述する前に、まず図2を参照して下位装置20又は上位装置30として機能する通信装置10のハードウェア構成について説明する。
図2に示すように、通信装置10は、CPU11、表示部12、操作部13、記憶部14、通信I/F15を備え、これらがシステムバス16により接続されている。そしてCPU11が記憶部14に記憶されたプログラムを読み出し実行することにより通信装置10の動作を制御し、下位装置20あるいは上位装置30としての機能を実現している。管理装置40についても同様に考えることができる。
【0020】
表示部12はユーザにパラメータや通信装置10の動作状態、グラフィカルユーザインタフェース等の情報を提示するための表示手段であり、液晶ディスプレイやランプなど任意の表示器を用いて構成することができる。
操作部13は、ユーザからの操作を受け付けるための操作手段であり、タッチパネルやボタンなど任意の操作子を用いて構成することができる。操作部13を表示部12と一体に構成することもできる。なお、ユーザからの操作受付には、通信I/F15を介して外部から操作を受け付けるウェブサーバなどのアプリケーションを用いることもできる。また、操作部13は後述する認証局情報を受け付けることができる。
記憶部14としてはRAMなどの半導体記憶装置、HDDまたは光ディスクなど任意の記憶装置を用いることができる。記憶部14はこの発明に係るデジタル証明書を記憶できる。
【0021】
通信I/F15としてはLANまたはUSB(Universal Serial Bus)など任意の通信インタフェースを用いることができる。通信I/F15を介して通信装置は通信相手と通信を行う。以上の他に通信装置10の種類に応じて構成要素を追加しても構わないことはもちろんである。例えば、通信装置10がプリンタであればプリントエンジン、スキャナであればスキャナエンジン、ファクシミリ装置であればファクシミリ通信モジュール等が追加される。
なお、管理装置40、新認証局50および認証局60のハードウェア構成例は通信装置10と同様であってもよいし、それぞれ他の構成要素を追加しても構わない。
【0022】
図1の説明に戻ると、図1に示した各装置のうち、下位装置20は、PC(パーソナルコンピュータ)や、MFP(デジタル複合機)、プリンタ、ファクシミリ装置、スキャナなどの画像処理装置であり、ネットワーク70Aに接続するためのネットワークI/F(インタフェース)を備えたネットワーク機器である。そして、管理装置40から要求を受信してその応答を返したり、管理装置40に対して通知を送信したりすることにより、管理装置40による遠隔管理を受ける。また、この際、管理装置40との通信は、直接には行わず、通信を仲介したり、取りまとめたりする仲介装置の機能を有する上位装置30を介して行う。
【0023】
上位装置30は、自身が受け持つ管理対象である1又は複数の下位装置20から定期的に情報を収集し、管理サービスの提供者側に設置される管理装置40に対して通知したり、管理装置40から管理対象の下位装置20に対する要求を受信し、これを下位装置20に送信したりすることにより、下位装置20と管理装置40との間の通信を仲介する機能を有する。
【0024】
また、管理装置40は、下位装置20に対して必要な要求を送信したり、下位装置20からの通知(情報提供)を受けて必要な動作を行ったりすることにより、下位装置20に対して、遠隔管理などのサービスを提供する機能を有する。この通信を上位装置30の仲介機能を利用して行うことは、上述の通りである。
ここで、下位装置20、上位装置30及び管理装置40の間の通信には、SSLプロトコルを適用し、通信の際に、デジタル証明書を利用した相手先装置の認証(正当性検証)や、通信路の暗号化を行う。またこの認証は、ここでは相手先装置との間で相互に行うようにしている。
【0025】
そこで、SSLに基づく相互認証の手順を説明する。SSLに基づく相互認証を行うには、まずある通信装置とその通信相手の通信装置とが、秘密鍵(「私有鍵」とも呼ばれる)、公開鍵証明書およびルート証明書を記憶していることが必要となる。
ここで、秘密鍵とは、通信装置に固有の鍵であり、外部に知られないように厳重に管理することが要求される。
次に、公開鍵証明書とは、秘密鍵に対応する公開鍵に認証局がデジタル署名を付したデジタル証明書である。その秘密鍵の持ち主である通信装置の証明書ということになる。
【0026】
最後に、ルート証明書とは、ルート鍵に認証局がデジタル署名を付したデジタル証明書である。ルート鍵とは認証局がデジタル署名を付すのに用いるルート秘密鍵に対応する公開鍵であり、従って、ルート証明書はルート秘密鍵の持ち主である認証局の証明書ということになる。
なお、デジタル署名としては、公開鍵のデータをハッシュ処理して得たハッシュ値を秘密鍵で暗号化したデータが用いられる。以下、秘密鍵、公開鍵証明書およびルート証明書を合わせて認証情報と呼ぶことがある。
【0027】
これらの認証情報を用いてSSLに基づいて通信相手を認証するには、まず通信相手からその通信相手の公開鍵証明書を受信する。次に、受信した公開鍵証明書の正当性を、自身が記憶しているルート証明書を用いて検証する。具体的には、受信した公開鍵証明書に含まれる公開鍵をハッシュ処理して得たハッシュ値と、その公開鍵証明書に含まれるデジタル署名をルート証明書に含まれるルート鍵で復号化して得たハッシュ値とが一致するか検証する。一致した場合は、デジタル署名が確かに検証に用いたルート証明書を発行した認証局により付されたことおよび、公開鍵証明書(発行対象が何者であるかを特定するための書誌情報を含む)が損傷も改竄も受けていないことが確認できる。
【0028】
次に、通信相手から通信内容であるデータを受信する。このデータを、先に受信した公開鍵証明書に含まれる公開鍵を用いて正常に復号化できれば、通信相手は公開鍵に対応する秘密鍵の持ち主(すなわち公開鍵証明書の書誌情報に記載された相手)であることが分かる。
SSLによれば、このような認証とともに、秘密鍵および公開鍵を用いて通信内容であるデータを暗号化し安全な通信を行うこともできる。
【0029】
初めに通信システム1を形成する際には、以上のようなSSLによる相互認証を行うために、図1に示した下位装置20A,20B、上位装置30及び管理装置40に記憶させておく認証情報は、図3に示す通りである。
すなわち、下位装置20A,20B、上位装置30及び管理装置40にはそれぞれ、その装置の秘密鍵と公開鍵証明書(認証局による署名の付された公開鍵)のペアと共に、通信相手から送信されてくる公開鍵証明書の正当性を検証するための、認証局の公開鍵証明書(ルート証明書)を記憶している。
【0030】
ここで、各装置の公開鍵証明書に署名する認証局は、共通の認証局60としており、従って、署名の正当性を検証するための証明書も、認証局60の証明書のみでよい。図3における矢印は、後端側の情報を用いて、先端側の署名を検証することを示す。なお、認証局60としては、例えば管理装置40による遠隔管理のサービスを提供するサービス提供者が設けたプライベート認証局を用いることができる。初めは、このようにサービス提供者が管理できる証明書を用いてシステムを構築することにより、通信システム1を容易に運用開始することができる。
【0031】
しかし、運用を開始した後では、背景技術の項で述べたように、例えば暗号技術の進展により、認証情報をより強い暗号強度に対応した鍵や証明書に更新したい場合がある。また、下位装置20A,20Bについては、サービス提供者ではなくそのユーザが管理する装置であるので、ユーザ自身のセキュリティポリシーに沿った認証局の証明書を用いて通信相手を認証したいという要望が生じる可能性もある。
そして、これらの要望に対応するためには、図3に示した認証情報を、適切なものに更新していく必要がある。
【0032】
まず、後者の要望については、下位装置20による上位装置30の認証に適用する。従って、上位装置30が下位装置20に送信する公開鍵証明書を、ユーザのセキュリティポリシーに沿った認証局が発行したものに更新すればよい(更新Xと呼ぶことにする)。そしてここでは、ユーザに認証局を指定させ、その認証局が発行した上位装置30の証明書を、上位装置30に設定し、下位装置20と通信を行う際に、上位装置30が下位装置20にその証明書を送信するようにしている。
【0033】
また、前者の要望については、ユーザのセキュリティポリシーを意識しなくてよい部分、すなわち、上位装置30と管理装置40との間の相互認証と、上位装置30による下位装置20の認証に適用する。これらのうち、上位装置30と管理装置40との間の相互認証については、通信を行う際に上位装置30が管理装置40に送信する証明書と、管理装置40が上位装置30に送信する証明書とを、より強い暗号強度に対応したものに更新すればよい(更新Y1と呼ぶことにする)。通常は、暗号強度を変更する場合、証明書の発行に用いる認証局も変更することになる。また、上位装置30による下位装置20の認証については、下位装置20に、上位装置30と通信を行う際に上位装置30に対して送信する証明書として、より強い暗号強度に対応した証明書を設定させればよい(更新Y2と呼ぶことにする)。
【0034】
次に、図4に、図3に示した状態から以上の更新X、Y1及びY2を行った後の、下位装置20A,20B、上位装置30及び管理装置40が記憶する認証情報の例を示す。
まず、更新Xについては、下位装置20Aはパブリック認証局である新認証局50Aが発行した公開鍵証明書を認証に用い、下位装置20Bは別のパブリック認証局である新認証局50Bが発行した公開鍵証明書を認証に用いるとする。
【0035】
この場合、上位装置30には、下位装置20Aと通信を行う場合に認証のために下位装置20Aに送信する上位装置30の証明書として、下位装置20Aについて指定された新認証局50Aが署名した公開鍵証明書30aを記憶させる。この証明書に用いる新公開鍵Aと新秘密鍵Aとのペアは、新認証局50Aが要求する規格に合った鍵長のものを用意する。また、下位装置20Aには、この公開鍵証明書30aの正当性を検証するための、新認証局50Aのルート証明書50aを記憶させる。
【0036】
また、上位装置30には、下位装置20Bと通信を行う場合に認証のために下位装置20Bに送信する上位装置30の証明書として、下位装置20Bについて指定された新認証局50Bが署名した公開鍵証明書30bを記憶させる。この証明書に用いる新公開鍵Bと新秘密鍵Bとのペアは、新認証局50Bが要求する規格に合った鍵長のものを用意する。また、下位装置20Bには、この公開鍵証明書30bの正当性を検証するための、新認証局50Bのルート証明書50bを記憶させる。
【0037】
なお、図示は省略したが、上位装置30も、ルート証明書50a,50bを記憶している。しかし、これは必要とする下位装置に送信して記憶させるためであり、認証には使用しない。また、下位装置20Aと下位装置20Bとについて共通の新認証局が指定される場合もあり、この場合、上位装置30には、下位装置20Aと20Bの双方に送信する証明書として、その共通の新認証局が署名した公開鍵証明書を記憶させる。
【0038】
また、上位装置30が、下位装置20ごとに異なる公開鍵証明書を用いるためには、例えば下位装置20ごとに異なった上位装置30内のアドレスに下位装置20がアクセスするように構成することが考えられる。ここでアドレスとは、例えばインターネットプロトコルにおけるIPアドレスである。この場合、上位装置30は複数のIPアドレスを設定可能な複数の部分(同一筐体か否かは問わない)から構成される。
【0039】
そして、例えば下位装置20Aに対して公開鍵証明書30aを送信するように設定する場合、新規なIPアドレスを用意して下位装置20Aに通知し、上位装置30と通信する際にはそのアドレスにアクセスさせるようにすると共に、上位装置30側で、そのアドレスにアクセスされた場合に、送信元に対して公開鍵証明書30aを送信するように設定しておけばよい。上位装置30から下位装置20Aにアクセスする場合については、公開鍵証明書30aを下位装置20Aと対応付けておき、下位装置20Aにアクセスする際の認証において対応する公開鍵証明書30aを用いるようにすればよい。
【0040】
図3に示した更新前の状態では、上位装置30が下位装置20と通信する際に下位装置20に送信する対下位装置の公開鍵証明書は1種類のみであり、すべての下位装置20に対して同じ公開鍵証明書を送信しているので、このようなアドレスの区別や対応付けは必要ない。
【0041】
次に、更新Y1については、上位装置30と管理装置40とに、より高い暗号強度に対応した鍵ペアを用いた公開鍵証明書30c,40cを、それぞれ相互認証のための証明書として記憶させる。これらの証明書に署名を付す認証局は新認証局50Cとし、上位装置30と管理装置40とには、これらの公開鍵証明書30c,40cの正当性を検証するための、新認証局50Cのルート証明書50cも記憶させる。
この新認証局50Cは、サービス提供者が任意に定めればよく、パブリック認証局としてもよいが、ここでは管理の容易さを考慮して、サービス提供者が設けたプライベート認証局としている。
また、上位装置30においては、管理装置40に送信する公開鍵証明書も、下位装置20に送信するものと区別する必要があり、上述のようなアドレスの区別や装置と証明書との対応付けにより、これを行う。
【0042】
次に、更新Y2については、上位装置30がより高い暗号強度に対応した鍵ペアを用いた証明書を発行し、これを下位装置20A及び20Bに記憶させて下位装置20A及び20Bの認証に用いることができる。上位装置30が通信相手を認証するために用いる証明書も、ユーザのセキュリティポリシーを意識せずに決めることができる一方、上位装置30は、図3の状態において下位装置20A及び20Bの出自を把握できており、これを誰か他者に保証してもらう必要はない。従って、上位装置30自身で下位装置20A及び20Bの証明書を発行してしまうことにより、証明書の取得と設定に関する処理を単純化することができる。なお、鍵ペア自体は、下位装置が生成しても、上位装置が生成してもよい。
【0043】
図4の例では、下位装置20Aには、上位装置30の新秘密鍵Aで署名した公開鍵証明書20aを記憶させる。上位装置30は、この公開鍵証明書20aの正当性を、公開鍵証明書30aにより確認することができる。同様に、下位装置20Bには、上位装置30の新秘密鍵Bで署名した公開鍵証明書20bを記憶させる。上位装置30は、この公開鍵証明書20bの正当性を、公開鍵証明書30bにより確認することができる。なお、下位装置20Aに発行する公開鍵証明書と下位装置Bに発行する公開鍵証明書とを同じ秘密鍵で署名してもよいし、上位装置30が下位装置20Aや20Bに認証を受けるための証明書(と対応する秘密鍵)と、署名用の秘密鍵とを共通のものとする必要もない。しかし、これらを共通化しておけば、上位装置30が管理すべき証明書の数を少なく抑えることができる。
【0044】
以上の通信システム1において特徴的な点は、以上証明書の更新に係る処理の内容である。以下、この点について説明する。
まず図5に、更新Xに係る処理の手順を示す。この図には、下位装置20Aに関する更新の手順を示す。
下位装置20Aの管理者は、下位装置20Aが信頼する認証局を、任意のタイミングで変更することができる。この場合、下位装置20Aに対し、新たに信頼する認証局を示す認証局情報を設定する(S101)。
【0045】
下位装置20Aは、その後適当なタイミングで、上位装置30からのアクセスに(S102)応じて、または能動的に上位装置30にアクセスして、上位装置30に対し、自身に設定されている認証局情報を送信する(S103)。なお、認証局情報は下位装置20Aに適用されるセキュリティポリシーに沿ったデジタル証明書その他認証情報を特定するのに必要な情報を含んでもよい。例えば鍵長や公開鍵暗号方式の種類(例えばRSA、DSA)、暗号スイートである。ここで暗号スイートとは共通鍵暗号方式の種類、共通鍵の交換方法、ハッシュ関数などの情報をいう。上位装置30および管理装置40はこれらの情報に基づいて新たな認証情報を作成または取得することができる。
【0046】
一方、認証局情報を受け取った上位装置30は、認証局情報が示す認証局が発行した自身の証明書(及びその認証局のルート証明書)を記憶しているか否か判断する(S104)。ここで記憶していない場合には、上位装置30は、認証局情報が示す認証局から自身の証明書を新たに取得すべく、ステップS105以下の処理を行う。
ここではまず、所定のアルゴリズムで、上位装置30の新秘密鍵Aと新公開鍵Aのペアを作成する(S105)。このとき用いるアルゴリズムは、管理装置40から予め通知されているものとしたり、下位装置20Aから認証局情報に含まれる情報により指定されたものとすることができる。
【0047】
次に、上位装置30は、ステップS105で生成した新公開鍵A及び、認証局情報のうち少なくとも下位装置20Aが信頼する認証局を特定する情報を含む、署名要求を管理装置40に送信する(S106)。
これを受信した管理装置40は、署名要求に基づいてCSR(Certificate Signing Request)を作成する(S107)。ここで、CSRとは認証局に対するデジタル証明書の発行要求である。CSRには認証局がデジタル署名を付すべき新公開鍵(ここでは受信した署名要求に含まれる新公開鍵A)が含まれる。そして、署名要求に含まれる認証局情報が示す新認証局50Aのアドレスを特定し(S108)、その新認証局50Aに、生成したCSRを送信する(S109)。
【0048】
新認証局50Aは、CSRを受信すると、これを審査した上で、問題なければCSRに従ってデジタル証明書を発行する(S110)。ここで発行するデジタル証明書は、上位装置30の新公開鍵Aに新認証局50Aの秘密鍵でデジタル署名を付した、上位装置の新証明書である。そして、この発行した証明書及び新認証局50Aのルート証明書を管理装置40へ返す(S111)。
【0049】
管理装置40は、これらの証明書を上位装置30へ転送する(S112)。上位装置30は、これらの証明書を受信すると、認証情報として新たに記憶することにより、認証情報を更新する(S113)。それまで使用していた証明書は、この時点ではまだ削除しない。また、上位装置30は、新認証局50Aのルート証明書を、下位装置20Aがまだ記憶していなければ、下位装置20Aに送信し(S114)、下位装置20Aはこれを認証情報として新たに記憶する(S115)。
【0050】
その後、上位装置30は、下位装置20Aと通信する場合に下位装置20Aに送信する証明書として、ステップS103で受信した認証局情報が示す認証局発行の証明書、すなわちステップS112で受信しステップS113で記憶した新証明書、を設定する(S116)。このとき、必要であれば新証明書を用いた認証を受け付けるためのアドレスを作成し、下位装置20Aに通知し、上位装置30と通信する際のアクセス先をそのアドレスに変更させる。
以上により、下位装置20Aには新認証局50Aのルート証明書が記憶され、上位装置30には新認証局50A発行の上位装置30の証明書が記憶されるので、下位装置20Aは、新認証局50A発行の証明書により上位装置30を認証できる状態となる。
【0051】
一方、ステップS104でYESであった場合には、途中の処理を飛ばしてステップS114に進む。すなわち、上位装置30は新認証局50A発行の証明書を既に記憶しているため、これを下位装置20Aと通信する際に使用する証明書として設定する(と共に必要があればルート証明書を下位装置20Aに送信する)。
【0052】
このようなケースは、例えば下位装置20Aからの認証局情報の受信に応じてステップS104乃至S116の処理を行った後で、別の下位装置20Bからも同じ認証局を指定する認証局情報を受信した場合に発生する。この場合、再度認証局から証明書を取得する必要がないため、管理装置40に対する署名要求の送信回数を低減し、ネットワーク負荷の軽減を図ることができる。
【0053】
なお、図5の処理において、上位装置30からアクセスして下位装置20Aに設定されている認証局情報を取得する場合、同じ情報を何度も取得してしまうことが考えられる。しかし、前回取得時と同じ認証局情報を取得した場合には、証明書の更新が不要であることが明らかであるので、ステップS104以降の判断を行わずに処理を終了するとよい。
下位装置20Aから能動的に上位装置30に通知する場合には、単に認証局情報が変更された場合のみそれを通知するようにすればよい。
【0054】
また、図5のステップS104以下の処理を、上位装置30がいずれかの下位装置20から新たな認証局情報を受信する度に行うことは必須ではない。受信した認証局情報を蓄積しておき、ある程度の数が溜まった時点や、あるいは管理装置40から更新Y1やY2を要求された時点などに、複数の下位装置20に関する更新をまとめて行うようにしてもよい。
【0055】
この場合、ステップS106で送信する署名要求は、共通の新公開鍵について、複数の新認証局から新証明書(公開鍵の部分は同じで署名が異なる証明書)を取得することを要求するものとすることができる。この場合でも、管理装置40は、複数の新認証局のそれぞれにCSRを送信するが、上位装置30と管理装置40との間の通信は、複数の新証明書の取得分について一度にまとめて行うことができる。
【0056】
また、上位装置30が下位装置20にアクセスしても認証局情報を取得できなかった場合(特に以前は取得できたのに取得できなくなった場合)には、下位装置20は何らかの事情で初期の図3に示した証明書を用いた認証を行う状態に戻っていると判断し、認証局情報が初期状態(デフォルト)の認証局60を示すものであるとして図5の処理を行うようにするとよい。
【0057】
この場合、上位装置30は、消去してしまっていなければ認証局60が発行した証明書を記憶しているはずであるから、ステップS104の判断はYESとなり、ステップS116で、下位装置20と通信する場合に下位装置20に送信する証明書として、認証局60が発行した証明書を設定することになる。
このような処理を行うことにより、下位装置20に不具合が生じた場合でも、管理装置40に負荷をかけずに最低限のセキュリティを維持することができる。
【0058】
次に、図6に更新Y2に係る処理の手順を示す。
管理装置40は、現在利用している暗号強度が危殆化したと判断されたタイミングにおいて、暗号強度を更新すべきことを上位装置30に指示する(S201)。この指示には、新たに使用すべき暗号強度(鍵長、公開鍵暗号方式、暗号スイートなど)の指定も含む。
【0059】
上位装置30は、ステップS201の指示を受けると、通信相手となっている全ての下位装置20(ここでは20A及び20B)の公開鍵を更新すべく、ステップS202以下の処理を行う。
まず、更新指示により通知されたアルゴリズムで下位装置20Aの新秘密鍵と新公開鍵のペアを作成し(S202)、その新公開鍵に、上位装置30が持つ適当な秘密鍵(適当なものがなければ新たに作成してもよい)を用いて署名し、下位装置20Aの新証明書を発行する(S203)。
【0060】
その後、ステップS202で作成した新秘密鍵及びステップS203で発行した新証明書を下位装置20Aに送信する(S204)。下位装置20Aはこれらを認証情報として記憶する(S205)と共に、上位装置30と通信する場合に上位装置30に送信する証明書として、ステップS205で記憶した新証明書を設定する(S206)。このとき、必要であれば新証明書を用いた認証を受け付けるためのアドレスを作成し、上位装置30に通知し、下位装置20Aと通信する際のアクセス先をそのアドレスに変更させる。
以上の後、下位装置20Bについても同様に証明書を更新し(S207〜S211)、処理を終了する。
【0061】
上位装置30は、下位装置20A,20Bの新証明書の正当性を、ステップS203又はS208での署名に用いた秘密鍵と対応する公開鍵(又は公開鍵証明書)により確認することができるので、以上の処理により、下位装置20A,20Bを、より暗号強度の高い鍵を用いた証明書を用いて認証できるようになる。
そして、新証明書の発行には、上位装置30自身の秘密鍵を用いているので、認証情報の更新は上位装置30と下位装置20との間のみで完結させることができ、管理装置40に負荷をかけることがない。
【0062】
次に、図7に更新Y1に係る処理の手順を示す。
この処理のトリガも、図6のステップS201に示した更新指示とすることができる(S301)。上位装置30は、この指示を受けると、まず、更新指示により通知されたアルゴリズムで上位装置30の新秘密鍵Cと新公開鍵Cのペアを作成する(S302)。
【0063】
そして、図5のステップS106の場合と同様に、新公開鍵Cを含む署名要求を管理装置40に送信する(S303)。このとき、認証局情報は指定せず、どの認証局から証明書を取得するかは、管理装置40に任せるとよい。そして、図5のステップS107乃至S113と同様の手順により、上位装置30は、管理装置40が指定した新認証局50Cが発行した上位装置30の新証明書及び新認証局50Cのルート証明書を取得し、認証情報として記憶する(S304〜S310)。
【0064】
その後、上位装置30は、管理装置40と通信する場合に管理装置40に送信する証明書として、ステップS309で受信しステップS310で記憶した新証明書、を設定する(S311)。このとき、必要であれば新証明書を用いた認証を受け付けるためのアドレスを作成し、管理装置40に通知し、上位装置30と通信する際のアクセス先をそのアドレスに変更させる。
【0065】
なお、以上の処理と同時に、管理装置40も、自身の証明書を、新認証局50Cが発行したものに更新する。
以上により、上位装置30と管理装置40とが、より暗号強度の高い鍵を用いた証明書により相互に認証できるようになる。
【0066】
以上で実施形態の説明を終了するが、この発明において、各部の具体的な構成や処理の内容は、実施形態で説明したものに限るものではない。
例えば、図5乃至図7に示した処理は、2以上まとめて行うことができる。例えば、図5と図6の処理をまとめて行い、下位装置20に対し、新認証局50Aのルート証明書と、下位装置20の新秘密鍵及び新証明書とを、まとめて送信するようにしてもよい。
また、管理装置40を上位装置30と一体とすることができる。すなわち上位装置30がCSRを作成し直接新認証局50からデジタル証明書の発行を受ける構成としてもよい。
【0067】
また、図1において下位装置20および上位装置30が接続されたネットワーク70Aを1つのみ図示しているが、もちろん複数のネットワークを接続してもよい。同様に図1において1つのネットワーク内に下位装置20を2つ、上位装置30を1つのみ図示しているが、より多くの下位装置20、上位装置30を接続してもよい。
【0068】
また、下位装置20は、任意の電子装置に上述の実施形態で説明した通信機能及び認証機能を設けた装置として構成可能である。例えば、プリンタ、スキャナ、ファクシミリ装置、コピー機等の画像処理装置や、ネットワーク家電、自動販売機、医療機器、電源装置、空調システム、ガス・水道・電気等の計量システム、自動車、航空機あるいは汎用コンピュータ等に適用可能である。
また、この発明が、遠隔管理機能を有さない通信システムにも適用可能であることは、もちろんである。
【0069】
また、この発明によるプログラムは、通信装置10を制御するコンピュータに、以上説明したような機能を実現させるためのプログラムであり、このようなプログラムをコンピュータに実行させることにより、上述したような効果を得ることができる。このようなプログラムは予め記憶部14に記憶させておいてもよいし、通信I/F15を介して接続した記憶装置(例えば半導体記憶装置、光ディスク)に記憶させておきコンピュータが読みだして実行してもよい。記憶装置は通信I/F15および通信回線を介して接続したものでもよい。例えば記憶装置がプログラムを通信装置10にダウンロードさせるサーバであってもよい。
また、以上説明してきた実施形態の構成は、相互に矛盾しない限り任意に組み合わせて実施可能であることはもちろんである。
【産業上の利用可能性】
【0070】
以上説明してきた通り、この発明の通信装置、通信システムまたはプログラムによれば、通信の際に通信相手を証明書を用いて認証する通信装置あるいはこのような通信装置を用いて構成した通信システムにおいて、通信相手の用いる新たな認証局の証明書の選択を任意に受け付けても、通信装置から認証局への証明書発行要求の回数を抑制しつつ、通信相手に新たな認証局のデジタル証明書を記憶させることができる。
従って、高いセキュリティを維持しつつ処理負荷も小さい通信システムを実現することができる。
【符号の説明】
【0071】
10:通信装置 11:CPU 12:表示部
13:操作部 14:記憶部 15:通信I/F
20A,20B:下位装置 30:上位装置 40:管理装置
50A,50B,50C:新認証局 60:認証局
70A,70B:ネットワーク 80:インターネット
【先行技術文献】
【特許文献】
【0072】
【特許文献1】特開2005−204283号公報
【特許文献2】特開2005−130458号公報

【特許請求の範囲】
【請求項1】
証明書を用いて認証を行って複数の相手先装置と通信する通信装置であって、
一以上の証明書を記憶可能な記憶手段と、
相手先装置において受け付けられた認証局の情報である認証局情報を該相手先装置から受信する受信手段と、
前記認証局情報で指定された認証局の発行した当該通信装置の証明書を前記記憶手段が記憶しているか否か判断する判断手段と、
前記判断手段が前記認証局情報で指定された認証局の発行した当該通信装置の証明書を前記記憶手段が記憶していないと判断した場合に、前記認証局情報で指定された認証局の発行した当該通信装置の証明書を取得して前記記憶手段に記憶させる証明書取得手段と、
前記判断手段が前記認証局情報で指定された認証局の発行した当該通信装置の証明書を前記記憶手段が記憶していないと判断した場合に、前記証明書取得手段が取得した当該通信装置の証明書を、前記認証局情報の送信元である相手先装置と通信を行う場合に認証のために該相手先装置に送信する証明書として設定し、前記判断手段が前記認証局情報で指定された認証局の発行した当該通信装置の証明書を前記記憶手段が記憶していると判断した場合に、該記憶している証明書を、前記認証局情報の送信元である相手先装置と通信を行う場合に認証のために該相手先装置に送信する証明書として設定する証明書設定手段とを備えることを特徴とする通信装置。
【請求項2】
請求項1に記載の通信装置であって、
前記受信手段は、通信相手にアクセスして認証局情報を受信し、
前記判断手段が、前記受信手段が受信した認証局情報が前回受信時から変更されていた場合に、前記受信した認証局情報で指定された認証局の発行した当該通信装置の証明書を前記記憶手段が記憶しているか否か判断するようにしたことを特徴とする通信装置。
【請求項3】
請求項2に記載の通信装置であって、
前記記憶手段は所定の認証局の発行した当該通信装置の証明書を予め記憶し、
前記証明書設定手段は、前記受信手段が相手先装置にアクセスしても前記認証局情報を受信できない場合に、前記所定の認証局の発行した当該通信装置の証明書を、該相手先装置から通信を要求された場合に認証のために該相手先装置に送信する証明書として設定することを特徴とする通信装置。
【請求項4】
上位装置と下位装置とが証明書を用いて認証を行って通信する通信システムであって、
前記下位装置に、
認証局の指定を受け付ける受付手段と、
前記受付手段により指定された認証局の情報である認証局情報を前記上位装置に送信する手段とを備え、
前記上位装置に、
一以上の証明書を記憶可能な記憶手段と、
前記下位装置から前記認証局情報を受信する受信手段と、
前記認証局情報で指定された認証局の発行した前記上位装置の証明書を前記記憶手段が記憶しているか否か判断する判断手段と、
前記判断手段が前記認証局情報で指定された認証局の発行した前記上位装置の証明書を前記記憶手段が記憶していないと判断した場合に、前記認証局情報で指定された認証局の発行した前記上位装置の証明書を取得して前記記憶手段に記憶させる証明書取得手段と、
前記判断手段が前記認証局情報で指定された認証局の発行した当該通信装置の証明書を前記記憶手段が記憶していないと判断した場合に、前記証明書取得手段が取得した前記上位装置の証明書を、前記認証局情報の送信元である下位装置と通信を行う場合に認証のために該下位装置に送信する証明書として設定し、前記判断手段が前記認証局情報で指定された認証局の発行した前記上位装置の証明書を前記記憶手段が記憶していると判断した場合に、該記憶している証明書を、前記認証局情報の送信元である下位装置と通信を行う場合に認証のために該下位装置に送信する証明書として設定する証明書設定手段とを備えることを特徴とする通信システム。
【請求項5】
請求項4に記載の通信システムであって、
前記下位装置に、
認証局情報を記憶する手段をさらに備え、
前記上位装置の前記受信手段は、通信相手にアクセスして認証局情報を受信し、
前記上位装置の前記判断手段が、前記受信手段が受信した認証局情報が前回受信時から変更されていた場合に、前記受信した認証局情報で指定された認証局の発行した前記上位装置の証明書を前記記憶手段が記憶しているか否か判断するようにしたことを特徴とする通信システム。
【請求項6】
請求項5に記載の通信システムであって、
前記上位装置において、
前記記憶手段は所定の認証局の発行した前記上位装置の証明書を予め記憶し、
前記証明書設定手段は、前記受信手段が前記下位装置にアクセスしても前記認証局情報を受信できない場合に、前記所定の認証局の発行した前記上位装置の証明書を、該下位装置から通信を要求された場合に認証のために該下位装置に送信する証明書として設定することを特徴とする通信システム。
【請求項7】
証明書を用いて認証を行って複数の通信相手と通信する通信装置であって、一以上の証明書を記憶可能な記憶手段を有する通信装置を制御するコンピュータを、
相手先装置において受け付けられた認証局の情報である認証局情報を該相手先装置から受信する受信手段と、
前記認証局情報で指定された認証局の発行した前記通信装置の証明書を前記記憶手段が記憶しているか否か判断する判断手段と、
前記判断手段が前記認証局情報で指定された認証局の発行した前記通信装置の証明書を前記記憶手段が記憶していないと判断した場合に、前記認証局情報で指定された認証局の発行した前記通信装置の証明書を取得して前記記憶手段に記憶させる証明書取得手段と、
前記判断手段が前記認証局情報で指定された認証局の発行した前記通信装置の証明書を前記記憶手段が記憶していないと判断した場合に、前記証明書取得手段が取得した前記通信装置の証明書を、前記認証局情報の送信元である相手先装置と通信を行う場合に認証のために該相手先装置に送信する証明書として設定し、前記判断手段が前記認証局情報で指定された認証局の発行した前記通信装置の証明書を前記記憶手段が記憶していると判断した場合に、該記憶している証明書を、前記認証局情報の送信元である相手先装置と通信を行う場合に認証のために該相手先装置に送信する証明書として設定する証明書設定手段として機能させるためのプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate


【公開番号】特開2012−199679(P2012−199679A)
【公開日】平成24年10月18日(2012.10.18)
【国際特許分類】
【出願番号】特願2011−61467(P2011−61467)
【出願日】平成23年3月18日(2011.3.18)
【出願人】(000006747)株式会社リコー (37,907)
【Fターム(参考)】