説明

端末装置およびサーバ装置および電子証明書発行システムおよび電子証明書受信方法および電子証明書送信方法およびプログラム

【課題】独自の電子証明書を発行するサーバ装置と発行された電子証明書を利用する端末装置とから成る電子証明書発行システムにおいて、予め電子証明書の検証プログラムが組み込まれている必要のない端末装置を提供する。
【解決手段】端末装置100は、サーバ装置200から認証局の電子署名が付加された証明書検証プログラム508をダウンロードし、認証局が発行した電子証明書である認証局証明書516の電子署名との検証を行う。そして、端末装置100は、検証が完了した証明書検証プログラム508を用いて、サーバ装置200が発行した電子証明書611の検証を行う。

【発明の詳細な説明】
【技術分野】
【0001】
この発明は、電子証明書を発行する電子証明書発行システムおよび端末装置およびサーバ装置およびプログラムに関する(ここで、電子証明書を生成して、生成した電子証明書を送信することを「電子証明書を発行する」と称する。)。
【背景技術】
【0002】
遠隔地に端末装置を配置し、サーバ装置から端末装置に対して遠隔監視を行なったり、コンテンツを配送したりするシステムが存在する。
このようなシステムにおいて、公衆網(例えばインターネット)経由でサーバ装置に接続する場合、端末装置は、接続先のサーバ装置が本当に接続したいサーバ装置であるのかを認証する必要がある。またサーバ装置は、接続してきた端末装置が本当にサービスを提供するべき端末装置であるのかを認証する必要がある。すなわち、端末装置とサーバ装置とは、相互に認証する必要がある(以降、端末装置とサーバ装置とが相互に認証し合うことを相互認証と称する)。
特に、端末装置が組み込み機器の場合、端末装置とサーバ装置とは、人手を介さず相互認証を行なう必要がある。
【0003】
人手を介さず相互認証を行なう方法として、SSL(Secure Socket Layer)/TLS(Transport Layer Security)等の相互認証・鍵共有プロトコルを用いる方法がある(例えば非特許文献1参照)。
【0004】
非特許文献1によれば、サーバ装置と端末装置とは、双方に電子証明書が発行される必要がある。電子証明書は、信頼される第三者機関が運用する認証局(CA、Certification Authority)によって発行される。また、認証局の証明書(ルート証明書)は、予めサーバ装置と端末装置との双方にプリインストールされている必要がある。
【0005】
第三者機関が運用する認証局に電子証明書の発行を依頼する場合は、一つの電子証明書毎に、発行コストが発生する。そして、サーバ装置に接続される端末装置、すなわちクライアントの数が増加すると、クライアントの数の増加に比例して、電子証明書の発行コストは増加する。また、電子証明書の有効期限が、1〜2年である為、発行コストは1〜2年毎に発生する。
【0006】
その為、電子証明書の発行コストを抑制する為には、電子証明書の発行を第三者機関が運用する認証局に依頼せず、サーバ装置と端末装置とを使用する企業などにおいて独自に認証局の機能、すなわち電子証明書の発行を実現する必要がある。その際に、独自に実現した認証局のルート証明書にも有効期限が有る為、独自に実現した認証局は、電子証明書を発行する対象のサーバ装置と端末装置に対して、ルート証明書を更新することも必要となる。
【0007】
認証局の機能を独自に実現する場合、「なりすましによる非正規の端末装置への証明書発行の防止」と「遠隔地にある端末装置への各種証明書の安全なインストール」とが課題となる。
第三者機関が運用する認証局のルート証明書は、サーバ装置と端末装置とのオペレーティングシステム(OS)が提供するアップデート機能等で配布される。一方、認証局の機能を独自に実現する場合、独自に実現した認証局は、このOSのアップデート機能を利用することが出来ない。
【0008】
「遠隔地にある端末装置への各種証明書の安全なインストール」を行う為の方法が、特許文献1に開示されている。また、独自に証明書を運用してリソース共有を行なう方法が特許文献2に開示されている。
【0009】
また、第三者機関が運用する認証局に頼らずに、電子証明書を通信機器が自動で発行する方法が、特許文献3に開示されている。特許文献3は、自己署名証明書をIDベース署名(Identity−Based Signature)で署名することで、自己署名証明書をクライアント側で検証可能にする手法を示している。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特開2005−322031号公報
【特許文献2】特開2004−164638号公報
【特許文献3】WO2010/067812号公報
【非特許文献】
【0011】
【非特許文献1】The TLS Protocol Version 1.0 RFC2246
【発明の概要】
【発明が解決しようとする課題】
【0012】
特許文献1によれば、遠隔地にある端末装置は、独自に実現した認証局(電子証明書を発行(メンテナンス)する機器)に接続し、パスワードによる認証を行なった後、パスワードで暗号化したルート証明書を復号してインストールする。しかし、パスワードの入力は、人手で行わなければならず、端末装置が多数ある場合に多大な労力が必要となる。
また、独自に実現した認証局(電子証明書を発行(メンテナンス)する機器)にパスワードを予め登録しなければならず、端末装置と、独自に実現した認証局とは、パスワード登録時に安全な通信を行う必要がある。
【0013】
特許文献2によれば、独自に実現した認証局は、電子証明書を遠隔地にある端末装置に電子証明書を受け渡す為に、安全な通信を行う必要がある。
【0014】
特許文献3によれば、遠隔地にある端末装置(クライアント)は、独自に実現した認証局が発行した電子証明書の検証プログラムをあらかじめ組み込んでおく必要がある。
【0015】
この発明は前記のような課題を解決することを主な目的とするもので、例えば、人手を介さずに、予め電子証明書の検証プログラムを端末装置に組み込む必要がなく、安全な通信により、電子証明書を発行する電子証明書発行システムを実現することを主な目的とする。
【課題を解決するための手段】
【0016】
この発明に係る端末装置は、
サーバ装置から、電子証明書と、電子署名付きのプログラムであって、前記電子証明書が前記サーバ装置で生成された電子証明書であるか否かを検証するための証明書検証プログラムとを受信する通信部と、
認証局により生成された証明書であり、前記認証局により前記証明書検証プログラムが認証されていることを証明する証明書を認証局証明書として記憶する認証局証明書記憶部と、
前記認証局証明書記憶部に記憶されている認証局証明書から電子署名を生成し、前記通信部により受信された証明書検証プログラムの電子署名が前記認証局証明書から生成された電子署名と一致するか否かを検証し、前記通信部により受信された証明書検証プログラムの電子署名が前記認証局証明書から生成された電子署名と一致する場合に、前記通信部により受信された前記証明書検証プログラムを実行して、前記通信部により受信された電子証明書が前記サーバ装置で生成された電子証明書であるか否かを検証する検証実行部と
を備えることを特徴とする。
【0017】
また、この発明に係るサーバ装置は、
認証局によって生成された電子署名が付加された電子署名付きのプログラムであって、電子証明書の送信先において電子証明書の生成元を検証するための証明書検証プログラムを記憶する証明書検証プログラム記憶部と、
電子証明書を生成する電子証明書生成部と、
前記証明書検証プログラム記憶部に記憶されている証明書検証プログラムと、前記電子証明書生成部により生成された電子証明書とを、送信先に送信する通信部と
を備えることを特徴とする。
【発明の効果】
【0018】
この発明に係る端末装置とサーバ装置とは、例えば、人手を介さずに、予め電子証明書の検証プログラムを端末装置に組み込む必要がなく、安全な通信により、電子証明書を発行する電子証明書発行システムを実現する。
【図面の簡単な説明】
【0019】
【図1】実施の形態1を示す図で、電子証明書発行システムの構成を示す図。
【図2】実施の形態1を示す図で、端末装置100の外観の一例を示す図。
【図3】実施の形態1を示す図で、端末装置100のハードウェア資源の一例を示す図。
【図4】実施の形態1を示す図で、端末装置100とサーバ装置200との構成を示す図。
【図5】実施の形態1を示す図で、サーバ装置200が生成した電子証明書を端末装置100に発行する際のフローを示す図。
【図6】実施の形態1を示す図で、サーバ装置200における処理を示す図。
【図7】実施の形態1を示す図で、端末装置100における処理を示す図。
【図8】実施の形態2を示す図で、端末装置100とサーバ装置200との構成を示す図。
【図9】実施の形態2を示す図で、端末装置100の要求に基づき、サーバ装置200が生成した電子証明書を端末装置100に発行する際のフローを示す図。
【図10】実施の形態2を示す図で、端末装置100における処理を示す図。
【図11】実施の形態2を示す図で、サーバ装置200における処理を示す図。
【図12】実施の形態3を示す図で、端末装置100における処理を示す図。
【図13】実施の形態3を示す図で、サーバ装置200における処理を示す図。
【発明を実施するための形態】
【0020】
実施の形態1.
(電子証明書発行システムの概要)
図1は、電子証明書発行システムの構成を示す図である。
電子証明書発行システムは、電子証明書を発行するサービスセンター201と、発行された電子証明書を利用する拠点101とが例えばインターネット940で接続されている。拠点101は、例えばサービスセンター201から地理的に離れた遠隔地である。そして、拠点101は、複数存在する場合が有り、複数の拠点101が一つのサービスセンター201に接続されている場合が有る。
サービスセンター201には、電子証明書を発行するサーバ装置200が有る。このサーバ装置200は、電子証明書を発行する証明書発行サーバとも称する。
そして、拠点101には、端末装置100が配置されている。端末装置100は、一つの拠点101に対して、一台もしくは複数台配置される。端末装置100は、サーバ装置200に対するクライアント(クライアント装置)とも称する。
すなわち、電子証明書発行システムは、端末装置100とサーバ装置200とから構成されていると言える。
【0021】
サーバ装置200は端末装置100に対して、各種の電子証明書を発行する。
サーバ装置200が発行する電子証明書の種類は、サーバ証明書、クライアント証明書およびルート証明書である。
前記ルート証明書は、サーバ装置200自身を証明する電子証明書を用いたセキュリティーシステムの大本となる証明書である。
サーバ証明書、クライアント証明書はサーバもしくはクライアントであることを認証するための証明書である(詳細は後述)。ルート証明書(もしくは、ルート証明書にて検証可能な、認証局が発行した中間証明書)は、サーバ証明書、クライアント証明書の検証に必要とされる。
【0022】
(端末装置100とサーバ装置200とのハードウェア構成の概要)
次に、図2、図3を用いて端末装置100とサーバ装置200とのハードウェア構成の概要を説明する。
ここで、サーバ装置200は、端末装置100と同様のハードウェアから構成されている。よって、ここでは、端末装置100のハードウェア構成の例のみ説明し、サーバ装置200のハードウェア構成の説明は省略する。
すなわち、説明は省略するが、サーバ装置200は、端末装置100と同様に図2と図3に示すようなハードウェアから構成されるものである。
なお、以下の説明において、端末装置100とサーバ装置200とで、ハードウェアを個別に区別する必要が生じた場合は、例えば、端末装置100の表示装置を「表示装置901a」、サーバ装置200の表示装置を「表示装置901b」というように、端末装置100を構成するハードウェアとソフトウェアとは「a」、サーバ装置200を構成するハードウェアとソフトウェアとは「b」を付加して区別する。
【0023】
図2は、実施の形態1における端末装置100の外観の一例を示す図である。
図2において、端末装置100は、システムユニット910、CRT(Cathode・Ray・Tube)やLCD(液晶)の表示画面を有する表示装置901、キーボード902(Key・Board:K/B)、マウス903、FDD904(Flexible・Disk・ Drive)、コンパクトディスク装置905(CDD)、プリンタ装置906、スキャナ装置907などのハードウェア資源を備え、これらはケーブルや信号線で接続されている。
システムユニット910は、コンピュータであり、ファクシミリ機932、電話器931とケーブルで接続され、また、ローカルエリアネットワーク942(LAN)、ゲートウェイ941を介してインターネット940に接続されている。
【0024】
図3は、実施の形態1における端末装置100のハードウェア資源の一例を示す図である。
図3において、端末装置100は、プログラムを実行するCPU911(Central・Processing・Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、プロセッサともいう)を備えている。CPU911は、バス912を介してROM913、RAM914、通信ボード915、表示装置901、キーボード902、マウス903、FDD904、CDD905、プリンタ装置906、スキャナ装置907、磁気ディスク装置920と接続され、これらのハードウェアデバイスを制御する。磁気ディスク装置920の代わりに、SSD(Solid State Drive)、光ディスク装置、メモリカード読み書き装置などの記憶装置でもよい。
RAM914は、揮発性メモリの一例である。ROM913、FDD904、CDD905、磁気ディスク装置920の記憶媒体は、不揮発性メモリの一例である。これらは、記憶装置あるいは記憶部の一例である。
通信ボード915、キーボード902、スキャナ装置907、FDD904などは、入力部、入力装置の一例である。
また、通信ボード915、表示装置901、プリンタ装置906などは、出力部、出力装置の一例である。
【0025】
通信ボード915は、ファクシミリ機932、電話器931、LAN942等に接続されている。通信ボード915は、LAN942に限らず、インターネット940等のWAN(ワイドエリアネットワーク)などに接続されていても構わない。インターネット940等のWANに接続されている場合、ゲートウェイ941は不用となる。
磁気ディスク装置920には、オペレーティングシステム921(OS)、ウィンドウシステム922、プログラム群923、ファイル群924が記憶されている。プログラム群923のプログラムは、CPU911、オペレーティングシステム921、ウィンドウシステム922により実行される。
【0026】
上記プログラム群923には、以下に述べる実施の形態の説明において「〜部」(「〜記憶部」を除く)として説明する機能を実行するプログラムが記憶されている。更に端末装置100のプログラム群923aには、後述の証明書検証プログラム508、証明書発行要求署名プログラム505、証明書発行要求生成プログラム509が記憶される。更にサーバ装置200のプログラム群923bには、後述の証明書検証プログラム508、証明書情報生成プログラム550、証明書発行要求検証プログラム506、証明書情報署名プログラム507、証明書生成プログラム514が記憶される。プログラムは、CPU911により読み出され実行される。
ファイル群924には、以下に述べる実施の形態の説明において、「〜の判定結果」、「〜の計算結果」、「〜の処理結果」として説明する情報やデータや信号値や変数値やパラメータが、「ファイル」や「データベース」の各項目として記憶されている。「ファイル」や「データベース」は、ディスクやメモリなどの記録媒体に記憶される。ディスクやメモリなどの記憶媒体に記憶された情報やデータや信号値や変数値やパラメータは、読み書き回路を介してCPU911によりメインメモリやキャッシュメモリに読み出され、抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示・命令・検証・実行・格納などのCPUの動作に用いられる。抽出・検索・参照・比較・演算・計算・処理・出力・印刷・表示・命令・検証・実行・格納のCPUの動作の間、情報やデータや信号値や変数値やパラメータは、メインメモリやキャッシュメモリやバッファメモリに一時的に記憶される。
また、以下に述べる実施の形態の説明において説明するフローチャートの矢印の部分は主としてデータや信号の入出力を示し、データや信号値は、RAM914のメモリ、FDD904のフレキシブルディスク、CDD905のコンパクトディスク、磁気ディスク装置920の磁気ディスク、その他光ディスク、ミニディスク、DVD(Digital・Versatile・Disk)等の記録媒体に記録される。また、データや信号は、バス912や信号線やケーブルその他の伝送媒体によりオンライン伝送される。
【0027】
また、以下に述べる実施の形態の説明において「〜部」として説明するものは、「〜回路」、「〜装置」、「〜機器」、「手段」であってもよく、また、「〜ステップ」、「〜手順」、「〜処理」であってもよい。「〜部」(「〜記憶部」を除く)として説明するものは、ROM913に記憶されたファームウェアで実現されていても構わない。或いは、ソフトウェアのみ、或いは、素子・デバイス・基板・配線などのハードウェアのみ、或いは、ソフトウェアとハードウェアとの組み合わせ、さらには、ファームウェアとの組み合わせで実施されても構わない。ファームウェアとソフトウェアは、プログラムとして、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等の記録媒体に記憶される。プログラムはCPU911により読み出され、CPU911により実行される。すなわち、プログラム(後述の証明書検証プログラム508、証明書発行要求署名プログラム505、証明書発行要求生成プログラム509、証明書検証プログラム508、証明書情報生成プログラム550、証明書発行要求検証プログラム506、証明書情報署名プログラム507、証明書生成プログラム514は除く)は、以下に述べる「〜部」(「〜記憶部」を除く)としてコンピュータを機能させるものである。あるいは、以下に述べる「〜部」(「〜記憶部」を除く)の手順や方法をコンピュータに実行させるものである。
【0028】
(端末装置100とサーバ装置200との構成)
図4は、端末装置100とサーバ装置200との構成を示す図である。
端末装置100は、端末記憶部130と端末制御部110と端末通信部120とから構成される。
ここで、端末記憶部130は、認証局証明書記憶部に対応する。また、端末制御部110は、検証実行部に対応する。更に、端末通信部120は、端末装置100の通信部に対応する。
端末記憶部130は、例えば図3に示す磁気ディスク装置920等の記憶装置で実現され、端末制御部110は、例えば図3に示すCPU911で実現され、端末通信部120は、例えば図3に示す通信ボード915で実現される。
【0029】
サーバ装置200は、サーバ記憶部230とサーバ制御部210とサーバ通信部220とから構成される。
ここで、サーバ記憶部230は、証明書検証プログラム記憶部とサーバ特定情報記憶部とに対応する。また、サーバ制御部210は、電子証明書生成部に対応する。更に、サーバ通信部220は、サーバ装置200の通信部に対応する。
前述の通り、サーバ記憶部230は、端末装置100と同様に図2と図3に示すようなハードウェアから構成されるものである。すなわち、サーバ記憶部230は、例えば図3に示す磁気ディスク装置920等の記憶装置と同様の記憶装置で実現され、サーバ制御部210は、例えば図3に示すCPU911と同様のCPUで実現され、サーバ通信部220は、例えば図3に示す通信ボード915と同様の通信ボードで実現される。
【0030】
サーバ装置200は、製造元501により製造される。
サーバ記憶部230は、製造元501によって生成された証明書情報生成プログラム550、証明書情報署名プログラム507、証明書生成プログラム514、証明書検証プログラム508を例えば、製造元501による製造時に、予め記憶している。
ここで、サーバ記憶部230が記憶する証明書検証プログラム508は、予め製造元501によって、認証局600により生成された電子署名504が付加されている。
証明書検証プログラム508は、端末装置100が受信した電子証明書がサーバ装置200で生成されたものであるか否かを検証するためのプログラムである。言い換えれば、証明書検証プログラム508は、電子証明書の送信先において電子証明書の生成元を検証するためのプログラムである。
【0031】
ここで、製造元501は、サーバ装置200毎に、証明書情報生成プログラム550、証明書情報署名プログラム507、証明書生成プログラム514、証明書検証プログラム508を生成してもよい。その場合に、製造元501は、各プログラムの内、サーバ装置200毎に依存するデータを分離し、サーバ装置200に非依存の部分をサーバ装置200製造時に、サーバ記憶部230に記憶させることが出来る。そして、製造元501はサーバ装置200製造後に、サーバ装置200毎に依存するデータを生成し、後から各サーバ装置200のサーバ記憶部230に追加して記憶させることが出来る。あるいは、サーバ装置200が自らサーバ装置200毎に依存するデータを生成し、サーバ記憶部230がサーバ装置200毎に依存するデータを追加して記憶することが出来る。
【0032】
サーバ制御部210は、サーバ装置200の制御を行う。
サーバ通信部220は、端末装置100との通信を行う。
【0033】
端末装置100は、サーバ装置200と同じ製造元501により製造されてもよいし、異なる製造元501により製造されてもよい。
端末記憶部130は、証明書検証プログラム508と認証局証明書516とを記憶する。
ここで、証明書検証プログラム508は、端末通信部120を介してサーバ装置200からダウンロードされ、端末記憶部130に記憶される(詳細は後述)。また、認証局証明書516は、認証局600によって発行された電子証明書であり、端末記憶部130に記憶されている(詳細は後述)。
【0034】
端末制御部110は、端末装置100の制御を行う。
端末通信部120は、サーバ装置200との通信を行う。
【0035】
(電子証明書発行の動作)
まず、図5を用いて電子証明書発行の動作の概要を説明する。
図5は、サーバ装置200が生成した電子証明書を端末装置100に発行する際のフローを示す図である。
【0036】
サーバ制御部210(図4)は、サーバ記憶部230(図4)に記憶された証明書情報生成プログラム550を実行して、証明書記載情報608(詳細は後述)を生成する。
そして、サーバ制御部210(図4)は、サーバ記憶部230(図4)に記憶された証明書情報署名プログラム507を実行して、証明書記載情報608から電子署名609を生成する(詳細は後述)。
【0037】
更に、サーバ制御部210(図4)は、サーバ記憶部230(図4)に記憶された証明書生成プログラム514を実行して、証明書記載情報608と電子署名609とから電子証明書611を生成する(詳細は後述)。ここで、電子証明書611は、X.509証明書であってもよいし、PKCS(Public−Key Cryptography Standards)#7で符号化されていてもよい。さらにPKCS#7で符号化された電子証明書611は、BASE64でエンコードされていてもよい。
【0038】
そして、サーバ通信部220(図4)は生成された電子証明書611をサーバ制御部210(図4)の命令により、端末装置100に対して送信する。
更に、サーバ通信部220(図4)はサーバ制御部210(図4)の命令により、サーバ記憶部230(図4)に記憶された証明書検証プログラム508を端末装置100(端末通信部120)に対して送信する。
ここで、図示は省略するが、サーバ制御部210は、例えば端末装置100から電子証明書の発行の要求が有った場合に、サーバ通信部220を介して、端末装置100からの要求を受信し、電子証明書611と証明書検証プログラム508との送信をサーバ通信部220に命令する。
【0039】
端末通信部120(図4)は、端末制御部110(図4)の命令により、サーバ装置200(サーバ通信部220)から電子証明書611と証明書検証プログラム508とを受信(ダウンロード)する。
端末通信部120(図4)は、電子証明書611と証明書検証プログラム508とを同時に受信(ダウンロード)してもよいし、電子証明書611と証明書検証プログラム508とを別々に受信(ダウンロード)してもよい。
証明書検証プログラム508には、前述の通り、予め製造元501によって、認証局600の電子署名504が付けられている。
ここで、図示は省略するが、端末制御部110は、電子証明書611が必要になった場合に、端末通信部120を介して、サーバ装置200に電子証明書611の発行の要求を送信する。また、図示は省略するが、端末制御部110は、証明書検証プログラム508が必要になった場合に、端末通信部120を介して、サーバ装置200に証明書検証プログラム508のダウンロードの要求を送信する。
【0040】
また端末記憶部130(図4)は、認証局600(図4)が発行した認証局証明書516を記憶する。この認証局証明書516は、証明書検証プログラム508が認証局600(図4)により認証されていることを証明する電子証明書である。認証局証明書516はサーバ装置200からダウンロードしてもよいし、CD−ROMなどの記録媒体で配布されてもよい。
端末記憶部130(図4)は、端末装置100が新設された時点で認証局証明書516を記憶してもよいし、電子証明書611が必要になった時点で認証局証明書516を記憶してもよい。少なくとも、端末記憶部130(図4)は、端末通信部120が証明書検証プログラム508をダウンロードする以前に、認証局証明書516を前述の何らか方法で取得し、記憶する。
【0041】
端末制御部110(図4)は、既存の電子署名検証プログラムを実行することにより、端末記憶部130(図4)が予め記憶している認証局証明書516を実行して、証明書検証プログラム508を検証する。
すなわち、端末制御部110(図4)は、既存の電子署名検証プログラムを実行することにより、端末記憶部130(図4)に記憶されている認証局証明書516から電子署名を生成し、証明書検証プログラム508に付与された電子署名と一致するか否かを検証する。
端末制御部110(図4)は、認証局証明書516から生成された電子署名と証明書検証プログラム508に付与された電子署名とが一致する場合に、証明書検証プログラム508を実行する。そして、端末制御部110(図4)は、証明書検証プログラム508を実行することにより、電子証明書611がサーバ装置200で生成された電子証明書であるか否かを検証する。
ここで、端末制御部110(図4)は、証明書検証プログラム508を実行して、電子証明書611に対し、必要な場合は、BASE64やPKCS#7のデコードを行うことも可能である。
【0042】
更に、端末制御部110(図4)は、電子証明書611がサーバ装置200で生成された電子証明書である場合に、受入判定が行われる(受入判定602を出力する)。
そして、受入判定が行われた電子証明書611は、認証局600から発行された電子証明書と同様に、端末装置100において利用される。
ここで、証明書検証プログラム508は、例えばActiveX(登録商標)で実装されていてもよい。
【0043】
(サーバ装置200における処理の説明)
図6は、サーバ装置200における処理を示す図である。
ここで、実施の形態1では、サーバ装置200は、サーバ装置200自身を証明する電子証明書であるルート証明書を発行する場合を想定する。
そして、電子証明書611は、X.509形式の電子証明書を例に示す。
【0044】
サーバ記憶部230は、サーバ自身を特定する情報であるサーバ特定情報を予め記憶している。
このサーバ特定情報は、後述の証明書記載情報608に含まれる情報を含んだ証明書記載情報608の元となる情報である。例えば、サーバ特定情報には、後述の発行者情報305などが含まれる。
【0045】
(証明書情報生成プログラム550における処理)
前述の通り、サーバ制御部210は、最初に証明書情報生成プログラム550を実行し証明書記載情報608を生成する。この際に、サーバ制御部210は、サーバ記憶部230に記憶されたサーバ特定情報を用いる。
図6に示すように、証明書記載情報608は、少なくとも発行者情報305、有効期限306、主体者情報307、主体者公開鍵情報308、拡張情報309を含む。
これらの情報は、生データでもよいし、特定の方式(たとえばASN.1(Abstract Syntax Notation One))でエンコードされていてもよい。
【0046】
発行者情報305は、電子証明書611の発行者を示す情報である為、サーバ装置200を示す情報となる。例えば、発行者情報305は、サーバ装置200の名称や識別子などである。
【0047】
主体者情報307は、電子証明書611が証明する対象の情報である。ここでルート証明書の場合、主体者はサーバ装置200である為、主体者情報307は、サーバ装置200を示す情報となる。すなわち、ルート証明書の場合は、主体者情報307と発行者情報305とは同じ内容であっても良い。
少なくとも主体者情報307と発行者情報305とは、サーバ特定情報に含まれサーバ記憶部230に記憶されている。
【0048】
有効期限306は、電子証明書611の有効期限を示す情報である。サーバ制御部210は、証明書情報生成プログラム550実行時から、証明書情報生成プログラム550に予めプログラミングされた一定期間が経過した時を有効期限306として設定する。
【0049】
主体者公開鍵情報308は、サーバ装置200の秘密鍵によってサーバ制御部210が暗号化した情報を平文化する為の公開鍵の情報である。
主体者公開鍵情報308は、サーバ特定情報の一部としてサーバ記憶部230に予め記憶されていても良い。あるいは、主体者公開鍵情報308は、サーバ制御部210が証明書情報生成プログラム550を実行時に生成されてもよい。
なお、サーバ装置200の秘密鍵は、サーバ記憶部230に予め記憶されている。
【0050】
拡張情報309は、電子証明書611に記載される前記発行者情報305、有効期限306、主体者情報307、主体者公開鍵情報308以外の情報である。例えば電子証明書611の識別子であっても良いし、公開鍵のアルゴリズムを示す情報であっても良い。拡張情報309は、端末制御部110が証明書情報生成プログラム550を実行時に生成されてもよいし、サーバ記憶部230に記憶されていても良い。
【0051】
(証明書情報署名プログラム507における処理)
次に、サーバ制御部210は、証明書情報署名プログラム507を実行する。
ここで、サーバ制御部210は、証明書情報署名プログラム507を実行して証明書記載情報608から電子署名609を生成する。
この電子署名609は、端末装置100が証明書検証プログラム508を実行して検証可能であれば良く、形式を問わない。すなわち、電子署名609は、公開鍵暗号署名やIDベース署名を用いてもよいし、独自の電子署名生成方式であっても構わない。
【0052】
また、サーバ制御部210は、端末装置100が証明書検証プログラム508を実行して電子署名609を検証するのに必要な情報である署名検証パラメータ311を、証明書情報署名プログラム507を実行して生成する。
署名検証パラメータ311は、例えば、証明書情報署名プログラム507における電子署名609の生成アルゴリズム(ハッシュ関数や公開鍵暗号方式、もしくは独自の電子署名生成方式)などの情報が含まれる。
【0053】
(証明書生成プログラム514における処理)
そして、サーバ制御部210は、証明書生成プログラム514を実行する。
サーバ制御部210は、証明書生成プログラム514を実行して、証明書記載情報608と電子署名609と署名検証パラメータ311とから電子証明書611を生成する。
【0054】
サーバ制御部210は、図6に示す通り、証明書記載情報608に含まれる発行者情報305、有効期限306、主体者情報307、主体者公開鍵情報308、拡張情報309をそのまま電子証明書611に格納する。
そして、サーバ制御部210は、X.509形式の電子証明書を生成する場合、電子署名609をシリアル番号313として、署名検証パラメータ311を発行者ユニークID315として電子証明書611に格納してもよい。
【0055】
更に、電子証明書611は、証明書生成プログラム514の実行により生成されたバージョン情報312と電子署名314と主体者ユニークID316とを含む。
バージョン情報312は、電子証明書611のバージョンを示す情報である。
主体者ユニークID316は、例えば主体者(ルート証明書の場合は、サーバ装置200)の識別子である。主体者ユニークID316は主体者情報307と同一であっても構わない。
電子署名314は、証明書生成プログラム514によって、例えば、所定の情報のハッシュ値が求められ、更に求められたハッシュ値をサーバ記憶部230に記憶されている秘密鍵で暗号化されたものである。ここで、所定の情報は、例えば主体者ユニークID316などである。
【0056】
生成された電子証明書611は、前述の通り、サーバ通信部220によって、端末装置100に送信される。
【0057】
(端末装置100における処理の説明)
図7は、端末装置100における処理を示す図である。
前述の通り、端末制御部110は、端末通信部120を介して電子証明書611を受信すると、証明書検証プログラム508を実行して、電子証明書611の検証を行う。
ここで、電子証明書611は、前述の通りX.509形式であり、シリアル番号313に電子署名609が格納され、発行者ユニークID315に署名検証パラメータ311が格納されているものとする。
【0058】
端末制御部110は、証明書検証プログラム508を実行して、電子証明書611から発行者情報305、有効期限306、主体者情報307、主体者公開鍵情報308、拡張情報309が示す情報を検証対象情報として取得する。
更に、端末制御部110は、証明書検証プログラム508を実行して、電子証明書611からシリアル番号313(電子署名609)と発行者ユニークID315(署名検証パラメータ311)とを取得する。
【0059】
そして、端末制御部110は、証明書検証プログラム508を実行して、発行者ユニークID315(署名検証パラメータ311)に示された電子署名609の生成アルゴリズムなどの情報に基づき、検証対象情報(発行者情報305、有効期限306、主体者情報307、主体者公開鍵情報308、拡張情報309)から電子署名を生成する。
そして、端末制御部110は、証明書検証プログラム508を実行して、検証対象情報から生成した電子署名とシリアル番号313(電子署名609)とを比較する。
【0060】
そして、検証対象情報から生成した電子署名とシリアル番号313(電子署名609)とが一致する場合に、端末制御部110は、電子証明書611の受入判定を行う(受入判定602を出力する)。
【0061】
(実施の形態1の効果)
実施の形態1における電子証明書発行システム(端末装置100とサーバ装置200)は、電子証明書611に証明書検証プログラム508によって検証が可能な電子署名609を加えることで、第三者機関が運用する認証局に頼らずに、かつ人手を介することなく、電子証明書611の発行が可能である。
また、端末装置100は、証明書検証プログラム508をサーバ装置200からダウンロードすることにより、端末装置100自体に予め特別な設定(電子証明書の検証プログラムを端末装置に組み込む等)を行う必要が無い。
【0062】
更に、証明書検証プログラム508は、認証局600の電子署名504が付与されている為、端末装置100は、証明書検証プログラム508の改ざんの有無を検証可能である。すなわち、端末装置100は、改ざんが無いことが確認された証明書検証プログラム508を実行して、電子証明書611の検証を行う為、通信の安全性も保証可能である。
また、第三者機関が運用する認証局による認証局証明書516の発行は、一つの証明書検証プログラム508に対して行われる。よって、第三者機関が運用する認証局が端末装置100毎に電子証明書を発行する場合に比べて、コストを低く抑えることができる。
【0063】
実施の形態2.
実施の形態2では、サーバ装置200は、端末装置100を証明するサーバ証明書またはクライアント証明書を発行する場合を想定する。
端末装置100は、サービスを受けるクライアントと成ることも、自らがサービスを提供するサーバとなることも可能である。そして、端末装置100がクライアントとして機能する場合、端末装置100を証明する証明書は、クライアント証明書となり、端末装置100がサーバとして機能する場合、端末装置100を証明する証明書は、サーバ証明書となる。
【0064】
(実施の形態2における端末装置100とサーバ装置200との構成)
図8は、端末装置100とサーバ装置200との構成を示す図である。
各構成要素は、実施の形態1と同じであるが、使用されるプログラムが異なるので、実施の形態1と異なる部分のみ説明する。
なお、端末制御部110は、実施の形態1で説明の検証実行部に加え、証明書送信要求生成部にも対応する。
【0065】
サーバ記憶部230は、実施の形態1の証明書情報生成プログラム550に代わり、製造元501によって生成された証明書発行要求検証プログラム506を例えば、製造元501による製造時に、予め記憶している。証明書検証プログラム508、証明書情報署名プログラム507、証明書生成プログラム514については実施の形態1と同様である。
ここで、製造元501は、サーバ装置200毎に、証明書発行要求検証プログラム506を生成してもよい。その場合に、製造元501は、プログラムの内、サーバ装置200毎に依存するデータを分離し、サーバ装置200に非依存の部分をサーバ装置200製造時に、サーバ記憶部230に記憶させることが出来る。そして、製造元501はサーバ装置200製造後に、サーバ装置200毎に依存するデータ生成し、後から各サーバ装置200のサーバ記憶部230に追加して記憶させることが出来る。あるいは、サーバ装置200が自らサーバ装置200毎に依存するデータを生成し、サーバ記憶部230がサーバ装置200毎に依存するデータを追加して記憶することが出来る。
【0066】
端末記憶部130は、証明書検証プログラム508と認証局証明書516とに加え、証明書発行要求署名プログラム505と証明書発行要求生成プログラム509とを記憶する。
ここで、証明書発行要求署名プログラム505と証明書発行要求生成プログラム509とは、製造元501によって生成される。
端末装置100は、製造元501によって製造されてもよく、その場合は、端末記憶部130は、証明書発行要求署名プログラム505と証明書発行要求生成プログラム509とを製造時に予め記憶することができる。あるいは、端末記憶部130は、CD−ROMなどの記録媒体で配布された証明書発行要求署名プログラム505と証明書発行要求生成プログラム509とを記憶してもよい。
【0067】
さらに、製造元501は、端末装置100毎に証明書発行要求署名プログラム505と証明書発行要求生成プログラム509とを生成してもよい。その場合に、製造元501は、プログラムの内、端末装置100毎に依存するデータを分離し、端末装置100に非依存の部分をインターネット等で配布し、端末装置100毎に依存するデータのみを安全な方法で配布(例えばCD−ROMによる配布)してもよい。
【0068】
(サーバ証明書もしくはクライアント証明書発行の動作)
図9を用いてサーバ証明書もしくはクライアント証明書発行の動作の概要を説明する。
図9は、端末装置100の要求に基づき、サーバ装置200が生成した電子証明書を端末装置100に発行する際のフローを示す図である。
【0069】
端末装置100の端末制御部110(図8)は、端末記憶部130(図8)に記憶された証明書発行要求生成プログラム509を実行して証明書発行要求610を生成する(詳細は後述)。
そして、端末制御部110(図8)は、端末記憶部130(図8)に記憶された証明書発行要求署名プログラム505を実行して、証明書発行要求610から署名付き証明書発行要求601を生成する。
すなわち、端末制御部110(図8)は、端末装置100の電子証明書(サーバ証明書もしくはクライアント証明書)の送信を要求する電子署名付きの証明書送信要求を生成する。
端末通信部120は、生成された署名付き証明書発行要求601(証明書送信要求)をサーバ装置200に送信する。
なお、署名付き証明書発行要求601は、端末装置100を特定する端末装置特定情報を含んでいる(詳細は後述)。
【0070】
サーバ装置200のサーバ通信部220(図8)は、端末装置特定情報を含み、端末装置100の電子証明書(サーバ証明書もしくはクライアント証明書)の送信を要求する署名付き証明書発行要求601(電子署名付きの証明書送信要求)を端末装置100から受信する。
ここで、端末装置特定情報とは、例えば端末装置100の名称や識別子などである。また、端末装置100がクライアントとして機能する場合は、クライアントとして機能することを示す情報、端末装置100がサーバとして機能する場合は、サーバとして機能することを示す情報も端末装置特定情報に含まれる。
【0071】
サーバ制御部210(図8)は、サーバ記憶部230に記憶された証明書発行要求検証プログラム506を実行して、受信した署名付き証明書発行要求601が証明書発行要求署名プログラム505にて署名されているか否かを検証する。
すなわち、サーバ制御部210(図8)は、サーバ通信部220によって受信された署名付き証明書発行要求601(証明書送信要求)が含む端末装置特定情報から電子署名を生成し、サーバ通信部220により受信された署名付き証明書発行要求601(証明書送信要求)の電子署名が、端末装置特定情報から生成された電子署名と一致するか否かを検証する。
【0072】
そして、サーバ制御部210(図8)は、署名付き証明書発行要求601が証明書発行要求署名プログラム505にて署名されていると検証出来た場合に、署名付き証明書発行要求601から証明書記載情報608を抽出する。
【0073】
更に、サーバ制御部210は、サーバ記憶部230に記憶された証明書情報署名プログラム507と証明書生成プログラム514とを実行して、抽出された証明書記載情報608から電子証明書611を生成する。ここで、電子証明書611は、サーバ証明書もしくはクライアント証明書となる。
【0074】
すなわち、サーバ制御部210は、サーバ通信部220により受信された署名付き証明書発行要求601(証明書送信要求)の電子署名が、端末装置特定情報から生成された電子署名と一致する場合に、サーバ通信部220により受信された署名付き証明書発行要求601(証明書送信要求)が含む端末装置特定情報に基づいて端末装置100の電子証明書(サーバ証明書もしくはクライアント証明書)を生成する。
【0075】
サーバ装置200における電子証明書611の生成処理は実施の形態1と同じ為、説明を省略する。
【0076】
同様に、端末通信部120は、サーバ装置200から端末装置100の電子証明書(サーバ証明書もしくはクライアント証明書)と証明書検証プログラム508とを受信する。
端末装置100における電子証明書611の検証処理も実施の形態1と同じ為、説明を省略する。
【0077】
(端末装置100における処理の説明)
図10は、端末装置100における処理を示す図である。
前述の通り、端末装置100は証明書発行要求生成プログラム509を実行し、証明書発行要求610を生成する。
ここで、端末記憶部130は、端末装置100を特定する端末装置特定情報を予め記憶している。
サーバ証明書もしくはクライアント証明書との差異は、この端末装置100がサーバとして機能することを示す情報を含んでいるか、あるいは、この端末装置100がクライアントとして機能することを示す情報を含んでいるかである。
そして、端末装置100は証明書発行要求生成プログラム509を実行し、端末装置特定情報を元に証明書発行要求610を生成する。
【0078】
次に、端末制御部110は、証明書発行要求署名プログラム505を実行することにより、証明書発行要求610から証明書発行要求情報704を生成する。
証明書発行要求情報704は、図10に示す通り、バージョン情報312、主体者情報307、主体者公開鍵情報308、属性708、電子署名701から構成される。
【0079】
バージョン情報312は、サーバ証明書もしくはクライアント証明書のバージョンを示す情報であり、証明書発行要求生成プログラム509の実行により生成され、証明書発行要求610に予め含まれている。
主体者情報307は、電子証明書611が証明する対象の情報である。ここで主体者は端末装置100である為、主体者情報307は、端末装置100を示す情報となる。主体者情報307は、端末装置特定情報から抽出される。主体者情報307は、証明書発行要求生成プログラム509の実行により証明書発行要求610に予め含まれている。
【0080】
主体者公開鍵情報308は、端末装置100の主体者秘密鍵603によって暗号化された情報を平文化する為の公開鍵の情報である。
主体者公開鍵情報308は、端末装置特定情報の一部として端末記憶部130に予め記憶されていても良い。あるいは、主体者公開鍵情報308は、端末制御部110が証明書発行要求生成プログラム509を実行時に生成されてもよい。主体者公開鍵情報308は、証明書発行要求610に予め含まれている。
なお、サーバ装置200の主体者秘密鍵603は、サーバ記憶部230に予め記憶されている。
また、属性708は、例えば、証明書発行要求署名プログラム505における電子署名810の生成アルゴリズム(ハッシュ関数や公開鍵暗号方式、もしくは独自の電子署名生成方式)などの情報を含む。属性708は証明書発行要求生成プログラム509を実行時に生成され、証明書発行要求610に予め含まれている。
【0081】
そして、端末制御部110は、証明書発行要求署名プログラム505を実行して主体者情報307と主体者公開鍵情報308とから電子署名810を生成する。
この電子署名810は、サーバ装置200が証明書発行要求検証プログラム506を実行して検証可能であれば良く、形式を問わない。すなわち、電子署名810は、公開鍵暗号署名やIDベース署名を用いてもよいし、独自の電子署名生成方式であっても構わない。
そして、端末制御部110は、電子署名810を属性708の情報の一部として追加する。
ここで、端末制御部110は、証明書発行要求署名プログラム505を実行して主体者情報307と主体者公開鍵情報308と、属性708とから電子署名810を生成しても構わない。
【0082】
更に、端末制御部110は、証明書発行要求署名プログラム505を実行して所定の情報のハッシュ値を求め、求めたハッシュ値を主体者秘密鍵603でエンコード(暗号化)することにより、電子署名701を生成する。
ここで、所定の情報とは、証明書発行要求情報704(バージョン情報312、主体者情報307、主体者公開鍵情報308、属性708)である。
【0083】
端末制御部110は、バージョン情報312、主体者情報307、主体者公開鍵情報308、属性708を証明書発行要求情報704とし、証明書発行要求情報704に電子署名701が追加されたものを署名付き証明書発行要求601として、端末通信部120を介し、サーバ装置200に送信する。
【0084】
(サーバ装置200における処理の説明)
図11は、サーバ装置200における処理を示す図である。
サーバ制御部210は、サーバ通信部220を介して署名付き証明書発行要求601を受信すると、証明書発行要求検証プログラム506を実行して、署名付き証明書発行要求601の検証を行う。
まず、サーバ制御部210は、証明書発行要求検証プログラム506を実行して、署名付き証明書発行要求601から証明書発行要求情報704を抽出(デコード)する。
また、サーバ制御部210は、証明書発行要求検証プログラム506を実行して、署名付き証明書発行要求601から電子署名701を抽出する(図示は省略)。
【0085】
次に、図示は省略するが、サーバ制御部210は、証明書発行要求検証プログラム506を実行して、電子署名701の検証を行う。すなわち、サーバ制御部210は、主体者公開鍵情報308で電子署名701の復号を行い、更に証明書発行要求情報704から電子署名を生成し、復号された電子署名701と比較することで、電子署名701の検証を行う。
サーバ制御部210は、証明書発行要求情報704から生成された電子署名と復号された電子署名701とが一致した場合に、証明書発行要求情報704は改ざんされていないと判断することが出来る。
【0086】
そして、サーバ制御部210は、証明書発行要求検証プログラム506を実行して、主体者情報307と主体者公開鍵情報308とから属性708に記された電子署名810の生成アルゴリズムにより電子署名を生成する。そして、サーバ制御部210は、生成した電子署名と属性708に含まれている電子署名810とを比較することで、電子署名810を検証する。
サーバ制御部210は、生成した電子署名と属性708に含まれている電子署名810とが一致した場合に、署名付き証明書発行要求601が、証明書発行要求署名プログラム505を備えた端末装置100によって生成されたと判断することが出来る。
ここで、証明書発行要求署名プログラム505を備えた端末装置100は、端末装置100の電子証明書(サーバ証明書もしくはクライアント証明書)の発行要求を許可された正当な端末装置100と言うことが出来る。
【0087】
また、サーバ制御部210は、生成した電子署名と属性708に含まれている電子署名810とが一致した場合に、署名付き証明書発行要求601が正当な端末装置100から要求されたものであることを示す検証結果711を出力する。
【0088】
そして、サーバ制御部210は、実施の形態1で説明の通り、証明書情報生成プログラム550を実行し証明書記載情報608を生成する。この時に、サーバ制御部210は、証明書発行要求情報704から主体者情報307と主体者公開鍵情報308とを抽出し、証明書記載情報608に格納する。
以降の処理は、実施の形態1と同様である為、説明を省略する。
【0089】
このようにして、サーバ装置200は、端末装置100を主体者とした電子証明書611(サーバ証明書もしくはクライアント証明書)を発行する。
【0090】
(実施の形態2の効果)
実施の形態2における電子証明書発行システム(端末装置100とサーバ装置200)は、実施の形態1の効果に加え、端末装置100が署名付き証明書発行要求601(証明書送信要求)を生成して、サーバ装置200に送信し、要求された電子証明書611をサーバ装置200にて生成することが可能である。
そして、サーバ装置200は、署名付き証明書発行要求601(証明書送信要求)の検証を行うことで、不正な第三者からの証明書送信要求を拒否することが出来、無制限な証明書発行を抑制することができる。
【0091】
実施の形態3.
実施の形態3では、実施の形態2と同様にサーバ装置200は、端末装置100を証明するサーバ証明書またはクライアント証明書を発行する場合を想定する。
実施の形態3の構成は、実施の形態2と同じで有る為、説明を省略する。
【0092】
(端末装置100における処理の説明)
図12は、端末装置100における処理を示す図である。
最初に、端末制御部110は、実施の形態2と同様に証明書発行要求生成プログラム509を実行して証明書発行要求610を生成する。
そして、端末制御部110は、実施の形態2と同様に証明書発行要求署名プログラム505を実行して証明書発行要求情報704を生成する。
更に、端末制御部110は、実施の形態2と同様に証明書発行要求署名プログラム505を実行して電子署名810を生成する。ここで電子署名810は、実施の形態2と同様に公開鍵暗号署名やIDベース署名を用いてもよいし、独自の電子署名生成方式であっても構わない。
なお、電子署名810は、実施の形態2と同様に主体者情報307と主体者公開鍵情報308とから生成されてもよいし、証明書発行要求610から生成されてもよい。
【0093】
次に端末制御部110は、証明書発行要求署名プログラム505を実行して、証明書発行要求署名プログラム505に定められた所定の方式で、電子署名810に対してエンコードを行い、エンコード電子署名812を生成する。ここでエンコードの所定の方式とは、例えばBASE64等である。
【0094】
更に、端末制御部110は、証明書発行要求署名プログラム505を実行して、証明書発行要求610とエンコード電子署名812とを一つのファイルに一体化(重畳)し、署名付き証明書発行要求601を生成する。
署名付き証明書発行要求601は、例えば、図12に記載のように特定の文字列(「Begin CSR」、「End CSR」、「Begin CSR Signature」、「End CSR Signature」)を用いて、証明書発行要求610とエンコード電子署名812とが区別出来るようになっていてもよい。
【0095】
署名付き証明書発行要求601は、端末通信部120を介して、サーバ装置200に送信される。
【0096】
(サーバ装置200における処理の説明)
図13は、サーバ装置200における処理を示す図である。
サーバ制御部210は、サーバ通信部220を介して署名付き証明書発行要求601を受信すると、証明書発行要求検証プログラム506を実行して、証明書発行要求610とエンコード電子署名812とを分離する。
【0097】
サーバ制御部210は、端末装置100における証明書発行要求署名プログラム505の処理と同様に、証明書発行要求610から証明書発行要求情報704(バージョン情報312、主体者情報307、主体者公開鍵情報308、属性708)を抽出する。
そして、サーバ制御部210は、端末装置100における証明書発行要求署名プログラム505の処理と同様に、主体者情報307と主体者公開鍵情報308とから電子署名820を生成する。
ここで、端末制御部110が証明書発行要求署名プログラム505を実行して、証明書発行要求610から電子署名810を生成した場合は、サーバ制御部210は、証明書発行要求610から電子署名820を生成する。
【0098】
一方、サーバ制御部210は、証明書発行要求検証プログラム506で定められた所定の方式で、エンコード電子署名812をデコードし、電子署名810を生成する。ここでデコードの所定の方式とは、証明書発行要求署名プログラム505に定められたエンコードの方式をデコードする為の方式である。
【0099】
サーバ制御部210は、証明書発行要求検証プログラム506を実行して、電子署名820と電子署名810とが一致するか否かの検証を行う。
電子署名820と電子署名810とが一致する場合に、サーバ制御部210は、署名付き証明書発行要求601が、証明書発行要求署名プログラム505を備えた端末装置100によって生成されたと判断することが出来る。
ここで、証明書発行要求署名プログラム505を備えた端末装置100は、端末装置100の電子証明書(サーバ証明書もしくはクライアント証明書)の発行要求を許可された正当な端末装置100と言うことが出来る。
【0100】
また、サーバ制御部210は、電子署名820と電子署名810とが一致した場合に、署名付き証明書発行要求601が正当な端末装置100から要求されたものであることを示す検証結果711を出力する。
【0101】
そして、サーバ制御部210は、実施の形態1および実施の形態2で説明の通り、証明書情報生成プログラム550を実行し証明書記載情報608を生成する。この時に、サーバ制御部210は、証明書発行要求情報704から主体者情報307と主体者公開鍵情報308とを抽出し、証明書記載情報608に格納する。
以降の処理は、実施の形態1および実施の形態2と同様である為、説明を省略する。
【0102】
このようにして、サーバ装置200は、端末装置100を主体者とした電子証明書611(サーバ証明書もしくはクライアント証明書)を発行する。
【0103】
(実施の形態3の効果)
実施の形態3における電子証明書発行システム(端末装置100とサーバ装置200)は、主体者秘密鍵603を使わずに実施の形態2の効果を実現可能である。
例えばIIS(Internet Information Service)(登録商標)でWebサーバを構築する場合、端末装置100は、証明書発行要求を生成しても、主体者秘密鍵603を取得することができない。実施の形態3における電子証明書発行システム(端末装置100とサーバ装置200)は、このようなケースでも電子証明書の発行を行なうことができる。
【0104】
まとめると、実施の形態1〜3において、
サーバ装置200から、電子証明書611と、電子署名504付きのプログラムであって、前記電子証明書611が前記サーバ装置200で生成された電子証明書611であるか否かを検証するための証明書検証プログラム508とを受信する通信部(端末通信部120)と、
認証局600により生成された証明書であり、前記認証局600により前記証明書検証プログラム508が認証されていることを証明する証明書を認証局証明書516として記憶する認証局証明書記憶部(端末記憶部130)と、
前記認証局証明書記憶部(端末記憶部130)に記憶されている認証局証明書516から電子署名を生成し、前記通信部(端末通信部120)により受信された証明書検証プログラム508の電子署名504が前記認証局証明書516から生成された電子署名と一致するか否かを検証し、前記通信部(端末通信部120)により受信された証明書検証プログラム508の電子署名504が前記認証局証明書516から生成された電子署名と一致する場合に、前記通信部(端末通信部120)により受信された前記証明書検証プログラム508を実行して、前記通信部(端末通信部120)により受信された電子証明書611が前記サーバ装置200で生成された電子証明書611であるか否かを検証する検証実行部(端末制御部110)と
を備えることを特徴とする端末装置100について説明した。
【0105】
更に、実施の形態2〜3において、
前記端末装置100は、更に、
前記端末装置100の電子証明書611の送信を要求する、電子署名付きの証明書送信要求(署名付き証明書発行要求601)を生成する証明書送信要求生成部(端末制御部110)を備え、
前記通信部(端末通信部120)は、
前記証明書送信要求(署名付き証明書発行要求601)を前記サーバ装置200に送信するとともに、前記サーバ装置200から、前記端末装置100の電子証明書611と前記証明書検証プログラム508とを受信することを特徴とする端末装置100について説明した。
【0106】
更に、実施の形態1〜3において、
認証局600によって生成された電子署名504が付加された電子署名付きのプログラムであって、電子証明書611の送信先において電子証明書611の生成元を検証するための証明書検証プログラム508を記憶する証明書検証プログラム記憶部(サーバ記憶部230)と、
電子証明書611を生成する電子証明書生成部(サーバ制御部210)と、
前記証明書検証プログラム記憶部(サーバ記憶部230)に記憶されている証明書検証プログラム508と、前記電子証明書生成部(サーバ制御部210)により生成された電子証明書611とを、送信先に送信する通信部(サーバ通信部220)と
を備えることを特徴とするサーバ装置200について説明した。
【0107】
更に、実施の形態1において、
前記サーバ装置200は、更に、
前記サーバ装置200を特定するサーバ特定情報を記憶するサーバ特定情報記憶部(サーバ記憶部230)を備え、
前記電子証明書生成部(サーバ制御部210)は、
前記サーバ特定情報記憶部(サーバ記憶部230)に記憶されたサーバ特定情報に基づいて前記サーバ装置200の電子証明書611を生成することを特徴とするサーバ装置について説明した。
【0108】
更に、実施の形態2〜3において、
前記通信部(サーバ通信部220)は、
端末装置100から、前記端末装置100を特定する端末装置特定情報を含み、前記端末装置100の電子証明書611の送信を要求する、電子署名付きの証明書送信要求(署名付き証明書発行要求601)を受信し、
前記電子証明書生成部(サーバ制御部210)は、
前記通信部(サーバ通信部220)によって受信された証明書送信要求(署名付き証明書発行要求601)が含む端末装置特定情報から電子署名を生成し、前記通信部(サーバ通信部220)により受信された証明書送信要求(署名付き証明書発行要求601)の電子署名が前記端末装置特定情報から生成された電子署名と一致するか否かを検証し、前記通信部(サーバ通信部220)により受信された証明書送信要求(署名付き証明書発行要求601)の電子署名が前記端末装置特定情報から生成された電子署名と一致する場合に、前記通信部(サーバ通信部220)によって受信された証明書送信要求(署名付き証明書発行要求601)が含む端末装置特定情報に基づいて前記端末装置100の電子証明書611を生成することを特徴とするサーバ装置について説明した。
【0109】
更に、実施の形態1〜3において、
端末装置100と、サーバ装置200とを備えたことを特徴とする電子証明書発行システムについて説明した。
【0110】
なお、既に、説明したように、本実施の形態1に示す端末装置100とサーバ装置200とは、処理装置たるCPU、記憶装置たるメモリ、磁気ディスク等、入力装置たるキーボード、マウス、通信ボード等、出力装置たる表示装置、通信ボード等を備えるコンピュータである。
そして、上記したように「〜部」として示された機能をこれら処理装置、記憶装置、入力装置、出力装置を用いて実現するものである。
【符号の説明】
【0111】
100 端末装置、101 拠点、110 端末制御部、120 端末通信部、130 端末記憶部、200 サーバ装置、201 サービスセンター、210 サーバ制御部、220 サーバ通信部、230 サーバ記憶部、305 発行者情報、306 有効期限、307 主体者情報、308 主体者公開鍵情報、309 拡張情報、311 署名検証パラメータ、312 バージョン情報、313 シリアル番号、314 電子署名、315 発行者ユニークID、316 主体者ユニークID、501 製造元、504 電子署名、505 証明書発行要求署名プログラム、506 証明書発行要求検証プログラム、507 証明書情報署名プログラム、508 証明書検証プログラム、509 証明書発行要求生成プログラム、514 証明書生成プログラム、516 認証局証明書、550 証明書情報生成プログラム、600 認証局、601 署名付き証明書発行要求、602 受入判定、603 主体者秘密鍵、608 証明書記載情報、609 電子署名、610 証明書発行要求、611 電子証明書、701 電子署名、704 証明書発行要求情報、708 属性、711 検証結果、810 電子署名、812 エンコード電子署名、820 電子署名、901 表示装置、902 キーボード、903 マウス、904 FDD、905 コンパクトディスク装置、906 プリンタ装置、907 スキャナ装置、910 システムユニット、911 CPU、912 バス、913 ROM、914 RAM、915 通信ボード、920 磁気ディスク装置、921 オペレーティングシステム、922 ウィンドウシステム、923 プログラム群、924 ファイル群、931 電話器、932 ファクシミリ機、940 インターネット、941 ゲートウェイ、942 ローカルエリアネットワーク。

