説明

ローダブルプログラムの認証装置

【課題】セキュリティの強度を落とすことなく、複数の利用者情報を扱うことのできるローダブルプログラムの連携・認証装置を提供する。
【解決手段】利用者の認証をするための生体情報等を取得、管理する認証情報管理システムは、端末のチップに収納される。認証情報管理システム42には、システムマネージャ10が設けられ、これが、各種認証情報取得管理プログラムであるローダブルプログラムを扱う。ローダブルプログラムは複数用意され、利用者がチップとの通信に使うチャネルと、ローダブルプログラムのアプリケーションIDと、セッション番号とで管理される。利用者がローダブルプログラムの利用を行なうときは、チップにログインした後、自分の使うローダブルプログラムをチップにインストール、ロードし、使用する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、セキュリティ機能を必要とするシステム全般に関し、特には、ローダブルプログラムをローディング等するときのLSI内での認証装置に関する。
【背景技術】
【0002】
昨今、情報家電のデジタル化/ネットワーク化が加速される中、コンテンツ配信、遠隔医療等の多種多様サービスにおいては、情報家電の基盤技術として、セキュリティ技術がより一層不可欠であり、各種端末内でも耐タンパ性を具備したセキュリティチップ内の組込みソフトウェアプログラム(ローダブルプログラム)にて、生体情報制御(バイオメトリックス)/パスワード等の認証機能を使って、セキュアな環境下でのデータ認証機能を提供する製品が必要とされている。
【0003】
これら生体情報制御機能を具備したセキュリティチップの認証プログラムは、多種多様化が進む中、認証プログラムの入替えを可能とするローダブル機能の配備、複数認証プログラムの常駐、これらの認証プログラム自体を3rdベンダーが提供する等、セキュリティチップの高機能化に伴い、実現されている。
【0004】
図35は、セキュアな環境下でのデータ認証機能を提供する製品を取り巻く状況を説明する図である。
ユーザが使用するデータ認証機能を有する端末4には、セキュリティチップ1が組み込まれている。セキュリティチップ1内は、チップ内のシステムを管理するシステムマネージャ2と、必要に応じてロードされて実行される、指紋認証処理ソフトなどのローダブルプログラム3とを含んでいる。セキュリティチップ1は、端末4の認証情報管理システムを構成する。端末4の認証情報管理システムで取得された、指紋などの情報は、ネットワーク5を介して、様々な認証サービスセンターに送られ、ユーザの認証が行なわれる。
【発明の開示】
【発明が解決しようとする課題】
【0005】
複数のローダブルプログラムと、セキュリティチップ内に組み込まれた基本プログラムとのデータ連携をセキュリティの強度を落とす事なく実現すること、更に、複数の利用者情報を登録し、複数のローダブルプログラムを常駐可能とすることで、増大するセキュリティチップ内記憶装置の容量(メモリ量)を抑制することが現在の課題となっている。
【0006】
本発明の課題は、セキュリティの強度を落とすことなく、複数の利用者情報を扱うことのできるローダブルプログラムの認証装置を提供することである。
【課題を解決するための手段】
【0007】
本発明の認証装置は、半導体チップに内蔵され、取得した認証情報を外部とやり取りする認証装置において、利用者に、半導体チップ内部への入力や半導体チップからの出力の取得を許可するためのログイン処理を行なうログイン手段と、認証情報を取得する処理を制御する、インストール、アンインストール可能なローダブルプログラム手段と、該ローダブルプログラム手段をインストールし、実行する場合、該ローダブルプログラム手段に、処理の実行単位であるセッションを割り当て、該利用者に、該ローダブルプログラムの使用を、セッションを指定することにより行なわせる制御手段とを備えることを特徴とする。
【発明の効果】
【0008】
本発明によれば、セキュリティ強度を高く保ったまま、複数の利用者情報を扱うことのできる、ローダブルプログラムの認証装置を提供できる。
【発明を実施するための最良の形態】
【0009】
本発明の実施形態においては、セキュリティチップに以下の機能を設ける。
1.利用者管理機能
システム(セキュリティチップ)を制御する利用者を管理し、登録した利用者以外の使用を抑止する。ログイン認証により、登録した利用者の使用を許可する。
システムは、初期状態で登録する初期利用者と初期利用者が登録する二次的利用者の2種類を管理する。
2.チャネル管理機能
初期利用者/二次的利用者が、システムへの指示(コマンドの送信)を行うことを可能とするため、ログイン(利用者と登録された利用者を認証する)が必要である。コマンドを送信する利用者をシステム内で特定するため、チャネルを使用する。チャネルは、利用者がログインする前に捕捉する必要がある。すなわち、ログインした利用者それぞれに固有のチャネルを割り当て、コマンドがどのチャネルを用いて送信されたかを検出することにより、利用者を特定できるようにする。
3.ローダブルプログラムの入替え制御(ローダ)機能
指紋認証プログラムや静脈認証プログラム、あるいは、パスワード認証プログラムなどのローダブルプログラムの入替えを行うための仕組みとして、プログラムのインストール/アンインストールを可能とする。
4.セッション管理機能
コマンドを送信するローダブルプログラムをシステム内で特定するため、セッションを定義する。セッションは、ローダブルプログラムをインストールした際にシステム内で決定する。すなわち、ある特定のローダブルプログラムを実行する場合には、対応したセッションが有効となっているというように、ローダブルプログラムの実行をセッション番号で管理するようにする。
5.認証情報登録時に生成する利用者情報(PI値の利用)管理機能
ログイン認証で使用するデータを利用者が生成する際、システムが利用者単位で個人認証識別値(PI値)を生成する。PI値は、ログイン後に生成したシステム内のリソースと連携させる。このログイン認証は、システムにロードされるローダブルプログラムによって取得され、外部のサーバで認証処理される生体情報等を用いた認証ではなく、利用者が認証に使用する端末の利用権を得るために行なうものであり、PI値は、端末内部で閉じた情報となる。
6.利用者情報の安全なエクスポート機能
ログイン認証で必要となる利用者情報およびログイン後に生成したリソース(生体認証情報等)を含めて安全にシステム外部へエクスポートする。ここで、エクスポートとは、セキュリティチップ内部から、セキュリティチップが搭載されている端末のハードディスク等へデータを移動することである。
7.利用者情報インポート機能
ログイン認証で必要となる利用者情報およびログイン後に生成したリソース(生体認証情報等)を含めて安全にシステムへインポートする。ここで、インポートとは、セキュリティチップが搭載されている端末のハードディスク等からセキュリティチップ内部にデータを移動することである。
8.利用者認証機能
ログイン認証完了により、個人認証識別値(PI値)に関連するリソース(暗号化のための鍵や、指紋認証を行なう場合では、指紋センサ等のハードウェア等)の使用を許可する。
【0010】
以上の構成により、以下のことが可能となる。
1)認証情報管理システム内において、各機能(ローダブルプログラム)での単独動作、必要な機能単位で基本プログラムとの連携により、多様なニーズに合わせた提供が可能になる。
2)従来よりも強固なセキュリティ環境でのサービス・機能を活用することが可能になる。
3)遠隔医療端末や、専用・共通端末(PC等)で、複数ユーザが使用したい場合に対応できる。
【0011】
以下、本発明の実施形態を図面を用いて説明する。
図1は、本発明の実施形態に従った認証情報管理システムのソフトウェア構成図の一例である。
【0012】
Hardware Layer内のローダブルプログラムは独立した機能としての動作が可能である。Hardware Layerは、複数のローダブルプログラム11−1〜11−nと、各種ハードウェア13、及び、これらのハードウェアドライバ12を有し、システムマネージャ10がこれらを管理する。
【0013】
Software Infrastructure Layerは、BIOSレベルのレイヤであり、システムマネージャ・ドライバLib(ライブラリ)16、システムマネージャ・ドライバ17、ブートBIOS14、PC BIOS、TPM/TSS、BIOS-API15、TSS18を含む。また、TPMは、Trusted Platform
Module、TSSは、TCG Software Stackの略であり、TCGは、Trusted Computing Groupの略である。これらは、アプリケーションのセキュアな動作を実現するための標準化されたプロトコルを実装するものである。更に、Software Infrastructure Layerは、アプリケーションの管理ツール19、暗号化のためのアプリケーションプログラムインターフェースであるCrypto API20、TSS対応CSP21、PKCS#11(TSS)22を含む。CSPは、Cryptographic Service Providerの略であり、PKCS#11は、公開鍵暗号方式の標準に準拠した暗号化を行なうパッケージである。
【0014】
Software Application Layerは、端末の利用者から見えるアプリケーションのレイヤであり、インターネットエクスプローラ(IE)、Outlookなどが存在しうる。
図2は、本発明の実施形態に従った認証情報管理システムのハードウェア構成図の一例である。
【0015】
MCU30は、受信した命令を実行する。RAM36は、揮発性のメモリであり、ワークエリアとして利用される。ROM31は、不揮発性の読み出し専用メモリで、実行プログラムが配置される。NVRAM40は、不揮発性メモリであり、主に、ローダブルプログラムなどのプログラムの実行とデータ保存エリアとして利用される。NVRAM40とSRAM41は、メモリコントローラ39によって制御される。暗号制御モジュール32は、暗号化のための鍵の生成ロジックであり、ハッシュ生成器33は、ハッシュ値を生成する。乱数生成器は、ハッシュ値や暗号鍵を作る場合に必要となる乱数を生成する。タイマ制御部37は、PI値を生成する際のタイムスタンプ等を得るために用いられる。2048bitべき乗剰余演算器38は、公開鍵方式の暗号を処理する場合に必要となる剰余演算を行なう。外部インタフェース35は、認証情報管理システム(端末)42を外部と通信可能なように接続するインタフェースである。
【0016】
図3は、本発明の実施形態に従ったチャネルの概念を説明する図である。
利用者A〜Cは、アプリケーション23を介して、認証情報管理システム42のローダブルプログラム1〜Nを使う。利用者Aは、ローダブルプルグラム1を使用し、利用者Bは、ローダブルプログラム2を使用し、利用者Cは、ローダブルプログラムNを使用する
としている。この場合、それぞれの利用者は、それぞれの利用者に専用のチャネル1〜nを使用して、ローダブルプログラム1〜Nにコマンドを送る。但し、チャネルを開くためのチャネルオープンコマンドは、チャネルを使用しない。また、システム制御のコマンドもチャネルを使用しない。図3では、チャネル0を、チャネルを使用しない場合を示すために使っている。チャネルオープンコマンドは、利用者Aから発行されると、システムマネージャ10のコマンド処理部で解析され、チャネル1〜nを、利用者A〜Cに関連付ける。
【0017】
システムマネージャ10には、利用者、チャネル、ローダブルプログラムを関連付けるために、利用者情報展開領域に設けられた利用者情報管理テーブルと、ローダブルプログラム管理テーブルが保持される。利用者情報管理テーブルには、利用者の名前と、使用チャネルと、使用ローダブルプログラムのアプリケーションIDと、そのローダブルプログラムで取得された利用者のPI値とが対応付けられて格納される。また、ローダブルプログラム管理テーブルは、セッション番号と、ローダブルプログラム名と、アプリケーションIDが対応付けられて格納される。ローダブルプログラム管理テーブルより、セッション番号とアプリケーションIDの対応が取得できる。また、利用者情報管理テーブルより、あるチャネルの利用者が認証に使用するローダブルプログラムのアプリケーションIDを取得可能である。これらの2つのテーブルに設定されている情報より、あるチャネルの利用者がローダブルプログラムへコマンドを送信する際に使用するセッション番号をアプリケーションが知ることが出来る。
【0018】
図4は、本発明の実施形態に従った認証情報管理システムにおける全体の流れを示すフローチャートである。
認証情報管理システムには共通鍵暗号化方式、公開鍵暗号化方式の両方を用いる。認証情報管理システムへの要求は、全てソフトウェアからのコマンドで行う。
【0019】
認証情報管理システムを起動すると、ステップS10において、ローダブルプログラムの準備を行なう。すなわち、ローダブルプログラムのインストールとロードの準備を行なう。ステップS11において、認証情報管理システムにコマンドを送信するためのチャネルを開く。ステップS12において、初期利用者を登録する。初期利用者は、最初に当該認証情報管理システムにアクセスを許可されたものであり、認証情報管理システムの管理者に相当する者である。次に、ステップS13において、初期利用者は、当該端末の認証情報管理システムを使用したい者について、利用者登録を行なう。ステップS14において、利用者情報をエクスポートする。ステップS15において、チャネルをクローズする。ここまでが、初期準備である。共通鍵暗号方式による暗号化は、ローダブルプログラムの準備の際に、ローダブルプログラムを暗号化するために用いる。ステップS14の利用者情報エクスポートにおいては、利用者情報を暗号化するために公開鍵暗号化方式の暗号化が行なわれる。
【0020】
ステップS16以下は、利用者が認証情報管理システムを利用する場合を示す。ステップS16において、チャネルをオープンし、ステップS17において、ログインする利用者の利用者情報をインポートする。ステップS18において、利用者がログインする。利用者認証情報をステップS19において登録し、ステップS20において、利用者リソース(鍵、証明書等)を生成し、ステップS21において、利用者リソース情報を含めて利用者情報をエクスポートする。ステップS22において、利用者はログアウトし、ステップS23において、チャネルをクローズして、処理を終了する。
【0021】
図5及び図6は、認証情報管理システムにおける利用者情報を説明する図である。
図5は、利用者種別を示す表である。登録される利用者の種別は以下の2通りである。利用者には、初期利用者と通常の利用者(二次的利用者)がある。初期利用者は、機器に
対して最初に登録した利用者である。利用者の生成が可能で、初期利用者の生成数は1である。機器というのは、認証情報管理システムが搭載されている情報装置のことであり、上記では端末と述べていたものである。一般に、認証情報管理システムは、コンピュータなどの端末に搭載されている必要は無く、一般に情報装置に搭載されていれば良いという意味で、使用するのは機器である。利用者は、初期利用者以外の利用者のことであり、二次的利用者とも呼べるものである。生成数は、無制限であり、機器が情報を格納可能な限り、何人分でも生成してよい。
【0022】
図6は、PI値の定義を示す表である。
利用者がログイン認証時、認証情報管理システムで使用する情報については、利用者を特定する利用者識別子(ログインID)とパスワード(ログインパスワード)が登録された際に認証情報管理システムが設定する情報があり、これをPI値と呼ぶ。
【0023】
PI値は、利用者毎に一意に設定する個人認証識別値であり、ログイン認証が完了することで有効となる。PI値は生成のタイミング及び秘匿の状態により4種類に分けられる。4つの値はそれぞれ異なる値が設定される。
【0024】
PIDR-Pは、利用者情報登録時に生成され、認証情報管理システム外で参照可能な情報である。PIDR-Hは、利用者情報登録時に生成され、認証情報管理システムへ移動する際は、認証情報管理システムに貼り付けられている鍵により暗号化されるため、認証情報管理システム外では参照出来ない。PIPR-Pは、ログイン認証情報登録時に生成され、ログイン認証情報変更時に更新するもので、認証情報管理システム外で参照が出来るものである。PIPR-Hは、ログイン認証情報登録時に生成され、ログイン認証情報変更時に更新するものである。認証情報管理システム外へ移動する際は、認証情報管理システムに貼り付けられた鍵により暗号化されるため、システム外では参照は出来ない。以上の4つの情報を直列に接続した一連の情報をPI値と呼ぶ。
【0025】
PI値が設定される領域は複数(4種)あり、用途により使い分ける。
−利用者情報展開領域内のPI値設定領域
利用者情報のインポート時、利用者情報データの認証情報関連データ部分に保持されていた値を設定する。
−ローダブルプログラムによるPI値設定領域
ローダブルプログラムを使用したログイン認証実施時、ローダブルプログラムが保持している値を設定する。
−新規生成PI値設定領域
ローダブルプログラム内で認証情報生成時、ローダブルプログラムからの要求により生成したPI値を設定する。
−ログイン認証完了時PI値設定領域
ログイン認証完了時に設定する。設定されていない場合はログイン未完了であることを示す。
【0026】
図7は、チャネルオープン手順を示すフローチャートである。
ソフトウェアと認証情報管理システム間の情報の送受信は利用者毎に設定されたチャネルを使用して行う。チャネルオープンでは利用者が指定したチャネルを捕捉する。システムマネージャは、ステップS30において、チャネルをオープンし、ステップS31において、チャネルの上限を確認し、使用中のチャネル数が上限に達しているか否かを判断する。ステップS31において、上限に達したと判断された場合には、処理を終了する。ステップS31において、上限に達していないと判断された場合には、ステップS32において、チャネルの状態の更新を行なって、処理を終了する。
【0027】
図8は、チャネルクローズ手順を示すフローチャートである。
ここでは、利用者が使用していたチャネルを解放する。利用者がログイン中のチャネルはクローズ不可とする。システムマネージャは、ステップS35において、チャネルをクローズし、ステップS36において、チャネルの状態を確認する。利用者がログイン中である場合には、チャネルを維持したまま、処理を終了する。ステップS36で、利用者がログインしていないと判断された場合には、ステップS37において、当該チャネルで使用していた利用者情報をクリアし、チャネルの状態を更新して、処理を終了する。
【0028】
図9〜図14は、ローダブルプログラムを転送する際のデータフォーマットについて説明する図である。
ローダブルプログラムファイルは、コマンドで認証情報管理システムへ転送する。図9には、データフォーマットが示されている。図9のデータにおいては、データの先頭にファイルバージョン、次に、ローダブルプログラムのアプリケーションIDが設けられている。アプリケーションIDは、ローダブルプログラムを一意に示すIDである。次が、共通鍵データ長と共通鍵である。共通鍵は、ローダブルプログラムを暗号化するためのもので、公開鍵で暗号化されている。次が、ローダブル情報であり、ローダプルプログラムを実行する際の情報が埋め込まれている。次が、ローダブルプログラムデータ長とローダブルプログラム本体である。ローダブルプログラムは、共通鍵が暗号化されている。次が、ローダブルプログラムが正規のモノであることを示す署名と署名のデータ長である。
【0029】
図10の表には、図9の各フィールドの説明が記載されている。また、アプリケーションIDについては、図11、12、ローダブル情報については、図13、14に更に詳しく示している。ファイルバージョンは、将来のバージョンアップを考慮して、ローダブルプログラムのバージョンを設定する。ローダブルプログラムが、暗号化プログラムであった場合には、図10の例のように、0を未設定、1をAES 128ビット、RSA2048ビット、3をDES-EDE2 64ビット、SHA-1などと取り決めておく。
【0030】
図11には、アプリケーションIDの構成が示されている。アプリケーションIDは、作成社(者)を特定する作成社(者)番号、プログラムの製造の最終段階で付加される承認(発行)番号からなり、その他のフィールドは、リザーブとする。図12は、各フィールドの説明を示した表を示している。作成社(者)番号は、たとえば、富士通なら0など、ローダブルプログラムの作成元を特定する。承認(発行)番号は、プログラムの使用許諾番号のようなもので、認証情報管理システムの機器組み立てメーカが、ローダブルプログラムをシステムに搭載する際に、プログラムを承認し、番号の採番を行なう。リザーブは、使用されていない場合には、全て0となっている。
【0031】
図13には、ローダブル情報のフォーマットが示されている。ローダブル情報には、WORK領域サイズと、NVRAMデータ領域サイズ、NVRAM(一時保存用)領域サイズと、リザーブとからなっている。図14には、それぞれの情報の意味が記載されている。WORK領域サイズは、内部ローダブルプログラムが使用する作業領域のサイズである。NVRAMデータ領域サイズは、内部ローダブルプログラムが使用するNVRAMのデータ領域サイズである。NVRAM(一時保存用)領域サイズは、内部ローダブルプログラムが使用するNVRAM(一時保存用)領域のサイズである。リザーブは、未使用時は全て0である。
【0032】
図15は、システムマネージャが管理するローダブルプログラムの状態遷移図を示す図である。
アンインストール状態は、初期(ローダブルプログラム未インストール)状態である。インストール・アンロード状態は、インストール完了(ローダブルプログラム未ロード)状態である。ロード状態は、ロード(ローダブルプログラム実行中)状態である。一時停
止状態は、一時停止(ローダブルプログラム一時停止)状態である。これらは、管理テーブルに現在の状態を格納することにより、管理する。
【0033】
図16は、ローダブルプログラムのメモリ配置構成を説明する図である。
ローダブルプログラム52は、ソフトウェア50からの指示によって動作する。ローダブルプログラム51は、システムマネージャ51内で展開される。ローダブルプログラムは、NVRAM55に格納されており、実行する際には、RAM53に展開される。ローダブルプログラム52のWORKエリアもRAM53に設けられる。NVRAM55には、ローダブルプログラム管理テーブルとして、ローダブルプログラム配布用ファイル(図9)のファイルバージョン、アプリケーションID、共通鍵データ長、共通鍵、ローダブル情報が格納される。また、ローダブルプログラム52本体と、ローダブルプログラムのデータ格納エリア、データ一時保存用エリアもNVRAM55上に設けられる。データ格納エリアとデータ一時保存用エリアは、各ローダブルプログラムが使用するデータエリアである。ローダブルプログラム配布用ファイルの署名データは、ファイルバージョンからローダブルプログラム本体までの暗号化されたデータについて署名された情報である。
【0034】
図17は、ローダブルプログラムのインストール手順を示すフローチャートである。
インストールでは、ローダブルプログラムファイル内容の確認、NVRAMの一時退避領域へコピー、署名検証後、プログラム展開メモリ(NVRAM)へ復号化したローダブルプログラムを格納する。管理テーブルは、「アンインストール」から「インストール」へ状態遷移する。
【0035】
システムマネージャは、ステップS40において、ローダブルプログラムファイルを転送し、インストールする。ステップS41において、一時格納エリアにローダブルプログラムファイルを格納し、ステップS38において、格納エリアが空いているか否かを確認し、ファイル情報を確認し、問題があるか否かを判断する。問題がある場合には、処理を終了する。問題がない場合には、ステップS42において、転送ファイルの署名を検証する。ステップS43において、署名検証の結果、問題があるか否かを判断する。問題がある場合には、処理を終了する。問題がない場合には、ステップS44において、管理テーブルを更新し、ステップS45において、ローダブルプログラムを復号し、展開エリアへ格納する。ステップS46において、当該ローダブルプログラムの状態を変更する。すなわち、アンインストール状態からインストール状態(アンロード状態)として、処理を終了する。
【0036】
図18は、ローダブルプログラムのアンインストール手順を示すフローチャートである。
アンインストールは、指定されたローダブルプログラムの状態が「インストール・アンロード」の場合のみ実施する。該当するチャネル、セッションのプログラム展開エリア(NVRAM)をメモリクリアし、管理テーブルを「インストール・アンロード」から「アンインストール」へ状態遷移する。
【0037】
ステップS47において、システムマネージャは、該当するローダブルプログラムの状態を確認し、アンロード状態か否かを判断する。アンロード状態でない場合には、処理を終了する。アンロード状態である場合には、ステップS48で、該当するローダブルプログラムをアンインストールし、ステップS49において、ローダブルプログラムの展開エリアをクリアし、ステップS50において、管理テーブルを更新し、処理を終了する。
【0038】
図19は、ローダブルプログラムのロード手順を示すフローチャートである。
ロードは、指定されたローダブルプログラムの状態が「インストール・アンロード」の場合のみ実施する。該当するチャネル、セッションのプログラム展開エリア(NVRAM)
からプログラム実行メモリ(RAM)へコピーし、ローダブルプログラムへ初期化要求する。管理テーブルを「インストール・アンロード」から「ロード」へ状態遷移する。
【0039】
システムマネージャは、ステップS55において、該当ローダブルプログラムの状態を確認し、インストール状態か否かを判断する。インストール状態でない場合は、処理を終了する。ステップS56において、ローダブルプログラムをロードし、ステップS57において、アドレス解決、ローダブルプログラム内部の初期化など、ローダブルプログラムの初期化を行い、ステップS58において、管理テーブルを更新して、該当ローダブルプログラムの状態遷移をインストール状態からロード状態にする。
【0040】
図20は、ローダブルプログラムのアンロード手順を示すフローチャートである。
アンロードは、指定されたローダブルプログラムの状態が「ロード」または「一時停止」の場合のみ実施する。該当するチャネル、セッションのプログラムに対して終了要求する。管理テーブルを「ロード/一時停止」から「アンロード」へ状態遷移する。
【0041】
ステップS60において、システムマネージャは、該当ローダブルプログラムの状態確認を行い、当該ローダブルプログラムが、ロード状態か一時停止状態であるか否かを判断する。ステップS60の判断がNoの場合には、処理を終了する。ステップS60の判断がYesの場合には、ステップS61で、当該ローダブルプログラムをアンロードし、ステップS62において、ローダブルプログラムが保持するマネージャエントリリストを破棄し、プログラムを停止する。そして、ステップS63において、管理テーブルの、当該ローダブルプログラムの状態遷移を、ロード/一時停止状態からアンロード状態と更新して、処理を終了する。
【0042】
図21は、ローダブルプログラムの一時停止手順を示すフローチャートである。
一時停止は、指定されたローダブルプログラムの状態が「ロード」の場合のみ実施する。該当するチャネル、セッションのプログラムに対して一時停止要求する。管理テーブルを「ロード」から「一時停止」へ状態遷移する。
【0043】
システムマネージャは、ステップS65において、ローダブルプログラムの状態確認を行い、ロード状態となっているか否かを判断する。ロード状態となっていない場合には、処理を終了する。ロード状態となっている場合には、ステップS66において、実行を終了し、ステップS67において、ローダブルプログラム内で復帰可能な状況でローダブルプログラムを一時停止する。具体的には、RAMに展開された当該プログラムをNVRAMにコピーするなどを行なう。ステップS68において、当該ローダブルプログラムの状態遷移をロード状態から一時停止状態にして処理を終了する。
【0044】
図22は、ローダブルプログラムの実行開始手順を示すフローチャートである。
実行開始は、指定されたローダブルプログラムの状態が「一時停止」の場合のみ実施する。該当するチャネル、セッションのプログラムに対して実行開始要求する。管理テーブルを「一時停止」から「ロード」へ状態遷移する。
【0045】
システムマネージャは、ステップS70において、当該ローダブルプログラムの状態が一時停止状態か否かを判断する。一時停止状態でない場合には、処理を終了する。ステップS70で、一時停止状態であると判断された場合には、ステップS71において、当該ローダブルプログラムの実行を開始し、ステップS72において、ローダブルプログラム内で起動可能な環境へ復帰する。すなわち、NVRAMからRAMへ当該ローダブルプログラムをコピーするなどを行なう。ステップS73において、当該ローダブルプログラムの状態遷移を一時中断からロードにする管理テーブルの更新を行なって、処理を終了する。
【0046】
図23及び図24は、ローダブルプログラムのアドレス解決手順を示すフローチャートである。
システムマネージャとローダブルプログラムで通信するためには、互いの起動先(アドレス)が必要となる。起動先(アドレス)を動的に取得するための仕組みを備える。ロード要求直後、または電源投入等による起動時にロード状態のローダブルプログラムが存在する場合、図23及び図24の手順でアドレス解決を行う。
【0047】
図23において、システムマネージャは、ステップS74において、ローダブルプログラムをロードした直後か、再起動した直後となる。ステップS75において、ロード状態のローダブルプログラムが存在するか否かを判断する。ステップS75の判断がNoの場合には、処理を終了する。ステップS75の判断がYesの場合には、ステップS76の、ロード状態のローダブルプログラム分繰り返すループで、ロード状態のローダブルプログラムへ初期化要求を出す。すなわち、エントリリスト取得ポインタと初期化を判断するデータを渡して、処理を終了する。
【0048】
図24(a)において、ローダブルプログラムは、ステップS80で、初期化要求を受信すると、ステップS81において、エントリリストを取得し、ステップS82において、アドレス解決を行い、処理を終了する。
【0049】
図24(b)では、システムマネージャは、ステップS83において、エントリリストを取得し、ステップS84において、エントリリストを生成して、処理を終了する。
図25は、初期利用者登録手順を示すフローチャートである。
【0050】
初期利用者登録ではログイン不要である。ここでは、利用者情報のインポート・エクスポートに使用する利用者情報生成用鍵ペアを生成する。利用者情報生成用鍵ペアは認証情報管理システム内に秘匿される。
【0051】
ステップS85において、システムマネージャは、初期利用者の登録を行い、ステップS86において、初期利用者が未登録な者か否かを判断する。ステップS86の判断がNoならば処理を終了する。ステップS86の判断がYesの場合には、ステップS87において、初期利用者情報を生成し、ステップS88において、PI値(PIDR-P/PIDR-H)を生成し、ステップS89において、利用者情報生成用鍵ペアを生成し、処理を終了する。
【0052】
図26は、利用者登録手順を示すフローチャートである。
認証情報管理システムの(二次的)利用者を初期利用者が登録する。システムマネージャは、ステップS90において、(二次的)利用者の登録を受け付ける。ステップS91において、初期利用者が登録済みか否かを判断する。ステップS91の判断がNoの場合には、処理を終了する。ステップS91の判断がYesの場合には、ステップS92において、利用者情報格納領域に利用者情報を生成し、ステップS93において、PI値(PIDR-P/PIDR-H)を生成し、ステップS94において、共通鍵を生成する。そして、ステップS95において、利用者情報を共通鍵で暗号化し、ステップS96において、共通鍵を利用者情報生成用公開鍵で暗号化し、ステップS97において、利用者情報生成用秘密鍵で、署名を生成し、ステップS98で、生成した利用者情報をソフトウェアに退避して、処理を終了する。ソフトウェアというのは、上位レイヤのアプリケーションソフトであって、ローダブルプログラムを利用するソフトのことである。
【0053】
図27は、ローダブルプログラムを使用した認証情報登録/変更手順を示すフローチャートである。
認証情報(生体情報等)の登録の際はログイン認証が完了している必要がある。ローダ
ブルプログラムを使用したログイン認証を行うための認証情報の登録は初期利用者による利用者情報生成後、(二次的)利用者が実施する。
【0054】
システムマネージャは、ステップS100において、認証情報登録を受付け、ステップS101において、ローダブルプログラムを使って、認証情報を生成する。ステップS102において、PI値(PIPR-P/PIPR-H)を生成し、ステップS103において、認証情報が登録済みの場合には、利用者の認証情報を更新して、処理を終了する。
【0055】
図28は、利用者情報ファイルの構成を示す図である。
利用者情報ファイルは、利用者情報生成用公開鍵で暗号化された共通鍵と、この共通鍵で暗号化された個人データ(ログイン認証情報、利用者リソース(利用者固有の暗号鍵など))と、利用者情報生成用秘密鍵で生成された署名データとからなる。
【0056】
図29は、初期利用者情報と利用者情報のエクスポート手順を示すフローチャートである。
初期利用者登録時の利用者情報のエクスポートでは利用者のログインは不要である。初期利用者登録完了以降はログイン認証必須となる。利用者情報変更時は利用者情報のエクスポートを実施する必要がある。利用者情報は認証情報管理システム内で暗号化した利用者情報ファイルをソフトウェアにエクスポートする。
【0057】
システムマネージャは、ステップS105において、利用者情報を認証情報管理システムのチップからPCのハードディスクなどへエクスポートする。ステップS106において、利用者の状態を確認する。利用者がログインしていれば、ステップS107に進み、ログインしていなければ、処理を終了する。ステップS107では、利用者情報を収集し、利用者情報格納エリアに、認証情報、個人鍵、生体情報等を設定して、利用者情報を生成する。ステップS108では、共通鍵を生成し、ステップS109において、共通鍵で利用者情報を暗号化し、ステップS110において、利用者情報生成用公開鍵で共通鍵を暗号化し、ステップS111において、利用者情報生成用秘密鍵で署名を生成し、ステップS112で、生成した利用者情報をソフトウェアに退避して、処理を終了する。ソフトウェアというのは、上位レイヤのアプリケーションソフトであって、ローダブルプログラムを利用するソフトのことである。
【0058】
図30は、初期利用者情報と利用者情報のインポート手順を示すフローチャートである。
利用者がログインを実施する前にソフトウェアにエクスポートした利用者情報ファイルを認証情報管理システムにインポートする。これは、チャネルオープン後に実施する。
【0059】
システムマネージャは、ステップS115において、利用者情報をインポートし、ステップS116において、チャネルの状態を確認する。チャネルがクローズしている場合には、処理を終了する。チャネルがオープンしているならば、ステップS117において、利用者情報格納エリアへ、ソフトウェアから利用者情報を転送し、格納する。ステップS118においては、署名の検証を行なう。署名に問題があれば、処理を終了する。署名に問題が無ければ、ステップS119において、利用者情報生成用秘密鍵で共通鍵を暗号化し、ステップS120において、共通鍵を用いて、利用者情報を復号化し、ステップS121において、利用者情報の情報を公開して、処理を終了する。
【0060】
図31は、ログイン認証手順を示すフローチャートである。
利用者が認証情報管理システムの利用を開始する際にログイン処理を実施する。ログイン認証が完了することにより、利用者の認証情報の変更及びリソース(鍵、証明書等)の生成が可能となる。
【0061】
システムマネージャは、ステップS125において、利用者の入力するIDと認証情報(生体情報/パスワード)を使って、ログイン認証する。ステップS126において、利用者情報のインポートが済んでいるか否かを判断する。ステップS126で、済んでいないと判断された場合には、処理を終了する。ステップS126において、インポートが済んでいると判断された場合には、ステップS127において、認証情報を照合し、一致するか否かを見る。ステップS127の認証がNGだった場合には、処理を終了する。ステップS127の認証がOKだった場合には、ステップS128において、PI値の有効状態を更新する。ステップS129において、利用者の認証状態(ログイン認証済みか否か)を更新して、処理を終了する。
【0062】
図32は、ログアウト手順を示すフローチャートである。
利用者が認証情報管理システムの利用を終了する際にログアウト処理を実施する。システムマネージャは、ステップS130でログアウト処理を行なうと、ステップS131において、利用者がログイン中か否かの状態確認を行なう。ステップS131で、利用者がログインしていないと判断された場合には、処理を終了する。ステップS131において、利用者がログイン中であると判断された場合には、ステップS132において、利用者の認証状態をログアウトに更新して、処理を終了する。
【0063】
図33は、ログイン認証時のPI値有効設定手順を示す図である。
まず、ローダブルプログラムは、生体認証情報の照合が完了した時点で、PI値設定をシステムマネージャに要求する(1)。システムマネージャは、対応するローダブルプログラムによるPI値設定領域にローダブルプログラムから渡されたPI値を格納する(2)。システムマネージャ・ドライバ、または、アプリケーションは、システムマネージャに対して生体認証ログイン要求を行なう(3)。システムマネージャは、ローダブルプログラムによるPI値設定領域に格納されたPIXR-X値と利用者情報展開領域内の自身のPIXR-Xとを比較する(4)。PIXR-Xが一致していたら認証されたとみなし、ログイン認証完了時PI値設定領域(PIR)にローダブルプログラムによるPI値設定領域のPI値をコピーする(5)。システムマネージャは、利用者情報展開領域の「PI値有効状態」を有効に設定する(6)。利用者情報の「認証状態」を認証済みに設定する(7)。ここで、PIXR-Xは、PIDR-P等を一括して示すために使用した記号である。
【0064】
図34は、生体認証情報登録手順を示す図である。
まず、ローダブルプログラムは、生体認証情報の生成が完了した時点でPI値生成依頼コマンドをシステムマネージャに要求する(1)。システムマネージャはPI値(PIPR-P、PIPR-H)を生成し、新規生成PI値設定領域に設定する(2)。システムマネージャは、利用者情報のPIDR-P、PIDR-Hを新規生成PI値設定領域にコピーする(3)。PIDR-P、PIDR-Hは利用者情報生成時に生成済みである。システムマネージャはローダブルプログラム管理テーブルからアクティブなプログラム(実行エリアに展開されているプログラム)を検索し、対応するアプリケーションIDを新規生成PI値設定領域にコピーする(4)。システムマネージャ・ドライバ、または、アプリケーションは、システムマネージャに対して生体認証情報設定要求を行なう(5)。システムマネージャは、新規生成PI値設定領域から利用者情報にAIDをコピーする(6)。システムマネージャは、新規生成PI値設定領域から利用者情報にPIP値をコピーする(7)。利用者情報へコピー完了時に新規生成PI値設定領域の設定内容をクリアする。
【0065】
以上の本発明の実施形態によれば、認証情報管理システムの利用者なりすましを抑止できる。また、利用者情報を認証情報管理システム内に保持せず外部の記憶装置に保存し、必要に応じて利用者情報を転送(インポート)可能なこと、およびローダブルプログラムの入替えが可能なことで、認証情報管理システム内の記憶装置の容量(メモリ量)が抑えら
れると同時にチップの低コスト化が見込める。
【図面の簡単な説明】
【0066】
【図1】本発明の実施形態に従った認証情報管理システムのソフトウェア構成図である。
【図2】本発明の実施形態に従った認証情報管理システムのハードウェア構成図である。
【図3】本発明の実施形態に従ったチャネルの概念を説明する図である。
【図4】本発明の実施形態に従った認証情報管理システムにおける全体の流れを示すフローチャートである。
【図5】認証情報管理システムにおける利用者情報を説明する図(その1)である。
【図6】認証情報管理システムにおける利用者情報を説明する図(その2)である。
【図7】チャネルオープン手順を示すフローチャートである。
【図8】チャネルクローズ手順を示すフローチャートである。
【図9】ローダブルプログラムを転送する際のデータフォーマットについて説明する図(その1)である。
【図10】ローダブルプログラムを転送する際のデータフォーマットについて説明する図(その2)である。
【図11】ローダブルプログラムを転送する際のデータフォーマットについて説明する図(その3)である。
【図12】ローダブルプログラムを転送する際のデータフォーマットについて説明する図(その4)である。
【図13】ローダブルプログラムを転送する際のデータフォーマットについて説明する図(その5)である。
【図14】ローダブルプログラムを転送する際のデータフォーマットについて説明する図(その6)である。
【図15】システムマネージャが管理するローダブルプログラムの状態遷移図を示す図である。
【図16】ローダブルプログラムのメモリ配置構成を説明する図である。
【図17】ローダブルプログラムのインストール手順を示すフローチャートである。
【図18】ローダブルプログラムのアンインストール手順を示すフローチャートである。
【図19】ローダブルプログラムのロード手順を示すフローチャートである。
【図20】ローダブルプログラムのアンロード手順を示すフローチャートである。
【図21】ローダブルプログラムの一時停止手順を示すフローチャートである。
【図22】ローダブルプログラムの実行開始手順を示すフローチャートである。
【図23】ローダブルプログラムのアドレス解決手順を示すフローチャート(その1)である。
【図24】ローダブルプログラムのアドレス解決手順を示すフローチャート(その2)である。
【図25】初期利用者登録手順を示すフローチャートである。
【図26】利用者登録手順を示すフローチャートである。
【図27】ローダブルプログラムを使用した認証情報登録/変更手順を示すフローチャートである。
【図28】利用者情報ファイルの構成を示す図である。
【図29】初期利用者情報と利用者情報のエクスポート手順を示すフローチャートである。
【図30】初期利用者情報と利用者情報のインポート手順を示すフローチャートである。
【図31】ログイン認証手順を示すフローチャートである。
【図32】ログアウト手順を示すフローチャートである。
【図33】ログイン認証時のPI値有効設定手順を示す図である。
【図34】生体認証情報登録手順を示す図である。
【図35】セキュアな環境下でのデータ認証機能を提供する製品を取り巻く状況を説明する図である。
【符号の説明】
【0067】
1 チップ
2、10 システムマネージャ
3、11−1〜11−n ローダブルプログラム
4 PC(端末)
5 ネットワーク
12 ハードウェアドライブ
13 各種ハードウェア
14 ブートBIOS
15 PC BIOS、TPM/TSS、BIOS-API
16 システムマネージャ・ドライバライブラリ
17 システムマネージャ・ドライバ
18 TSS
19 管理ツール
20 Crypto API
21 CSP
22 PKCS#11
23 アプリケーション群
30 MCU
31 ROM
32 暗号制御モジュール
33 ハッシュ生成器
34 乱数生成器
35 外部インタフェース
36 RAM
37 タイマ制御部
38 2048bitべき乗剰余演算器
39 メモリコントローラ
40 NVRAM
41 SRAM
42 認証情報管理システム
50 ソフトウェア
51 システムマネージャ
52 ローダブルプログラム
53 ローダブルプログラム実効エリア
54 ローダブルプログラム
55 NVRAM

