(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2024010700
(43)【公開日】2024-01-25
(54)【発明の名称】証明書発行サーバを備えるネットワークシステムおよび証明書発行方法
(51)【国際特許分類】
H04L 9/32 20060101AFI20240118BHJP
G06F 21/44 20130101ALI20240118BHJP
G06F 21/64 20130101ALI20240118BHJP
【FI】
H04L9/32 200D
H04L9/32 200E
G06F21/44
G06F21/64
【審査請求】未請求
【請求項の数】3
【出願形態】OL
(21)【出願番号】P 2022112127
(22)【出願日】2022-07-13
(71)【出願人】
【識別番号】000005234
【氏名又は名称】富士電機株式会社
(74)【代理人】
【識別番号】110004185
【氏名又は名称】インフォート弁理士法人
(74)【代理人】
【識別番号】100121083
【弁理士】
【氏名又は名称】青木 宏義
(74)【代理人】
【識別番号】100138391
【弁理士】
【氏名又は名称】天田 昌行
(74)【代理人】
【識別番号】100132067
【弁理士】
【氏名又は名称】岡田 喜雅
(74)【代理人】
【識別番号】100131521
【弁理士】
【氏名又は名称】堀口 忍
(72)【発明者】
【氏名】梅崎 一也
(57)【要約】
【課題】プライベートネットワーク内で使用されるサーバ装置に対してサーバ証明書を適切に発行する方法を提供する。
【解決手段】プライベートサーバが管理サーバに接続するときに、それらの間で相互認証を行う。相互認証が成功すると、プライベートサーバは証明書署名要求を含む証明書要求メッセージを管理サーバに送信し、管理サーバは、管理サーバの秘密鍵を使用して証明書要求メッセージに署名することで署名済み証明書要求メッセージを生成する。署名済み証明書要求メッセージは、プライベートサーバを介して証明書発行サーバに転送される。証明書発行サーバは、管理サーバの公開鍵で証明書要求メッセージの署名を検証し、その署名の検証が成功すると、ルート証明書の秘密鍵で証明書要求メッセージに含まれる証明書署名要求を署名することでサーバ証明書を発行する。
【選択図】
図2
【特許請求の範囲】
【請求項1】
第1のネットワークに接続するプライベートサーバと、
前記第1のネットワークに接続する証明書発行サーバと、
第2のネットワークに接続し、前記プライベートサーバを管理する管理サーバと、を備え、
前記プライベートサーバが前記管理サーバに接続するときに、前記プライベートサーバが前記管理サーバを検証し、前記管理サーバが前記プライベートサーバを検証する相互認証が行われ、
前記管理サーバの認証が成功したときに、前記プライベートサーバは、前記プライベートサーバのサーバ証明書の発行を要求する証明書署名要求を含む証明書要求メッセージを前記管理サーバに送信し、
前記プライベートサーバの認証が成功した後に前記証明書要求メッセージを受信したときに、前記管理サーバは、前記管理サーバの秘密鍵を使用して前記証明書要求メッセージに署名することにより署名済み証明書要求メッセージを生成して前記プライベートサーバに送信し、
前記プライベートサーバは、前記管理サーバから受信した前記署名済み証明書要求メッセージを前記証明書発行サーバに送信し、
前記証明書発行サーバは、
前記管理サーバの公開鍵を使用して前記プライベートサーバから受信した前記証明書要求メッセージの署名を検証し、
前記証明書要求メッセージの署名の検証が成功したときに、前記証明書要求メッセージに含まれる前記証明書署名要求に対して、前記証明書発行サーバのルート証明書の秘密鍵で署名することにより、前記プライベートサーバのサーバ証明書を生成し、
前記サーバ証明書を前記プライベートサーバに送信する
ことを特徴とするネットワークシステム。
【請求項2】
前記証明書要求メッセージは、前記第1のネットワークにおける前記プライベートサーバのアドレスをさらに含み、
前記証明書発行サーバは、
前記証明書要求メッセージの署名の検証が成功したときに、前記証明書要求メッセージに含まれる前記プライベートサーバのアドレスが前記署名済み証明書要求メッセージの送信元アドレスと一致しているか否かを判定し、
前記プライベートサーバのアドレスが前記署名済み証明書要求メッセージの送信元アドレスと一致しているときに、前記プライベートサーバのサーバ証明書を生成する
ことを特徴とする請求項1に記載のネットワークシステム。
【請求項3】
第1のネットワークに接続するプライベートサーバと、前記第1のネットワークに接続する証明書発行サーバと、第2のネットワークに接続し、前記プライベートサーバを管理する管理サーバと、を備えるネットワークシステムにおいて、前記プライベートサーバのサーバ証明書を発行する証明書発行方法であって、
前記プライベートサーバが前記管理サーバに接続するときに、前記プライベートサーバが前記管理サーバを検証し、前記管理サーバが前記プライベートサーバを検証する相互認証が行われ、
前記管理サーバの認証が成功したときに、前記プライベートサーバは、前記プライベートサーバのサーバ証明書の発行を要求する証明書署名要求を含む証明書要求メッセージを前記管理サーバに送信し、
前記プライベートサーバの認証が成功したときに、前記管理サーバは、前記管理サーバの秘密鍵を使用して前記証明書要求メッセージに署名することにより署名済み証明書要求メッセージを生成して前記プライベートサーバに送信し、
前記プライベートサーバは、前記署名済み証明書要求メッセージを前記証明書発行サーバに送信し、
前記証明書発行サーバは、
前記管理サーバの公開鍵を使用して前記証明書要求メッセージの署名を検証し、
前記証明書要求メッセージの署名の検証が成功したときに、前記証明書要求メッセージに含まれる前記証明書署名要求に対して、前記証明書発行サーバのルート証明書の秘密鍵で署名することにより、前記プライベートサーバのサーバ証明書を生成し、
前記サーバ証明書を前記プライベートサーバに送信する
ことを特徴とする証明書発行方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、ネットワーク上で使用されるデジタル証明書を発行する技術に係わる。
【背景技術】
【0002】
ネットワークに接続するサーバ装置は、多くのケースにおいて、サーバ証明書により真正性または信頼性が保証される。サーバ証明書は、ネットワーク上に設けられている認証局(CA:Certificate Authority)により発行される。
【0003】
他方、IoT(Internet of Things)の普及に伴い、IoT機器によって収集されたデータの見える化のためにプライベートネットワーク内で使用されるWebサーバの数が増加している。このWebサーバは、IoT機器に内蔵されている場合がある。そして、これらのWebサーバも、真正性を保証するためには、サーバ証明書を取得する必要がある。このため、プライベートネットワーク内に設けられるサーバ装置に対して安全に信頼性の高いサーバ証明書を発行する技術が求められている。
【0004】
例えば、特許文献1に記載されている証明書発行システムにおいては、プライベートサーバは、パブリックネットワークを介して、証明書発行サーバにサーバ証明書への署名を要求する。証明書発行サーバは、プライベートサーバの真正性の検証を検証サーバに依頼し、その検証が成功すれば署名を実施する。
【先行技術文献】
【特許文献】
【0005】
【発明の概要】
【発明が解決しようとする課題】
【0006】
上述した特許文献1に記載されている構成においては、証明書発行サーバは、パブリックCAにより管理されている。このため、プライベートサーバに対して発行されるサーバ証明書は、クライアント端末のWebブラウザに予めインストールされているパブリックCAのルート証明書を利用して検証可能である。但し、この手順を実現するためには、証明書発行サーバにおいて新たな役割(即ち、プライベートサーバの真正性の検証を検証サーバに依頼する手順等)が発生する。よって、パブリックネットワークに接続する、不特定多数のサーバ装置からデジタル証明書の発行依頼を受信する証明書発行サーバにおいては、この手順の実現は困難である。
【0007】
本発明の1つの側面に係わる目的は、プライベートネットワーク内で使用されるサーバ装置、特にIoT機器に内蔵されているWebサーバに対してサーバ証明書を適切に発行する方法を提供することである。
【課題を解決するための手段】
【0008】
本発明の1つの態様のネットワークシステムは、第1のネットワークに接続するプライベートサーバと、前記第1のネットワークに接続する証明書発行サーバと、第2のネットワークに接続し、前記プライベートサーバを管理する管理サーバと、を備える。前記プライベートサーバが前記管理サーバに接続するときに、前記プライベートサーバが前記管理サーバを検証し、前記管理サーバが前記プライベートサーバを検証する相互認証が行われる。前記管理サーバの認証が成功したときに、前記プライベートサーバは、前記プライベートサーバのサーバ証明書の発行を要求する証明書署名要求を含む証明書要求メッセージを前記管理サーバに送信する。前記プライベートサーバの認証が成功した後に前記証明書要求メッセージを受信したときに、前記管理サーバは、前記管理サーバの秘密鍵を使用して前記証明書要求メッセージに署名することにより署名済み証明書要求メッセージを生成して前記プライベートサーバに送信する。前記プライベートサーバは、管理サーバから受信した前記署名済み証明書要求メッセージを前記証明書発行サーバに送信する。前記証明書発行サーバは、前記管理サーバの公開鍵を使用して前記プライベートサーバから受信した前記証明書要求メッセージの署名を検証し、前記証明書要求メッセージの署名の検証が成功したときに、前記証明書要求メッセージに含まれる前記証明書署名要求に対して、前記証明書発行サーバのルート証明書の秘密鍵で署名することにより、前記プライベートサーバのサーバ証明書を生成し、前記サーバ証明書を前記プライベートサーバに送信する。
【発明の効果】
【0009】
上述の態様によれば、プライベートネットワーク内で使用されるサーバ装置に対してサーバ証明書を適切に発行できる。
【図面の簡単な説明】
【0010】
【
図1】本発明の実施形態に係わるネットワークシステムの一例を示す図である。
【
図2】プライベートサーバのサーバ証明書を取得する手順の一例を示すシーケンス図である。
【
図3】証明書要求メッセージへの署名およびその検証の一例を示す図である。
【
図4】証明書要求メッセージの一例を示す図である。
【
図5】サーバ証明書の生成およびその検証の一例を示す図である。
【
図6】証明書発行サーバのハードウェア構成の一例を示す図である。
【発明を実施するための形態】
【0011】
図1は、本発明の実施形態に係わるネットワークシステムの一例を示す。本発明の実施形態に係わるネットワークシステムは、プライベートサーバ1、証明書発行サーバ2、IoTサーバ3を備える。
【0012】
プライベートサーバ1および証明書発行サーバ2は、それぞれプライベートネットワーク110に接続されている。また、プライベートネットワーク110には、クライアント端末4が接続される。プライベートネットワーク110は、例えば、1つの企業内に構築されるイントラネットである。また、プライベートネットワーク110内では、プライベートIPアドレスに基づいてパケットが転送される。
【0013】
IoTサーバ3は、パブリックネットワーク120に接続されている。パブリックネットワーク120は、例えば、インターネットである。すなわち、パブリックネットワーク120内では、グルーバルIPアドレスに基づいてパケットが転送される。また、プライベートネットワーク110およびパブリックネットワーク120は、ネットワークゲートウェイ130により相互に接続されている。ネットワークゲートウェイ130は、プライベートIPアドレスとグルーバルIPアドレスとの変換を行う。
【0014】
プライベートサーバ1は、この実施例では、IoT機器である。すなわち、プライベートサーバ1は、インターネットに接続する機能を備えており、また、クライアントにサービスを提供することができる。一例としては、プライベートサーバ1は、クライアントからのHTTPリクエストに応じてHTTPレスポンスを返信するWebサーバ機能を備える。また、プライベートサーバ1は、例えば、企業のイントラネットに接続された電子機器または製造装置であってもよい。
【0015】
証明書発行サーバ2は、プライベートネットワーク110内で有効なサーバ証明書を発行する。すなわち、証明書発行サーバ2は、プライベートサーバ1からサーバ証明書の発行を求める旨の要求を受信したときに、そのプライベートサーバ1の真正性をチェックする。そして、真正性を確認できたときには、証明書発行サーバ2は、サーバ証明書を発行してプライベートサーバ1に提供する。ただし、後で説明するが、本発明の実施形態に係わるネットワークシステムにおいては、IoT機器であるプライベートサーバ1の真正性はIoTサーバ3により認証され、プライベートサーバ1は、IoTサーバ3による認証の結果を取得する。また、証明書発行サーバ2は、いわゆるパブリックCAではなく、プライベートネットワーク110内で有効なサーバ証明書を発行するプライベートCAとして動作する。したがって、プライベートネットワーク110に接続するクライアント端末には、プライベートCAとして動作する証明書発行サーバ2のルート証明書がインストールされることが好ましい。
【0016】
IoTサーバ3は、この実施例では、クラウド上に設けられ、プライベートネットワーク110に接続するIoT機器を管理すると共に、それらIoT機器に対してサービスを提供することができる。すなわち、IoTサーバ3は、プライベートサーバ1を管理すると共に、プライベートサーバ1に対してサービスを提供することができる。
【0017】
IoTサーバ3は、インタフェース(IF)部3aおよびアプリケーション部3bを備える。IF部3aは、IoTサーバ3がパブリックネットワーク120を介してIoT機器からアクセスを受けたときに、そのアクセス元がIoTサーバ3により管理されている正規のIoT機器であるか否かを判定する。すなわち、アクセス元がIoTサーバ3に予め登録されたIoT機器であるか否かが判定される。そして、アクセス元が正規のIoT機器であるときには、IF部3aは、アプリケーション部3bへのアクセスを許可する。例えば、プライベートサーバ1がIoTサーバ3に登録されているIoT機器であるときは、IF部3aは、プライベートサーバ1からアプリケーション部3bへのアクセスを許可する。
【0018】
アプリケーション部3bは、IoTサーバ3に予め登録されている正規のIoT機器に対してサービスを提供する。この実施例では、後で説明するが、サーバ証明書の発行を要求するメッセージへの署名を行う。ただし、アプリケーション部3bは、サーバ証明書の発行に係わらない他のサービスを提供することもできる。換言すると、サーバ証明書の発行を要求するメッセージへの署名は、IoT機器に提供されるサービスの1つである。なお、IF部3aおよびアプリケーション部3bは、1台のコンピュータ内に実装されてもよいし、異なるコンピュータに実装されてもよい。
【0019】
クライアント端末4は、プライベートネットワーク110に接続され、プライベートサーバ1からサービスを受けることができる。ここで、クライアント端末4は、Webクライアントであり、プライベートサーバ1にHTTPリクエストを送信し、その応答としてHTTPレスポンスを受信する。なお、クライアント端末4は、パーソナルコンピュータまたはモバイル端末等の情報処理装置であってもよいし、各種電子機器であってもよい。
【0020】
上記構成のネットワークシステムにおいて、クライアント端末4は、プライベートサーバ1にアクセスするときに、プライベートサーバ1が正規のサーバであるか否かを確認する。この実施例では、クライアント端末4は、サーバ証明書を利用してプライベートサーバ1の真正性を確認する。したがって、プライベートサーバ1は、クライアント端末4に対してサービスを提供する前に、予めサーバ証明書を取得しておく必要がある。
【0021】
図2は、プライベートサーバ1のサーバ証明書を取得する手順の一例を示すシーケンス図である。なお、この実施例では、
図1に示すように、IoTサーバ3の記憶装置3cにIoTサーバ3の秘密鍵が保存されているものとする。また、IoTサーバ3の秘密鍵に対応する公開鍵および証明書発行サーバ2のルート証明書の秘密鍵が、証明書発行サーバ2の記憶装置2aに保存されているものとする。そして、プライベートサーバ1のサーバ証明書を取得する際には、例えば、プライベートネットワーク110の管理者が
図2に示す手順を開始する旨の指示をプライベートサーバ1に与える。
【0022】
プライベートサーバ1は、管理者から上述の指示を受け取ると、S1において、サーバ証明書の秘密鍵および証明書署名要求(CSR:Certificate Signing Request)を生成する。このとき、サーバ証明書の秘密鍵と対応する公開鍵とのペアが生成される。また、証明書署名要求は、デジタル証明書(ここでは、サーバ装置の真正性を証明するサーバ証明書)の発行を認証局(ここでは、証明書発行サーバ2)に要求するメッセージである。したがって、証明書署名要求は証明書を含み、この証明書は、申請者の識別情報および公開鍵などを含む。なお、証明書署名要求は、例えば、符号化されたテキストファイルである。
【0023】
S2において、プライベートサーバ1は、証明書要求メッセージを生成する。証明書要求メッセージは、この例では、IoT機器としてのプライベートサーバ1の識別情報、プライベートサーバ1がWebサーバとしてアクセスを受け付ける際のIPアドレス(プライベートネットワーク110内で使用されるプライベートIPアドレス)、および上述の証明書署名要求を含む。
【0024】
S3において、プライベートサーバ1は、TLS(Transport Layer Security)でIoTサーバ3に接続する。TLSは、インターネット等のTCP/IPネットワークにおいて情報を暗号化して伝送するプロトコルの1つであり、情報を送受信する1組のノード間で通信を暗号化することにより、他の機器による改ざん、盗み見、なりすまし等を防ぐ。そして、TLSによる通信の開始時には、プライベートサーバ1とIoTサーバ3のIF部3aとの間で相互認証が行われる。
【0025】
ここで、サーバ側(即ち、IoTサーバ3)は、認証局が署名したデジタル証明書(SSLサーバ証明書)を保持しているものとする。この場合、プライベートサーバ1は、このデジタル証明書をIoTサーバ3から取得することによりIoTサーバ3の真正性を確認できる。また、クライアント側(即ち、プライベートサーバ1)は、クライアント証明書を保持しているものとする。このクライアント証明書は、例えば、IoTサーバ3のSSLサーバ証明書と同じ認証局により発行される。そして、IoTサーバ3のIF部3aは、このクライアント証明書をプライベートサーバ1から取得することによりプライベートサーバ1の真正性を確認できる。なお、IoTサーバ3は、トークンまたはパスワード等を利用してプライベートサーバ1を認証してもよい。
【0026】
IoTサーバ3は、IoTサーバ3へのアクセスが許可されているIoT機器が登録されたIoT機器リストを備えていることが好ましい。この場合は、アクセス元のIoT機器(即ち、プライベートサーバ1)がIoT機器リストされており、且つ、クライアント証明書またはトークン等による認証が成功したときに、IoTサーバ3は、そのアクセス元を正規のIoT機器と判定する。これにより、IoTサーバ3において、プライベートサーバ1のIoT機器としての認証が実現される。
【0027】
S3においてIoTサーバ3の認証が成功すると、プライベートサーバ1は、IoTサーバ3を信頼できると判定する。そうすると、S4において、プライベートサーバ1は、S2で生成した証明書要求メッセージをIoTサーバ3に送信する。この証明書要求メッセージは、IF部3aにより受信される。そして、IF部3aは、受信した証明書要求メッセージをアプリケーション部3bに転送する。
【0028】
S3においてプライベートサーバ1の認証が成功すると、IoTサーバ3は、プライベートサーバ1を信頼できると判定する。そうすると、S5において、アプリケーション部3bは、IoTサーバ3の秘密鍵を利用して証明書要求メッセージに署名を行う。このとき、アプリケーション部3bは、証明書要求メッセージの内容を確認してもよい。たとえば、アプリケーション部3bは、証明書要求メッセージに含まれる「IoT機器としてのプライベートサーバ1の識別情報」に基づいてプライベートサーバ1を識別する。
【0029】
図3(a)は、証明書要求メッセージへの署名の一例を示す。この例では、アプリケーション部3bは、プライベートサーバ1から受信した証明書要求メッセージに対して所定のハッシュ演算を行うことにより対応するハッシュ値を生成する。続いて、アプリケーション部3bは、IoTサーバ3の秘密鍵でこのハッシュ値を暗号化することで暗号化ハッシュ値を生成する。そして、証明書要求メッセージに暗号化ハッシュ値を付与することで署名済み証明書要求メッセージが生成される。
【0030】
S6において、アプリケーション部3bにより生成された署名済み証明書要求メッセージは、IF部3aに渡される。IF部3aは、この署名済み証明書要求メッセージを、証明書要求メッセージに送信元に送信する。これにより、プライベートサーバ1は、IoTサーバ3により署名された証明書要求メッセージ(すなわち、署名済み証明書要求メッセージ)を取得する。
【0031】
S7において、プライベートサーバ1は、署名済み証明書要求メッセージを証明書発行サーバ2に送信する。S8において、証明書発行サーバ2は、証明書要求メッセージの署名を検証する。
【0032】
図3(b)は、IoTサーバ3の署名を検証する方法の一例を示す。ここで、証明書要求メッセージは、IoTサーバ3において
図3(a)に示す方法で署名されているものとする。この場合、証明書発行サーバ2は、受信した証明書要求メッセージに対して所定のハッシュ演算を行うことにより対応するハッシュ値を生成する。また、受信した暗号化ハッシュ値をIoTサーバ3の公開鍵で復号することによりIoTサーバ3で計算されたハッシュ値を再生する。そして、2つのハッシュ値が互いに一致していれば、証明書発行サーバ2は、証明書要求メッセージが正規のサーバ(即ち、IoTサーバ3)により署名されたと判定する。
【0033】
ここで、IoTサーバ3は、S3における相互認証において、プライベートサーバ1の真正性を確認する認証を行っている。よって、IoTサーバ3の署名の検証が成功したときは、証明書発行サーバ2は、プライベートサーバ1の真正性が既に確認されていると判定する。
【0034】
したがって、署名の検証に成功したときには、S9において、証明書発行サーバ2は、証明書要求メッセージ(実際には、署名済み証明書要求メッセージ)の送信元IPアドレスをチェックする。具体的には、証明書発行サーバ2は、証明書要求メッセージの送信元IPアドレスと、証明書要求メッセージ中に記載されているIPアドレスとを比較する。ここで、証明書要求メッセージの送信元IPアドレスは、
図4に示すように、証明書要求メッセージを伝送するためのパケットまたはフレームのヘッダから抽出される。したがって、上記2つのIPアドレスが互いに一致するときには、証明書発行サーバ2は、証明書要求メッセージ中に記載されているIPアドレスが、プライベートサーバ1により実際に使用されるローカルIPアドレスであると判定する。
【0035】
IPアドレスの検証が成功すると、証明書発行サーバ2は、S10において、証明書署名要求の内容をチェックする。例えば、証明書発行サーバ2は、必要な情報が漏れなく記載されているか否かを判定する。そして、S11において、証明書発行サーバ2は、証明書要求メッセージに含まれる証明書署名要求に対して、証明書発行サーバ2のルート証明書の秘密鍵で署名する。これにより、サーバ証明書が生成される。
【0036】
図5(a)は、サーバ証明書の生成の一例を示す。この実施例では、証明書発行サーバ2は、プライベートサーバ1から受信した証明書要求メッセージに含まれている証明書署名要求の証明書部分に対して所定のハッシュ演算を行うことにより対応するハッシュ値を生成する。続いて、証明書発行サーバ2は、証明書発行サーバ2のルート証明書の秘密鍵でこのハッシュ値を暗号化することで暗号化ハッシュ値を生成する。そして、証明書の署名部分に暗号化ハッシュ値を付与することでサーバ証明書が生成される。
【0037】
S12において、証明書発行サーバ2は、生成したサーバ証明書をプライベートサーバ1に送信する。そして、S13において、プライベートサーバ1は、証明書発行サーバ2により生成されたサーバ証明書を自装置内の所定の領域に登録する。
【0038】
このように、プライベートサーバ1のサーバ証明書を取得する際には、プライベートサーバ1は、証明書署名要求(CSR)を、証明書発行サーバ2ではなく、先ず、プライベートサーバ1をIoT機器として管理するIoTサーバ3に送信する。ここで、プライベートサーバ1とIoTサーバ3との間で相互認証を行うことにより、プライベートサーバ1の真正性の確認が実現される。この後、IoTサーバ3により署名された証明書署名要求が証明書発行サーバ2に送信される。そして、証明書発行サーバ2がルート証明書の秘密鍵で証明書署名要求に署名することでサーバ証明書が発行される。この手順により、サーバ証明書を発行するシーケンスの自動化が実現される。
【0039】
加えて、サーバ証明書を発行する手順の中で、そのサーバ証明書を必要とするプライベートサーバ1のローカルIPアドレスが検証される。したがって、不適切なIoT機器に対してサーバ証明書が発行されることはなく、セキュリティが向上する。
【0040】
この後、
図1に示すクライアント端末4がプライベートサーバ1にアクセスすると、証明書発行サーバ2により発行された上述のサーバ証明書がプライベートサーバ1からクライアント端末4に送信される。ここで、クライアント端末4には、証明書発行サーバ2のルート証明書がインストールされるものとする。この場合、このルート証明書は、公開鍵を含む。よって、クライアント端末4は、ルート証明書を利用してサーバ証明書を検証できる。
【0041】
図5(b)は、クライアント端末4がサーバ証明書を検証する方法の一例を示す。ここで、サーバ証明書は、
図5(a)に示すように、証明書発行サーバ2が証明書に署名することで生成されたものとする。この場合、クライアント端末4は、サーバ証明書に含まれる証明書に対して所定のハッシュ演算を行うことにより対応するハッシュ値を生成する。また、受信した暗号化ハッシュ値をルート証明書の公開鍵で復号することにより証明書発行サーバ2で計算されたハッシュ値を再生する。そして、2つのハッシュ値が互いに一致していれば、クライアント端末4は、プライベートサーバ1が正規のサーバであると判定する。
【0042】
なお、上述の実施例では、プライベートネットワーク110の管理者からの指示を契機として
図2に示す手順が開始されるが、本発明の実施形態はこの方式に限定されるものではない。例えば、サーバ証明書が有効期限を有するときは、プライベートサーバ1は、その有効期限をモニタする。そして、有効期限の満了までの残り期間が所定の閾値より短くなったときに、プライベートサーバ1は、
図2に示す手順を自動的に実行してもよい。
【0043】
また、上述の実施例では、証明書発行サーバ2はルート証明書の秘密鍵を用いて署名を行い、また、クライアント端末4にはルート証明書がインストールされる。ただし、ルート証明書は、必ずしも最上位の機関により発行される証明書に限定されるものではない。
【0044】
<ハードウェア構成>
図6は、証明書発行サーバ2のハードウェア構成の一例を示す。この実施例では、証明書発行サーバ2は、プロセッサ201、メモリ202、記憶装置203、入出力デバイス204、記録媒体読取り装置205、および通信インタフェース206を備えるコンピュータ200により実現される。
【0045】
プロセッサ201は、記憶装置203に保存されている証明書発行プログラムを実行することにより、サーバ証明書の発行に係わる証明書発行サーバ2の動作を制御する。この証明書発行プログラムは、
図2に示すS8~S12に係わる手順を記述したプログラムコードを含む。よって、プロセッサ201がこのプログラムを実行することで、サーバ証明書を発行する機能が提供される。
【0046】
メモリ202は、プロセッサ201の作業領域として使用される。記憶装置203は、上述した証明書発行プログラムおよび他のプログラムを保存する。入出力デバイス204は、キーボード、マウス、タッチパネル、マイクなどの入力デバイスを含む。また、入出力デバイス204は、表示装置、スピーカーなどの出力デバイスを含む。記録媒体読取り装置205は、記録媒体210に記録されているデータおよび情報を取得できる。記録媒体210は、コンピュータ200に着脱可能なリムーバブル記録媒体である。また、記録媒体210は、例えば、半導体メモリ、光学的作用で信号を記録する媒体、または磁気的作用で信号を記録する媒体により実現される。なお、証明書発行プログラムは、記録媒体210からコンピュータ200に与えられてもよい。通信インタフェース206は、ネットワークに接続する機能を提供する。なお、証明書発行プログラムがプログラムサーバ220に保存されているときは、コンピュータ200は、プログラムサーバ220から証明書発行プログラムを取得してもよい。
【0047】
IoTサーバ3は、特に限定されるものではないが、証明書発行サーバ2と同様に、
図6に示すプロセッサ201、メモリ202、記憶装置203、入出力デバイス204、記録媒体読取り装置205、および通信インタフェース206を備える機器またはコンピュータにより実現してもよい。
【符号の説明】
【0048】
1 プライベートサーバ(IoT機器)
2 証明書発行サーバ(プライベートCA)
3 IoTサーバ
3a IF部
3b アプリケーション部
4 クライアント端末
110 プライベートネットワーク
120 パブリックネットワーク