【特許請求の範囲】
【請求項1】
サーバ装置から、電子証明書と、電子署名付きのプログラムであって、前記電子証明書が前記サーバ装置で生成された電子証明書であるか否かを検証するための証明書検証プログラムとを受信する通信部と、
認証局により生成された証明書であり、前記認証局により前記証明書検証プログラムが認証されていることを証明する証明書を認証局証明書として記憶する認証局証明書記憶部と、
前記認証局証明書記憶部に記憶されている認証局証明書から電子署名を生成し、前記通信部により受信された証明書検証プログラムの電子署名が前記認証局証明書から生成された電子署名と一致するか否かを検証し、前記通信部により受信された証明書検証プログラムの電子署名が前記認証局証明書から生成された電子署名と一致する場合に、前記通信部により受信された前記証明書検証プログラムを実行して、前記通信部により受信された電子証明書が前記サーバ装置で生成された電子証明書であるか否かを検証する検証実行部と
を備えることを特徴とする端末装置。
【請求項2】
前記端末装置は、更に、
前記端末装置の電子証明書の送信を要求する、電子署名付きの証明書送信要求を生成する証明書送信要求生成部を備え、
前記通信部は、
前記証明書送信要求を前記サーバ装置に送信するとともに、前記サーバ装置から、前記端末装置の電子証明書と前記証明書検証プログラムとを受信することを特徴とする請求項1記載の端末装置。
【請求項3】
認証局によって生成された電子署名が付加された電子署名付きのプログラムであって、電子証明書の送信先において電子証明書の生成元を検証するための証明書検証プログラムを記憶する証明書検証プログラム記憶部と、
電子証明書を生成する電子証明書生成部と、
前記証明書検証プログラム記憶部に記憶されている証明書検証プログラムと、前記電子証明書生成部により生成された電子証明書とを、送信先に送信する通信部と
を備えることを特徴とするサーバ装置。
【請求項4】
前記サーバ装置は、更に、
前記サーバ装置を特定するサーバ特定情報を記憶するサーバ特定情報記憶部を備え、
前記電子証明書生成部は、
前記サーバ特定情報記憶部に記憶されたサーバ特定情報に基づいて前記サーバ装置の電子証明書を生成することを特徴とする請求項3記載のサーバ装置。
【請求項5】
前記通信部は、
端末装置から、前記端末装置を特定する端末装置特定情報を含み、前記端末装置の電子証明書の送信を要求する、電子署名付きの証明書送信要求を受信し、
前記電子証明書生成部は、
前記通信部によって受信された証明書送信要求が含む端末装置特定情報から電子署名を生成し、前記通信部により受信された証明書送信要求の電子署名が前記端末装置特定情報から生成された電子署名と一致するか否かを検証し、前記通信部により受信された証明書送信要求の電子署名が前記端末装置特定情報から生成された電子署名と一致する場合に、前記通信部によって受信された証明書送信要求が含む端末装置特定情報に基づいて前記端末装置の電子証明書を生成することを特徴とする請求項3記載のサーバ装置。
【請求項6】
請求項1又は2記載の端末装置と、
請求項3〜5いずれか記載のサーバ装置と
を備えたことを特徴とする電子証明書発行システム。
【請求項7】
コンピュータが、サーバ装置から、電子証明書と、電子署名付きのプログラムであって、前記電子証明書が前記サーバ装置で生成された電子証明書であるか否かを検証するための証明書検証プログラムとを通信部により受信する通信ステップと、
コンピュータが、認証局により生成された証明書であり、前記認証局により前記証明書検証プログラムが認証されていることを証明する証明書を認証局証明書として認証局証明書記憶部に記憶する認証局証明書記憶ステップと、
コンピュータが、前記認証局証明書記憶部に記憶されている認証局証明書から電子署名を生成し、前記通信部により受信された証明書検証プログラムの電子署名が前記認証局証明書から生成された電子署名と一致するか否かを検証し、前記通信部により受信された証明書検証プログラムの電子署名が前記認証局証明書から生成された電子署名と一致する場合に、前記通信部により受信された前記証明書検証プログラムを実行して、前記通信部により受信された電子証明書が前記サーバ装置で生成された電子証明書であるか否かを検証実行部により検証する検証実行ステップと
を備えることを特徴とする電子証明書受信方法。
【請求項8】
コンピュータが、認証局によって生成された電子署名が付加された電子署名付きのプログラムであって、電子証明書の送信先において電子証明書の生成元を検証するための証明書検証プログラムを証明書検証プログラム記憶部に記憶する証明書検証プログラム記憶ステップと、
コンピュータが、電子証明書を電子証明書生成部により生成する電子証明書生成ステップと、
コンピュータが、前記証明書検証プログラム記憶部に記憶されている証明書検証プログラムと、前記電子証明書生成部により生成された電子証明書とを、通信部により送信先に送信する通信ステップと
を備えることを特徴とする電子証明書送信方法。
【請求項9】
サーバ装置から、電子証明書と、電子署名付きのプログラムであって、前記電子証明書が前記サーバ装置で生成された電子証明書であるか否かを検証するための証明書検証プログラムとを通信部により受信する通信ステップと、
認証局により生成された証明書であり、前記認証局により前記証明書検証プログラムが認証されていることを証明する証明書を認証局証明書として認証局証明書記憶部に記憶する認証局証明書記憶ステップと、
前記認証局証明書記憶部に記憶されている認証局証明書から電子署名を生成し、前記通信部により受信された証明書検証プログラムの電子署名が前記認証局証明書から生成された電子署名と一致するか否かを検証し、前記通信部により受信された証明書検証プログラムの電子署名が前記認証局証明書から生成された電子署名と一致する場合に、前記通信部により受信された前記証明書検証プログラムを実行して、前記通信部により受信された電子証明書が前記サーバ装置で生成された電子証明書であるか否かを検証実行部により検証する検証実行ステップと
をコンピュータに実行させることを特徴とするプログラム。
【請求項10】
認証局によって生成された電子署名が付加された電子署名付きのプログラムであって、電子証明書の送信先において電子証明書の生成元を検証するための証明書検証プログラムを証明書検証プログラム記憶部に記憶する証明書検証プログラム記憶ステップと、
電子証明書を電子証明書生成部により生成する電子証明書生成ステップと、
前記証明書検証プログラム記憶部に記憶されている証明書検証プログラムと、前記電子証明書生成部により生成された電子証明書とを、通信部により送信先に送信する通信ステップと
をコンピュータに実行させることを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate


【公開番号】特開2012−249124(P2012−249124A)
【公開日】平成24年12月13日(2012.12.13)
【国際特許分類】
【出願番号】特願2011−119939(P2011−119939)
【出願日】平成23年5月30日(2011.5.30)
【出願人】(000006013)三菱電機株式会社 (33,312)
【Fターム(参考)】