実施の形態1
以下本発明の実施の形態を、図面を参照して説明する。図1は本実施の形態に係る認証システムの概要を示す模式図である。認証システムは、認証装置1、情報処理装置2A、2B、2C(以下、場合により2で代表する)、・・・、通信網N、認証機関サーバコンピュータ3、及び、データベース(以下、DB)サーバコンピュータ4等を含んで構成される。本実施の形態においては、情報処理装置2、2、2、・・・の要求に応じて金融機関の認証装置1が振り込み、海外送金、外貨預金、投資信託申し込み、及び残高照会等の各種処理を実行する例を用いて説明するが、このオンラインバンクの例に限るものではない。以下では金融機関の認証装置1をWebサーバ1と読み替えて説明する。またWebサーバ1に接続される他のWebサーバに振り込み、海外送金、外貨預金、投資信託申し込み、及び残高照会等の各種処理を実行させ、Webサーバ1において以下に述べる認証処理を実行させる形態であっても良い。
情報処理装置2は例えば、パーソナルコンピュータ、携帯電話機、PDA(Personal Digital Assistance)、通信機能を有する携帯型ゲーム機、または通信機能を有するミュージックプレーヤ等の機器である。以下では情報処理装置2をデスクトップ型パーソナルコンピュータまたはノート型パーソナルコンピュータ等の機器に適用した例を説明し、装置を機器と読み替え、また、情報処理装置2をコンピュータ2と読み替えて説明する。認証機関サーバコンピュータ3は例えばベリサイン(登録商標)社またはグローバルサイン社等が運営する認証局のサーバコンピュータであり、以下ではCA(Certificate Authority)サーバ3という。DBサーバコンピュータ4はコンピュータ2の環境に関する情報を管理する。この環境に関する情報は、コンピュータ2のOS(Operating System)のバージョン、OSに対するパッチのバージョン、ブラウザのバージョン、ブラウザのパッチのバージョン、ワードプロセッサのバージョン、電子メールソフトウェアのバージョン、または、ウィルス対策ソフトウェアのバージョン等の情報である。本実施の形態においては、説明を容易にするために、コンピュータ2のOSのバージョン及びブラウザのバージョンを用いる形態につき説明し、以下ではDBサーバコンピュータ4をDBサーバ4として説明する。
コンピュータ2、CAサーバ3、Webサーバ1及びDBサーバ4は、インターネット及び携帯電話網等を含む通信網Nを介して相互に接続されており、例えばHTTP(Hyper Text Transfer Protocol)等によりHTML(HyperText Markup Language)ファイル及びその他の情報を送受信する。コンピュータ2A、2B、2C、・・・は相互に異なるセキュリティレベルを有する。例えば、コンピュータ2によっては指紋による生体認証を行うもの、顔による生体認証を行うものが存在し、さらに生体認証の判断材料となる指紋及び顔情報のコンピュータ2内での記憶状態等も相違する。また、コンピュータ2には、例えばMAC(Media Access Control)アドレス等のコンピュータ2を特定するための固有の識別情報(以下、機器IDという)を記憶しているが、この機器IDのコンピュータ2における記憶状態もコンピュータ2によって相違する。さらに、コンピュータ2のOSのバージョン及びブラウザのバージョンによってもセキュリティレベルが大きく相違する。このことから、金融機関のWebサーバ1はオンラインバンクにおける各種処理を所定のセキュリティレベルを有するコンピュータ2に対し許可する。以下に詳細を説明する。
図2はコンピュータ2Aのハードウェア構成を示すブロック図である。コンピュータ2Aは、制御部としてのCPU(Central Processing Unit)21A、RAM(Random Access Memory)22A、入力部23A、表示部24A、記憶部25A、通信部26A、時計部28A、及び、カメラ29A等を含んで構成される。CPU21Aは、バス27Aを介してコンピュータ2Aのハードウェア各部と接続されていて、それらを制御すると共に、記憶部25Aに格納された制御プログラム25PAに従って、種々のソフトウェア的機能を実行する。
RAM22Aは半導体素子により構成され、CPU21Aの指示に従い必要な情報の書き込み及び読み出しを行う。表示部24Aは例えば液晶ディスプレイ等であり、入力部23Aはキーボード及びマウス等により構成される。なお、タッチパネルのように表示部24Aと入力部23Aとを一体的に構成するようにしても良い。通信部26Aは例えば有線または無線のLAN(Local Area Network)カード等であり、Webサーバ1との間で情報の送受信を行う。時計部28Aは現在の日時情報をCPU21Aへ出力する。カメラ29AはCCD(Charge Coupled Device)等により構成され取り込んだ画像データをCPU21Aへ出力する。
記憶部25Aはハードディスクまたは大容量フラッシュメモリであり、制御プログラム25PA、ウィンドウズ(登録商標)等のOS251A(以下、場合によりOS251で代表する)、及び、インターネットエクスプローラ(登録商標)等のブラウザ252A(以下、場合によりブラウザ252で代表する)等が記憶されている。以下では、記憶部25Aはハードディスクであるものとして説明する。ブラウザ252Aは、Webサーバ1から送信されたHTMLファイルを解析し、CPU21Aの指示により表示部24Aに表示する。その他、記憶部25Aには顔情報ファイル253A、機器IDファイル254A、顔認識プログラム255A、ソフトウェア情報取得プログラム256A、及びソフトウェア情報ファイル257Aが記憶されている。
カメラ29A、顔情報ファイル253A及び顔認識プログラム255Aは、ユーザの顔を用いた生体認証を行う。なお、本実施の形態においては生体認証として顔認証及び指紋認証を用いる形態につき説明するが、虹彩、静脈または音声等を用いても良い。なお、以下では顔認証よりも指紋認証の方が、セキュリティレベルが高いものとして説明する。その他、指紋認証のみを用いる形態であっても良い。顔情報ファイル253Aには、ユーザの顔に係る画像データが予め記憶されている。初期登録の際、CPU21Aはカメラ29Aからユーザの顔の画像データを取り込み、顔情報ファイル253Aに記憶する。なお、顔情報ファイル253Aへ顔情報を記憶する場合、CPU21Aは入力部23Aから入力されたID及びパスワードが、記憶部25Aに記憶されたID及びパスワードと一致するか否かを判断する。CPU21Aは一致すると判断した場合にのみ、顔情報の記憶を行う。
顔認証を行う場合は、CPU21Aはカメラ29Aから顔の画像データを受け付ける。そして、CPU21Aは、顔認識プログラム255Aを起動し、顔情報ファイル253Aに記憶した顔の画像データと受け付けた顔の画像データとが一致するか否かを判断する。CPU21Aは一致すると判断した場合、制御プログラム25PAの指示に従い、Webサーバ1へ、顔認証の結果、及び、顔情報のコンピュータ2Aにおける記憶状態に関する情報を、通信部26Aを介して送信する。この記憶状態に関する情報は、「ハードディスク内に顔情報が記憶されている」ことを示す情報である。
機器IDファイル254Aにはコンピュータ2を特定するための機器IDが記憶されている。この機器IDは例えばコンピュータ2のシリアル番号、ハードディスクたる記憶部25Aのシリアル番号、または通信部26Aのシリアル番号等である。本実施の形態においてはコンピュータ2Aに予め付与された機器IDが記憶部25A内の機器IDファイル254Aに記憶されているものとして説明する。CPU21Aは必要に応じて、機器IDファイル254Aに記憶された機器IDを読み出し、通信部26Aを介して、Webサーバ1へ読み出した機器IDを送信する。さらにCPU21Aは、機器IDの記憶状態に関する情報として、「ハードディスク内に機器IDが記憶されている」ことを示す情報をWebサーバ1へ送信する。
ソフトウェア情報取得プログラム256Aを起動した場合、CPU21AはOS251Aのバージョン及びブラウザ252Aのバージョンを取得し、ソフトウェア情報ファイル257Aに記憶する。CPU21Aは、コンピュータ2Aの起動時、終了前、本実施の形態に係る認証処理を行う度、または、定期的(例えば1週間毎または1時間毎等)に、OS251Aのバージョン及びブラウザ252Aのバージョンを取得する。また新たなOS251Aまたはブラウザ252Aがインストールまたはダウンロードされた場合、及び、OS251Aまたはブラウザ252Aに係るパッチファイルまたはアップデートプログラム等がインストールまたはダウンロードされた場合等、コンピュータ2Aの環境が変化した場合も、CPU21Aは、OS251Aのバージョン及びブラウザ252Aのバージョンを取得する。
CPU21Aはユーザの指示に伴い入力部23AからOS251Aのバージョン及びブラウザ252Aのバージョンの取得要求を受け付けた場合も、ソフトウェア情報取得プログラム256Aを実行し、OS251Aのバージョン及びブラウザ252Aのバージョンを取得する。さらに、CPU21AはWebサーバ1から、OS251Aのバージョン及びブラウザ252Aのバージョンの取得要求を受け付けた場合も、ソフトウェア情報取得プログラム256Aを実行し、OS251Aのバージョン及びブラウザ252Aのバージョンを取得する。CPU21Aは必要に応じてソフトウェア情報ファイル257Aから、OS251Aのバージョン及びブラウザ252Aのバージョンを読み出し、通信部26Aを介して、Webサーバ1へ読み出したOS251Aのバージョン及びブラウザ252Aのバージョンをソフトウェアに関する情報として送信する。
図3はコンピュータ2Bのハードウェア構成を示すブロック図である。コンピュータ2Bは、制御部としてのCPU21B、RAM210B、フラッシュメモリ22B、入力部23B、表示部24B、記憶部25B、通信部26B、時計部28B、及び、指紋入力部29B等を含んで構成される。CPU21Bは、バス27Bを介してコンピュータ2Bのハードウェア各部と接続されていて、それらを制御すると共に、記憶部25Bに格納された制御プログラム25PBに従って、種々のソフトウェア的機能を実行する。
フラッシュメモリ22BはCPU21Bと共にマザーボード2Mに装着されており、内部に入力部23B及び記憶部25B等の周辺機器を制御するためのプログラム群(以下、BIOSという)及び機器IDファイル223Bを記憶している。機器IDファイル223Bは上述した如くコンピュータ2Bの出荷時に、予めコンピュータ2Bのシリアル番号が機器IDとして記憶されている。この機器IDファイル223Bは機器IDの書き換えができないよう保護されている。CPU21Bは必要に応じて機器IDファイル223Bに記憶した機器IDを読み出しWebサーバ1へ送信する。またCPU21Bは機器IDの記憶状態に関する情報として、「機器IDはBIOS内部に記憶されている」ことを示す情報を送信する。なお、コンピュータ2Bは機器IDをBIOS内部に記憶しており、安易な書き換えはできないため、機器IDをハードディスク内に記憶するコンピュータ2Aと比較してセキュリティレベルは高い。
RAM210Bは半導体素子により構成され、CPU21Bの指示に従い必要な情報の書き込み及び読み出しを行う。表示部24Bは例えば液晶ディスプレイ等であり、入力部23Bはキーボード及びマウス等により構成される。通信部26Bは例えば有線または無線のLANカード等であり、Webサーバ1との間で情報の送受信を行う。時計部28Bは現在の日時情報をCPU21Bへ出力する。指紋入力部29Bはコンピュータ2Bの入力部23B近傍に設けられる。指紋入力部29Bで読み取られた指紋情報はCPU21Bへ出力される。
記憶部25Bはハードディスクまたは大容量フラッシュメモリであり、制御プログラム25PB、OS251B、及び、ブラウザ252B等が記憶されている。以下では、記憶部25Bはハードディスクであるものとして説明する。ブラウザ252Bは、Webサーバ1から送信されたHTMLファイルを解析し、CPU21Bの指示により表示部24Bに表示する。その他、記憶部25Bには指紋認識プログラム255B、指紋情報ファイル253B、ソフトウェア情報取得プログラム256B、及びソフトウェア情報ファイル257Bが記憶されている。
指紋入力部29B、指紋情報ファイル253B及び指紋認識プログラム255Bにより指紋認証を行う。指紋情報ファイル253Bには、ユーザの指紋情報が予め記憶されている。初期登録の際、CPU21Bは指紋入力部29Bからユーザの指紋情報を取り込み、指紋情報ファイル253Bに記憶する。なお、指紋情報ファイル253Bへ指紋情報を記憶する場合、CPU21Bは入力部23Bから入力されたID及びパスワードが、記憶部25Bに記憶されたID及びパスワードと一致するか否かを判断する。CPU21Bは一致すると判断した場合にのみ、指紋情報の記憶を行う。
指紋認証を行う場合は、CPU21Bは指紋入力部29Bから指紋情報を受け付ける。そして、CPU21Bは、指紋認識プログラム255Bを起動し、指紋情報ファイル253Bに予め記憶した指紋情報と受け付けた指紋情報とが一致するか否かを判断する。CPU21Bは一致すると判断した場合、制御プログラム25PBの指示に従い、Webサーバ1へ、指紋認証の結果、及び、指紋情報のコンピュータ2Bにおける記憶状態に関する情報を生体認証に関する情報として、通信部26Bを介して送信する。この記憶状態に関する情報は、「ハードディスク内に指紋情報が記憶されている」ことを示す情報である。
ソフトウェア情報取得プログラム256Bを起動した場合、CPU21BはOS251Bのバージョン及びブラウザ252Bのバージョンを取得し、ソフトウェア情報ファイル257Bに記憶する。このバージョンの取得は例えば1週間毎等、定期的に行うほか、OS251Bまたはブラウザ252Bのバージョンが更新される度に、行うようにしても良い。CPU21Bは必要に応じてソフトウェア情報ファイル257Bから、OS251Bのバージョン及びブラウザ252Bのバージョンを読み出し、通信部26Bを介して、Webサーバ1へ読み出したOS251Bのバージョン及びブラウザ252Bのバージョンを、ソフトウェアに関する情報として送信する。
図4はコンピュータ2Cのハードウェア構成を示すブロック図である。コンピュータ2Cは、セキュリティチップ5、制御部としてのCPU21C、RAM22C、入力部23C、表示部24C、記憶部25C、通信部26C、及び、時計部28C等を含んで構成される。コンピュータ2Cはセキュリティをより強固にすべく、セキュリティチップ5を実装している点で、これを有さないコンピュータ2A及び2Bと相違する。
CPU21Cは、バス27Cを介してコンピュータ2Cのハードウェア各部と接続されていて、それらを制御すると共に、記憶部25Cに格納された制御プログラムに従って、種々のソフトウェア的機能を実行する。RAM22Cは半導体素子により構成され、CPU21Cの指示に従い必要な情報の書き込み及び読み出しを行う。表示部24Cは例えば液晶ディスプレイ等であり、入力部23Cはキーボード及びマウス等により構成される。通信部26Cは例えば有線または無線のLANカード等であり、Webサーバ1との間で情報の送受信を行う。時計部28Cは現在の日時情報をCPU21Cへ出力する。
記憶部25Cはハードディスクまたは大容量フラッシュメモリであり、制御プログラム、OS251C、及び、ブラウザ252C等が記憶されている。以下では、記憶部25Cはハードディスクであるものとして説明する。セキュリティチップ5は、TCG(Trusted Computing Group)の仕様に基づいたTPM(Trusted Platform Module)と称されるIC(Integrated Circuit)チップであり、TCGにより策定されたセキュリティの基本機能を備える。このセキュリティチップ5をコンピュータ2Cに実装することにより、ソフトウェアによる攻撃及び物理的な攻撃からデータを保護し、コンピュータ2A及び2Bと比較して、より強固なセキュリティを実現する。
セキュリティチップ5について説明する。セキュリティチップ5は主制御回路(以下、回路を部と省略する。)51、指紋入力部52、指紋認証部53、指紋情報記憶部54、ユーザ電子証明書記憶部55、ユーザ個人鍵記憶部56、機器電子証明書記憶部57、機器個人鍵記憶部58、機器ID記憶部59、暗号化処理部510、ソフトウェア情報取得部511、ソフトウェア情報記憶部512、ID記憶部515、制御プログラム記憶部513、及び、入出力部514等を含んで構成される。主制御部51は各部と接続されており、制御プログラム記憶部513に記憶された制御プログラムに従い、各種処理を実行する。セキュリティチップ5はI/Fである入出力部514及びバス27Cを介してコンピュータ2CのメインのCPU21Cに接続されている。主制御部51は入出力部514を介してCPU21Cと情報の送受信を行う。
指紋認証は、ユーザの指紋情報を受け付ける指紋入力部52、指紋認証のためのプログラムが記憶され、指紋認証処理を実行する指紋認証部53、及び、指紋認証の基礎となる指紋情報を記憶する指紋情報記憶部54により実行される。なお、指紋認証はコンピュータ2Cの起動時に行うほか、Webサーバ1との間の情報の送受信時(取引時)に実行するようにしても良い。指紋情報記憶部54はユーザの指紋情報が予め記憶されている。初期登録の際、主制御部51は指紋入力部52からユーザの指紋情報を取り込み、指紋情報記憶部54に記憶する。なお、指紋情報記憶部54へ指紋情報を記憶する場合、主制御部51は入力部23Cから入力されたID及びパスワードが、ID記憶部515に記憶されたID及びパスワードと一致するか否かを判断する。主制御部51は一致すると判断した場合にのみ、指紋情報の記憶を行う。なおID記憶部515にはコンピュータ2Cの購入時等に入力部23Cを介して入力されたID及びパスワードが記憶されている。
指紋認証を行う場合は、主制御部51は指紋入力部52から指紋情報を受け付ける。そして、主制御部51は、指紋認証部53内の指紋認証プログラムを起動し、指紋情報記憶部54に予め記憶した指紋情報と受け付けた指紋情報とが一致するか否かを判断する。主制御部51は、一致すると判断した場合、制御プログラムの指示に従い、入出力部514を介して、CPU21Cへ指紋認証の結果、及び、指紋情報のコンピュータ2Cにおける記憶状態に関する情報を含む生体認証に関する情報を送信する。この記憶状態に関する情報は、「セキュリティチップ5内に指紋情報が記憶されている」ことを示す情報である。CPU21Cはこの情報を受けて、通信部26Cを介して、生体認証に関する情報をWebサーバ1へ送信する。
さらにセキュリティを強化する場合は、ユーザ電子証明書記憶部55にCAサーバ3から発行されたユーザ電子証明書を記憶するようにしても良い。ユーザ電子証明書記憶部55にはユーザの白抜き鍵印で示す公開鍵及びCAサーバ3から送信された電子証明書が記憶されている。またユーザ個人鍵(秘密鍵)記憶部56には、ユーザの公開鍵とペアのハッチングを施した鍵印で示すユーザ個人鍵が記憶されている。なお、セキュリティチップ5の出荷時または初期設定時に、ユーザ電子証明書記憶部55に公開鍵が記憶され、またユーザ個人鍵記憶部56にユーザ個人鍵が記憶されるものとする。ユーザ電子証明書の発行手順について説明する。ユーザは入力部23Cからユーザ名、電子メールアドレス及びユーザ電子証明書の用途等を含む所有者情報を入力する。CPU21Cはブラウザ252Cを起動し、CAサーバ3へアクセスする。CPU21Cは、ユーザ電子証明書記憶部55に記憶されたユーザの公開鍵を読み出し、読み出した公開鍵と共に、入力部23Cから入力された所有者情報をCAサーバ3へ送信する。
CAサーバ3は認証を行い問題がない場合、所有者情報及び公開鍵に電子署名を付加する。CAサーバ3はユーザの公開鍵、所有者情報及び電子署名の3つをX.509の仕様に従いユーザ電子証明書を生成する。CAサーバ3は生成したユーザ電子証明書をコンピュータ2Cへ送信する。コンピュータ2CのCPU21Cはユーザ電子証明書を入出力部514へ送信する。主制御部51は入出力部514から出力されるユーザ電子証明書をユーザ電子証明書記憶部55に記憶する。なお、このユーザ電子証明書には有効期限が設定される場合もある。以上をまとめると、コンピュータ2Cはセキュリティチップ5内の指紋情報記憶部54に指紋情報が記憶されている場合(第1の場合)、指紋情報記憶部54に指紋情報が記憶されており、有効期限が有効なユーザ電子証明書がユーザ電子証明書記憶部55に記憶され、かつ、ユーザ電子証明書とペアになるユーザ個人鍵がユーザ個人鍵記憶部56に記憶されており、有効な電子署名が付与可能な場合(第2の場合)、指紋情報記憶部54に指紋情報が記憶されており、有効期限が有効なユーザ電子証明書がユーザ電子証明書記憶部55に記憶され、ユーザ電子証明書とペアになるユーザ個人鍵がユーザ個人鍵記憶部56に記憶されており、有効な電子署名が付与可能、かつ、指紋認証の結果及び指紋情報の記憶状態を含む生体情報に関する情報が暗号化される場合(第3の場合)の順にセキュリティ強度が高くなる。なお以下では、第2の場合において、ユーザ電子証明書を併せて送信する例を説明する。
上述した第1の場合、主制御部51は生体認証に関する情報として指紋認証の結果及び指紋情報がセキュリティチップ5内に記憶されていることを示す情報を、入出力部514を介してCPU21Cへ送信する。CPU21Cは、この生体情報に関する情報を、通信部26Cを介してWebサーバ1へ送信する。上述した第2の場合、主制御部51は生体情報に関する情報として、指紋認証の結果、指紋情報がセキュリティチップ5内に記憶されていることを示す情報を、ユーザ電子証明書及びユーザ個人鍵による電子署名と共に、入出力部514を介してCPU21Cへ送信する。CPU21Cは、この生体認証に関する情報、ユーザ電子証明書及びユーザ個人鍵による生体認証に関する情報に対する電子署名を、通信部26Cを介してWebサーバ1へ送信する。なお、電子署名とは電磁的記録に記録された情報について作成者を示す目的で行われる暗号化等の措置で、改変が行われていないかどうかを確認することができるものをいう。本実施の形態において述べる電子署名の方式はあくまで一例であり、これに限るものではない。すなわち、コンピュータ2からWebサーバ1へ送信される情報に電子署名を行い、Webサーバ1が、当該電子署名が有効であると判断できる形態であればよく本実施の形態に記載の具体例に限定するものではない。
第3の場合、主制御部51は以下の処理を行う。主制御部51は指紋入力部52から入力された指紋情報が、指紋情報記憶部54に記憶した指紋情報に一致する場合、指紋認証の結果または指紋情報がセキュリティチップ5内に記憶されていることを示す情報を含む生体認証に関する情報を、暗号化処理部510に記憶されたハッシュ関数を用いて、メッセージダイジェストを生成する。暗号化処理部510には暗号化処理プログラム及びハッシュ関数等が記憶されている。主制御部51は暗号化鍵記憶部518より暗号化鍵を読み出し、暗号化処理部510へ出力する。なお暗号化鍵記憶部518に記憶された暗号化鍵は、Webサーバ1との間で予め秘密裏に取り交わされたものである。この暗号化鍵は例えばコンピュータ2Cの出荷時に予め暗号化鍵記憶部518に記憶される。そして暗号化処理部510は暗号化処理プログラムにより、生体認証に関する情報の暗号化を行う。主制御部51はユーザ個人鍵記憶部56に記憶したユーザ個人鍵を読み出し、暗号化処理部510へ出力する。そして暗号化処理部510は暗号化処理プログラムによりメッセージダイジェストを、ユーザ個人鍵を用いて電子署名する。主制御部51はユーザ電子証明書記憶部55からユーザ電子証明書を読み出す。
主制御部51は、読み出したユーザ電子証明書と共に、暗号化処理部510にて暗号化された生体認証に関する情報及びメッセージダイジェストの電子署名を、入出力部514を介してCPU21Cへ送信する。CPU21Cはユーザ電子証明書、暗号化された生体認証に関する情報及びメッセージダイジェストの電子署名を、通信部26Cを介してWebサーバ1へ送信する。後述するようにWebサーバ1においてPKI認証が行われる。このように第3の場合は、間違いなくユーザが送信した改竄のないデータであることが証明される。なお、本実施の形態においては、生体認証に関するデータをユーザ電子証明書記憶部55に記憶したユーザ電子証明書を用いてPKI認証することとしたが、後述する機器電子証明書記憶部57に記憶した機器電子証明書を用いても良い。
続いて識別情報に関する情報の送信について説明する。機器ID記憶部59にはセキュリティチップ5またはコンピュータ2C等を特定するための機器IDが記憶されている。この機器IDはセキュリティチップ5のシリアル番号、コンピュータ2Cのシリアル番号、または通信部26Cのシリアル番号等である。以下では、機器IDをセキュリティチップ5に付与されたシリアル番号であるものとして説明する。この機器IDはセキュリティチップ5の出荷時に主制御部51の指示により機器ID記憶部59に記憶される。機器ID記憶部59に記憶した機器IDは書き換えが不可能な状態で記憶されている。
機器電子証明書記憶部57には、CAサーバ3により発行された機器電子証明書が記憶されている。機器電子証明書には白抜き鍵印で示すセキュリティチップ5の公開鍵、機器ID、機器電子証明書の有効期限及びCAサーバ3の電子署名が含まれる。なお、機器電子証明書に含まれる機器IDには、コンピュータ2Cのシリアル番号だけでなく、セキュリティチップ5のシリアル番号をもセットとして含めておいても良い。この機器電子証明書はコンピュータ2Cの出荷時にメーカがCA認証局に対し発行を受けておくようにすればよい。機器個人鍵記憶部58には機器電子証明書記憶部57に記憶した公開鍵に対応する機器個人鍵(ハッチングを施した鍵印で示す)が記憶されている。この機器個人鍵もコンピュータ2Cの出荷時に予め機器個人鍵記憶部58に記憶される。
識別情報に関する情報の送信は例えば以下の3つの方法により行われる。第1の方法は、機器ID及び機器IDがセキュリティチップ5内に記憶されていることを示す情報を識別情報に関する情報として送信するものである。なお、機器ID自体は必ずしも送信する必要はない。第2の方法は、機器ID、及び、機器IDがセキュリティチップ5内に記憶されていることを示す情報を含む識別情報に関する情報、機器電子証明書及び機器電子証明書とペアである機器個人鍵記憶部58に記憶した機器個人鍵で電子署名を付与し送信するものである。なお以下では、第2の方法において、機器電子証明書を併せて送信する例を説明する。第3の方法は暗号化した識別情報、機器電子証明書及び当該機器電子証明書とペアになる機器個人鍵により付与した電子署名を送信する。
この場合、第1の方法、第2の方法及び第3の方法の順にセキュリティ強度が高くなる。第1の方法の場合、主制御部51は機器ID記憶部59から予め記憶された機器IDを読み出し、入出力部514を介してCPU21Cへ送信する。これにあわせて、主制御部51は、機器IDがセキュリティチップ5内に記憶されていることを示す情報を、制御プログラム記憶部513に記憶した制御プログラムに従い、入出力部514を介して、CPU21Cへ出力する。CPU21Cは通信部26Cを介して、機器ID及び機器IDがセキュリティチップ5内に記憶されていることを示す情報を識別情報に関する情報としてWebサーバ1へ送信する。この場合においても、機器IDはセキュリティチップ5内に記憶されていることから、ハードディスク内またはBIOS内に機器IDを記憶するコンピュータ2A及び2Bよりもセキュリティレベルは高い。
第2の方法による場合、主制御部51は機器ID記憶部59から予め記憶された機器IDを読み出し、入出力部514を介してCPU21Cへ送信する。これにあわせて、主制御部51は、機器ID、及び、機器IDがセキュリティチップ5内に記憶されていることを示す情報を含む識別情報に関する情報、並びに、機器個人鍵を、制御プログラム記憶部513に記憶した制御プログラムに従い、入出力部514を介して、CPU21Cへ出力する。CPU21Cは通信部26Cを介して、機器ID及び機器IDがセキュリティチップ5内に記憶されていることを示す情報を含む識別情報に関する情報、機器電子証明書並びに、機器電子証明書とペアになる機器個人鍵による識別情報に関する情報に対する電子署名をWebサーバ1へ送信する。
第3の方法による場合、主制御部51は制御プログラム記憶部513に記憶した制御プログラムに従い、以下の処理を行う。主制御部51は、機器ID記憶部59から予め記憶された機器IDを読み出し、また、機器IDがセキュリティチップ5内に記憶されていることを示す情報を、制御プログラム記憶部513から読み出す。主制御部51は、読み出した機器ID及び機器IDがセキュリティチップ5内に記憶されていることを示す情報を含む識別情報に関する情報を、暗号化処理部510に記憶されたハッシュ関数を用いて、メッセージダイジェストを算出する。
暗号化処理部510には暗号化処理プログラム及びハッシュ関数等が記憶されている。主制御部51はメッセージダイジェスト及び識別情報に関する情報を暗号化処理部510へ出力する。主制御部51は暗号化鍵記憶部518より暗号化鍵を読み出し、暗号化処理部510へ出力する。そして暗号化処理部510は暗号化処理プログラムにより、識別情報に関する情報の暗号化を行う。主制御部51は機器個人鍵記憶部58に記憶した機器個人鍵を読み出し、暗号化処理部510へ出力する。そして暗号化処理部510は暗号化処理プログラムにより、メッセージダイジェストを、機器個人鍵を用いて電子署名する。主制御部51は機器電子証明書記憶部57から機器電子証明書を読み出す。
主制御部51は、読み出した機器電子証明書と共に、暗号化処理部510にて暗号化された識別情報に関する情報及びメッセージダイジェストの電子署名を、入出力部514を介してCPU21Cへ送信する。CPU21Cは機器電子証明書、並びに、暗号化された識別情報に関する情報及びメッセージダイジェストの電子署名を、通信部26Cを介してWebサーバ1へ送信する。後述するようにWebサーバ1においてPKI認証が行われる。このように第3の場合は、間違いなくユーザが送信した改竄のないデータであることが証明される。なお、本実施の形態においては識別情報に関する情報を機器電子証明書記憶部57に記憶した機器電子証明書を用いてPKI認証することとしたが、上述したユーザ電子証明書を用いて行うようにしても良い。
最後にソフトウェア(環境)に関する情報の送信について説明する。ソフトウェア情報取得部511は、コンピュータ2Cが起動する度、または、所定時間毎に、記憶部25C内部に記憶されたOS251Cのバージョン及びブラウザ252Cのバージョンを取得する。取得したOS251Cのバージョン及びブラウザ252Cのバージョンの情報はソフトウェアに関する情報としてソフトウェア情報記憶部512に記憶される。主制御部51は制御プログラム記憶部513に記憶した制御プログラムを実行し下記の送信処理を行う。
一つの方法は、主制御部51がソフトウェアに関する情報を、ユーザ電子証明書または機器電子証明書とペアになる個人鍵による電子署名を付加せず、Webサーバ1へ送信するものである。もう一つの方法は以下に述べるように、PKI認証のためユーザ電子証明書または機器電子証明書とペアになる個人鍵による電子署名と共に、Webサーバ1へ送信するものである。主制御部51はソフトウェアに関する情報をユーザ電子証明書記憶部55に記憶したユーザ電子証明書とペアになる個人鍵(ユーザ個人鍵)による電子署名、または、機器電子証明書記憶部57に記憶した機器電子証明書とペアになる個人鍵(機器個人鍵)による電子署名と共に、暗号化したソフトウェアに関する情報をWebサーバ1へ送信する。以下では、機器電子証明書を用いた例を説明する。具体的には、主制御部51はソフトウェア情報記憶部512からソフトウェアに関する情報を読み出し、暗号化処理部510へ出力する。主制御部51は暗号化鍵記憶部518より暗号化鍵を読み出し、暗号化処理部510へ出力する。そして暗号化処理部510は暗号化処理プログラムにより、ソフトウェアに関する情報の暗号化を行う。暗号化処理部510は記憶したハッシュ関数に基づきソフトウェアに関する情報のメッセージダイジェストを算出する。暗号化処理部510は算出したメッセージダイジェストを主制御部51へ出力する。
主制御部51は機器個人鍵記憶部58に記憶した機器個人鍵を読み出し、読み出した機器個人鍵によりメッセージダイジェストを電子署名する。そして主制御部51は暗号化したソフトウェアに関する情報、メッセージダイジェストの電子署名、及び機器電子証明書記憶部57から読み出した機器電子証明書を、入出力部514を介してCPU21Cへ出力する。CPU21Cは、機器電子証明書、暗号化されたソフトウェアに関する情報及びメッセージダイジェストの電子署名をWebサーバ1へ送信する。
この他、生体認証に関する情報、識別情報に関する情報及びソフトウェアに関する情報の全てを、ユーザ電子証明書記憶部55に記憶したユーザ電子証明書、または、機器電子証明書記憶部57に記憶した機器電子証明書を統一的に用いて、PKI認証のため電子署名して送信するようにしても良い。この場合、各種情報が同時にPKI認証を経て送信されることから、セキュリティレベルをより高めることが可能となる。以下では、機器電子証明書を統一的に用いてPKI認証を行う例を説明する。
主制御部51は上述した生体認証に関する情報、識別情報に関する情報及びソフトウェアに関する情報を暗号化処理部510へ出力する。主制御部51は暗号化鍵記憶部518より暗号化鍵を読み出し、暗号化処理部510へ出力する。そして暗号化処理部510は暗号化処理プログラムにより、情報の暗号化を行う。暗号化処理部510は、記憶したハッシュ関数に基づき、生体認証に関する情報、識別情報に関する情報及びソフトウェアに関する情報のメッセージダイジェストを算出する。暗号化処理部510は算出したメッセージダイジェストを主制御部51へ出力する。
主制御部51は機器個人鍵記憶部58に記憶した機器個人鍵を読み出し、読み出した機器個人鍵により、メッセージダイジェストを電子署名する。そして主制御部51は暗号化した生体認証に関する情報、識別情報に関する情報及びソフトウェアに関する情報、並びに、メッセージダイジェストの電子署名と、機器電子証明書記憶部57から読み出した機器電子証明書とを、入出力部514を介してCPU21Cへ出力する。CPU21Cは、機器電子証明書、暗号化された生体認証に関する情報、識別情報に関する情報及びソフトウェアに関する情報、並びにメッセージダイジェストの電子署名をWebサーバ1へ送信する。なお、本実施の形態においてはコンピュータ2A乃至2Cの3つの例を示したが、あくまで一例であって、これに限るものではない。コンピュータ2A、2B及び2Cのハードウェアそれぞれを適宜融合させる形態であっても良い。例えばコンピュータ2Aの顔情報ファイル253Aはハードディスクたる記憶部25Aに記憶されているが、コンピュータ2Bの如くフラッシュメモリ22BのBIOS内部に記憶するようにしても良い。またコンピュータ2Cの生体認証はセキュリティチップ5内で実行されるが、コンピュータ2Bの如く、セキュリティチップ5外で実行するようにしても良い。
図5はDBサーバ4のハードウェア構成を示すブロック図である。DBサーバ4はCPU41、RAM42、通信部46及び記憶部45を含んで構成される。CPU41は、バス47を介してDBサーバ4のハードウェア各部と接続されていて、それらを制御すると共に、記憶部45に格納された制御プログラムに従って、種々のソフトウェア的機能を実行する。RAM42は半導体素子により構成され、CPU41の指示に従い必要な情報の書き込み及び読み出しを行う。通信部46はファイアウォールとしての機能を果たすゲートウェイ等である。
記憶部45内部にはソフトウェアDB451が格納されている。CPU41はソフトウェアDB451のフィールドのキーを関連づけたスキーマにおいてSQL(Structured Query Language)等のデータベースの形式に応じたアクセスインターフェースを用いて対話することにより、必要な情報の記憶、検索等の処理を実行する。ソフトウェアDB451にはOSの各種バージョン及びブラウザの各種バージョンに関する情報が記憶されている。CPU41はWebサーバ1のリクエストに応じ、OS及びブラウザのバージョンに関する情報を送信する。
図6はソフトウェアDB451のレコードレイアウトを示す説明図である。ソフトウェアDB451は種類フィールド、バージョンフィールド、更新日時フィールド及び内容フィールドを含んで構成される。種類フィールドには、OS及びブラウザの名称が記憶されている。バージョンフィールドには、OSまたはブラウザのバージョンが記憶されている。更新日時フィールドには、OS及びバージョン、または、ブラウザ及びバージョンに対応させて、各ソフトウェアが更新された日時情報が記憶されている。例えばOSのバージョン「W06」は、バージョン「W01」〜「W05」を経た最新のバージョンであり、更新日時は2007年9月25日12時1分と記憶されている。また、ブラウザのバージョン「I05」は、バージョン「I01」〜「I04」を経た最新のバージョンであり、更新日時は2007年10月5日21時0分20秒と記憶されている。内容フィールドには各バージョンの説明が記憶されている。CPU41はOS及びソフトウェアのバージョンが更新される度に、バージョン、更新日時及び内容をソフトウェアDB451に記憶する。
図7はWebサーバ1のハードウェア構成を示すブロック図である。Webサーバ1は制御部としてのCPU11、RAM12、入力部13、表示部14、記憶部15、通信部16、及び、時計部18等を含んで構成される。CPU11は、バス17を介してコンピュータ1のハードウェア各部と接続されていて、それらを制御すると共に、記憶部15に格納された制御プログラム15Pに従って、種々のソフトウェア的機能を実行する。
RAM12は半導体素子により構成され、CPU11の指示に従い必要な情報の書き込み及び読み出しを行う。表示部14は例えば液晶ディスプレイ等であり、入力部13はキーボード及びマウス等により構成される。通信部16はファイアウォールとしての機能を果たすゲートウェイ等であり、コンピュータ2、CAサーバ3及びDBサーバ4との間で情報の送受信を行う。時計部18は現在の日時情報をCPU11へ出力する。記憶部15は例えばハードディスクであり、制御プログラム15P、HTMLファイル151、復号プログラム152、ソフトウェア評価テーブル153、ポリシーテーブル154、暗号化鍵記憶部158、及び、ユーザDB155等が記憶されている。なお、ソフトウェア評価テーブル153、ユーザDB155及びポリシーテーブル154は必ずしもWebサーバ1内の記憶部15に記憶しておく必要はなく、図示しないDBサーバ内部に記憶し、必要に応じて読み書きするようにすれば良い。
HTMLファイル151はオンラインバンキングのトップページ、登録画面、振り込み画面及び残高確認画面等の各種処理を実行するための画面がHTML形式で記憶されている。Webサーバ1のCPU11は、コンピュータ2からのリクエストに応じて、対応するHTMLファイル151を適宜読み出して、通信部16を介してコンピュータ2へ送信する。復号プログラム152はコンピュータ2から送信される暗号化された情報を復号するためのプログラムである。なおハッシュ関数は記憶部15に記憶されている。ユーザDB155は取引を行うユーザの情報及びコンピュータ2の情報を記憶している。暗号化鍵記憶部158はコンピュータ2Cの暗号化鍵記憶部518に記憶した暗号化鍵に対応する暗号化鍵を記憶している。
図8はユーザDB155のレコードレイアウトを示す説明図である。ユーザDB155はIDフィールド、パスワードフィールド、氏名フィールド、機器IDフィールド、口座番号フィールド及び残高フィールド等を含んで構成される。IDフィールドには取引対象であるユーザを特定するための固有のIDが記憶されている。またパスワードフィールドにはIDに対応づけられてパスワードが記憶されている。氏名フィールドにはIDに対応づけてユーザの氏名が記憶されており、機器IDフィールドにはコンピュータ2を特定するための機器IDが記憶されている。この機器IDは上述のとおり、コンピュータ2の種類によって異なる。口座番号フィールドにはユーザの口座番号が記憶され、残高フィールドには口座番号に対応する残高が記憶される。氏名、口座番号及び残高は、図示しない銀行のサーバから送信されたデータが、CPU11の指示により、ユーザDB155に記憶される。
ユーザはオンラインバンキングの初期登録に際し、ID、パスワード及び機器IDをユーザDB155に記憶する。コンピュータ2はユーザが入力したID及びパスワードを送信する。Webサーバ1のCPU11は送信されたID及びパスワードを口座番号に対応づけてユーザDB155に記憶する。コンピュータ2はこれらID及びパスワードの送信と共に、機器IDをWebサーバ1へ送信する。Webサーバ1のCPU11は受信した機器IDを口座番号に対応づけてユーザDB155に記憶する。
ソフトウェア評価テーブル153は、ソフトウェアのバージョンに対応するレベルを記憶している。図9はソフトウェア評価テーブル153のレコードレイアウトを示す説明図である。ソフトウェア評価テーブル153はOSのバージョン及びブラウザのバージョンそれぞれに対応させてソフトウェアレベルを記憶している。なお、ソフトウェア評価テーブル153はOSのバージョンが新しいほど、またブラウザのバージョンが新しいほどソフトウェアレベルが高くなるよう値が記憶されている。例えば、OS及びブラウザのバージョンが共に最新の場合は、ソフトウェアレベルが最高の3と記憶されている。またOSのバージョンが最新であるが、ブラウザのバージョンが1バージョン前の場合はこれよりも低いソフトウェアレベル2が記憶されている。また例えば、OSのバージョンが2〜4バージョン前であり、かつ、ブラウザのバージョンが3バージョン前の場合は最低のソフトウェアレベル1が記憶されている。なお、ソフトウェア評価テーブル153の数値例はあくまで一例で有り、これに限るものでない。
CPU11は、コンピュータ2からソフトウェアに関する情報としてOSのバージョン及びブラウザのバージョンを受信した場合、OSのバージョン及びブラウザのバージョンをDBサーバ4へ送信する。DBサーバ4のCPU41はOSのバージョン及びブラウザのバージョンを受信し、ソフトウェアDB451を検索する。そして、CPU41は受信したOSのバージョンが最新のものか、何バージョン前かの情報を、更新日時を参照してRAM42に格納する。またCPU41は受信したブラウザのバージョンが最新のものか、何バージョン前かの情報を、更新日時を参照してRAM42に格納する。
CPU41はRAM42に格納したOS及びブラウザのバージョンに関する情報(最新のものか、何バージョン前のものかの情報)をWebサーバ1へ送信する。Webサーバ1のCPU11はソフトウェア評価テーブル153を参照し、DBサーバ4から送信されたOS及びブラウザのバージョンに関する情報に基づき、ソフトウェアレベルを読み出す。なお、本実施の形態においては、バージョンの情報を外部のDBサーバ4に問い合わせる形態につき説明したが、随時更新されるソフトウェアDB451をWebサーバ1内の記憶部15に用意しておいても良い。
上述したソフトウェアに関する情報に基づくレベル(ソフトウェアレベル)と同様に、CPU11は送信された生体認証に関する情報に基づくレベル(以下、生体レベル)、及び、識別情報に関する情報に基づくレベル(装置レベル、以下、機器レベルと称する)を決定する。CPU11はセキュリティが強固なほど、生体レベル及び機器レベルを高くなるよう決定する。そして、ソフトウェアレベル、生体認証レベル、及び、機器レベルを総合的に検討して、コンピュータ2との今後の処理を許可するか否か、換言すればコンピュータ2が正か否かを判断する。
図10は本実施の形態に係る、コンピュータ2の正否を判断する処理を説明するためのグラフである。X軸は生体レベルを示し、Y軸は機器レベルを示し、Z軸はソフトウェアレベルを示す。X軸は原点から正方向に向かうに従いセキュリティレベルが高まる。同様にY軸及びZ軸も原点から正方向に向かうに従いセキュリティレベルが高まる。コンピュータ2から送信された生体認証に関する情報、識別情報に関する情報、及び、ソフトウェアに関する情報により決定される生体レベル、機器レベル及び生体レベルにより座標軸上の点が決定される。斜線で囲む基準レベルは予め生体レベルの基準レベル、機器レベルの基準レベル及びソフトウェアレベルの基準レベルにより決定されるものであり、オンラインバンキングの処理を実行する場合、この基準レベルの外の領域に座標軸上の点が存在することが必要とされる。斜線で示す基準レベルよりも内の領域の座標軸上に点が存在する場合、セキュリティポリシーを満たさないものとして処理は終了する。
図7に示す記憶部15に、セキュリティポリシーに応じて、生体レベルの基準レベル、機器レベルの基準レベル及びソフトウェアレベルの基準レベルにより決定される基準レベルを予め記憶しておく。具体的には、3次元座標値に対応づけて、正を示す「1」、否を示す「0」を記憶しておく。CPU11は後述するように補正を行った後、レベルに基づき、座標軸上の点を決定する。そしてCPU11はこの点が基準レベル以上であるか、すなわち当該点に正を示す「1」が記憶部15に記憶されているか否かを判断する。CPU11は正が記憶されていると判断した場合、コンピュータ2はセキュリティポリシーに合致するとして、振り込み等の処理を継続する。一方、基準レベルに満たない場合は、セキュリティポリシーに合致しないものとして処理を終了する。
このように3次元座標軸上において、正否を判断するほか、レベルに応じたテーブルを設けて判断するようにしても良い。図11乃至図14はポリシーテーブル154の記憶内容を示す説明図である。なおHDDはハードディスクドライブの略であり、SCはセキュリティチップの略である。ポリシーテーブル154は生体レベル、機器レベル及びソフトウェアレベルの全ての組み合わせに対応させて正否を記憶している。図において正は○印、否は×印で示している。この○印で示すフラグが基準レベルに相当するものである。ポリシーテーブル154は、コンピュータ2における生体認証に関する情報等に応じて複数の生体レベルを記憶しており、識別情報に関する情報等に応じて複数の機器レベルを記憶している。またコンピュータ2のソフトウェアに関する情報等に応じて複数のソフトウェアレベルを記憶している。まず生体レベルの決定処理及び補正処理について、具体例を挙げて説明する。
生体レベルはレベル1乃至3のいずれかに決定され、電子署名が有効であり、また期限が有効なユーザ電子証明書の存在によりレベル3+(レベル4)へ補正される。さらに、また期限が有効なユーザ電子証明書が存在し、生体認証に関する情報が暗号化されて送信され、かつ改竄がなく電子署名が有効であると判断された場合、レベル3++(レベル5)へ補正される。レベル1は生体認証の種類が顔認証であり、顔認証の結果が正であり、かつ、ハードディスクに顔認証用の顔情報が記憶されている場合に決定されるレベルである。レベル2はレベル1よりも高く、生体認証の種類が指紋認証であり、指紋認証の結果が正であり、かつ、ハードディスクに指紋認証用の指紋情報が記憶されている場合に決定されるレベルである。レベル3はレベル2よりも高く、生体認証の種類が指紋認証であり、指紋認証の結果が正であり、かつ、セキュリティチップ5内に指紋認証用の指紋情報が記憶されている場合に決定されるレベルである。
補正されるレベル3+はレベル3よりも高く、生体認証の種類が指紋認証であり、指紋認証の結果が正であり、セキュリティチップ5内に指紋認証用の指紋情報が記憶されており、かつ、生体認証に関する情報と共に、期限が有効なユーザ電子証明書及びユーザ電子証明書とペアになる個人鍵で施された有効な電子署名が同時に送信されてきた場合に、レベル3からレベル3+へと補正されものである。補正されるレベル3++はレベル3+よりもさらに高く、生体認証の種類が指紋認証であり、指紋認証の結果が正であり、セキュリティチップ5内に指紋認証用の指紋情報が記憶されており、生体認証に関する情報と共に、期限が有効なユーザ電子証明書及びユーザ電子証明書とペアになる個人鍵で施された有効な電子署名が同時に送信され、かつ、生体認証に関する情報が暗号化され改竄されていない場合にレベル3+をさらに補正して3++とするものである。CPU11はコンピュータ2から、顔認証の結果及び顔認証用の顔情報がハードディスクたる記憶部25A等に記憶されていることを示す情報を含む生体認証に関する情報を受信した場合、顔認証の結果が正の場合に限り、ポリシーテーブル154を参照して、当該コンピュータ2をレベル1と決定する。
また、CPU11はコンピュータ2から指紋認証の結果及び指紋認証用の指紋情報がハードディスクたる記憶部25B等に記憶されていることを示す情報を含む生体認証に関する情報を受信した場合、指紋認証の結果が正の場合に限り、ポリシーテーブル154を参照して、当該コンピュータ2をレベル2と決定する。CPU11は、コンピュータ2から指紋認証の結果、及び、指紋認証用の指紋情報がセキュリティチップ5内に記憶されていることを示す情報を含む生体認証に関する情報を受信した場合、指紋認証の結果が正の場合に限り、ポリシーテーブル154を参照して、当該コンピュータ2をレベル3と決定する。
さらに、CPU11は、ポリシーテーブル154を参照して、コンピュータ2から指紋認証の結果、及び、指紋認証用の指紋情報がセキュリティチップ5内に記憶されていることを示す情報を含む生体認証に関する情報に加えて、期限が有効なユーザ電子証明書及びユーザ電子証明書とペアになる個人鍵で施された有効な電子署名を受信した場合、指紋認証の結果が正の場合に限り、当該コンピュータ2をレベル3+と補正した上で、決定する。なお、期限が有効か否かは時計部18から出力される日時情報を参照して判断する。また、有効期限を徒過している場合は、レベル3となる。最後にCPU11は、ポリシーテーブル154を参照して、コンピュータ2から暗号化された指紋認証の結果、及び、指紋認証用の指紋情報がセキュリティチップ5内に記憶されていることを示す情報を含む生体認証に関する情報が暗号化され、並びに、期限が有効なユーザ電子証明書及びユーザ電子証明書とペアになる個人鍵で施された有効な電子署名を受信した場合、改竄されておらず、かつ、指紋認証の結果が正の場合に限り、当該コンピュータ2をレベル3++と補正した上で、決定する。
次いで機器レベルについて説明する。レベル1は機器IDがハードディスクに記憶されている場合に、決定されるレベルである。レベル2はレベル1よりも高く、機器IDがBIOS内部に記憶されている場合に決定されるレベルである。レベル3はレベル2よりも高く、機器IDがセキュリティチップ5内に記憶されている場合に決定されるレベルである。レベル3+はレベル3よりも高く、機器IDがセキュリティチップ5内に記憶されており、かつ、識別情報に関する情報と共に、期限が有効な機器電子証明書及び機器電子証明書とペアになる個人鍵で施された有効な電子署名が同時に送信されてきた場合にレベル3を補正して3+とするものである。補正されるレベル3++はレベル3+よりもさらに高く、セキュリティチップ5内に機器IDが記憶されており、識別情報に関する情報が暗号化されていると共に、期限が有効なユーザ電子証明書及び機器電子証明書とペアになる個人鍵で施された有効な電子署名が同時に送信され、かつ、識別情報に関する情報が改竄されていない場合にレベル3++へと補正されるものである。
コンピュータ2から機器ID及び機器IDがハードディスクたる記憶部25Aに記憶されていることを示す情報を含む識別情報に関する情報を受信した場合、ポリシーテーブル154を参照して、送信された機器IDがユーザDB155に記憶された機器IDに一致することを条件に、CPU11は、当該コンピュータ2をレベル1と決定する。コンピュータ2から機器ID及び機器IDがBIOSに記憶されていることを示す情報を含む識別情報に関する情報を受信した場合、ポリシーテーブル154を参照して、送信された機器IDがユーザDB155に記憶された機器IDに一致することを条件に、CPU11は、当該コンピュータ2をレベル2と決定する。
コンピュータ2から機器ID及び機器IDがセキュリティチップ5内に記憶されていることを示す情報を含む識別情報に関する情報を受信した場合、送信された機器IDがユーザDB155に記憶された機器IDに一致することを条件に、ポリシーテーブル154を参照して、CPU11は、当該コンピュータ2をレベル3と決定する。コンピュータ2から機器ID及び機器IDがセキュリティチップ5内に記憶されていることを示す情報を含む識別情報に関する情報を、期限が有効な機器電子証明書及び機器電子証明書とペアになる個人鍵で施された有効な電子署名と共に受信した場合、送信された機器IDがユーザDB155に記憶された機器IDに一致することを条件に、ポリシーテーブル154を参照して、CPU11は、当該コンピュータ2のレベルを補正した上で、レベル3+と決定する。さらに、コンピュータ2から、暗号化された機器ID及び機器IDがセキュリティチップ5内に記憶されていることを示す情報を含む識別情報に関する情報を、期限が有効な機器電子証明書及び機器電子証明書とペアになる個人鍵で施された有効な電子署名と共に受信した場合、送信された機器IDがユーザDB155に記憶された機器IDに一致し、かつ、改竄がないこと条件に、ポリシーテーブル154を参照して、CPU11は、当該コンピュータ2のレベルを補正した上で、レベル3++と決定する。
ソフトウェアレベルは上述したソフトウェア評価テーブル153により決定されるレベルでありソフトウェアレベル1乃至3が存在する。さらに、以下の場合には補正処理を行う。コンピュータ2からソフトウェアに関する情報と共に期限が有効な機器電子証明書またはユーザ電子証明書及び当該電子証明書とペアになる個人鍵で施された有効な電子署名が送信され、かつ、ソフトウェアに関する情報が改竄されていない場合は、CPU11はレベルを補正する。レベル1乃至3を、レベル2、レベル3、レベル3+へそれぞれ補正する。さらに、後述するように、生体認証に関する情報、識別情報に関する情報及びソフトウェアに関する情報が暗号化され、所定時間内に有効な機器電子証明書及び機器電子証明書とペアになる個人鍵で施された有効な電子署名と共に改竄なく送信された場合、または、機器電子証明書及び機器電子証明書とペアになる個人鍵で施された有効な電子署名と共に、生体認証に関する情報、識別情報に関する情報及びソフトウェアに関する情報の全てが、同時に改竄なく送信されてきた場合も、補正処理を行う。この場合、図示しないが、レベル2、レベル3、レベル3+を、レベル3、レベル3+、レベル3++へそれぞれ高く補正する。以上述べた処理により決定された生体レベル、機器レベル及びソフトウェアレベルに基づき、CPU11はポリシーテーブル154を参照して、正否を判断する。
図11はソフトウェアレベルが1の場合を示す。ソフトウェアレベルが1の場合、セキュリティレベルが低いことから、生体レベル及び機器レベルの如何に関わらず、全て否と記憶されている。図12はソフトウェアレベルが2の場合を示す。ソフトウェアレベル1と比較してある程度セキュリティが向上しているため、生体レベル及び機器レベルが共に3++の場合はコンピュータ2を正と判断するよう情報が記憶されている。図13はソフトウェアレベルが3の場合を示す。ソフトウェアのバージョンが高く安全性も期待できることから、生体レベル及び機器レベルが共に3++の場合、生体レベルが3++であり機器レベルが3+の場合、及び、生体レベルが3+であり機器レベルが3++の場合に、コンピュータ2を正と判断する情報が記憶されている。
図14はソフトウェアレベルが3+の場合を示す。ソフトウェアレベルが高くかつ改竄されていないことから、生体レベル及び機器レベルが共に3++の場合、生体レベルが3++であり機器レベルが3+の場合、生体レベルが3+であり機器レベルが3++の場合、生体レベルが3++であり機器レベルが3の場合、生体レベルが3+であり機器レベルが3+の場合、及び、生体レベルが3であり機器レベルが3++の場合、コンピュータ2を正と判断する情報が記憶されている。
CPU11は、コンピュータ2から、暗号化された指紋認証の結果、指紋情報がセキュリティチップ5内に記憶されていることを示す情報を含む生体認証に関する情報、機器ID及び機器IDがセキュリティチップ5内に記憶されていることを含む識別情報に関する情報、及び、ソフトウェアに関する情報、と共に、期限が有効な機器電子証明書(またはユーザ電子証明書)及びこれとペアになる個人鍵で施された有効な電子署名を受信する。CPU11はこのように、全ての情報が同時に送信され、また全ての情報に改竄がなく、かつ、ソフトウェアレベルが3+、生体レベルが3++、機器レベルが3++と判断できる場合は、最高のレベルを決定する。CPU11はこの最高レベルを決定したコンピュータ2に関しては、セキュリティが高いと判断し、より多くの処理を認めるようにすればよい。
なお、ポリシーテーブル154の記憶内容はオペレータが入力部13から適宜の値を入力するようにすればよい。また、本実施の形態においてはポリシーテーブル154を用いた例を説明したが、これに限るものではなく、ポイント制により判断するようにしても良い。例えば、CPU11は、生体レベルの高さに応じて順に1〜5のポイントを付与し、機器レベルの高さに応じて1〜5のポイントを付与し、さらに、ソフトウェアレベルの高さに応じて順に1〜4のポイントを付与する。そしてCPU11は基準レベルに対応する基準ポイント10を閾値として記憶部15に記憶しておき、コンピュータ2の各レベルに基づく合計ポイントが10以上の場合に正と判断するようにしても良い。さらに、条件としてCPU11は少なくとも生体レベルは3以上、機器レベルは3以上、かつ、ソフトウェアレベルは2以上との条件を付与するようにしても良い。
以上のハードウェア構成において、本実施の形態に係る各種ソフトウェア処理の手順を、フローチャートを用いて説明する。以下では、説明を容易にするために、オンラインバンキングにおいてコンピュータ2A、2B、2Cのそれぞれが振り込み処理を実行する場合の手順を説明する。まずコンピュータ2Aについて説明する。
図15乃至図17はコンピュータ2Aにおけるレベル決定処理の手順を示すフローチャートである。ユーザはコンピュータ2Aのブラウザ252Aを起動し、Webサーバ1へアクセスするためのURL(Uniform Resource Locator)を入力部23Aから入力する。Webサーバ1はコンピュータ2に、オンラインバンキングへログインするためのID及びパスワード入力画面をコンピュータ2Aへ送信する。コンピュータ2Aのブラウザ252A(表示部24A)にはID及びパスワードの入力画面が表示される。ユーザは入力部23AからID及びパスワードを入力する。
コンピュータ2AのCPU21Aは入力部23Aから入力されたID及びパスワードを受け付け、Webサーバ1へ送信する(ステップS151)。Webサーバ1のCPU11は通信部16を介して、ID及びパスワードを受信する(ステップS152)。CPU11はユーザDB155を参照し、受信したID及びパスワードが、ユーザDB155に記憶したID及びパスワードに一致するか否かを判断する(ステップS153)。CPU11は一致しないと判断した場合(ステップS153でNO)、不正なアクセスであるとして処理を終了する。一方、CPU11は、一致すると判断した場合(ステップS153でYES)、ログインを認めるべく、HTMLファイル151から生体認証の開始画面を送信する(ステップS154)。
コンピュータ2AのCPU21Aは生体認証の開始画面を受信し、ブラウザ252Aに生体認証の開始画面を表示する(ステップS155)。CPU21Aは、制御プログラム25PAを起動し以下の処理を行う。CPU21Aは、この画面の受信をトリガに顔認識プログラム255Aを起動し(ステップS156)、カメラからユーザの顔情報を取り込む(ステップS157)。CPU21Aは顔情報ファイル253Aから予め記憶された顔情報を読み出す(ステップS158)。CPU21Aは読み出した顔情報と取り込んだ顔情報とが一致するか否かを判断する(ステップS159)。CPU21Aは一致しないと判断した場合(ステップS159でNO)、不正なアクセスであるとして処理を終了する。
一方CPU21Aは顔情報が一致すると判断した場合(ステップS159でYES)、顔認証の結果、顔情報がハードディスクに記憶されていることを示す情報を含む生体認証に関する情報を生成し、Webサーバ1へ送信する(ステップS161)。なお、送信される顔認証の結果には、コンピュータ2Aで実行された生体認証の種類が顔認証であること及び顔認証の結果正であると判断されたことを示す情報が含まれる。続いてCPU21Aは機器IDファイル254Aから機器IDを読み出す(ステップS162)。CPU21Aは機器ID及び機器IDがハードディスクに記憶されていることを示す情報を含む識別情報に関する情報を生成し、Webサーバ1へ送信する(ステップS163)。
続いてCPU21Aはソフトウェア情報ファイル257AからOS251A及びブラウザ252Aのバージョンを読み出す(ステップS164)。なお、ソフトウェア情報取得プログラム256Aは定期的に実行され、取得したOS251A及びブラウザ252Aのバージョンをソフトウェア情報ファイル257Aに記憶している。CPU21Aは取得したOS251A及びブラウザ252Aのバージョンを含むソフトウェアに関する情報をWebサーバ1へ送信する(ステップS165)。
Webサーバ1のCPU11は、ステップS161で送信された生体認証に関する情報、ステップS163で送信された識別情報に関する情報、及び、ステップS165で送信されたソフトウェアに関する情報を受信する(ステップS167)。CPU21Aは受信した生体認証に関する情報の顔認証の結果を参照し、顔認証の結果が正であるか否かを判断する(ステップS168)。CPU11は顔認証の結果が正でないと判断した場合(ステップS168でNO)、不正な処理であるとして処理を終了する。一方、CPU11は顔認証の結果が正であると判断した場合(ステップS168でYES)、生体認証に関する情報の内、顔情報がハードディスクに記憶されていることを示す情報、及び、ポリシーテーブル154を参照し、生体レベルを決定する(ステップS169)。本例では生体レベルは1である。
CPU11は、ステップS152で受信したIDに対応する機器IDをユーザDB155から読み出す。CPU11はステップS167で受信した機器IDが、ユーザDB155から読み出した機器IDに一致するか否かを判断する(ステップS1610)。CPU11は一致しないと判断した場合(ステップS1610でNO)、不正なアクセスであるとして処理を終了する。一方、CPU11は一致すると判断した場合(ステップS1610でYES)、識別情報に関する情報の内、機器IDがハードディスクに記憶されていることを示す情報及びポリシーテーブル154を参照し、機器レベルを決定する(ステップS171)。本例では機器レベルは1となる。
CPU11はソフトウェアに関する情報の内、OS251A及びブラウザ252AのバージョンをDBサーバ4へ、通信部16を介して送信する(ステップS172)。DBサーバ4のCPU41は、ソフトウェアDB451を参照し、送信されたOS251A及びブラウザ252Aのバージョンが最新か、1つ前のものか、2つ前のものか等のバージョンに関する情報をWebサーバ1へ送信する。CPU11は、DBサーバ4から送信されたOS251A及びブラウザ252Aのバージョンに関する情報を受信する(ステップS173)。
CPU11はOS251A及びブラウザ252Aのバージョンに関する情報及びソフトウェア評価テーブル153を参照し、ソフトウェアレベルを決定する(ステップS174)。CPU11はステップS174で決定したソフトウェアレベル、ステップS169で決定した生体レベル、及びステップS171で決定した機器レベルに基づき、ポリシーテーブル154から正否の読み出しを行う(ステップS175)。CPU11はポリシーテーブル154に正と記憶されているか否かを判断する(ステップS176)。CPU11は正と記憶されていないと判断した場合(ステップS176でNO)、コンピュータ2Aが基準レベルに満たないものとして以降の処理を終了する。なお本例の場合、ソフトウェアレベルの如何に関わらず否と判断される。
一方、CPU11は正と記憶されている場合は(ステップS176でYES)、コンピュータ2Aのレベルは基準レベル以上であると判断し、HTMLファイル151から振り込み処理の画面を読み出す(ステップS177)。CPU11は振り込み処理の画面をコンピュータ2Aへ送信する(ステップS178)。コンピュータ2AのCPU21Aは、振り込み処理の画面を受信し、ブラウザ252Aに表示する(ステップS179)。
図18乃至図20はコンピュータ2Bにおけるレベル決定処理の手順を示すフローチャートである。コンピュータ2BのCPU21Bは入力部23Bから入力されたID及びパスワードを受け付け、Webサーバ1へ送信する(ステップS181)。Webサーバ1のCPU11は通信部16を介して、ID及びパスワードを受信する(ステップS182)。CPU11はユーザDB155を参照し、受信したID及びパスワードが、ユーザDB155に記憶したID及びパスワードに一致するか否かを判断する(ステップS183)。CPU11は一致しないと判断した場合(ステップS183でNO)、不正なアクセスであるとして処理を終了する。一方、CPU11は、一致すると判断した場合(ステップS183でYES)、ログインを認めるべく、HTMLファイル151から生体認証の開始画面を送信する(ステップS184)。
コンピュータ2BのCPU21Bは生体認証の開始画面を受信し、ブラウザ252Bに生体認証の開始画面を表示する(ステップS185)。CPU21Bは、制御プログラム25PBを起動し以下の処理を行う。CPU21Bは、この画面の受信をトリガに指紋認識プログラム255Bを起動し(ステップS186)、指紋入力部29Bからユーザの指紋情報を取り込む(ステップS187)。CPU21Bは指紋情報ファイル253Bから予め記憶された指紋情報を読み出す(ステップS188)。CPU21Bは読み出した指紋情報と取り込んだ指紋情報とが一致するか否かを判断する(ステップS189)。CPU21Bは一致しないと判断した場合(ステップS189でNO)、不正なアクセスであるとして処理を終了する。
一方CPU21Bは指紋情報が一致すると判断した場合(ステップS189でYES)、指紋認証の結果、指紋情報がハードディスクに記憶されていることを示す情報を含む生体認証に関する情報を生成し、Webサーバ1へ送信する(ステップS191)。なお、送信される指紋認証の結果には、コンピュータ2Bで実行された生体認証の種類が指紋認証であること及び指紋認証の結果正であると判断されたことを示す情報が含まれる。続いてCPU21BはBIOS上の機器IDファイル223Bから機器IDを読み出す(ステップS192)。CPU21Bは機器ID及び機器IDがBIOSに記憶されていることを示す情報を含む識別情報に関する情報を生成し、Webサーバ1へ送信する(ステップS193)。
続いてCPU21Bはソフトウェア情報ファイル257BからOS251B及びブラウザ252Bのバージョンを読み出す(ステップS194)。なお、ソフトウェア情報取得プログラム256Bは定期的に実行され、取得したOS251B及びブラウザ252Bのバージョンをソフトウェア情報ファイル257Bに記憶している。CPU21Bは取得したOS251B及びブラウザ252Bのバージョンを含むソフトウェアに関する情報をWebサーバ1へ送信する(ステップS195)。
Webサーバ1のCPU11は、ステップS191で送信された生体認証に関する情報、ステップS193で送信された識別情報に関する情報、及び、ステップS195で送信されたソフトウェアに関する情報を受信する(ステップS196)。CPU11は受信した生体認証に関する情報の指紋認証の結果を参照し、指紋認証の結果が正であるか否かを判断する(ステップS197)。CPU11は指紋認証の結果が正でないと判断した場合(ステップS197でNO)、不正な処理であるとして処理を終了する。一方、CPU11は指紋認証の結果が正であると判断した場合(ステップS197でYES)、生体認証に関する情報の内、指紋情報がハードディスクに記憶されていることを示す情報、及び、ポリシーテーブル154を参照し、生体レベルを決定する(ステップS198)。本例の場合、生体レベルは2と決定される。
CPU11は、ステップS182で受信したIDに対応する機器IDをユーザDB155から読み出す。CPU11はステップS196で受信した機器IDが、ユーザDB155から読み出した機器IDに一致するか否かを判断する(ステップS199)。CPU11は一致しないと判断した場合(ステップS199でNO)、不正なアクセスであるとして処理を終了する。一方、CPU11は一致すると判断した場合(ステップS199でYES)、識別情報に関する情報の内、機器IDがBIOSに記憶されていることを示す情報及びポリシーテーブル154を参照し、機器レベルを決定する(ステップS201)。本例の場合機器レベルは2と決定される。
CPU11はソフトウェアに関する情報の内、OS251B及びブラウザ252BのバージョンをDBサーバ4へ、通信部16を介して送信する(ステップS202)。DBサーバ4のCPU41は、ソフトウェアDB451を参照し、送信されたOS251B及びブラウザ252Bのバージョンが最新か、1つ前のものか、2つ前のものか等のバージョンに関する情報をWebサーバ1へ送信する。CPU11は、DBサーバ4から送信されたOS251B及びブラウザ252Bのバージョンに関する情報を受信する(ステップS203)。
CPU11はOS251B及びブラウザ252Bのバージョンに関する情報及びソフトウェア評価テーブル153を参照し、ソフトウェアレベルを決定する(ステップS204)。CPU11はステップS204で決定したソフトウェアレベル、ステップS198で決定した生体レベル、及びステップS201で決定した機器レベルに基づき、ポリシーテーブル154から正否の読み出しを行う(ステップS205)。CPU11はポリシーテーブル154に正と記憶されているか否かを判断する(ステップS206)。CPU11は正と記憶されていないと判断した場合(ステップS206でNO)、コンピュータ2Bが基準レベルに満たないものとして以降の処理を終了する。
一方、CPU11は正と記憶されている場合は(ステップS206でYES)、コンピュータ2Bのレベルは基準レベル以上であると判断し、HTMLファイル151から振り込み処理の画面を読み出す(ステップS207)。CPU11は振り込み処理の画面をコンピュータ2Bへ送信する(ステップS208)。コンピュータ2BのCPU21Bは、振り込み処理の画面を受信し、ブラウザ252Bに表示する(ステップS209)。
図21乃至図24はコンピュータ2Cにおけるレベル決定処理の手順を示すフローチャートである。本フローチャートでは、暗号化処理を行わない例を示す。コンピュータ2CのCPU21Cは入力部23Cから入力されたID及びパスワードを受け付け、Webサーバ1へ送信する(ステップS211)。Webサーバ1のCPU11は通信部16を介して、ID及びパスワードを受信する(ステップS212)。CPU11はユーザDB155を参照し、受信したID及びパスワードが、ユーザDB155に記憶したID及びパスワードに一致するか否かを判断する(ステップS213)。CPU11は一致しないと判断した場合(ステップS213でNO)、不正なアクセスであるとして処理を終了する。一方、CPU11は、一致すると判断した場合(ステップS213でYES)、ログインを認めるべく、HTMLファイル151から生体認証の開始画面を送信する(ステップS214)。
コンピュータ2CのCPU21Cは生体認証の開始画面を受信し、ブラウザ252Cに生体認証の開始画面を表示する(ステップS215)。主制御部51は、生体認証の開始画面の表示コマンドを、CPU21Cから受信したことをトリガに、制御プログラム記憶部513に記憶された制御プログラムを起動し(ステップS216)、以下の処理を行う。主制御部51は、指紋認証部53の指紋認識プログラムを起動し(ステップS217)、指紋入力部52からユーザの指紋情報を取り込む(ステップS218)。主制御部51は指紋情報記憶部54から予め記憶された指紋情報を読み出す(ステップS219)。主制御部51は読み出した指紋情報と取り込んだ指紋情報とが一致するか否かを判断する(ステップS221)。主制御部51は一致しないと判断した場合(ステップS221でNO)、不正なアクセスであるとして処理を終了する。
主制御部51は一致すると判断した場合(ステップS221でYES)、ユーザ電子証明書記憶部55からユーザ電子証明書を読み出す(ステップS222)。主制御部51は指紋認証の結果、指紋情報がセキュリティチップ5内に記憶されていることを示す情報を含む生体認証に関する情報、ユーザ電子証明書とペアになっているユーザ個人鍵記憶部56に記憶した個人鍵による電子署名、及び、ユーザ電子証明書を併せてWebサーバ1へ送信する(ステップS223)。この場合、主制御部51はユーザ個人鍵記憶部56に記憶したユーザ個人鍵により生体認証に関する情報を電子署名(暗号化)する。なお、上述したとおり、セキュリティチップ5からWebサーバ1への情報の送受信は、CPU21Cの指示に従い入出力部514及び通信部26Cを経由して行われるが、以下では説明を簡潔にするために当該記載を省略して説明する。Webサーバ1のCPU11は生体認証に関する情報、電子署名及びユーザ電子証明書を受信する(ステップS224)。次いで、主制御部51は機器IDを機器ID記憶部59から読み出す(ステップS225)。主制御部51は機器電子証明書記憶部57から機器電子証明書を読み出す。(ステップS226)。主制御部51は機器ID及び機器IDがセキュリティチップ5内に記憶されていることを示す情報を含む識別情報に関する情報、主制御部51が機器個人鍵記憶部58から取り出した機器電子証明書とペアの機器個人鍵による電子署名、及び、読み出した機器電子証明書を併せてWebサーバ1へ送信する(ステップS227)。この場合、主制御部51は機器個人鍵記憶部58に記憶した機器個人鍵により識別情報に関する情報を電子署名する。
Webサーバ1は識別情報に関する情報、電子署名及び機器電子証明書を受信する(ステップS228)。ソフトウェア情報取得部511は定期的に内部のソフトウェア情報取得プログラムを実行し、記憶部25C内部のOS251Cのバージョン及びブラウザ252Cのバージョンを取得する。ソフトウェア情報取得部511は取得したOS251Cのバージョン及びブラウザ252Cのバージョンをソフトウェア情報記憶部512に記憶する。主制御部51はソフトウェア情報記憶部512からOS251Cのバージョン及びブラウザ252Cのバージョンを読み出す(ステップS229)。
主制御部51は読み出したソフトウェアに関する情報をWebサーバ1へ送信する(ステップS231)。Webサーバ1のCPU11はソフトウェアに関する情報を受信する(ステップS232)。CPU11はステップS224で受信した生体認証に関する情報の内、指紋認証の結果を参照し、指紋認証の結果が正であるか否かを判断する(ステップS233)。CPU11は指紋認証の結果が正でないと判断した場合(ステップS233でNO)、不正なアクセスであるとして処理を終了する。一方CPU11は指紋認証の結果が正であると判断した場合(ステップS233でYES)、時計部18から出力される日時情報を参照し、ステップS224で受信したユーザ電子証明書が有効期限内であるか否かを判断する(ステップS234)。
CPU11は有効期限内でないと判断した場合(ステップS234でNO)、ユーザ電子証明書が存在しないものと同等に取り扱い、生体認証に関する情報の内、指紋情報がセキュリティチップ5内に記憶されている情報、及び、ポリシーテーブル154を参照し、生体レベルを決定する(ステップS236)。本例の場合、レベル3となる。一方、CPU11は有効期限内であると判断した場合(ステップS234でYES)、通常決定されるレベルよりも高く補正すべく、生体認証に関する情報の内、指紋情報がセキュリティチップ5内に記憶されている情報、電子署名、ユーザ電子証明書、及び、ポリシーテーブル154を参照し、生体レベルを決定する(ステップS235)。電子署名が有効か否か判断すべくCPU11はユーザ電子証明書内の公開鍵により電子署名を複合し、複合した情報が生体認証に関する情報に一致する場合、有効と判断する。CPU11は電子署名が有効であると判断した場合、レベルを高く補正する。CPU11は一致せず有効でないと判断した場合、レベルを補正しない。本例の場合、レベル3に加えてさらに有効な電子署名が存在することからレベルは3+となる。
CPU11は、ステップS212で受信したIDに対応する機器IDをユーザDB155から読み出す。CPU11はステップS228で受信した機器IDが、ユーザDB155から読み出した機器IDに一致するか否かを判断する(ステップS237)。CPU11は一致しないと判断した場合(ステップS237でNO)、不正なアクセスであるとして処理を終了する。一方、CPU11は一致すると判断した場合(ステップS237でYES)、ステップS228で受信した機器電子証明書が有効期限内であるか否かを判断する(ステップS238)。
CPU11は有効期限内でないと判断した場合(ステップS238でNO)、機器電子証明書が存在しないものと同等に取り扱い、識別情報に関する情報の内、機器IDがセキュリティチップ5内に記憶されている情報、電子署名及び、ポリシーテーブル154を参照し、機器レベルを決定する(ステップS240)。本例の場合、レベル3となる。一方、CPU11は有効期限内であると判断した場合(ステップS238でYES)、通常決定されるレベルよりも高く補正すべく、識別情報に関する情報の内、機器IDがセキュリティチップ5内に記憶されている情報、電子署名、機器電子証明書、及び、ポリシーテーブル154を参照し、機器レベルを決定する(ステップS239)。電子署名が有効か否か判断すべくCPU11は機器電子証明書内の公開鍵により電子署名を複合し、複合した情報が識別情報に関する情報に一致する場合、有効と判断する。CPU11は電子署名が有効であると判断した場合、レベルを高く補正する。CPU11は一致せず有効でないと判断した場合、レベルを補正しない。本例の場合、レベル3に加えてさらに有効な電子署名が存在することからレベルは3+となる。
CPU11はソフトウェアに関する情報の内、OS251C及びブラウザ252CのバージョンをDBサーバ4へ、通信部16を介して送信する(ステップS241)。DBサーバ4のCPU41は、ソフトウェアDB451を参照し、送信されたOS251C及びブラウザ252Cのバージョンが最新か、1つ前のものか、2つ前のものか等のバージョンに関する情報をWebサーバ1へ送信する。CPU11は、DBサーバ4から送信されたOS251C及びブラウザ252Cのバージョンに関する情報を受信する(ステップS242)。
CPU11はOS251C及びブラウザ252Cのバージョンに関する情報及びソフトウェア評価テーブル153を参照し、ソフトウェアレベルを決定する(ステップS243)。CPU11はステップS243で決定したソフトウェアレベル、ステップS235またはS236で決定した生体レベル、及びステップS239またはS240で決定した機器レベルに基づき、ポリシーテーブル154から正否の読み出しを行う(ステップS244)。CPU11はポリシーテーブル154に正と記憶されているか否かを判断する(ステップS245)。CPU11は正と記憶されていないと判断した場合(ステップS245でNO)、コンピュータ2Cが基準レベルに満たないものとして以降の処理を終了する。
一方、CPU11は正と記憶されている場合は(ステップS245でYES)、コンピュータ2Cのレベルは基準レベル以上であると判断し、HTMLファイル151から振り込み処理の画面を読み出す(ステップS246)。CPU11は振り込み処理の画面をコンピュータ2Cへ送信する(ステップS247)。コンピュータ2CのCPU21Cは、振り込み処理の画面を受信し、ブラウザ252Cに表示する(ステップS248)。
図25乃至図30はコンピュータ2Cにおけるレベル決定処理の他の手順を示すフローチャートである。本フローチャートは各情報が暗号化されて送信された場合を示す。コンピュータ2CのCPU21Cは入力部23Cから入力されたID及びパスワードを受け付け、Webサーバ1へ送信する(ステップS251)。Webサーバ1のCPU11は通信部16を介して、ID及びパスワードを受信する(ステップS252)。CPU11はユーザDB155を参照し、受信したID及びパスワードが、ユーザDB155に記憶したID及びパスワードに一致するか否かを判断する(ステップS253)。CPU11は一致しないと判断した場合(ステップS253でNO)、不正なアクセスであるとして処理を終了する。一方CPU11は、一致すると判断した場合(ステップS253でYES)、ログインを認めるべく、HTMLファイル151から生体認証の開始画面を送信する(ステップS254)。
コンピュータ2CのCPU21Cは生体認証の開始画面を受信し、ブラウザ252Cに生体認証の開始画面を表示する(ステップS255)。主制御部51は、生体認証の開始画面の表示コマンドを、CPU21Cから受信したことをトリガに、制御プログラム記憶部513に記憶された制御プログラムを起動し(ステップS256)、以下の処理を行う。主制御部51は、指紋認証部53の指紋認識プログラムを起動し(ステップS257)、指紋入力部52からユーザの指紋情報を取り込む(ステップS258)。主制御部51は指紋情報記憶部54から予め記憶された指紋情報を読み出す(ステップS259)。主制御部51は読み出した指紋情報と取り込んだ指紋情報とが一致するか否かを判断する(ステップS261)。主制御部51は一致しないと判断した場合(ステップS261でNO)、不正なアクセスであるとして処理を終了する。
主制御部51は一致すると判断した場合(ステップS261でYES)、ユーザ電子証明書記憶部55からユーザ電子証明書を読み出す(ステップS262)。主制御部51は指紋認証の結果、指紋情報がセキュリティチップ5内に記憶されていることを示す情報を含む生体認証に関する情報を生成する(ステップS263)。主制御部51は暗号化処理部510に記憶したハッシュ関数に基づき生体認証に関する情報のメッセージダイジェストを算出し、また、主制御部51は暗号化鍵記憶部518から暗号処理のための暗号化鍵を読み出す(ステップS264)。主制御部51はユーザ個人鍵記憶部56からユーザ個人鍵を読み出す(ステップS265)。
主制御部51は生体認証に関する情報を暗号化鍵で暗号化し、メッセージダイジェストをユーザ個人鍵記憶部56に記憶したユーザ個人鍵で電子署名する(ステップS266)。主制御部51は暗号化した生体認証に関する情報、メッセージダイジェストの電子署名及びユーザ電子証明書をWebサーバ1へ送信する(ステップS267)。Webサーバ1のCPU11は暗号化された生体認証に関する情報、メッセージダイジェストの電子署名及びユーザ電子証明書を受信する(ステップS268)。Webサーバ1のCPU11は、これらの情報を受信した日時情報を時計部18からの出力を参照して記憶部15に記憶する。なお、以下ではWebサーバ1内部の時計部18の日時情報を記憶する形態について説明するが、通信網Nを介して接続される図示しないタイムスタンプサーバから認証を得ると共に、タイムスタンプ時刻を取得するようにしても良い。主制御部51は機器IDを機器ID記憶部59から読み出す(ステップS269)。主制御部51は機器電子証明書記憶部57から機器電子証明書を読み出す(ステップS271)。主制御部51は機器ID及び機器IDがセキュリティチップ5内に記憶されていることを示す情報を含む識別情報に関する情報を生成する(ステップS272)。
主制御部51は暗号化処理部510に記憶したハッシュ関数に基づき識別情報に関する情報のメッセージダイジェストを算出する(ステップS273)。主制御部51は機器個人鍵を機器個人鍵記憶部58から読み出す(ステップS274)。主制御部51は識別情報に関する情報を暗号化鍵で暗号化し、メッセージダイジェストを機器個人鍵で電子署名する(ステップS275)。主制御部51は暗号化された識別情報に関する情報、メッセージダイジェストの電子署名及び機器電子証明書をWebサーバ1へ送信する(ステップS276)。
Webサーバ1のCPU11は、暗号化された識別情報に関する情報、メッセージダイジェストの電子署名及び機器電子証明書を受信する(ステップS277)。Webサーバ1のCPU11は、これらの情報を受信した日時情報を時計部18からの出力を参照して記憶部15に記憶する。主制御部51はソフトウェア情報記憶部512からOS251Cのバージョン及びブラウザ252Cのバージョンを読み出し、これらの情報を含むソフトウェアに関する情報を生成する(ステップS278)。主制御部51は暗号化処理部510に記憶したハッシュ関数に基づき、ソフトウェアに関する情報のメッセージダイジェストを算出する(ステップS279)。主制御部51はソフトウェアに関する情報を暗号化鍵で暗号化し、メッセージダイジェストをステップS274で読み出した機器個人鍵で電子署名する(ステップS281)。
そして主制御部51は暗号化されたソフトウェアに関する情報、メッセージダイジェストの電子署名、及び、機器電子証明書をWebサーバ1へ送信する(ステップS282)。なお、ステップS281においては機器個人鍵に代えて、ユーザ個人鍵を用いても良い。またステップS282においても、機器電子証明書鍵ペアに代えてユーザ電子証明書鍵ペアを用いてもよい。Webサーバ1のCPU11は暗号化されたソフトウェアに関する情報、メッセージダイジェストの電子署名、及び、機器電子証明書を受信する(ステップS283)。Webサーバ1のCPU11は、これらの情報を受信した日時情報を時計部18からの出力を参照して記憶部15に記憶する。
Webサーバ1のCPU11はユーザ電子証明書及び機器電子証明書に係るCAサーバ3へCAサーバ3の公開鍵の取得要求を行う。CPU11はCAサーバ3から送信されたCAサーバ3の公開鍵を受信する(ステップS284)。CPU11は復号プログラム152を起動する。CPU11はCAサーバ3の公開鍵を用いてステップS268で受信したユーザ電子証明書、並びに、ステップS277及びS283で受信した機器電子証明書を署名検証し、検証結果が正しい場合、これらに含まれるユーザ公開鍵及び機器公開鍵が正しいユーザ公開鍵及び機器公開鍵であると認識し、暗号化鍵記憶部158から暗号化鍵を読み出す(ステップS285)。
CPU11はユーザ公開鍵により、ステップS268で受信した生体認証に関する情報に対するメッセージダイジェストの署名検証を行う(ステップS286)。具体的にはCPU11は生体認証に関する情報は、予め秘密裏に取り交わされた暗号化鍵で暗号化されているため、読み出した暗号化鍵で生体認証に関する情報を復号する。CPU11は記憶部15に記憶したハッシュ関数に基づき、受信した復号済みの生体認証に関する情報のメッセージダイジェストを算出する(ステップS287)。さらに、CPU11はユーザ電子証明書内のユーザ公開鍵により、電子署名されたメッセージダイジェストを復号する。CPU11はこの復号したメッセージダイジェストと、算出したメッセージダイジェストとが一致するか否かにより署名検証を行う。一致する場合は改竄がなく電子署名は有効であると判断し、一致しない場合は改竄があり電子署名は有効でないと判断する。同様にCPU11は機器公開鍵により識別情報に関する情報に対するメッセージダイジェストの署名検証、並びに、ソフトウェアに関する情報に対するメッセージダイジェストの署名検証を行う(ステップS288)。CPU11は識別情報に関する情報及びソフトウェアに関する情報のメッセージダイジェストを算出する(ステップS289)。識別情報に係る署名検証手順は以下のとおりである。CPU11は、識別情報に関する情報は、予め秘密裏に取り交わされた暗号化鍵で暗号化されているため、読み出した暗号化鍵で識別情報に関する情報を復号する。CPU11は記憶部15に記憶したハッシュ関数に基づき、受信した復号済みの識別情報に関する情報のメッセージダイジェストを算出する。さらに、CPU11は受信した機器電子証明書内の機器公開鍵により、電子署名されたメッセージダイジェストを復号する。CPU11はこの復号したメッセージダイジェストと、算出したメッセージダイジェストとが一致するか否かにより署名検証を行う。ソフトウェアに関する情報の署名検証も同様に以下の手順で行う。CPU11は、ソフトウェアに関する情報は、予め秘密裏に取り交わされた暗号化鍵で暗号化されているため、読み出した暗号化鍵でソフトウェアに関する情報を復号する。CPU11は記憶部15に記憶したハッシュ関数に基づき、受信した復号済みのソフトウェアに関する情報のメッセージダイジェストを算出する。さらに、CPU11は受信した機器電子証明書内の機器公開鍵により、電子署名されたメッセージダイジェストを復号する。CPU11はこの復号したメッセージダイジェストと、算出したメッセージダイジェストとが一致するか否かにより署名検証を行う。CPU11はステップS287で算出した生体認証に関する情報に係るメッセージダイジェストとステップS286で署名検証したメッセージダイジェストが一致し、ステップS289で算出した識別情報に関する情報に係るメッセージダイジェストとステップS288で署名検証したメッセージダイジェストとが一致し、かつ、ステップS289で算出したソフトウェアに関する情報に係るメッセージダイジェストとステップS288で署名検証したメッセージダイジェストとが一致するか否かを判断する(ステップS291)。
主制御部51はメッセージダイジェストが一致しないと判断した場合(ステップS291でNO)、改竄があり電子署名は有効でないため処理を終了する。一方、主制御部51はメッセージダイジェストが全て一致すると判断した場合(ステップS291でYES)、CPU11はステップS268で受信した復号済みの生体認証に関する情報の内、指紋認証の結果を参照し、指紋認証の結果が正であるか否かを判断する(ステップS292)。CPU11は指紋認証の結果が正でないと判断した場合(ステップS292でNO)、不正なアクセスであるとして処理を終了する。一方CPU11は指紋認証の結果が正であると判断した場合(ステップS292でYES)、時計部18から出力される日時情報を参照し、ステップS268で受信したユーザ電子証明書が有効期限内であるか否かを判断する(ステップS293)。
CPU11は有効期限内でないと判断した場合(ステップS293でNO)、ユーザ電子証明書が存在しないものと同等に取り扱い、生体認証に関する情報の内、指紋情報がセキュリティチップ5内に記憶されている情報、及び、ポリシーテーブル154を参照し、生体レベルを決定する(ステップS2941)。本例の場合、レベル3となる。一方、CPU11は有効期限内であると判断した場合(ステップS293でYES)、通常決定されるレベルよりも高く補正すべく、生体認証に関する情報の内、指紋情報がセキュリティチップ5内に記憶されている情報、ユーザ電子証明書、及び、ポリシーテーブル154を参照し、生体レベルを決定する(ステップS294)。本例の場合、さらに有効なユーザ電子証明書が存在し、また有効性ある電子署名により改竄がないことが担保されたことからレベルは3+となる。
CPU11は、ステップS252で受信したIDに対応する機器IDをユーザDB155から読み出す。CPU11はステップS277で受信した復号済みの識別情報に関する情報の内、機器IDが、ユーザDB155から読み出した機器IDに一致するか否かを判断する(ステップS295)。CPU11は一致しないと判断した場合(ステップS295でNO)、不正なアクセスであるとして処理を終了する。一方、CPU11は一致すると判断した場合(ステップS295でYES)、ステップS277で受信した機器電子証明書が有効期限内であるか否かを判断する(ステップS296)。
CPU11は有効期限内でないと判断した場合(ステップS296でNO)、機器電子証明書が存在しないものと同等に取り扱い、識別情報に関する情報の内、機器IDがセキュリティチップ5内に記憶されている情報、及び、ポリシーテーブル154を参照し、機器レベルを決定する(ステップS298)。本例の場合、レベル3となる。一方、CPU11は有効期限内であると判断した場合(ステップS296でYES)、通常決定されるレベルよりも高く補正すべく、識別情報に関する情報の内、機器IDがセキュリティチップ5内に記憶されている情報、機器電子証明書、及び、ポリシーテーブル154を参照し、機器レベルを決定する(ステップS297)。本例の場合、レベル3に加えてさらに有効な機器電子証明書が存在し、また有効性ある電子署名により改竄がないことが担保されたことからレベルは3+となる。
CPU11はステップS283で受信した復号済みのソフトウェアに関する情報の内、OS251C及びブラウザ252CのバージョンをDBサーバ4へ、通信部16を介して送信する(ステップS299)。DBサーバ4のCPU41は、ソフトウェアDB451を参照し、送信されたOS251C及びブラウザ252Cのバージョンが最新か、1つ前のものか、2つ前のものか等のバージョンに関する情報をWebサーバ1へ送信する。CPU11は、DBサーバ4から送信されたOS251C及びブラウザ252Cのバージョンに関する情報を受信する(ステップS301)。
CPU11は機器電子証明書が有効期限内であるか否かを判断する(ステップS3011)。CPU11は機器電子証明書が有効期限内でないと判断した場合(ステップS3011でNO)、CPU11はOS251C及びブラウザ252Cのバージョンに関する情報、並びに、ソフトウェア評価テーブル153を参照し、ソフトウェアレベルを決定する(ステップS302)。例えばOS251C及びブラウザ252Cのバージョンが1バージョン前の場合、ソフトウェア評価テーブル153によりソフトウェアレベルは2と判断される(図12参照)。一方、CPU11は機器電子証明書が有効期限内であると判断した場合(ステップS3011でYES)、OS251C及びブラウザ252Cのバージョンに関する情報、機器電子証明書、並びに、ソフトウェア評価テーブル153を参照し、ソフトウェアレベルを補正する(ステップS3021)。上述の例の場合、有効な機器電子証明書が存在し、また有効性ある電子署名により改竄がないことが担保されたことからソフトウェアレベルは1向上し、レベル3となる(図13参照)。
CPU11はユーザ電子証明書及び機器電子証明書が有効範囲内であり、かつ、ステップS268、S277及びS283で受信した生体認証に関する情報、識別情報に関する情報及びソフトウェアに関する情報が一定期間内に受信されたか否かを、記憶部15に記憶した受信日時を参照して判断する(ステップS303)。なお、この一定期間は例えば10秒と記憶部15に記憶されている。
CPU11は有効期限内であり、かつ、一定期間内に受信したと判断した場合(ステップS303でYES)、補正処理を行うべく、既に決定した生体レベル、機器レベル及びソフトウェアレベルを高くする(ステップS304)。例えば各レベルを1上昇させればよい。上述の例では、生体レベルは3++、機器レベルは3++、ソフトウェアレベルは図14に示す3+へ補正される。一方、CPU11は有効期限内であり、かつ、一定期間内に受信したと判断できない場合(ステップS303でNO)、ステップS304における補正処理をスキップする。CPU11は最終的に決定したソフトウェアレベル、生体レベル、及び機器レベルに基づき、ポリシーテーブル154から正否の読み出しを行う(ステップS305)。CPU11はポリシーテーブル154に正と記憶されているか否かを判断する(ステップS306)。CPU11は正と記憶されていないと判断した場合(ステップS306でNO)、コンピュータ2Cが基準レベルに満たないものとして以降の処理を終了する。
一方、CPU11は正と記憶されている場合は(ステップS306でYES)、コンピュータ2Cのレベルは基準レベル以上であると判断し、HTMLファイル151から振り込み処理の画面を読み出す(ステップS307)。CPU11は振り込み処理の画面をコンピュータ2Cへ送信する(ステップS308)。コンピュータ2CのCPU21Cは、振り込み処理の画面を受信し、ブラウザ252Cに表示する(ステップS309)。なお、図25乃至図30に示した例においては、ユーザ電子証明書により生体認証に関する情報を送信してPKI認証を行い、その後機器電子証明書により、識別情報に関する情報を送信してPKI認証を行い、さらにその後機器電子証明書により、ソフトウェアに関する情報を送信してPKI認証を行ったが、これに限るものではない。例えば、機器電子証明書により、識別情報に関する情報及びソフトウェアに関する情報を併せて送信しPKI認証を行っても良い。
最後に、生体認証に関する情報、識別情報に関する情報及びソフトウェアに関する情報の全てが、機器電子証明書またはユーザ電子証明書とペアになる個人鍵により電子署名されて送信され、かつ各情報が全て暗号化される例を、フローチャートを用いて説明する。なお、以下では機器電子証明書を用いた例を説明する。
図31乃至図35は統合PKI認証処理の手順を示すフローチャートである。コンピュータ2CのCPU21Cは入力部23Cから入力されたID及びパスワードを受け付け、Webサーバ1へ送信する(ステップS311)。Webサーバ1のCPU11は通信部16を介して、ID及びパスワードを受信する(ステップS312)。CPU11はユーザDB155を参照し、受信したID及びパスワードが、ユーザDB155に記憶したID及びパスワードに一致するか否かを判断する(ステップS313)。CPU11は一致しないと判断した場合(ステップS313でNO)、不正なアクセスであるとして処理を終了する。一方CPU11は、一致すると判断した場合(ステップS313でYES)、ログインを認めるべく、HTMLファイル151から生体認証の開始画面を送信する(ステップS314)。
コンピュータ2CのCPU21Cは生体認証の開始画面を受信し、ブラウザ252Cに生体認証の開始画面を表示する(ステップS315)。主制御部51は、生体認証の開始画面の表示コマンドを、CPU21Cから受信したことをトリガに、制御プログラム記憶部513に記憶された制御プログラムを起動し(ステップS316)、以下の処理を行う。主制御部51は時計部28Cの出力を参照し、計時を開始する(ステップS317)。
主制御部51は、指紋認証部53の指紋認識プログラムを起動し(ステップS318)、指紋入力部52からユーザの指紋情報を取り込む(ステップS319)。主制御部51は指紋情報記憶部54から予め記憶された指紋情報を読み出す(ステップS321)。主制御部51は読み出した指紋情報と取り込んだ指紋情報とが一致するか否かを判断する(ステップS322)。主制御部51は一致しないと判断した場合(ステップS322でNO)、不正なアクセスであるとして処理を終了する。
主制御部51は一致すると判断した場合(ステップS322でYES)、指紋認識の結果、指紋情報がセキュリティチップ5内に記憶されていることを示す生体認証に関する情報を生成する(ステップS323)。主制御部51は機器ID記憶部59から機器IDを読み出す(ステップS324)。主制御部51は機器ID及び機器IDがセキュリティチップ5内に記憶されていることを示す情報を含む識別情報に関する情報を生成する(ステップS325)。主制御部51はソフトウェア情報記憶部512からOS251C及びブラウザ252Cのバージョンを読み出し、これらの情報を含むソフトウェアに関する情報を生成する(ステップS326)。
主制御部51は暗号化処理部510に記憶したハッシュ関数に基づき、ステップS323で生成した生体認証に関する情報、ステップS325で生成した識別情報に関する情報及びステップS326で生成したソフトウェアに関する情報についてのメッセージダイジェストを算出する(ステップS327)。主制御部51は暗号化鍵記憶部518に記憶した暗号化鍵を読み出す。主制御部51は読み出した暗号化鍵により生体認証に関する情報、識別情報に関する情報、及びソフトウェアに関する情報を暗号化する。主制御部51は機器個人鍵記憶部58から機器個人鍵を読み出す(ステップS328)。主制御部51はステップS327で算出したメッセージダイジェストを機器個人鍵で電子署名(暗号化)する(ステップS329)。主制御部51はステップS317で開始した計時を終了する(ステップS331)。
主制御部51は計時時間が記憶部15に予め記憶した一定時間内であるか否かを判断する(ステップS332)。この一定時間は例えば5秒と記憶しておけばよい。すなわち、生体認証、識別情報及びソフトウェアに関する3つの情報の取得及び暗号化並びにメッセージダイジェストに対する電子署名の時間を一定時間内に制限する。このようにすることで、生体認証、機器IDの取得、環境情報の取得の3つがほぼ同時に行え、かつこれらの紐付けができたことがコンピュータ2側でも保証でき、安易なりすましを防止することが可能となる。
主制御部51は計時時間が一定時間内でないと判断した場合(ステップS332でNO)、同時性が確保できないため、処理を終了する。一方主制御部51は計時時間が一定時間内であると判断した場合(ステップS332でYES)、機器電子証明書記憶部57から機器電子証明書を読み出す(ステップS333)。主制御部51は暗号化された生体認証に関する情報、識別情報に関する情報、ソフトウェアに関する情報、メッセージダイジェストの電子署名、及び、機器電子証明書をWebサーバ1へ送信する(ステップS334)。これにより、機器電子証明書とペアである機器個人鍵により電子署名されたメッセージダイジェスト、並びに、暗号化された生体認証に関する情報、識別情報に関する情報、及び、ソフトウェアに関する情報をエンベーロープ化することができる。
Webサーバ1のCPU11は暗号化された生体認証に関する情報、識別情報に関する情報、ソフトウェアに関する情報、メッセージダイジェストの電子署名、及び、機器電子証明書を受信する(ステップS335)。CPU11は機器電子証明書を発行したCAサーバ3に対し、当該機器電子証明書に係るCAサーバ3の公開鍵の取得要求を行う。CPU11はこの取得要求に対応するCAサーバ3の公開鍵を受信する(ステップS336)。CPU11はCAサーバ3の公開鍵により機器電子証明書を検証し、検証結果が正しい場合、機器電子証明書内の機器公開鍵を読み出す(ステップS337)。
CPU11は暗号化鍵記憶部158に記憶した暗号化鍵を読み出す。CPU11は読み出した暗号化鍵により、生体認証に関する情報、識別情報に関する情報、ソフトウェアに関する情報を復号し、メッセージダイジェストの電子署名を受信した機器電子証明書内に含まれる機器公開鍵により検証(復号)する(ステップS338)。CPU11は、復号プログラム152を起動する。CPU11は記憶部15に予め記憶したハッシュ関数を読み出し、復号した生体認証に関する情報、識別情報に関する情報、及び、ソフトウェアに関する情報についてのメッセージダイジェストを算出する(ステップS339)。CPU11は算出したメッセージダイジェストと、ステップS338で復号したメッセージダイジェストとが一致するか否かを判断する(ステップS341)。CPU11は一致しないと判断した場合(ステップS341でNO)、改竄があり電子署名は有効でないと判断し処理を終了する。
CPU11はメッセージダイジェストが一致すると判断した場合(ステップS341でYES)、改竄がなく電子署名は有効であるとして、生体認証に関する情報の内、指紋認証の結果を参照して、指紋認証の結果が正であるか否かを判断する(ステップS342)。CPU11は指紋認証の結果が正でないと判断した場合(ステップS342でNO)、処理を終了する。一方、CPU11は指紋認証の結果が正であると判断した場合(ステップS342でYES)、受信した識別情報に関する情報の内、機器IDを参照し、ステップS312で受信したIDに対応する機器IDをユーザDB155から読み出し、これらを比較することで、一致するか否かを判断する(ステップS343)。
CPU11は受信した機器IDがユーザDB155に記憶した機器IDに一致しないと判断した場合(ステップS343でNO)、処理を終了する。一方CPU11は受信した機器IDがユーザDB155に記憶した機器IDに一致すると判断した場合(ステップS343でYES)、ソフトウェアに関する情報の内、OS251C及びブラウザ252Cのバージョンを抽出し、抽出した当該情報をDBサーバ4へ送信する(ステップS344)。CPU11はDBサーバ4からOS251C及びブラウザ252Cのバージョンに関する情報を受信する(ステップS345)。
CPU11は受信したOS251C及びブラウザ252Cのバージョンに関する情報及びソフトウェア評価テーブル153を参照し、ソフトウェアレベルを決定する(ステップS346)。続いてCPU11は生体認証に関する情報の内、指紋情報がセキュリティチップ5内に記憶されていることを示す情報及びポリシーテーブル154を参照し、生体レベルを決定する(ステップS347)。本例では生体レベルは3となる。CPU11は識別情報に関する情報の内、機器IDがセキュリティチップ5内に記憶されていることを示す情報、及びポリシーテーブル154を参照し、機器レベルを決定する(ステップS348)。本例では機器レベルは3となる。これにより生体、機器及びソフトウェアレベルの全てが決定するが、下記条件を満たす場合補正処理を行う。
CPU11は復号した機器電子証明書が有効期限内であり、かつ、生体認証に関する情報、識別情報に関する情報及びソフトウェアに関する情報を、ステップS335の如く、機器電子証明書とペアである機器個人鍵によってなされた電子署名と同時に受信したか否かを判断する(ステップS349)。CPU11は有効期限内であり、かつ、同時に受信したと判断した場合(ステップS349でYES)、ポリシーテーブル154を参照し、生体レベル、機器レベル及びソフトウェアレベルの補正を行う。具体的には、既に決定したレベルよりも高いレベルに補正する(ステップS351)。例えば、生体レベルは、機器電子証明書とペアである機器個人鍵によってなされた電子署名及び暗号化共に条件を満たしていることから、2段階レベルが上がって3++となる。また機器レベルも機器電子証明書とペアである機器個人鍵によってなされた電子署名及び暗号化共に条件を満たしていることから、2段階レベルが上がって3++となる。またソフトウェアレベルに関してはステップS346においてレベル3(図13参照)の場合は、1段階あがってレベル3+(図14参照)となる。なお、ステップS346において、OS251C及びブラウザ252Cのバージョンが共に最新でありレベルが3+(図14)の場合は、1段階あがって、図示しないレベル3++とすればよい。
CPU11はステップS349において有効期限が有効であり、かつ、同時に受信したと判断できない場合(ステップS349でNO)、ステップS351の処理をスキップする。CPU11は最終的に決定した生体レベル、機器レベル及びソフトウェアレベルに基づき、ポリシーテーブル154から正否の読み出しを行う(ステップS352)。CPU11はポリシーテーブル154に正と記憶されているか否かを判断する(ステップS353)。CPU11は正と記憶されていないと判断した場合(ステップS353でNO)、コンピュータ2Cが基準レベルに満たないものとして以降の処理を終了する。
一方、CPU11は正と記憶されている場合は(ステップS353でYES)、コンピュータ2Cのレベルは基準レベル以上であると判断し、HTMLファイル151から振り込み処理の画面を読み出す(ステップS354)。CPU11は振り込み処理の画面をコンピュータ2Cへ送信する(ステップS355)。コンピュータ2CのCPU21Cは、振り込み処理の画面を受信し、ブラウザ252Cに表示する(ステップS356)。
実施の形態2
実施の形態2はオンラインバンキングにおける取引処理の重要度に応じてポリシーレベルを変更する形態に関する。残高確認、振り込み、または海外送金等、取引内容により要求されるセキュリティレベルは変化する。本実施の形態においては処理を進めるかの正否を判断する際の基準レベルを変化させる。例えば、要求されるセキュリティレベルは残高照会、振り込み、海外送金の順に高くなる。そのため基準レベルも順に高くなるよう設定する。図10の3次元座標では斜線で示す基準レベル体積が、処理の重要度(要求されるセキュリティレベル)が高まれば高まるほど大きくなる。以下では、実施の形態1で述べたセキュリティポリシーテーブル154を重要度に応じて複数設けた形態を例に挙げて説明する。
図36は実施の形態2に係るWebサーバ1のハードウェア構成を示すブロック図である。実施の形態1の構成に加え、重要度ファイル157、高レベルポリシーテーブル1541、中レベルポリシーテーブル1542、低レベルポリシーテーブル1543(場合によりポリシーテーブル154で代表する)、及び、CGI(Common Gateway Interface)プログラム156が新たに記憶部15に記憶されている。図37は重要度ファイル157のレコードレイアウトを示す説明図である。重要度ファイル157はオンラインバンキングにおける処理内容に応じた重要度を記憶しており、処理内容フィールド、重要度フィールド及び対応ポリシーテーブルフィールド等を含んで構成される。
処理内容フィールドにはオンラインバンキングにおいて実行される各種処理が記憶されている。本実施の形態においては例として、残高確認、振り込み及び海外送金の各処理が記憶されている。重要度フィールドには各処理に対応づけて、各処理の重要度を記憶している。例えば、残高確認はそれほど高いセキュリティが必要とされないため、重要度は低と記憶されている。また振り込みに関してはある程度のセキュリティが必要とされるため、重要度は中と記憶されている。さらに、海外送金に関しては最も高いセキュリティが要求されることから、重要度は高と記憶されている。対応ポリシーテーブルフィールドには、処理内容及び重要度に応じて使用するポリシーテーブル154の種類が記憶されている。CPU11は処理内容が残高照会の場合は、重要度ファイル157を参照し、重要度「低」に対応する低レベルポリシーテーブル1543へアクセスする。一方、処理内容が海外送金の場合は、重要度ファイル157を参照し、重要度「高」に対応する高レベルポリシーテーブル1541へアクセスする。
高レベルポリシーテーブル1541、中レベルポリシーテーブル1542、及び、低レベルポリシーテーブル1543は、生体レベル、機器レベル及びソフトウェアレベルの全ての組み合わせに対し、処理を進めるか否かの正否の情報を異ならせて記憶している。重要度、すなわち要求されるセキュリティレベルが上昇するに従い、生体レベル、機器レベル及びソフトウェアレベルの各レベルに対応して記憶される正の情報が少なくなる。本実施の形態においては高レベルポリシーテーブル1541には、実施の形態1で用いたポリシーテーブル154と同一のものを用いる。
図38乃至図41は中レベルポリシーテーブル1542の記憶内容を示す説明図である。中レベルポリシーテーブル1542も同様に生体レベル、機器レベル及びソフトウェアレベルの全ての組み合わせについて正否の情報が記憶されている。高レベルポリシーテーブル1541と比較した場合、中レベルポリシーテーブル1542は、各レベルが低い場合でも否の情報に代えて正の情報が多く記憶されている。例えばソフトウェアレベル3の図40と図13とを比較した場合、機器レベルが3、生体レベルが3++の場合、機器レベルが3+、生体レベルが3+の場合、及び、機器レベルが3++、生体レベルが3+の場合も否の情報に代えて正の情報が多く記憶されている。
低レベルポリシーテーブル1543の詳細は図示しないが、低レベルポリシーテーブル1543は、中レベルポリシーテーブル1542と比較した場合、各レベルが低い場合においても、否の情報に代えてより多く正の情報が記憶されている。このようにCPU11は重要度に応じて予め用意されたポリシーテーブル154を柔軟に使い分け、円滑な処理を遂行する。CGIプログラム156としては、残高確認プログラム1561、振り込みプログラム1562及び海外送金プログラム1563の3つが用意されている。CPU11はコンピュータ2のリクエストにより、残高確認を行う場合、低レベルポリシーテーブル1543による正の判断を得た後、残高確認プログラム1561を実行する。
そしてCPU11は対応するHTMLファイル151を読み出し、処理結果を記述した上で、ユーザに処理結果に係るHTMLファイル151を送信する。CPU11はコンピュータ2のリクエストにより振り込みを行う場合、中レベルポリシーテーブル1542による正の判断を得た後、振り込みプログラム1562を実行する。そしてCPU11は対応するHTMLファイル151を読み出し、処理結果を記述した上で、ユーザに処理結果に係るHTMLファイル151を送信する。同様に、CPU11はコンピュータ2のリクエストにより海外送金を行う場合、高レベルポリシーテーブル1541による正の判断を得た後、海外送金プログラム1563を実行する。そしてCPU11は対応するHTMLファイル151を読み出し、処理結果を記述した上で、ユーザに処理結果に係るHTMLファイル151を送信する。
以上のハードウェア構成において、各種処理の実行手順を、フローチャートを用いて説明する。図42は実施の形態2に係る重要度決定処理の手順を示すフローチャートである。Webサーバ1のCPU11はコンピュータ2のユーザによるログイン後、コンピュータ2から送信される処理内容を受信する(ステップS421)。これは上述の例では、残高照会、振り込み、または海外送金のいずれかである。CPU11は重要度ファイル157を参照し、処理内容に対応する重要度を決定する(ステップS422)。CPU11は処理内容及び重要度に対応する高レベルポリシーテーブル1541、中レベルポリシーテーブル1542、または低レベルポリシーテーブル1543のいずれかのポリシーテーブル154を選択する(ステップS423)。CPU11は実施の形態1で述べた処理を実行し、生体レベル、機器レベル及びソフトウェアレベルに基づきポリシーテーブル154から正否の情報を読み出す(ステップS424)。
CPU11はステップS423で選択したポリシーテーブル154に正と記憶されているか否かを判断する(ステップS425)。CPU11は記憶されていないと判断された場合は(ステップS425でNO)、当該コンピュータ2は基準レベルに満たないものとして、一連の処理を終了する。一方CPU11は正と記憶されていると判断した場合(ステップS425でYES)、当該コンピュータ2は基準レベルを満たすと判断し、重要度に対応する残高確認プログラム1561、振り込みプログラム1562、または海外送金プログラム1563のいずれかのCGIプログラム156を起動する(ステップS426)。
CPU11はその後コンピュータ2から送信される各種要求、金額、または振込先等の情報に基づき、処理を実行する(ステップS427)。CPU11は処理結果をHTMLファイル151に記述し(ステップS428)、記述後のHTMLファイル151をコンピュータ2へ送信する(ステップS429)。これにより、取引に必要とされるセキュリティレベルに応じて最適なセキュリティポリシーに基づくコンピュータ2の検証が行え、処理の安全性及び円滑性を共に高めることが可能となる。
本実施の形態2は以上の如き構成としてあり、その他の構成及び作用は実施の形態1と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態3
図43は実施の形態3に係るWebサーバ1の構成を示すブロック図である。実施の形態3に係るWebサーバ1を動作させるためのプログラムは、本実施の形態3のように、CD−ROM等の可搬型記録媒体1Aで提供することも可能である。さらに、プログラムを、通信網Nを介して図示しない他のサーバコンピュータからダウンロードすることも可能である。以下に、その内容を説明する。
図43に示すWebサーバ1の図示しない記録媒体読み取り装置に、生体認証に関する情報を受信させ、識別情報に関する情報を受信させ、環境に関する情報を受信させ、電子署名を受信させ、レベルを決定させ、レベルを補正させ、正と判断させるプログラムが記録された可搬型記録媒体1Aを、挿入して記憶部15の制御プログラム15P内にこのプログラムをインストールする。または、かかるプログラムを、通信部16を介して外部の図示しない他のサーバコンピュータからダウンロードし、記憶部15にインストールするようにしても良い。かかるプログラムはRAM12にロードして実行される。これにより、上述のようなWebサーバ1として機能する。
本実施の形態3は以上の如き構成としてあり、その他の構成及び作用は実施の形態1及び2と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態4
図44はコンピュータ2Dのハードウェア構成を示すブロック図である。Webサーバ1に接続されるコンピュータ2は本実施の形態で述べる構成であっても良い。コンピュータ2Dは、制御部としてのCPU21D、RAM22D、入力部23D、表示部24D、記憶部25D、通信部26D、時計部28D、及び、指紋入力部29D、並びにセキュリティチップ5等を含んで構成される。CPU21Dは、バス27Dを介してコンピュータ2Dのハードウェア各部と接続されていて、それらを制御すると共に、記憶部25Dに格納された制御プログラム25PDに従って、種々のソフトウェア的機能を実行する。
セキュリティチップ5は主制御部51、機器ID記憶部59、鍵記憶部517、暗号化処理部510、復号処理部516、ID記憶部515、暗号化鍵記憶部518及び、入出力部514等を含んで構成される。セキュリティチップ5はI/Fである入出力部514及びバス27Dを介してコンピュータ2DのメインのCPU21Dに接続されている。主制御部51は入出力部514を介してCPU21Dと情報の送受信を行う。主制御部51は各部と接続されており、制御プログラム25PDに記憶された制御プログラム及びセキュリティチップ5内に設けられる図示しない制御プログラムに従い、各種処理を実行する。記憶部25Dには、OS251D、ブラウザ252D、制御プログラム25PD、指紋情報ファイル253D、指紋認識プログラム255D、ソフトウェア情報取得プログラム256D、及びソフトウェア情報ファイル257D等が記憶されている。なお、指紋入力部29D及び入力部23D等、並びに、記憶部25Dに記憶された各種プログラム等は実施の形態1等で上述したとおりであるので、詳細な説明は省略する。
セキュリティチップ5内の機器ID記憶部59は実施の形態1と同じく機器IDを記憶しており、主制御部51の指示に従って記憶した機器IDを出力する。なお、機器IDは工場出荷時等に予め記憶させるようにすればよい。鍵記憶部517は、記憶部25Dに記憶した各種情報を暗号化及び復号するための暗号鍵及び復号鍵を記憶している。暗号鍵及び復号鍵は工場出荷時等に鍵記憶部517にそれぞれ記憶される。暗号化処理部510は鍵記憶部517に記憶した暗号鍵を用いて各種情報を暗号化するための暗号化プログラムを記憶している。復号処理部516は暗号化処理部510により暗号化された情報を鍵記憶部517に記憶された復号鍵を用いて復号するための復号プログラムが記憶されている。ID記憶部515は復号処理部516による情報の復号のために必要とされるID及びパスワードを記憶している。
暗号化処理について以下に説明する。主制御部51は、記憶部25Dに記憶した制御プログラム25PD、指紋情報ファイル253D、指紋認識プログラム255D、ソフトウェア情報取得プログラム256D、及び、ソフトウェア情報ファイル257Dを、暗号化処理部510に記憶した暗号化プログラムより暗号化する。例えば、工場出荷時において、制御プログラム25PD、指紋認識プログラム255D及びソフトウェア情報取得プログラム256Dをインストールする場合、主制御部51は、鍵記憶部517に記憶した暗号鍵を読み出し、暗号化処理部510に記憶した暗号化プログラム及び暗号鍵に基づき、制御プログラム25PD、指紋認識プログラム255D及びソフトウェア情報取得プログラム256Dの暗号化処理を実行する。主制御部51は暗号化された制御プログラム25PD、指紋認識プログラム255D及びソフトウェア情報取得プログラム256Dを、入出力部514を介してCPU21Dへ出力する。
CPU11は暗号化された制御プログラム25PD、指紋認識プログラム255D及びソフトウェア情報取得プログラム256Dを記憶部25Dに記憶する。なお、制御プログラム25PD、指紋認識プログラム255D及びソフトウェア情報取得プログラム256Dの暗号化処理はこれらのプログラムがアップデートされた際にも実行するようにしても良い。また主制御部51は指紋情報ファイル253Dに記憶された指紋情報及びソフトウェア情報ファイル257Dに記憶されたソフトウェア情報ファイルも、暗号化処理部510に記憶した暗号化プログラムを実行することにより暗号化する。主制御部51は指紋入力部29Dから登録対象の指紋情報を受け付け、当該受け付けた指紋情報を指紋情報ファイル253Dに記憶する場合、暗号化処理部510に記憶した暗号化プログラム及び暗号鍵に基づき、暗号化した上で記憶する。
また主制御部51は、ソフトウェア情報取得プログラム256Dが実行され、ソフトウェア情報が取得される度に、この取得したソフトウェア情報ファイルを暗号化処理部510に記憶した暗号化プログラムより暗号化した上で、ソフトウェア情報ファイル257Dに記憶する。ID記憶部515には工場出荷時等に復号の際に必要とされるID及びパスワードが記憶されている。このID及びパスワードは、入力部23Dから入力されたID及びパスワードが一致することを条件に、新たなID及びパスワードへ変更することが可能である。主制御部51は入力部23Dから入力されたID及びパスワードを受け付け、受け付けたID及びパスワードをID記憶部515に記憶する。
続いて復号処理について説明する。主制御部51は、入力部23DからID及びパスワードを受け付け、ID記憶部515に記憶したID及びパスワードに一致するか否かを判断する。そして、主制御部51は一致すると判断した場合、鍵記憶部517に記憶した復号鍵を読み出し、復号処理部516に記憶した復号プログラムを実行することにより、制御プログラム25PD、指紋認識プログラム255D、ソフトウェア情報取得プログラム256D、指紋情報ファイル253D及びソフトウェア情報ファイル257Dを復号する。なお、ID記憶部515に記憶したID及びパスワードはOS251Dの起動の際に要求されるID及びパスワードと共通させても良い。
主制御部51は、制御プログラム25PD、指紋認識プログラム255D及びソフトウェア情報取得プログラム256Dの起動時またはコンピュータ2Dの起動時に、制御プログラム25PD、指紋認識プログラム255D、ソフトウェア情報取得プログラム256D、指紋情報ファイル253D及びソフトウェア情報ファイル257Dの復号処理を行う。なお、後述するように指紋情報ファイル253Dに関しては、指紋認識プログラム255Dが実行された際に復号処理を行っても良い。同様に、ソフトウェア情報ファイル257Dに関しては、ソフトウェア情報取得プログラム256Dが実行された際に復号処理を行っても良い。そして、主制御部51は入力部23Dからコンピュータ2Dの終了命令を受け付けた場合、再び暗号化処理部510に記憶された暗号化プログラムを実行し、制御プログラム25PD、指紋認識プログラム255D、ソフトウェア情報取得プログラム256D、指紋情報ファイル253D及びソフトウェア情報ファイル257Dを暗号化した上で、コンピュータ2Dを終了する。
図45はポリシーテーブル154の記憶内容を示す説明図である。実施の形態4に係るポリシーテーブル154は生体レベル2.5のものが新たに設けられている。コンピュータ2Dは指紋情報がハードディスクに記憶されているが、暗号化されているため、ハードディスクに指紋情報が記憶されている際に決定されるレベル2よりも高く、セキュリティチップ5内に指紋情報が記憶されている際に決定されるレベル3よりも低いレベルが付与されている。なお、機器レベル及びソフトウェアレベルについては同様であるため詳細な説明は省略する。
以上のハードウェア構成において実施の形態4に係る処理手順を、フローチャートを用いて説明する。図46乃至図51はレベル決定処理の手順を示すフローチャートである。工場出荷時等においてはセキュリティチップ5内にID及びパスワード、暗号鍵及び復号鍵、並びに、機器IDが記憶される。主制御部51は入力部23Dから入力されたID及びパスワードをID記憶部515に記憶する(ステップS461)。また主制御部51は通信部26Dを介して、図示しない認証機関のサーバコンピュータ等からダウンロードした暗号鍵及び復号鍵を鍵記憶部517に記憶する(ステップS462)。さらに、主制御部51は入力部23Dから入力されたセキュリティチップ5自身またはコンピュータ2自身を特定するための固有の機器IDを機器ID記憶部59に記憶する(ステップS463)。これら記憶された情報はID記憶部515に記憶されたID及びパスワードと、入力部23Dから入力されたID及びパスワードと一致しない限り容易に変更できないよう構成されている。
CPU21Dは初期登録の際に指紋入力部29Dからユーザの指紋情報を受け付ける。CPU21Dは指紋情報ファイル253Dに指紋情報を記憶する。さらにCPU21Dは入力部23Dからの指示に従い、ソフトウェア情報取得プログラム256Dを実行し、OS251D及びブラウザ252Dのバージョンを取得する。CPU21Dは取得したOS251D及びブラウザ252Dのバージョンをソフトウェア情報ファイル257Dに記憶する。主制御部51は記憶部25Dにインストールされた制御プログラム25PD、指紋認識プログラム255D、及び、ソフトウェア情報取得プログラム256D、並びに、指紋情報ファイル253D及びソフトウェア情報ファイル257Dを、暗号化処理部510に記憶した暗号化プログラム及び暗号鍵により暗号化する。以上により初期登録処理が終了する。
ユーザはコンピュータ2Dを起動する(ステップS464)。主制御部51は内部の図示しないメモリに記憶したプログラムを実行し、ID及びパスワードの入力画面を表示部24Dに表示する。ユーザは入力部23DからID及びパスワードを入力する。主制御部51は入力部23Dから入力されたID及びパスワードを受け付ける(ステップS465)。主制御部51はID記憶部515に記憶したID及びパスワードを読み出し、受け付けたID及びパスワードに一致するか否かを判断する(ステップS466)。
主制御部51は一致しないと判断した場合(ステップS466でNO)、不正なアクセスであるとして処理を終了する。一方、主制御部51は一致すると判断した場合(ステップS466でYES)、鍵記憶部517に記憶した復号鍵を読み出す(ステップS467)。主制御部51は、復号処理部516に記憶した復号プログラムを実行し、記憶部25Dに記憶した暗号化された制御プログラム25PD、指紋認識プログラム255D及びソフトウェア情報取得プログラム256Dを復号する(ステップS468)。
主制御部51は復号された制御プログラム25PDを実行する(ステップS469)。CPU21Dはブラウザ252Dを起動し(ステップS471)、Webサーバ1へアクセスする。CPU21Dは入力部23Dから入力されたオンラインバンキング用のID及びパスワードを受け付け、Webサーバ1へ送信する(ステップS472)。Webサーバ1のCPU11は通信部16を介して、ID及びパスワードを受信する(ステップS473)。CPU11はユーザDB155を参照し、受信したID及びパスワードが、ユーザDB155に記憶したID及びパスワードに一致するか否かを判断する(ステップS474)。CPU11は一致しないと判断した場合(ステップS474でNO)、不正なアクセスであるとして処理を終了する。一方、CPU11は、一致すると判断した場合(ステップS474でYES)、ログインを認めるべく、HTMLファイル151から生体認証の開始画面を送信する(ステップS475)。
コンピュータ2DのCPU21Dは生体認証の開始画面を受信し、ブラウザ252Dに生体認証の開始画面を表示する(ステップS476)。CPU21Dは、この画面の受信をトリガに復号された指紋認識プログラム255Dを起動し(ステップS477)、指紋入力部29Dからユーザの指紋情報を取り込む(ステップS478)。主制御部51は復号処理部516に記憶した復号プログラムを実行し、指紋情報ファイル253Dを復号する(ステップS479)。CPU21Dは復号された指紋情報ファイル253Dから、予め記憶された指紋情報を読み出す(ステップS481)。CPU21Dは読み出した指紋情報と取り込んだ指紋情報とが一致するか否かを判断する(ステップS482)。CPU21Dは一致しないと判断した場合(ステップS482でNO)、不正なアクセスであるとして処理を終了する。
一方CPU21Dは指紋情報が一致すると判断した場合(ステップS482でYES)、暗号鍵を鍵記憶部517から読み出す(ステップS483)。主制御部51は、暗号化処理部510に記憶した暗号化プログラムを読み出し、暗号鍵を用いて指紋情報ファイル253Dを暗号化する(ステップS484)。CPU21Dは指紋認証の結果、指紋情報がハードディスクに暗号化されて記憶されていることを示す情報を含む生体認証に関する情報を生成し、Webサーバ1へ送信する(ステップS485)。なお、送信される指紋認証の結果には、コンピュータ2Dで実行された生体認証の種類が指紋認証であること及び指紋認証の結果正であると判断されたことを示す情報が含まれる。
次に、主制御部51は機器ID記憶部59から機器IDを読み出す(ステップS486)。読み出した機器IDは入出力部514を介してCPU21Dへ出力される。CPU21Dは機器ID及び機器IDがセキュリティチップ5内に記憶されていることを示す情報を含む識別情報に関する情報をWebサーバ1へ送信する(ステップS487)。CPU21Dは復号されたソフトウェア情報取得プログラム256Dを実行し(ステップS488)、OS251D及びブラウザ252Dのバージョンを取得する。主制御部51は復号処理部516に記憶した復号プログラムを実行し、復号鍵を用いてソフトウェア情報ファイル257Dを復号する(ステップS489)。
CPU21Dは復号したソフトウェア情報ファイル257D内のOS251D及びブラウザ252Dのバージョンと、ステップS488によるソフトウェア情報取得プログラム256Dの実行に伴い取得した最新のOS251D及びブラウザ252Dのバージョンとが一致するか否かを判断する(ステップS491)。CPU21Dは一致しないと判断した場合(ステップS491でNO)、最新の情報にアップデートすべく、取得したOS251D及びブラウザ252Dのバージョンをソフトウェア情報ファイル257Dに記憶する(ステップS492)。一方、CPU21Dは一致すると判断した場合(ステップS491でYES)、アップデートの必要はないので、ステップ492の処理をスキップする。
CPU21Dはソフトウェア情報ファイル257DからOS251D及びブラウザ252Dのバージョンを読み出し(ステップS493)、ソフトウェアに関する情報としてWebサーバ1へ送信する(ステップS494)。次いで、主制御部51は、暗号化処理部510に記憶した暗号化プログラムを読み出し、暗号鍵を用いて、ソフトウェア情報ファイル257Dを暗号化する(ステップS495)。
Webサーバ1のCPU11は、ステップS485で送信された生体認証に関する情報、ステップS487で送信された識別情報に関する情報、及び、ステップS494で送信されたソフトウェアに関する情報を受信する(ステップS501)。CPU11は受信した生体認証に関する情報の指紋認証の結果を参照し、指紋認証の結果が正であるか否かを判断する(ステップS502)。CPU11は指紋認証の結果が正でないと判断した場合(ステップS502でNO)、不正な処理であるとして処理を終了する。一方、CPU11は指紋認証の結果が正であると判断した場合(ステップS502でYES)、生体認証に関する情報の内、指紋情報が暗号化されてハードディスクに記憶されていることを示す情報、及び、図45に示すポリシーテーブル154を参照し、生体レベルを決定する(ステップS503)。本例の場合、生体レベルは2.5と決定される。
CPU11は、ステップS473で受信したIDに対応する機器IDをユーザDB155から読み出す。CPU11はステップS487で受信した機器IDが、ユーザDB155から読み出した機器IDに一致するか否かを判断する(ステップS504)。CPU11は一致しないと判断した場合(ステップS504でNO)、機器IDが一致しない場合においても、処理を継続する旨の情報が記憶部15に記憶されているか否かを判断する(ステップS505)。これは大企業等において複数のユーザが機器IDの異なる別々のコンピュータ2を用いてアクセスする場合もあり、機器IDが一致しない場合においても、取引を可能とするためである。この場合、オペレータが入力部13を通じて、記憶部15に機器IDが一致しない場合にも処理を継続する旨の情報を予め記憶しておく。一方、機器IDの一致を要件とする場合は、機器IDが一致しない場合にも処理を継続する旨の情報を記憶部15から消去しておく。
CPU11は機器IDが一致しない場合にも処理を継続する旨の情報が記憶部15に記憶されていないと判断した場合(ステップS505でNO)、不正なアクセスであるとして処理を終了する。一方、CPU11は機器IDが一致しない場合にも処理を継続する旨の情報が記憶部15に記憶されていると判断した場合(ステップS505でYES)、当該コンピュータ2による処理をも許容すべく、ステップS506へ処理を移行させる。ステップS504においてCPU11は受信した機器IDが一致すると判断した場合(ステップS504でYES)、同様に処理をステップS506へ移行させる。なお、ステップS504、S505及びS506で述べた処理は実施の形態1乃至3においても同様に適用しても良いことはもちろんである。
CPU11は、識別情報に関する情報の内、機器IDがセキュリティチップ5内に記憶されていることを示す情報及びポリシーテーブル154を参照し、機器レベルを決定する(ステップS506)。本例の場合機器レベルは3と決定される。なお、CPU11はステップS505でYESの処理を経た場合は、機器レベルを低下させる補正処理を実行するようにしても良い。本例では機器レベル3に記憶部15に予め記憶した係数0.9が乗じられ、補正後の機器レベル2.7が決定される。CPU11はソフトウェアに関する情報の内、OS251D及びブラウザ252DのバージョンをDBサーバ4へ、通信部16を介して送信する(ステップS507)。DBサーバ4のCPU41は、ソフトウェアDB451を参照し、送信されたOS251D及びブラウザ252Dのバージョンが最新か、1つ前のものか、2つ前のものか等のバージョンに関する情報をWebサーバ1へ送信する。CPU11は、DBサーバ4から送信されたOS251D及びブラウザ252Dのバージョンに関する情報を受信する(ステップS508)。
CPU11はOS251D及びブラウザ252Dのバージョンに関する情報及びソフトウェア評価テーブル153を参照し、ソフトウェアレベルを決定する(ステップS509)。CPU11はステップS509で決定したソフトウェアレベル、ステップS503で決定した生体レベル、及びステップS506で決定した機器レベルに基づき、ポリシーテーブル154から正否の読み出しを行う(ステップS511)。CPU11はポリシーテーブル154に正と記憶されているか否かを判断する(ステップS512)。CPU11は正と記憶されていないと判断した場合(ステップS512でNO)、コンピュータ2Dが基準レベルに満たないものとして以降の処理を終了する。
一方、CPU11は正と記憶されている場合は(ステップS512でYES)、コンピュータ2Dのレベルは基準レベル以上であると判断し、HTMLファイル151から振り込み処理の画面を読み出す(ステップS513)。CPU11は振り込み処理の画面をコンピュータ2Dへ送信する(ステップS514)。コンピュータ2DのCPU21Dは、振り込み処理の画面を受信し、ブラウザ252Dに表示する(ステップS515)。その後CPU21DはOS251Dのログアウトまたはコンピュータ2Dの終了等の終了命令を入力部23Dから受け付けたか否かを判断する(ステップS516)。CPU21Dは終了命令を受け付けていないと判断した場合(ステップS516でNO)、当該処理を受け付けるまで処理を繰り返す。一方、CPU21Dは終了命令を受け付けたと判断した場合(ステップS516でYES)、暗号化処理部510に記憶した暗号化プログラムを読み出し、暗号鍵を用いて、制御プログラム25PD、指紋認識プログラム255D及びソフトウェア情報取得プログラム256Dを暗号化する(ステップS517)。その後CPU21Dは終了命令に従い電源をオフするまたはログアウト等の処理を行う。
本実施の形態4は以上の如き構成としてあり、その他の構成及び作用は実施の形態1乃至3と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。
実施の形態5
実施の形態5はソフトウェア会社のDBサーバ4がソフトウェアレベルを決定してWebサーバ1へ送信する形態に関する。図52は実施の形態5に係るDBサーバ4のハードウェア構成を示すブロック図である。記憶部45には、実施の形態1乃至4において述べたソフトウェア評価テーブル153が記憶されている。なお、Webサーバ1にはこのソフトウェア評価テーブル153は記憶されていない。DBサーバ4のCPU41はWebサーバ1からOS251及びブラウザ252のバージョンを受信した場合、ソフトウェアDB451及びソフトウェア評価テーブル153を参照し、ソフトウェアレベルを決定する。このソフトウェアレベルはソフトウェアが新しいほど高いレベルとなる。そしてDBサーバ4のCPU41は決定したソフトウェアレベルをWebサーバ1へ送信する。Webサーバ1のCPU11は当該送信されたソフトウェアレベルをポリシーテーブル154において判断する際に用いるソフトウェアレベルとして決定する。
図53はソフトウェアレベル決定処理の手順を示すフローチャートである。Webサーバ1のCPU11はコンピュータ2から送信されたOS251及びブラウザ252のバージョンを、通信部16を介してDBサーバ4へ送信する(ステップS521)。DBサーバ4のCPU41は通信部46を介して、OS251及びブラウザ252のバージョンを受信する(ステップS522)。CPU41は図6に示すソフトウェアDB451を参照し、送信されたOS251及びブラウザの252のバージョンが最新のバージョンであるか、または何バージョン前のものであるかの情報を抽出する(ステップS523)。例えばOS251のバージョンがW06の場合、CPU41は、更新日時フィールドを参照することにより最新のバージョンを示す情報を抽出し、バージョンがW04の場合、2つ前のバージョンであることを示す情報を抽出する。
CPU41はソフトウェア評価テーブル153を参照し、ステップS523で抽出したOS251D及びブラウザ252Dのバージョンが最新のバージョンか、何バージョン前であるかの情報に基づき、ソフトウェアレベルを決定する(ステップS524)。CPU41は決定したソフトウェアレベルをWebサーバ1へ送信する(ステップS525)。Webサーバ1のCPU11は送信されたソフトウェアレベルを受信する(ステップS526)。CPU11は、受信したソフトウェアレベルを、OS251D及びブラウザ252Dのバージョンを送信したコンピュータ2のソフトウェアレベルとして決定する(ステップS527)。最後にCPU11は決定したソフトウェアレベルをコンピュータ2に対応づけて記憶部15に記憶する(ステップS528)。CPU11はこの記憶したソフトウェアレベル、実施の形態1で述べた生体レベル及び機器レベル、並びに、ポリシーテーブル154を参照し、コンピュータ2の正否を判断する。
本実施の形態5は以上の如き構成としてあり、その他の構成及び作用は実施の形態1乃至4と同様であるので、対応する部分には同一の参照番号を付してその詳細な説明を省略する。