【特許請求の範囲】
【請求項1】
半導体チップに内蔵され、取得した認証情報を外部とやり取りする認証装置において、
利用者に、半導体チップ内部への入力や半導体チップからの出力を許可するためのログイン処理を行なうログイン手段と、
認証情報を取得する処理を制御する、インストール、アンインストール可能なローダブルプログラム手段と、
該ローダブルプログラム手段をインストールし、実行する場合、該ローダブルプログラム手段に、処理の実行単位であるセッションを割り当て、該利用者に、該ローダブルプログラムの使用を、セッションを指定することにより行なわせる制御手段と、
を備えることを特徴とする認証装置。
【請求項2】
前記利用者には、固有のチャネルが設定され、該利用者は、自分に割り当てられたチャネルを介してのみ、前記ローダブルプログラム手段の使用を許可することを特徴とする請求項1に記載の認証装置。
【請求項3】
前記半導体チップに内蔵される認証装置の利用を許可する利用者を予め該認証装置に登録する事を特徴とする請求項1に記載の認証装置。
【請求項4】
前記予め登録される利用者は、最初に登録される、他人の登録権限を有する初期利用者と、初期利用者が登録する二次的利用者とからなることを特徴とする請求項3に記載の認証装置。
【請求項5】
ログインする利用者に対し、利用者の名前と、該利用者が使用するチャネルと、該利用者が使用するローダブルプログラム手段とを対応付けた固有情報を有し、該利用者に対し、該固有情報に登録された内容の利用のみを許可することを特徴とする請求項2に記載の認証装置。
【請求項6】
前記固有情報を、該固有情報に対応する利用者に特有の暗号鍵で暗号化して、前記半導体チップ外に送信することを特徴とする請求項5に記載の認証装置。
【請求項7】
前記固有情報を、前記半導体チップ内に受信した後、前記利用者に特有の復号鍵で復号することを特徴とする請求項6に記載の認証装置。
【請求項8】
前記ローダブルプログラム手段は、認証情報を取得する処理のためのプログラムであることを特徴とする請求項1に記載の認証装置。
【請求項9】
前記認証情報は、生体情報であることを特徴とする請求項8に記載の認証装置。
【請求項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

【図14】
image rotate

【図15】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate

【図27】
image rotate

【図28】
image rotate

【図29】
image rotate

【図30】
image rotate

【図31】
image rotate

【図32】
image rotate

【図33】
image rotate

【図34】
image rotate

【図35】
image rotate

【図16】
image rotate


【公開番号】特開2009−116416(P2009−116416A)
【公開日】平成21年5月28日(2009.5.28)
【国際特許分類】
【出願番号】特願2007−285599(P2007−285599)
【出願日】平成19年11月1日(2007.11.1)
【出願人】(308014341)富士通マイクロエレクトロニクス株式会社 (2,507)
【Fターム(参考)】