説明

暗号装置管理方法、暗号装置管理サーバ、プログラム及び記憶媒体

【課題】複数の暗号装置を利用した暗号演算を簡便にかつ迅速に行うことができる暗号装置管理方法、これを実施する暗号装置管理サーバ、プログラム及び記憶媒体を提供する。
【解決手段】暗号装置管理サーバ12により、任意の端末装置11mからネットワーク14を介して、第一の暗号演算依頼を受信し、前記暗号装置管理サーバ12に記憶されている端末装置の管理情報と暗号装置の管理情報に基づいて選択した暗号装置13nに、第一の暗号演算依頼と前記端末装置の管理情報と前記暗号装置の管理情報に基づいて生成した第二の暗号演算依頼を、前記接続インターフェース15を介して送信して、前記暗号装置13nから第二の暗号演算結果を受信し、第二の暗号演算結果と前記端末装置の管理情報と前記暗号装置の管理情報に基づいて生成した第一の暗号演算結果を、第一の暗号演算依頼元の端末装置11mへ前記ネットワーク14を介して送信する。

【発明の詳細な説明】
【技術分野】
【0001】
共通鍵暗号における共通鍵及び公開鍵暗号における秘密鍵を安全に保存し、また、共通鍵や秘密鍵を外部に漏洩せずに暗号演算を行う技術に関する。
【背景技術】
【0002】
行政手続きの電子申請・申告や、電子商取引、オンラインバンキング、オンラインショッピングなど、インターネットを利用したサービス(以下、オンラインサービスと記載する)が普及している。しかし、オンラインサービスでは、他人へのなりすまし、また、インターネット上を流れる電子文書の不正傍受や改ざん、また、契約や申請内容が事後に否定されるといった脅威がある。そこで、正当な通信相手であることを確認するための「認証」、通信路上での不正傍受を防ぐための「暗号化」、電子文書の真正性を担保するための「電子署名」を実施することで、上記の脅威を対策している。「認証」、「暗号化」、「電子署名」を実現する上で、共通鍵暗号や公開鍵暗号といった、暗号技術が、基盤技術になる。
【0003】
上記の対策を有効的に実施するには、共通鍵暗号における共通鍵及び公開鍵暗号における秘密鍵を安全に保存し、また、共通鍵や秘密鍵を外部に漏洩せずに暗号演算を行う必要がある。そこで、ICカード、ハードウェアセキュリティモジュールやUSBトークンなどの、耐タンパ性を備えた暗号演算専用のハードウェア(以下、暗号装置と記載する)がオンラインサービスをセキュアに実現する上で利用されている。
【0004】
暗号装置の利用において、暗号装置にアクセスし暗号演算するためのコマンドは暗号装置毎にそれぞれ異なるため、オンラインサービスを提供するアプリケーションは、暗号装置毎に、暗号装置にアクセスするための機能を実装することになる。そのため、アプリケーションと暗号装置の相互運用性確保を目的に、アプリケーションと暗号装置間に共通のインターフェースを設ける取り組みが行われている。この共通化の取り組みにより、アプリケーションは暗号機能を共通のインターフェースで実装すれば良い。その場合に、アプリケーションを実行する端末装置には、共通インターフェースから暗号装置固有のコマンドに変換するためのライブラリをインストールする必要がある。共通の暗号インターフェースの一つであるPKCS#11の仕様が、非特許文献1に詳細に記載されている。
【0005】
従来の暗号装置は、アプリケーションを実行する端末装置の、USBやPCIなどの物理インターフェースに、1対1で接続して利用する形態であるため、端末装置の増設に伴って、暗号装置も増設する必要があり、コスト負荷が高かった。そこで、複数の端末装置がネットワークを介して、暗号装置を共有する手法が特許文献1に開示されている。さらに、特許文献1では、負荷分散を目的に、ネットワーク上に複数の暗号装置を接続し、複数の端末装置から利用する実施形態が、図7に記載されている。
【0006】
一方で、近年の暗号解読技術の進歩や電子計算機能力の向上により、「認証」、「暗号化」、「電子署名」などの暗号演算で利用する一部の暗号アルゴリズム、また、鍵長の短い公開鍵の安全性に、問題があることが指摘されている。米国連邦政府の標準暗号を制定する米国立標準技術研究所では、2010年までに、米国政府での情報システムにおいて、電子署名に利用するハッシュ関数を、SHA−1からSHA-2へ移行することを強く推奨している。SHA−1の安全性に関するコメントは、非特許文献2に詳細に記載されている。
【0007】
非特許文献2のコメントを受け、各国の認証基盤やアプリケーション提供者は、アプリケーションで利用する暗号アルゴリズムをより安全性の高いものに移行し、また、複数の暗号アルゴリズムから選択できるようにするなど、情報システムの安全性を高める施策を実施している。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特表2005−533438号公報
【非特許文献】
【0009】
【非特許文献1】PKCS #11 v2.20: Cryptographic Token Interface Standard, 2004年6月, [online], [平成22年06月28日検索], インターネット<URL:ftp://ftp.rsasecurity.com/pub/pkcs/pkcs-11/v2-20/pkcs-11v2-20.pdf>
【非特許文献2】NIST Comments on Cryptanalytic Attacks on SHA-1, 2006年4月, [online], [平成22年06月28日検索], インターネット<URL:http://csrc.nist.gov/groups/ST/hash/statement.html>
【発明の概要】
【発明が解決しようとする課題】
【0010】
非特許文献2に記載されているように、暗号解読技術の進歩及び電子計算機能力の向上により、アプリケーションで採用されている暗号アルゴリズムの安全性は、日々変化していっている。また、暗号開発技術の向上により、安全性の高い、新しい暗号アルゴリズムが実用化されている。そこで、「認証」、「暗号化」、「電子署名」などの暗号演算を利用するアプリケーションの管理者は、常に暗号アルゴリズムの安全性の動向を確認し、推奨されている暗号アルゴリズムをアプリケーションの暗号演算に採用することが求められる。さらに、暗号アルゴリズムの危殆化時に、他の暗号アルゴリズムへの移行を容易にするため、及び、各ユーザが利用している異なる複数の暗号アルゴリズムに対応するため、アプリケーションの暗号演算で採用する暗号アルゴリズムは、複数の暗号アルゴリズムから選択可能にすることが求められる。
【0011】
そのため、暗号装置を利用して暗号演算を行うアプリケーションにおいては、その暗号装置が複数の暗号アルゴリズムに対応できる必要がある。しかしながら、暗号装置がサポートする暗号アルゴリズムが、製品毎に異なるため、一つの暗号装置だけでは、アプリケーションで採用する予定の暗号アルゴリズムをサポートできない場合が想定される。その場合には複数の暗号装置を、アプリケーションを実行する端末装置に接続し、アプリケーションのユーザは、暗号演算に利用する暗号アルゴリズムに合わせて、暗号装置を選択していくこととなる。
【0012】
上記特許文献1では、ネットワーク上に複数の暗号装置を接続し、複数の端末装置から利用する実施形態が記載されているが、各端末装置が、複数の暗号装置を使い分ける方法が記載されていない。
【0013】
一方、非特許文献1に記載されている技術仕様に基づくと、複数の暗号装置を利用する場合、管理者がアプリケーションを実行する端末装置に、全ての暗号装置のライブラリをインストールし、さらに、ユーザがサポートする暗号アルゴリズムといった各暗号装置の仕様や、各鍵をどの暗号装置に鍵を格納しているかなどの情報を管理する必要がある。また、ユーザは、アプリケーション実行時に、ユーザが選択した暗号アルゴリズムで暗号演算を行うために、上記管理情報に基づき、適切な暗号装置を選択して、ライブラリをロードし、鍵を使い分ける必要がある。そのため、複数の暗号装置を利用するに当たり、管理者及びユーザの負担が大きく、暗号演算を行うための初期処理に時間がかかるといった課題がある。
【0014】
本発明は上記事情に鑑みてなされたものであり、複数の暗号装置を利用した暗号演算を簡便にかつ迅速に行うことができる暗号装置管理方法、これを実施する暗号装置管理サーバ、プログラム及び記憶媒体を提供することを目的とする。
【課題を解決するための手段】
【0015】
上記課題を解決するための一手段を説明する。本発明では、複数の端末装置及び複数の暗号装置に接続された暗号装置管理サーバにより、任意の端末装置からネットワークを介して、第一の暗号演算依頼を受信し、前記暗号装置管理サーバの記憶部に記憶されている端末装置の管理情報と暗号装置の管理情報に基づいて選択した暗号装置に、接続インターフェースを介して第二の暗号演算依頼を送信して、前記暗号装置から第二の暗号演算結果を受信し、第一の暗号演算依頼元の端末装置へ前記ネットワークを介して送信する、暗号装置管理方法である。前記暗号装置管理サーバは、第一の暗号演算依頼と第二の暗号演算結果に基づき、前記記憶部に記憶されている前記端末装置の管理情報と前記暗号装置の管理情報を更新する処理と、第一の暗号演算依頼と前記端末装置の管理情報と前記暗号装置の管理情報に基づき、第二の暗号演算を生成する処理と、第二の暗号演算結果と前記端末装置の管理情報と前記暗号装置の管理情報に基づき、第一の暗号演算結果を生成する処理とを実施する。
【発明の効果】
【0016】
本発明によれば、複数の暗号装置を利用した暗号演算を簡便にかつ迅速に行うことができる暗号装置管理方法、これを実施する暗号装置管理サーバ、プログラム及び記憶媒体を提供することができる。
【図面の簡単な説明】
【0017】
【図1】本発明の実施形態に係る暗号装置管理システムの構成を示す図である。
【図2】端末装置11の構成を示す図である。
【図3】暗号装置管理サーバ12の構成を示す図である。
【図4】暗号装置管理サーバ12において、暗号装置情報保持部36に記憶されている、暗号装置13の情報を示す図である。
【図5】暗号装置管理サーバ12において、暗号装置情報保持部36に記憶されている、図4を鍵生成メカニズム毎に分類した暗号装置13の情報を示す図である。
【図6】暗号装置管理サーバ12において、暗号装置情報保持部36に記憶されている、暗号装置13のスロットの情報を示す図である。
【図7】暗号装置管理サーバ12において、暗号装置情報保持部36に記憶されている、暗号装置13の鍵オブジェクトの情報を示す図である。
【図8】暗号装置管理サーバ12において、ユーザ情報保持部34に記憶されている、端末装置11のユーザの情報を示す図である。
【図9】暗号装置管理サーバ12において、ユーザ情報保持部34に記憶されている、端末装置11のユーザのアクセス状態を示す図である。
【図10】暗号装置管理サーバ12において、ユーザ情報保持部34に記憶されている、端末装置11のユーザの仮想スロットのセッション状態を示す図である。
【図11】図2に示す端末装置11及び、図3に示す暗号装置管理サーバ12の各々のハードウェア構成例を示す図である。
【図12】暗号装置管理サーバ12における、暗号装置13の初期設定処理を示すシーケンス図である。
【図13】端末装置11における、暗号装置管理サーバ12の初期設定処理を示すシーケンス図である。
【図14】暗号装置管理サーバ12における起動処理を示すシーケンス図である。
【図15】暗号装置管理サーバ12における起動処理を示すシーケンス図である。
【図16】暗号装置管理サーバ12における、端末装置11のユーザ認証処理を示すシーケンス図である。
【図17】端末装置11における、暗号演算の初期処理を示すシーケンス図である。
【図18】端末装置11における、鍵生成処理を示すシーケンス図である。
【図19】暗号装置管理サーバ12における、鍵生成処理を示すシーケンス図である。
【図20】端末装置11における、署名処理を示すシーケンス図である。
【図21】端末装置11における、署名処理を示すシーケンス図である。
【図22】暗号装置管理サーバ12における、署名処理を示すシーケンス図である。
【発明を実施するための形態】
【0018】
以下に、本発明の実施形態について、図面を参照して、詳細に説明する。
【0019】
図1は、本発明の実施形態に係る暗号装置管理システムの構成を示す図である。
【0020】
本実施形態では、暗号演算処理を含んだアプリケーションを実行する複数の端末装置11a〜端末装置11m(「端末装置11」と総称する)と、暗号演算を実行する暗号装置13a〜暗号装置13n(「暗号装置13」と総称する)と、端末装置11から呼び出された暗号演算処理を暗号装置13へ依頼する暗号装置管理サーバ12と、端末装置11と暗号装置管理サーバ12を接続するイーサネット(登録商標)等のネットワーク14と、暗号装置管理サーバ12と暗号装置13を接続する接続インターフェース15からなる。なお、接続インターフェース15は、PCI(Peripheral Component Interconnect)あるいは、USB(Universal Serial Bus)あるいは、イーサネット(登録商標)などを示す。なお、本実施形態では、暗号演算処理として鍵生成処理と署名処理を例にとり説明するが、その種類は問わず、鍵登録、鍵生成、鍵削除、署名や暗号化等の処理を含むものとする。
【0021】
次に、図1の暗号装置システムを構成する各装置について説明する。
【0022】
まず、図2を用いて、端末装置11を説明する。
【0023】
端末装置11は、処理部20aと記憶部20bと、ネットワーク14を介して他装置と通信を行うための通信部20cと、ユーザからの指示の受付を行う入出力部20dと、を有する。
【0024】
処理部20aは、行政手続きの電子申請・申告、電子商取引、オンラインバンキング、オンラインショッピングなどのアプリケーションを実行するアプリケーション実行部21と、暗号装置管理サーバ12へ暗号演算処理を依頼する暗号演算指示部22と、端末装置の各部を統括的に制御する制御部23と、を有する。
【0025】
記憶部20bは、ユーザが入出力20dを介してインストールしたアプリケーションプログラムを保持するアプリケーション保持部24と、暗号装置管理サーバ12の暗号演算処理を呼び出すためのライブラリを保持する暗号装置管理サーバライブラリ保持部25と、暗号装置管理サーバ12へ接続するための設定情報を保持する設定情報保持部26と、を有する。
【0026】
このような構成において、暗号装置管理サーバ12を利用するための初期処理として、制御部23は、管理者が入出力部20dを介して入力した、暗号管理サーバ12のIPアドレスや、SSLクライアント証明書などの設定情報を設定情報保持部26に記憶し、暗号装置管理サーバ12のライブラリを暗号装置管理サーバライブラリ保持部25へ記憶する。
【0027】
さらに、制御部23は、入出力部20dを介して、暗号装置管理サーバ12から割り当てられた仮想スロットにログインし、PINの設定を行う。
【0028】
また、制御部23は、入出力部20dを介して、ユーザがアプリケーション実行部21を操作すると、アプリケーションに含まれる、鍵登録、鍵生成、鍵削除、署名、暗号化、などの暗号演算処理を、暗号演算指示部22より、通信部20cを介して、暗号装置管理サーバ12に依頼し、暗号装置管理サーバ12から得られた暗号演算結果を利用して、アプリケーションの実行結果を出力する。
【0029】
次に、図3を用いて暗号装置管理サーバ12を説明する。暗号装置管理サーバ12は、処理部30aと記憶部30bと、ネットワーク14を介して他装置と通信を行うための通信部30cと、接続インターフェース15を介した暗号装置13との通信や、管理者からの指示の受付を行う入出力部30dと、を有する。
【0030】
処理部30aは、端末装置11のユーザ認証及びアクセス状態の管理を行うユーザ認証部31と、端末装置11からの暗号演算処理の依頼を受けて、暗号装置13へ暗号演算処理を依頼する暗号装置アクセス部32と、制御部33と、を有する。
【0031】
記憶部30bは、登録したユーザの設定情報、ユーザのアクセス状態や仮想スロットのセッション状態に関する情報を保持するユーザ情報保持部34と、暗号装置13の暗号演算処理を呼び出すためのライブラリを保持する暗号装置ライブラリ保持部35と、暗号装置13のメカニズム、スロットや鍵オブジェクトの情報を保持する暗号装置情報保持部36と、を有する。なお、メカニズムとは、PKCS#11において、鍵生成アルゴリズム、暗号アルゴリズム、ハッシュアルゴリズム、あるいは、暗号アルゴリズムとハッシュ晴吾リズムを組み合わせた署名アルゴリズムなどの暗号方式を示す。
【0032】
なお、処理部30aは、後述の暗号装置管理サーバ12のメモリ112上に、端末装置11のユーザに対して、仮想スロット、仮想トークン、仮想鍵オブジェクトを、仮想的に生成し、暗号装置情報保持部36に記憶されている情報を利用して、暗号装置13に存在するスロット、トークン、鍵オブジェクトの実体との、紐付けを行う。
【0033】
このような構成において、ユーザ認証部31は、端末装置11のユーザから、ユーザ登録依頼を受けると、管理者が入出力部30dを介して入力した、端末装置11のユーザに割り当てた仮想スロットなどの設定情報をユーザ情報保持部34に記憶する。
【0034】
また、新たに暗号装置13を登録する場合は、制御部33から命令を受けた暗号装置アクセス部32は、入出力部20dを介して、暗号装置ライブラリ保持部35に記憶した暗号装置13のライブラリを利用して、暗号装置13が備えている暗号メカニズムや各スロット情報などを取得し、暗号装置情報保持部36に記憶する。新たに暗号装置13を増設することで、端末装置11の暗号演算処理に提供するメカニズムを増やすことが可能である。なお、暗号アルゴリズム及び鍵長の安全性が問題となっている暗号メカニズム、あるいは、暗号装置管理サーバ12の管理者が危殆化している判断する暗号メカニズムについて、管理者がリストを作成し、暗号装置管理サーバ12に保存する。暗号装置管理サーバ12は、登録する予定の、暗号装置13が備える暗号メカニズムを、暗号装置情報保持部36に登録する処理において、上記リストを参照し、上記リストに存在する暗号メカニズムへの登録を省略する。
【0035】
また、端末装置11と直接的に接続して利用していた既存の暗号装置13を、暗号装置管理サーバ12を介して間接的に利用する場合は、既存の暗号装置13の登録を行う。その場合は、上記に記載した、新たに暗号装置13を登録する場合の処理に加え、暗号装置アクセス部32は、既存の暗号装置13のライブラリを利用して、既存の暗号装置13のスロットのセッション確立、トークンログインを行い、セッション情報や格納されている鍵オブジェクトの情報を取得し、取得した情報を暗号装置情報保持部36へ記憶する。さらに、管理者は入出力部30dを介して、暗号装置13を直接的に接続していた端末装置11のユーザに、仮想スロットを割り当て、ユーザ認証部31は、端末装置11のユーザに割り当てた仮想スロットなどの設定情報をユーザ情報保持部34に記憶する。さらに、管理者は入出力部30dを介して、既存の暗号装置13から取得した鍵オブジェクトに対して、仮想鍵オブジェクトを割り当て、暗号装置アクセス部32は、仮想鍵オブジェクトと既存の暗号装置13から取得した鍵オブジェクトとの紐付け情報を、暗号装置情報保持部36に記憶する。
【0036】
また、管理者が暗号装置管理サーバ12を起動した際に、制御部33は、暗号装置アクセス部32に暗号装置情報の取得を命令する。命令を受けた暗号装置アクセス部32は、暗号装置ライブラリ保持部35に記憶している各々の暗号装置ライブラリを利用して、各々の暗号装置13のスロットのセッション確立、トークンログインを行い、セッション情報や格納されている鍵オブジェクトの情報を取得し、取得した情報を暗号装置情報保持部36へ記憶する。
【0037】
また、通信部30cを介して、端末装置11からの接続依頼を受信すると、制御部33は、ユーザ認証部31へ、接続依頼を通知する。通知を受けたユーザ認証部31は、ユーザ情報保持部34に記憶されているユーザ情報に基づいて、ユーザ認証を行う。ユーザ認証に成功した場合、ユーザ認証部31は、ユーザ情報保持部34にアクセス状態を記憶し、さらに、次回以降の暗号演算依頼において、端末装置11と暗号装置管理サーバ12間の安全なセッションを確立する。なお、安全なセッションとは、SSL/TLSなどの通信技術を利用したセッションを意味する。
【0038】
また、通信部30cを介して、制御部33が端末装置11からの切断依頼を受信し、切断をユーザ認証部31に命令した場合、及び、接続状態である端末装置11のユーザが一定時間以上、仮想スロットとセッションを確立していない場合、ユーザ認証部31は、該当する端末装置11とのセッションを切断し、ユーザ情報保持部34に記憶されている、該当する端末装置11のアクセス状態を削除する。
【0039】
また、通信部30cを介して、端末装置11からの暗号演算依頼を受信すると、制御部33は、ユーザ認証部31へ、暗号演算依頼を通知する。通知を受けたユーザ認証部31は、ユーザ情報保持部34に記憶されているユーザのアクセス状態を参照することにより、ユーザがログイン状態であることを確認し、ユーザIDと暗号演算依頼を暗号装置アクセス部32へ送信する。ユーザIDと暗号演算依頼を受信した暗号装置アクセス部32は、ユーザが選択した、暗号装置管理サーバ12のメモリ112上の仮想スロットとの間に、セッションを確立し、鍵登録、鍵生成、鍵削除、署名や暗号化などの暗号演算依頼を受け付ける。
【0040】
暗号演算の中で鍵生成においては、暗号装置アクセス部32は、暗号装置13にアクセスし、実体の鍵オブジェクトを生成すると共に、暗号装置管理サーバ12上に、実体の鍵オブジェクトに対応した仮想鍵オブジェクトを生成し、通信部30cを介して、仮想鍵オブジェクトの情報を端末装置11に通知する。さらに、暗号装置アクセス部32は、生成した、仮想鍵オブジェクトの情報を、ユーザ情報保持部34に記憶する。
【0041】
暗号演算の中で署名や暗号化においては、暗号装置アクセス部32は、生成した仮想鍵オブジェクトを、ユーザ情報保持部34に記憶されたユーザ情報に基づき、実体の鍵オブジェクトに変換する。さらに、暗号装置アクセス部32は、暗号装置13にアクセスし、実体の鍵オブジェクトを利用して、署名や暗号化を行い、通信部30cを介して、その処理結果を端末装置11に通知する。
【0042】
なお、図2に示す端末装置11、及び、図3に示す暗号装置管理サーバ12は、例えば、図11に示すような、CPU111と、メモリ112と、ハードディスク等の外部記憶装置113と、ネットワーク14を介して他装置と通信を行うための通信装置114と、キーボードやマウス等の入力装置115と、モニタやプリンタ等の出力装置116と、CD−ROM等の可搬性を有する記憶媒体118から情報を読み取る読取装置117と、これらの各装置間のデータ送受を行う内部通信線110とを備えた、一般的な電子計算機(コンピュータ)上に構築できる。
【0043】
そして、CPU111が外部記憶装置113からメモリ112上にロードされた所定のプログラムを実行することにより、上述の各処理部を実現できる。すなわち、通信部20c、30cは、CPU111が通信装置114を利用することにより、入出力部20d、30dは、CPU111が入力装置115や出力装置116や読取装置117を利用することにより、そして、記憶部20b、30bは、CPU111がメモリ112や外部記憶装置113を利用することにより実現される。また、処理部20a、30aは、CPU111のプロセスとして実現される。
【0044】
上記所定のプログラムは、予め外部記憶装置113に格納されていても良いし、上記電子計算機が利用可能な記憶媒体118に格納されており、読み取り装置117を介して、必要に応じて読み出され、あるいは、上記電子計算機が利用可能な通信媒体であるネットワーク14またはネットワーク14上を伝搬する搬送波を利用する通信装置114と接続された他の装置から、必要に応じてダウンロードされて、外部記憶装置113に導入されるものであっても良い。
【0045】
次に図4を用いて、暗号装置管理サーバ12の暗号装置情報保持部36に記憶されている、暗号装置設定ファイル40を説明する。暗号装置設定ファイル40は、暗号装置13の初期設定処理において、入出力部30dを介して、編集される。各々の暗号装置13について、暗号装置ID41の列に管理者が割り当てた暗号装置IDを、暗号装置名42の列に暗号装置名を、暗号装置ライブラリ名43の列に暗号装置ライブラリのパス名を、記載する。また、メカニズム情報44の列に、各々の暗号装置13がサポートしている、暗号に関わるメカニズム名と鍵長をそれぞれ記載する。メカニズム名45の例にメカニズム名を、鍵長46の列に、最短の鍵長と最長の鍵長を記載する。
【0046】
次に図5を用いて、暗号装置管理サーバ12の暗号装置情報保持部36に記憶されている、鍵生成メカニズム別暗号装置リスト50を説明する。鍵生成メカニズム別暗号装置リスト50は、図4に示した、暗号装置設定ファイル40の、メカニズム45の列から鍵生成のメカニズム(例えば、CKM_RSA_PKCS_KEY_PAIR_GEN)を、抽出し、鍵生成メカニズム順にリスト化したものである。鍵生成メカニズム51の例に、図4に示した暗号装置設定ファイル40のメカニズム45に存在する鍵生成メカニズムを、鍵長52の列に図4に示した暗号装置設定ファイル40の鍵長46の列から抽出した鍵生成メカニズム51における最短の鍵長と最長の鍵長を記載する。また、鍵生成メカニズム51の列に記載したメカニズムをサポートする暗号装置13の暗号装置IDを、暗号装置13の性能を考慮して、振分の優先順位が高いものから順に、暗号装置ID53の列に記載する。鍵生成メカニズム51の列に対応する、暗号装置IDが暗号装置ID53の列に複数存在した場合には、複数の暗号装置13を振り分けるための方式を、振分方式54の列に、記載する。例えば、暗号装置13の性能が異なる場合は、暗号装置ID53の列の順に重み付けを行い、ラウンドロビン方式で振り分けることができる。また、例えば、暗号装置13の性能が同一の場合は、各々の暗号装置13のコネクション数が均等になるように、一番コネクションの少ない暗号装置13から優先的に振り分ける最小コネクション数方式で振り分けることができる。
【0047】
次に図6を用いて、暗号装置管理サーバ12の暗号装置情報保持部36に記憶されている、暗号装置スロット管理テーブル60を説明する。暗号装置スロット管理テーブル60は、暗号装置管理サーバ12の起動処理において編集される。各々の暗号装置13について、暗号装置ID61の列に暗号装置IDを、スロットID62の列に各々の暗号装置13に存在するスロットのIDを、PIN63の列に各々のスロットのPINを、セッションハンドル64の列に、暗号装置管理サーバ12の起動時の処理で取得した各々のスロットのセッションハンドルの値を記載する。なお、PINは暗号された状態で、暗号装置情報保持部36に保存することができる。また、セッションハンドルは、暗号装置13とのセッション確立時に生成された値が設定される。
【0048】
次に図7を用いて、暗号装置管理サーバ12の暗号装置情報保持部36に記憶されている、鍵オブジェクト管理テーブル70を説明する。鍵オブジェクト管理テーブル70は、端末装置11と暗号装置管理サーバ12における鍵生成処理及び暗号装置管理サーバ12における起動処理において編集される。各々の仮想鍵オブジェクトについて、仮想鍵ハンドル71の列に仮想鍵ハンドルの値を、暗号装置ID72の列に実鍵オブジェクトが存在する暗号装置IDを、実スロットID73の列に実鍵オブジェクトが存在するスロットのIDを、実鍵ハンドル74の列に、暗号装置13における実鍵ハンドルの値を、属性情報75に実鍵オブジェクトのラベル名、鍵種別、公開鍵などの属性情報を記載する。なお、実鍵ハンドル74は、暗号装置13において鍵オブジェクト探索時に生成され設定される。
【0049】
次に図8を用いて、暗号装置管理サーバ12のユーザ情報保持部34に記憶されている、ユーザ設定ファイル80を説明する。ユーザ設定ファイル80は、端末装置11のユーザの登録時に、編集される。各々のユーザについて、ユーザID81の列に、登録したユーザのIDを、仮想スロットID82の列の各々のユーザに割り当てた仮想スロットIDを、PIN83の列に各々の仮想スロットのPINを、仮想鍵ハンドル84の列に各々の仮想スロットに存在する仮想鍵ハンドルの値を記載する。なお、PINは暗号された状態で、ユーザ情報保持部34に保存される。
【0050】
次に図9を用いて、暗号装置管理サーバ12のユーザ情報保持部34に記憶されている、アクセス状態管理テーブル90を説明する。アクセス状態管理テーブル90は、端末装置11により、暗号装置管理サーバ12に接続時と切断時に、編集される。セッションID91の列に端末装置11と暗号装置管理サーバ12との間のセッションIDを、ユーザID92の列に各々のセッションIDを割り当てられた端末装置11のユーザのIDを、ログイン時刻93の列に各々のユーザがログインした時刻を、タイムアウト時刻94の列に各々のユーザのログイン状態がタイムアウトする時刻を記載する。タイムアウト時刻94は、ユーザがログインした時刻に、別途管理者が設定するタイムアウト時間間隔を加えて算出される。なお、タイムアウト時刻94に達すると、ユーザ認証部31は、該当するユーザIDのセッション状態をログアウトに変更し、アクセス状態管理テーブル90から該当するセッション情報を削除する。また、タイムアウト時刻94に達した場合は、ユーザ認証部31は、該当するユーザに割り当てた仮想スロットとのセッション状態を、図10に示す暗号装置セッション状態管理テーブル100で確認し、該当するユーザの仮想セッションハンドルが存在する場合は、タイムアウト時刻94を更新する。ただし、端末装置11が、仮想スロットとのセッション切断や、暗号装管理サーバ12とのアクセス切断要求を行わずに、アクセス切断を行った場合に備え、タイムアウト時刻94に達した場合に、ユーザ認証部31は、タイムアウト時刻94の更新を行わないことも、設定により可能である。
【0051】
次に図10を用いて、暗号装置管理サーバ12のユーザ情報保持部34に記憶されている、暗号装置セッション状態管理テーブル100を説明する。暗号装置セッション状態管理テーブル100は、端末装置11が、暗号装置管理サーバ12に存在する仮想スロットとセッションを確立した時に、更新される。ユーザID101の列に仮想スロットのセッションを確立しているユーザのIDを、仮想セッションハンドル102の列に各々の仮想セッションハンドルの値を、仮想トークンログイン状態103の列に各々の仮想トークンのログイン状態(ログインあるいはログアウト)を、仮想鍵ハンドル104の列に、端末装置11のユーザが選択した仮想鍵ハンドルの値を、メカニズム105の列に、端末装置11のユーザが選択したメカニズム名を、記載する。なお、暗号演算が署名である場合は、署名対象文書106の列に、端末装置11のユーザが指定した署名対象データの値を記載する。
【0052】
次に、図12〜図22において、端末装置11と暗号装置管理サーバ12間の一例の処理、及び、暗号装置管理サーバ12と暗号装置13間の一例の処理を、詳しく説明する。
【0053】
先ず、図12を用いて、暗号装置管理サーバ12における、新たに接続する暗号装置13の初期設定処理を示す。
【0054】
暗号装置管理サーバ12の暗号装置アクセス部32は、新たに接続する暗号装置13のライブラリを暗号装置ライブラリ保持部35から取得し、メモリ112上にロードする(S101)。なお、暗号装置アクセス部32が、ロードしたライブラリの関数を利用し、後述する暗号装置13への各々の要求を生成すると、制御部33は、入出力部30dに命令し、接続インターフェース15を介して暗号装置13に各々の要求を送信する。
【0055】
最初に、暗号装置アクセス部32は、スロットリスト取得要求を作成し、暗号装置13へ送信する(S102)。
【0056】
暗号装置13は、スロットリスト取得要求を受信する(S103)と、暗号装置13に備えられているスロットリストを取得し、暗号装置アクセス部32に応答する(S104)。
【0057】
暗号装置アクセス部32は、スロットリストを受信する(S105)と、1番目のスロットを選択して(S106)、メカニズムリスト取得要求を作成し、暗号装置13へ送信する(S107)。
【0058】
暗号装置13は、メカニズムリスト取得要求を受信する(S108)と、暗号装置13がサポートするメカニズムリストを暗号装置アクセス部32に応答する(S109)。
【0059】
暗号装置アクセス部32は、メカニズムリストを受信する(S110)と、メカニズムリストの1番目のメカニズムを選択する(S111)。暗号装置アクセス部32は、1番目のメカニズムに関する情報の取得要求を作成し、暗号装置13に送信する(S112)。
【0060】
暗号装置13は、メカニズム情報要求を受信する(S113)と、該当するメカニズムがサポートする、鍵長などの詳細情報を取得し、暗号装置アクセス部32へ応答する(S114)。
【0061】
暗号装置アクセス部32は、メカニズムに関する情報を受信する(S115)と、暗号装置情報保持部36に記憶されている暗号装置設定ファイル40に、暗号装置管理サーバ12の管理者が割り振った暗号装置ID、暗号装置名、暗号装置ライブラリ名及びメカニズム情報を記載し、登録する(S116)。なお、S115で取得したメカニズム情報に含まれる、暗号アルゴリズム及び鍵長の安全性が問題となっている場合や、危殆化している場合は、暗号装置管理サーバ12の管理者の判断により、S116において登録するメカニズム情報の一部、もしくは、全部を省略する。S110で取得したメカニズムリストの最後まで到達していない場合(S117でNo)、メカニズムリストから次のメカニズムを選択し(S118)、S112へ進む。暗号装置アクセス部32は、S110で取得したメカニズムリストの最後まで到達した場合(S117でYes)、鍵生成メカニズム別暗号装置リスト50に、新たに接続した暗号装置13の情報を追記し、複数の暗号装置13が同一の鍵生成メカニズムをサポートする場合は、振分優先度と振分方式を決定する(S119)。なお、複数の暗号装置13が同一の鍵生成メカニズムをサポートしない場合は、振分優先度は1番、図5に示した鍵生成メカニズム別暗号装置リスト50の振分方式54には「-」を記載する。
【0062】
続いて、暗号装置アクセス部32は、新たなPIN情報を含んだスロットのPIN設定要求を暗号装置13に送信する(S120)。
【0063】
暗号装置13は、PIN設定要求を受信する(S121)と、初期設定されているPINをPIN設定要求に含まれているPINに変更し、PIN設定結果を応答する(S122)。
【0064】
暗号装置アクセス部32は、PIN設定応答結果を受信し(S123)、その結果が成功である場合、暗号装置情報保持部36に記憶されている暗号装置スロット管理テーブル60に、暗号装置ID、暗号装置アクセス部32が選択しているスロットID、新たに設定したPINを、記載する(S124)。S105で取得したスロットリストの最後まで到達していない場合(S125でNo)、スロットリストから次のスロットを選択し(S126)、S120へ進む。スロットリストの最後まで到達している場合(S125でYes)、処理を終了する。
【0065】
次に図13を用いて、端末装置11における、暗号装置管理サーバ12を利用するための初期設定処理を示す。
【0066】
端末装置11は、入出力部20dを介して、暗号装置管理サーバ12のライブラリを暗号装置管理サーバライブラリ保持部25から取得し、メモリ112上にロードする(S201)。端末装置11は、ロードしたライブラリの関数を利用して、後述する暗号装置管理サーバ12への各々の要求を生成する。また、端末装置11は、各々の要求を通信部20dに通知し、ネットワーク14を介して暗号装置管理サーバ12に各々の要求を送信する。なお、暗号装置管理サーバ12のユーザ認証部31は、アクセス状態管理テーブル90で、端末装置11のユーザがログイン状態であることを確認し、さらに通信に含まれるセッションIDを検索キーに、ユーザIDを取得して、端末装置11の要求とユーザIDを暗号装置アクセス部32へ送信する(S100)。ユーザ認証処理については、図16に記載する。最初に、端末装置11は、スロットリスト取得要求を作成し、暗号装置管理サーバ12へ送信する(S202)。
【0067】
暗号装置管理サーバ12の暗号装置アクセス部32は、スロットリスト取得要求を受信する(S203)と、ユーザ情報保持部34に備えられているユーザ設定ファイル80から、ユーザ認証部31から送信されたユーザIDを検索キーにして、仮想スロットIDを検索して、複数のスロットIDからなるスロットリストを取得し(S204)、端末装置11に応答する(S205)。
【0068】
端末装置11は、スロットリストを受信する(S206)と、1番目のスロットを選択(S207)する。選択したスロットのPIN設定を行う場合(S208でYes)は、端末装置11は新たなPIN情報を含んだスロットのPIN設定要求を暗号装置管理サーバ12へ送信する(S209)。
【0069】
暗号装置アクセス部32は、PIN設定要求を受信する(S210)と、PIN設定要求に含まれているPINをユーザ設定ファイル80の該当するユーザIDの行に記載し(S211)、端末装置11にPIN設定結果を応答する(S212)。
【0070】
端末装置11は、PIN設定結果を受信し(S213)、S206で取得したスロットリストの最後まで到達していない場合(S214でNo)、スロットリストから次のスロットを選択し(S215)、S208へ進む。スロットリストの最後まで到達している場合(S214でYes)は、端末装置11は、処理を終了する。
【0071】
次に図14、図15において、暗号装置管理サーバ12における、起動処理を示す。S301からS314、及び、S329からS331を図14に、また、S315からS328を図15に記載する。
【0072】
暗号装置アクセス部32は、暗号装置情報保持部36に記憶されている暗号装置設定ファイル40の1番目の暗号装置を選択し(S301)、1番目の暗号装置のライブラリを暗号装置ライブラリ保持部35から取得する(S302)。暗号装置アクセス部32は、暗号装置管理サーバ12のメモリ112上に、ライブラリをロードする(S303)。暗号装置情報保持部36に記憶されている暗号装置スロット管理テーブル60から選択した暗号装置の暗号装置IDを検索キーにして、スロットIDを検索し、1番目のスロットを選択する(S304)。暗号装置アクセス部32は、1番目のスロットに対するセッション確立要求を暗号装置13に送信する(S305)。
【0073】
暗号装置13は、セッション確立要求を受信すると(S306)、指定されたスロットのセッション確立を行い、セッション確立結果を応答する(S307)。
【0074】
暗号装置アクセス部32は、セッション確立応答を受信する(S308)と、セッション確立応答に含まれるセッションハンドルを、暗号装置スロット管理テーブル60の該当する暗号装置ID及びスロットIDの行に記載する(S309)。さらに、暗号装置アクセス部32は、暗号装置スロット管理テーブル60から、選択した暗号装置ID及びスロットIDを検索キーにして、PINを取得する(S310)。暗号装置アクセス部32は、S308で取得したセッションハンドルとS310で取得したPINを、含んだトークンログイン要求を送信する(S311)。
【0075】
暗号装置13は、トークンログイン要求を受信すると(S312)、PINの照合を行い、トークンログイン結果を送信する(S313)。
【0076】
暗号装置アクセス部32は、トークンログイン応答を受信し(S314)、その結果が成功である場合は、図15に示す、S315に進む。暗号装置アクセス部32は、暗号装置情報保持部36に記憶されている鍵オブジェクト管理テーブル70から選択した暗号装置ID及び実スロットIDを検索キーにして、仮想鍵ハンドルを検索し、存在しない場合は(S315でNo)、図14のS329へ進む。存在する場合は(S315でYes)、該当する暗号装置ID及び実スロットIDの1番目の仮想鍵オブジェクトの選択し(S316)、鍵オブジェクト管理テーブル70から、選択した仮想鍵ハンドルを検索キーとして、属性情報を取得する(S317)。暗号装置アクセス部32は、S308で取得したセッションハンドルとS317で取得した属性情報を含んだ、鍵オブジェクト検索設定要求を暗号装置13へ送信する(S318)。
【0077】
暗号装置13は、鍵オブジェクト検索設定要求を受信すると(S319)、その要求に含まれる属性情報を記憶し、オブジェクト検索設定応答を送信する(S320)。暗号装置アクセス部32は、鍵オブジェクト検索設定応答を受信し(S321)、その結果が成功である場合、S308で取得したセッションハンドルを含む鍵オブジェクト検索要求を暗号装置13に送信する(S322)。暗号装置13は、鍵オブジェクト検索要求を受信すると(S323)、S319で取得した属性情報を検索キーとして、S312でログインしたトークンの鍵オブジェクトを検索する。暗号装置13は、検索した鍵オブジェクトの鍵ハンドルを、暗号装置アクセス部32へ送信する(S324)。
【0078】
暗号装置アクセス部32は、鍵オブジェクト検索応答を受信すると(S325)、鍵オブジェクト検索応答に含まれる実鍵ハンドルを、鍵オブジェクト管理テーブル70の該当する仮想鍵ハンドルの行に記載する(S326)。鍵オブジェクト管理テーブル70において、選択した暗号装置ID及び実スロットIDの、最後の仮想鍵ハンドルに到達していない場合は(S327でNo)、暗号装置アクセス部32は、次の仮想鍵ハンドルを選択し(S328)、S317へ進む。最後の仮想鍵ハンドルに到達している場合は(S327でYes)、暗号装置アクセス部32は、図14で示すS329へ進む。暗号装置設定ファイル40において、選択した暗号装置IDのスロットリストの最後に到達していない場合は(S329でNo)、暗号装置アクセス部32は、次のスロットを選択し(S330)、S305へ進む。選択した暗号装置IDのスロットリストの最後に到達している場合は(S329でYes)、暗号装置アクセス部32は、S331へ進む。暗号装置設定ファイル40の最後の暗号装置IDの行に到達してない場合は(S331でNo)、暗号装置アクセス部32は、次の暗号装置IDを選択し(S332)、さらに選択した暗号装置のライブラリを暗号装置ライブラリ保持部35から取得し(S333)、S303へ進む。最後の暗号装置IDの行に到達している場合は(S331でYes)、暗号装置アクセス部32は、処理を終了する。
【0079】
次に図16を用いて、暗号装置管理サーバ12における、端末装置11のユーザ認証処理を示す。端末装置11は、ユーザ認証に成功した後、取得したセッションIDを利用して暗号装置管理サーバ12に暗号演算を依頼することができる。
【0080】
端末装置11は、設定情報保持部26に記憶されている、暗号装置管理サーバ12のIPアドレスやSSLクライアント証明書を利用して、アクセス要求を生成し(S401)、暗号装置管理サーバ12に送信する(S402)。
【0081】
ユーザ認証部31は、アクセス要求を受信すると(S403)、SSLのクライアント認証を行う。認証に失敗した場合(S404でNo)、認証失敗とするアクセス応答を作成し(S405)、S408へ進む。認証に成功した場合(S404でYes)、ユーザ認証部31は、端末装置11と暗号装置管理サーバ12間のセッションを確立し、生成したセッションIDを、ユーザ情報保持部34に記憶されているアクセス状態管理テーブル90に、セッションID、ユーザID、ログイン時刻及びタイムアウト時刻を登録する(S406)。さらに、ユーザ認証部31は、セッションIDを含むアクセス応答を生成し(S407)、アクセス応答を暗号装置13に送信する(S408)。
【0082】
端末装置11は、アクセス応答を受信する(S409)と、その応答に含まれるセッションIDを保存し、次回以降の暗号演算依頼の通信で利用する。
【0083】
次に図17において、端末装置11が、鍵生成、暗号、署名などの暗号演算依頼を行う前に実施する初期処理を示す。
【0084】
最初に、端末装置11は、スロットリスト取得要求を作成し、暗号装置管理サーバ12へ送信する(S501)。
【0085】
暗号装置管理サーバ12の暗号装置アクセス部32は、スロットリスト取得要求を受信する(S502)と、ユーザ情報保持部34に備えられているユーザ設定ファイル80から、ユーザ認証部31から送信されたユーザIDを検索キーにして、仮想スロットIDを検索して、複数のスロットIDからなるスロットリストを取得し(S503)、端末装置11に応答する(S504)。
【0086】
端末装置11は、スロットリストを受信する(S505)と、暗号演算で利用するスロットのスロットIDを選択し(S506)、選択したスロットに対するセッション確立要求を送信する(S507)。
【0087】
暗号装置アクセス部32は、セッション確立要求を受信すると(S508)、仮想セッションハンドルを生成し、ユーザ情報保持部に記憶されている暗号装置セッション状態管理テーブル100の該当するユーザIDの行に記載する(S509)。さらに、暗号装置アクセス部32は、仮想セッションハンドルを含む、セッション確立結果を応答する(S510)。
【0088】
端末装置11は、セッション確立応答を受信すると(S511)、暗号装置アクセス部32は、S511で取得したセッションハンドルとS506で選択したスロットに割り当てられたトークンのPINを含んだトークンログイン要求を送信する(S512)。
【0089】
暗号装置アクセス部32は、トークンログイン要求を受信すると(S513)、ユーザ情報保持部34に記憶されているユーザ設定ファイル80の該当するユーザIDのPINを参照し、S513で受信したPINとの照合を行い。照合に失敗した場合は(S514でNo)、照合失敗とするトークンログイン応答を作成する(S515)。照合に成功した場合(S514でYes)、暗号装置アクセス部32は、暗号装置セッション状態管理テーブル100に、該当するユーザID及び仮想セッションハンドルに該当する仮想トークンログイン状態をログインと記載する(S516)。さらに、暗号装置アクセス部32は、照合成功とするトークンログイン応答を作成し(S517)、トークンログイン結果を応答する(S518)。
【0090】
端末装置11は、トークンログイン応答を受信すると(S519)、例えば、図18〜図22に示す、暗号演算の依頼を行う。なお、同様の方法にて、鍵登録、鍵削除、暗号化などの暗号演算の依頼を行うことができる。
【0091】
次に図18、図19において、端末装置11及び暗号装置管理サーバ12における、鍵生成処理を示す。S601からS605、及び、S612からS615を図18に、また、S606からS611を図19に記載する。
【0092】
図17に示した初期処理を完了後、端末装置11は、鍵生成のメカニズムや、鍵長などを含む鍵ペア生成要求を、暗号装置管理サーバ12に送信する(S601)。
【0093】
暗号装置アクセス部32は、鍵ペア生成要求を受信すると(S602)、暗号装置情報保持部36に記憶されている鍵生成メカニズム別暗号装置リスト50を参照し、S602で取得した鍵生成のメカニズム及び鍵長をサポートする暗号装置13が存在するか確認する。存在しない場合(S603でNo)、暗号装置アクセス部32は、鍵ペア生成結果を失敗とする鍵ペア生成応答を作成する(S604)。存在する場合は(S603でYes)、暗号装置アクセス部32は、鍵生成メカニズム別暗号装置リスト50から該当する暗号装置IDを取得する。また、該当する暗号装置IDが複数存在する場合は、暗号装置アクセス部32は、記載されている振分方式に基づき、暗号装置IDを一つ選択し(S605)、図19に示すS606に進む。暗号装置アクセス部32は、S605で選択した暗号装置IDに基づき、暗号装置情報保持部36に記憶されている暗号装置スロット管理テーブル60を検索し、該当する複数のスロットIDから、任意のスロットIDを選択し(S606)、さらに、暗号装置アクセス部32は、S606で選択したスロットIDに対応するセッションハンドルを取得する(S607)。暗号装置アクセス部32は、S606で取得したスロットIDと、S608で取得したセッションハンドルと、端末装置11が指定したメカニズム情報を含む鍵ペア生成要求(暗号演算依頼)を暗号装置13に送信する(S608)。
【0094】
暗号装置13は、鍵ペア生成要求を受信すると(S609)、鍵ペア生成要求に含まれるメカニズム情報で鍵オブジェクト(属性情報)を生成する。さらに、暗号装置13は、生成した鍵ペアオブジェクトを特定する情報である、鍵ハンドル、を含む鍵ペア生成応答を送信する(S610)。暗号装置アクセス部32は、鍵ペア生成応答(暗号演算結果)を受信すると(S611)、図18のS612へ進む。暗号装置アクセス部32は、生成した鍵ハンドルに対応する仮想鍵ハンドルとして、図7に示す仮想鍵ハンドル71の列に存在しない任意の値を、新たに生成し、ユーザ設定ファイル80において、該当するユーザIDと図17のS506で選択したスロットIDの行に、新たに生成した仮想鍵ハンドルを記載する。さらに、暗号装置アクセス部32は、鍵オブジェクト管理テーブル70の、仮想鍵ハンドル71の列に、生成した仮想鍵ハンドルの値を、暗号装置ID72の列に、S605で選択した暗号装置IDの値を、実スロットID73の列に、S606で選択した任意のスロットIDの値を、実鍵ハンドル74の列にS611で取得した鍵ハンドルの値を、属性情報75の列にS611で取得した属性情報を新たに追加する(S612)。さらに、暗号装置アクセス部32は、S612で受信した鍵ペアを含み、また生成結果を成功とする鍵ペア生成応答を作成し(S613)、端末装置11に送信する(S614)。
【0095】
端末装置11は、鍵ペア生成応答を受信して(S615)、処理を終了する。
【0096】
次に図20〜図22において、端末装置11及び暗号装置管理サーバ12における、署名処理を示す。S701からS718を図20に、また、S719〜S722、及び、S735〜S739を図21に、S723〜S734を図22に記載する。
【0097】
図17に示した初期処理を完了後、端末装置11は、S511で取得したセッションハンドルと、端末装置11のユーザが指定した属性情報を含んだ、鍵オブジェクト検索設定要求を暗号装置管理サーバ12に送信する(S701)。
【0098】
暗号装置アクセス部32は、鍵オブジェクト検索設定要求を受信すると(S702)、その要求に含まれる属性情報を記憶し、オブジェクト検索設定応答を送信する(S703)。
【0099】
端末装置11は、鍵オブジェクト検索設定応答を受信し(S704)、その結果が成功である場合、S511で取得したセッションハンドルを含む鍵オブジェクト検索要求を暗号装置管理サーバ12へ送信する(S705)。
【0100】
暗号装置アクセス部32は、鍵オブジェクト検索要求を受信すると(S706)、S702で取得した属性情報を検索キーとして、暗号装置情報保持部36に記憶されている鍵オブジェクト管理テーブル70を検索し、仮想鍵ハンドルを取得し(S707)、端末装置11へ送信する(S708)。
【0101】
端末装置11は、鍵オブジェクト検索応答を受信すると(S709)、その応答に含まれる鍵オブジェクトの情報から任意の鍵ハンドルを選択する(S710)。端末装置11は、S511で取得したセッションハンドル、端末装置11のユーザが選択した署名のメカニズム、及び、S710で選択した鍵ハンドルを含む、署名設定要求を暗号装置管理サーバ12へ送信する(S711)。
【0102】
暗号装置アクセス部32は、署名設定要求を受信すると(S712)、S712で取得した鍵ハンドルを検索キーとして、鍵オブジェクト管理テーブル70の仮想鍵ハンドル71の列を検索し、発見した仮想鍵ハンドルに対応する鍵オブジェクトを格納している暗号装置IDを暗号装置ID72の列から取得し、該当する暗号装置13が、S712で取得した署名のメカニズムをサポートしているか、暗号装置設定ファイル40を参照して確認する。確認した結果、サポートしていない場合(S713でNo)、暗号装置アクセス部32は、結果を失敗とする署名設定応答を作成し(S714)、S717へ進む。確認した結果、サポートしている場合(S713でYes)、暗号装置アクセス部32は、結果を成功とする署名設定応答を作成し(S715)、暗号装置セッション状態管理テーブル100の、該当するユーザID及び仮想セッションハンドルの行において、仮想鍵ハンドル104の列にS712で取得した鍵ハンドルを、メカニズム105の列にS712で取得したメカニズムを記載する(S716)。さらに、暗号装置アクセス部32は、署名設定応答を端末装置11に送信する(S717)。
【0103】
端末装置11は、署名設定応答を受信し(S718)、図21のS719へ進む。端末装置11は、端末装置11の外部記憶装置113に記憶されている署名対象文書を取得し(S719)、S511で取得したセッションハンドル、署名対象文書を含む署名要求を送信する(S720)。
【0104】
暗号装置アクセス部32は、署名要求を受信すると(S721)、署名要求に含まれる署名対象文書を取得し、暗号装置セッション状態管理テーブル100の該当するユーザID及び仮想セッションハンドルの行に記載し(S722)、図22のS723へ進む。暗号装置アクセス部32は、S712で取得した鍵ハンドルを検索キーとして、鍵オブジェクト管理テーブル70の仮想鍵ハンドル71の列を検索し、発見した仮想鍵ハンドルに対応する暗号装置ID、実スロットID、実鍵ハンドルを、暗号装置ID72、実スロットID73、実鍵ハンドル74の列から取得する(S723)。さらに、暗号装置アクセス部32は、S723で取得した暗号装置ID、実スロットIDを検索キーにして、セッションハンドルを取得する(S724)。また、暗号装置セッション状態管理テーブル100から、S712で取得した仮想鍵ハンドルを検索キーにして、メカニズムを取得する(S725)。暗号装置アクセス部32は、S724で取得したセッションハンドル、S725で取得したメカニズム、及び、S723で取得した鍵ハンドルを含む、署名設定要求(暗号演算依頼)を暗号装置13に送信する(S726)。
【0105】
暗号装置13は、署名設定要求を受信すると(S727)、その要求に含まれる、鍵ハンドル及びメカニズムを記憶し、署名設定応答を送信する(S728)。
【0106】
暗号装置アクセス部32は、署名設定応答(暗号演算結果)を受信すると(S729)、暗号装置セッション状態管理テーブル100から該当する署名対象文書を取得する(S730)。暗号装置アクセス部32は、S506で取得したセッションハンドル、及び、S730で取得した署名対象文書を含む署名要求(暗号演算依頼)を暗号装置13に送信する(S731)。
【0107】
暗号装置13は、署名要求を受信すると(S732)、S727で取得した鍵ハンドル及びメカニズムを利用して署名処理を行い、署名値を暗号装置アクセス部32に応答する(S733)。
【0108】
暗号装置アクセス部32は、署名応答(暗号演算結果)を受信すると(S734)、図21のS735へ進む。S734で取得した署名結果が成功ではない場合(S735でNo)、暗号装置アクセス部32は、署名結果を失敗とする署名応答を作成する(S736)。署名結果が成功である場合(S735でYes)、暗号装置アクセス部32は、署名結果を成功とする署名応答を作成する(S737)。暗号装置アクセス部は、作成した署名応答を、端末装置11に送信する(S738)。
【0109】
端末装置11は、署名応答を受信すると(S739)、署名値を取得して、署名処理を終了する。
【0110】
以上本発明の実施形態について詳述したが、上記実施形態によれば、複数の暗号装置13を利用した暗号演算を簡便にかつ迅速に行うことができる。その結果、暗号装置13を新規に増設することが可能となり、新たな暗号方式に対応した暗号装置を増設することで、暗号方式を柔軟に拡張することができる。
【0111】
また、本発明は上記実施形態に限定されるものではなく、暗号装置によっては,その機能の一部が,暗号装置管理サーバに設置される暗号装置ライブラリで実現されるなど,その要旨を逸脱しない範囲で種々変更可能である。
【符号の説明】
【0112】
11:端末装置、12:暗号装置管理サーバ、13:暗号装置、14:ネットワーク、15:接続インターフェース、20a、30a:処理部、20b、30b:記憶部、20c、30c:通信部、20d、30d:入出力部、21:アプリケーション実行部、22:暗号演算指示部、23、33:制御部、24:アプリケーション保持部、25:暗号装置管理サーバライブラリ保持部、26:設定情報保持部、31:ユーザ認証部、32:暗号装置アクセス部、34:ユーザ情報保持部、35:暗号装置ライブラリ保持部、36:暗号装置情報保持部、110:内部通信線、111:CPU、112:メモリ、113:外部記憶装置、114:通信装置、115:入力装置、116:出力装置、117:読取装置、118:可搬性を有する記憶媒体。

【特許請求の範囲】
【請求項1】
複数の端末装置及び複数の暗号装置に接続された暗号装置管理サーバにより、任意の端末装置からネットワークを介して、第一の暗号演算依頼を受信し、前記暗号装置管理サーバの記憶部に記憶されている端末装置の管理情報と暗号装置の管理情報に基づいて選択した暗号装置に、接続インターフェースを介して第二の暗号演算依頼を送信して、前記暗号装置から第二の暗号演算結果を受信し、第一の暗号演算依頼元の端末装置へ前記ネットワークを介して送信する、暗号装置管理方法であって、
前記暗号装置管理サーバにより、
第一の暗号演算依頼と第二の暗号演算結果に基づき、前記記憶部に記憶されている前記端末装置の管理情報と前記暗号装置の管理情報を更新する処理と、
第一の暗号演算依頼と前記端末装置の管理情報と前記暗号装置の管理情報に基づき、第二の暗号演算を生成する処理と、
第二の暗号演算結果と前記端末装置の管理情報と前記暗号装置の管理情報に基づき、第一の暗号演算結果を生成する処理と、
を実施する、
ことを特徴とする暗号装置管理方法。
【請求項2】
前記端末装置の管理情報は、前記端末装置に割り当てた前記暗号装置管理サーバに存在するスロットに関する情報、前記端末装置の前記暗号装置管理サーバへのアクセス状態に関する情報及び前記端末装置の前記暗号装置管理サーバのスロットのセッション状態に関する情報である、
ことを特徴とする請求項1に記載の暗号装置管理方法。
【請求項3】
前記暗号装置の管理情報は、前記暗号装置がサポートする暗号方式に関する情報、前記暗号装置に存在するスロットに関する情報及び前記暗号装置に存在する鍵オブジェクトに関する情報である、
ことを特徴とする請求項1または請求項2に記載の暗号装置管理方法。
【請求項4】
前記暗号装置管理サーバにより、
前記暗号装置の導入時に、前記接続インターフェースを介して、前記暗号装置がサポートする暗号方式に関する情報と前記暗号装置に存在するスロットに関する情報を取得し、前記暗号装置の管理情報を更新する処理を実施する、
ことを特徴とする請求項3に記載の暗号装置管理方法。
【請求項5】
前記暗号装置管理サーバにより、
前記暗号装置の管理情報を更新する処理において、
前記暗号装置がサポートする暗号方式が安全性の低下及び危殆化した状態であるかを判断する処理を実施する、
ことを特徴とする請求項4に記載の暗号装置管理方法。
【請求項6】
前記暗号装置管理サーバにより、
起動時に、前記接続インターフェースを介して、前記暗号装置に存在するスロットに関する情報及び前記暗号装置に存在する鍵オブジェクトに関する情報を取得し、前記暗号装置の管理情報を更新する処理を実施する、
ことを特徴とする請求項5に記載の暗号装置管理方法。
【請求項7】
前記暗号装置管理サーバにより、
前記端末装置のアクセス時に、前記ネットワークを介して、前記端末装置の管理情報に基づき、前記端末装置を認証する処理を実施する
ことを特徴とする請求項6に記載の暗号装置管理方法。
【請求項8】
複数の端末装置及び複数の暗号装置に接続された暗号装置管理サーバで、制御部により、任意の端末装置からネットワークを介して、第一の暗号演算依頼を受信し、前記暗号装置管理サーバの記憶部に記憶されている端末装置の管理情報と暗号装置の管理情報に基づいて選択した暗号装置に、接続インターフェースを介して第二の暗号演算依頼を送信して、前記暗号装置から第二の暗号演算結果を受信し、第一の暗号演算依頼元の端末装置へ前記ネットワークを介して送信する、暗号装置管理サーバであって、
前記制御部は、
第一の暗号演算依頼と第二の暗号演算結果に基づき、前記記憶部に記憶されている前記端末装置の管理情報と前記暗号装置の管理情報を更新する処理と、
第一の暗号演算依頼と前記端末装置の管理情報と前記暗号装置の管理情報に基づき、第二の暗号演算を生成する処理と、
第二の暗号演算結果と前記端末装置の管理情報と前記暗号装置の管理情報に基づき、第一の暗号演算結果を生成する処理と、
を実施する、
ことを特徴とする暗号装置管理サーバ。
【請求項9】
前記端末装置の管理情報は、前記端末装置に割り当てた前記暗号装置管理サーバに存在するスロットに関する情報、前記端末装置の前記暗号装置管理サーバへのアクセス状態に関する情報及び前記端末装置の前記暗号装置管理サーバのスロットのセッション状態に関する情報である、
ことを特徴とする請求項8に記載の暗号装置管理サーバ。
【請求項10】
前記暗号装置の管理情報は、前記暗号装置がサポートする暗号方式に関する情報、前記暗号装置に存在するスロットに関する情報及び前記暗号装置に存在する鍵オブジェクトに関する情報である、
ことを特徴とする請求項8または請求項9に記載の暗号装置管理サーバ。
【請求項11】
前記制御部は、
前記暗号装置の導入時に、前記接続インターフェースを介して、前記暗号装置がサポートする暗号方式に関する情報と前記暗号装置に存在するスロットに関する情報を取得し、前記暗号装置の管理情報を更新する処理を実施する、
ことを特徴とする請求項10に記載の暗号装置管理サーバ。
【請求項12】
前記制御部は、
前記暗号装置の管理情報を更新する処理において、
前記暗号装置がサポートする暗号方式が安全性の低下及び危殆化した状態であるかを判断する処理を実施する、
ことを特徴とする請求項11に記載の暗号装置管理サーバ。
【請求項13】
前記制御部は、
起動時に、前記接続インターフェースを介して、前記暗号装置に存在するスロットに関する情報及び前記暗号装置に存在する鍵オブジェクトに関する情報を取得し、前記暗号装置の管理情報を更新する処理を実施する、
ことを特徴とする請求項12に記載の暗号装置管理サーバ。
【請求項14】
前記制御部は、
前記端末装置のアクセス時に、前記ネットワークを介して、前記端末装置の管理情報に基づき、前記端末装置を認証する処理を実施する
ことを特徴とする請求項13に記載の暗号装置管理サーバ。
【請求項15】
コンピュータにより、請求項1乃至請求項7の何れかに記載の暗号装置管理方法を実行するプログラム。
【請求項16】
コンピュータにより読み出し可能なプログラムを格納した記憶媒体であって、前記コンピュータにより、請求項1乃至請求項7の何れかに記載の暗号装置管理方法を実行させるためのプログラムを格納した、
ことを特徴とする記憶媒体。

【図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

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate


【公開番号】特開2012−64995(P2012−64995A)
【公開日】平成24年3月29日(2012.3.29)
【国際特許分類】
【出願番号】特願2010−205053(P2010−205053)
【出願日】平成22年9月14日(2010.9.14)
【出願人】(000005108)株式会社日立製作所 (27,607)
【Fターム(参考)】