(57)【要約】  【課題】  ＩＣカードなどのハードウェアトークンを用いた場合の不正アクセスに対するセキュリティレベルを飛躍的に向上させる。  【解決手段】  コンピュータ装置１０に接続されるハードウェアトークン３０を用いた認証方法であって、コンピュータ装置１０にて生成されたコンピュータ公開鍵Ｃｋをこのコンピュータ装置１０によってハードウェアトークン３０に格納するステップと、ハードウェアトークン３０に格納されているユーザ公開鍵Ｕｋをこのハードウェアトークン３０からコンピュータ装置１０にて読み出すステップと、読み出されたユーザ公開鍵Ｕｋをコンピュータ装置１０から認証局５０に登録し、認証局５０からユーザ公開鍵Ｕｋに対する証明書の発行をコンピュータ装置１０が受けるステップと、発行を受けたユーザ公開鍵Ｕｋの証明書をコンピュータ装置１０によってハードウェアトークン３０に格納するステップとを備えた。  【選択図】  図４
2005242745.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ装置に接続されるハードウェアトークンを用いた認証方法であって、
前記コンピュータ装置のコンピュータ公開鍵Ｃｋを当該コンピュータ装置によって前記ハードウェアトークンに格納するステップと、
前記ハードウェアトークンに格納されているユーザ公開鍵Ｕｋを当該ハードウェアトークンから前記コンピュータ装置にて読み出すステップと、
読み出された前記ユーザ公開鍵Ｕｋを前記コンピュータ装置から認証局に登録し、当該認証局から当該ユーザ公開鍵Ｕｋに対する証明書の発行を当該コンピュータ装置が受けるステップと、
発行を受けた前記ユーザ公開鍵Ｕｋの前記証明書を前記コンピュータ装置によって前記ハードウェアトークンに格納するステップと
を含むハードウェアトークンを用いた認証方法。
【請求項２】
前記ハードウェアトークンは、前記ユーザ公開鍵Ｕｋおよびユーザ秘密鍵Ｕｋ’を記憶装置に格納するＩＣカードであることを特徴とする請求項１記載のハードウェアトークンを用いた認証方法。
【請求項３】
コンピュータ装置に接続されるハードウェアトークンを用いた認証方法であって、
前記ハードウェアトークンにて発生した乱数Ｒを当該ハードウェアトークンから前記コンピュータ装置にて取得するステップと、
前記乱数Ｒをコンピュータ秘密鍵Ｃｋ’で署名した署名Ｃｋ’(Ｒ)を、前記コンピュータ装置から前記ハードウェアトークンに返すステップと、
前記ハードウェアトークンにて格納されているコンピュータ公開鍵Ｃｋを用いて当該ハードウェアトークンにてなされた前記署名Ｃｋ’(Ｒ)の認証を、当該ハードウェアトークンから当該コンピュータ装置が受けるステップと
を含むハードウェアトークンを用いた認証方法。
【請求項４】
前記署名Ｃｋ’(Ｒ)の認証の結果、正しいと判断される場合に、前記コンピュータ装置にて前記ハードウェアトークンに格納されているユーザ公開鍵Ｕｋおよびユーザ秘密鍵Ｕｋ’を用いたユーザ認証を行うステップを更に含む請求項３記載のハードウェアトークンを用いた認証方法。
【請求項５】
コンピュータ装置に接続されるハードウェアトークンを用いた認証方法であって、
認証局にて認証された認証局公開鍵Ａｋの証明書を前記コンピュータ装置にて取得するステップと、
取得された前記認証局公開鍵Ａｋの証明書を前記コンピュータ装置から前記ハードウェアトークンに格納するステップと、
前記ハードウェアトークンに格納されているユーザ公開鍵Ｕｋを前記コンピュータ装置にて読み出すステップと、
読み出された前記ユーザ公開鍵Ｕｋを前記コンピュータ装置から前記認証局に登録して、当該認証局から当該ユーザ公開鍵Ｕｋに対する証明書の発行を当該コンピュータ装置が受けるステップと、
発行を受けた前記ユーザ公開鍵Ｕｋの前記証明書を前記コンピュータ装置から前記ハードウェアトークンに格納するステップと
を含むハードウェアトークンを用いた認証方法。
【請求項６】
前記認証局からコンピュータ公開鍵Ｃｋに対する証明書の発行を当該コンピュータ装置が受けるステップを更に含む請求項５記載のハードウェアトークンを用いた認証方法。
【請求項７】
コンピュータ装置に接続されるハードウェアトークンを用いた認証方法であって、
前記ハードウェアトークンにて発生した乱数Ｒを前記コンピュータ装置にて取得するステップと、
前記コンピュータ装置にて前記乱数Ｒをコンピュータ秘密鍵Ｃｋ’にて署名された署名Ｃｋ’(Ｒ)を当該コンピュータ装置から前記ハードウェアトークンに送るステップと、
認証局にて認証を受けているコンピュータ公開鍵Ｃｋの証明書を前記コンピュータ装置から前記ハードウェアトークンに送るステップと、
格納されている前記認証局の認証局公開鍵Ａｋの証明書を用いて当該ハードウェアトークンにて前記コンピュータ公開鍵Ｃｋが認証され、認証が正しかった場合に、当該ハードウェアトークンによってなされる当該コンピュータ公開鍵Ｃｋを用いた前記署名Ｃｋ’(Ｒ)の認証を前記コンピュータ装置が受けるステップと
を含むハードウェアトークンを用いた認証方法。
【請求項８】
前記ハードウェアトークンによる前記署名Ｃｋ’(Ｒ)の認証の結果、正しいと判断される場合に、前記ハードウェアトークンに格納されているユーザ公開鍵Ｕｋおよびユーザ秘密鍵Ｕｋ’を用いてユーザ認証を行うステップを更に含む請求項７記載のハードウェアトークンを用いた認証方法。
【請求項９】
コンピュータ装置に接続して用いられるハードウェアトークンであって、
前記コンピュータ装置から取得したコンピュータ公開鍵Ｃｋを格納するコンピュータ公開鍵格納手段と、
本人認証に用いられるユーザ公開鍵Ｕｋおよびユーザ秘密鍵Ｕｋ’を格納するユーザ鍵格納手段と、
前記ユーザ鍵格納手段に格納されている前記ユーザ公開鍵Ｕｋを前記コンピュータ装置に提供し、当該ユーザ公開鍵Ｕｋについて認証局から発行された証明書を当該コンピュータ装置から取得して格納する証明書格納手段と
を含むハードウェアトークン。
【請求項１０】
生成した乱数を前記コンピュータ装置に提供する乱数提供手段と、
前記コンピュータ装置のコンピュータ秘密鍵Ｃｋ’を用いて当該コンピュータ装置により前記乱数に署名が施された署名Ｃｋ’(Ｒ)を当該コンピュータ装置から取得する取得手段と、
前記取得手段により取得された前記署名Ｃｋ’(Ｒ)を前記コンピュータ公開鍵格納手段に格納されている前記コンピュータ公開鍵Ｃｋで認証する認証手段と
を更に含む請求項９記載のハードウェアトークン。
【請求項１１】
前記認証手段による前記署名Ｃｋ’(Ｒ)を認証した後、ユーザ認証のために、前記ユーザ公開鍵Ｕｋと、前記ユーザ秘密鍵Ｕｋ’と認証サーバから提供される乱数Ｒ’とをもとに作られた情報(Ｕｋ’(Ｒ’))とを前記コンピュータ装置に提供するユーザ認証手段を更に含む請求項１０記載のハードウェアトークン。
【請求項１２】
コンピュータ装置に接続して用いられるハードウェアトークンであって、
本人認証に用いられるユーザ公開鍵Ｕｋおよびユーザ秘密鍵Ｕｋ’を格納するユーザ鍵格納手段と、
前記ユーザ鍵格納手段に格納されている前記ユーザ公開鍵Ｕｋを前記コンピュータ装置に提供し、当該ユーザ公開鍵Ｕｋについて認証局から発行された証明書を当該コンピュータ装置から取得して格納する証明書格納手段と、
前記認証局の公開鍵Ａｋの証明書を前記コンピュータ装置から取得して格納する認証局証明書格納手段と
含むハードウェアトークン。
【請求項１３】
生成した乱数を前記コンピュータ装置または他のコンピュータ装置に提供する乱数提供手段と、
前記乱数提供手段により前記乱数を提供した前記コンピュータ装置または前記他のコンピュータ装置のコンピュータ秘密鍵Ｃｋ’を用いて前記乱数に署名を施した署名Ｃｋ’(Ｒ)と、当該コンピュータ装置または当該他のコンピュータ装置のコンピュータ公開鍵Ｃｋを当該コンピュータ装置または当該他のコンピュータ装置から取得する取得手段と、
前記取得手段により取得された前記コンピュータ公開鍵Ｃｋを前記認証局の公開鍵Ａｋで認証する第１の認証手段と、
前記第１の認証手段により前記コンピュータ公開鍵Ｃｋが正しいと判断された場合に、前記取得手段により取得された前記署名Ｃｋ’(Ｒ)を当該コンピュータ公開鍵Ｃｋで認証する第２の認証手段と
を含む請求項１２記載のハードウェアトークン。
【請求項１４】
前記第２の認証手段による前記署名Ｃｋ’(Ｒ)を認証した後、前記ユーザ鍵格納手段に格納されている前記ユーザ公開鍵Ｕｋを前記コンピュータ装置または前記他のコンピュータ装置に提供し、前記ユーザ秘密鍵Ｕｋ’を用いた認証を行うユーザ認証手段を更に含む請求項１３記載のハードウェアトークン。
【請求項１５】
コンピュータ装置に接続して用いられるハードウェアトークンであって、
前記コンピュータ装置に対して証明書を発行する認証局の公開鍵Ａｋの証明書を格納する格納手段と、
生成した乱数を前記コンピュータ装置に提供する乱数提供手段と、
前記コンピュータ装置のコンピュータ秘密鍵Ｃｋ’を用いて前記乱数に署名を施した署名Ｃｋ’(Ｒ)と、当該コンピュータ装置のコンピュータ公開鍵Ｃｋを当該コンピュータ装置から取得する取得手段と、
前記取得手段により取得された前記コンピュータ公開鍵Ｃｋを前記認証局の公開鍵Ａｋで認証する第１の認証手段と、
前記第１の認証手段により前記コンピュータ公開鍵Ｃｋが正しいと判断された場合に、前記取得手段により取得された前記署名Ｃｋ’(Ｒ)を当該コンピュータ公開鍵Ｃｋで認証する第２の認証手段と
を含むハードウェアトークン。
【請求項１６】
前記取得手段は、前記認証局にて認証されたコンピュータ証明書Ｃｋ(前記コンピュータ公開鍵Ｃｋを含む)を取得することを特徴とする請求項１５記載のハードウェアトークン。
【請求項１７】
前記第２の認証手段による前記署名Ｃｋ’(Ｒ)を認証した後、ユーザ認証のために、ユーザ公開鍵Ｕｋと、ユーザ秘密鍵Ｕｋ’と認証サーバから提供される乱数Ｒ’とをもとに作られた情報(Ｕｋ’(Ｒ’))とを前記コンピュータ装置に提供するユーザ認証手段を更に含む請求項１５記載のハードウェアトークン。
【請求項１８】
ハードウェアトークンを用いて本人認証を行うコンピュータ装置であって、
生成されたコンピュータ公開鍵Ｃｋおよびコンピュータ秘密鍵Ｃｋ’から当該コンピュータ公開鍵Ｃｋを前記ハードウェアトークンに格納する格納手段と、
前記ハードウェアトークンに格納されているユーザ公開鍵Ｕｋを読み出すユーザ公開鍵読み出し手段と、
読み出された前記ユーザ公開鍵Ｕｋを認証局に登録して、当該認証局から当該ユーザ公開鍵Ｕｋに対する証明書の発行を受ける証明書受領手段と、
前記証明書受領手段により受けた前記ユーザ公開鍵Ｕｋの前記証明書を前記ハードウェアトークンに格納する証明書格納手段と
を含むコンピュータ装置。
【請求項１９】
前記ハードウェアトークンから乱数を取得する乱数取得手段と、
前記乱数取得手段により取得した前記乱数について前記コンピュータ秘密鍵Ｃｋ’を用いて署名を施し、署名Ｃｋ’(Ｒ)を前記ハードウェアトークンに出力する署名出力手段と、
前記格納手段により前記ハードウェアトークンに格納された前記コンピュータ公開鍵Ｃｋを用いて前記署名Ｃｋ’(Ｒ)に対して当該ハードウェアトークンによってなされた認証結果を当該ハードウェアトークンから取得する取得手段と
を更に含む請求項１８記載のコンピュータ装置。
【請求項２０】
ハードウェアトークンを用いて本人認証を行うコンピュータ装置であって、
認証局の認証局公開鍵Ａｋの証明書を取得する証明書取得手段と、
前記証明書取得手段により取得された前記認証局公開鍵Ａｋの証明書を前記ハードウェアトークンに格納する認証局証明書格納手段と、
前記ハードウェアトークンにて格納されているユーザ公開鍵Ｕｋを読み出すユーザ公開鍵読み出し手段と、
読み出された前記ユーザ公開鍵Ｕｋを前記認証局に登録して、当該認証局から当該ユーザ公開鍵Ｕｋに対する証明書の発行を受ける証明書受領手段と、
前記証明書受領手段により受けた前記ユーザ公開鍵Ｕｋの前記証明書を前記ハードウェアトークンに格納する証明書格納手段と
を含むコンピュータ装置。
【請求項２１】
前記証明書取得手段は、前記認証局からコンピュータ公開鍵Ｃｋの証明書を取得することを特徴とする請求項２０記載のコンピュータ装置。
【請求項２２】
ハードウェアトークンを用いて本人認証を行うコンピュータ装置であって、
生成されたコンピュータ公開鍵Ｃｋおよびコンピュータ秘密鍵Ｃｋ’を格納する格納手段と、
前記ハードウェアトークンから乱数を取得する乱数取得手段と、
前記乱数取得手段により取得された乱数に対して前記コンピュータ秘密鍵Ｃｋ’を用いて署名を施し、署名Ｃｋ’(Ｒ)を前記ハードウェアトークンに出力する署名出力手段と、
前記格納手段に格納されているコンピュータ公開鍵Ｃｋを前記ハードウェアトークンに出力する公開鍵出力手段と、
前記ハードウェアトークンに格納されている認証局公開鍵Ａｋの証明書を用いて前記コンピュータ公開鍵Ｃｋが認証され、さらに、認証されたコンピュータ公開鍵Ｃｋを用いて前記署名Ｃｋ’(Ｒ)に対してなされた認証結果を当該ハードウェアトークンから取得する取得手段と
を含むコンピュータ装置。
【請求項２３】
前記公開鍵出力手段は、認証局にて認証されたコンピュータ証明書Ｃｋ(前記コンピュータ公開鍵Ｃｋを含む)を出力することを特徴とする請求項２２記載のコンピュータ装置。
【請求項２４】
接続されるハードウェアトークンを用いて本人認証を行うコンピュータに、
前記コンピュータのコンピュータ公開鍵Ｃｋを前記ハードウェアトークンに格納する機能と、
前記ハードウェアトークンに格納されているユーザ公開鍵Ｕｋを読み出す機能と、
読み出された前記ユーザ公開鍵Ｕｋを認証局に登録して、当該認証局から当該ユーザ公開鍵Ｕｋに対する証明書の発行を受ける機能と、
発行を受けた前記ユーザ公開鍵Ｕｋの前記証明書を前記ハードウェアトークンに格納する機能と
を実現させるプログラム。
【請求項２５】
前記コンピュータに、
前記ハードウェアトークンから乱数を取得する機能と、
取得した前記乱数をコンピュータ秘密鍵Ｃｋ’を用いて署名を施し、署名Ｃｋ’(Ｒ)を前記ハードウェアトークンに出力する機能と、
前記ハードウェアトークンに格納された前記コンピュータ公開鍵Ｃｋを用いて前記署名Ｃｋ’(Ｒ)に対してなされた認証結果を当該ハードウェアトークンから取得する機能と
を更に実現させる請求項２４記載のプログラム。
【請求項２６】
接続されるハードウェアトークンを用いて本人認証を行うコンピュータに、
前記コンピュータのコンピュータ公開鍵Ｃｋの証明書および認証局の認証局公開鍵Ａｋの証明書を取得する機能と、
取得された前記認証局公開鍵Ａｋの証明書を前記ハードウェアトークンに格納する機能と、
前記ハードウェアトークンにて格納されているユーザ公開鍵Ｕｋを当該ハードウェアトークンから読み出す機能と、
読み出された前記ユーザ公開鍵Ｕｋを前記認証局に登録して、当該認証局から当該ユーザ公開鍵Ｕｋの証明書の発行を受ける機能と、
受けた前記ユーザ公開鍵Ｕｋの証明書を前記ハードウェアトークンに格納する機能と
を実現させるプログラム。
【請求項２７】
接続されるハードウェアトークンを用いて本人認証を行うコンピュータに、
生成されたコンピュータ公開鍵Ｃｋおよびコンピュータ秘密鍵Ｃｋ’を格納する機能と、
前記ハードウェアトークンから乱数を取得する機能と、
取得された前記乱数に対して前記コンピュータ秘密鍵Ｃｋ’を用いて署名を施し、署名Ｃｋ’(Ｒ)を前記ハードウェアトークンに出力する機能と、
格納されているコンピュータ公開鍵Ｃｋを前記ハードウェアトークンに出力する機能と、
前記ハードウェアトークンに格納されている認証局公開鍵Ａｋの証明書を用いて前記コンピュータ公開鍵Ｃｋが認証され、さらに、認証されたコンピュータ公開鍵Ｃｋを用いて前記署名Ｃｋ’(Ｒ)に対してなされた認証結果を当該ハードウェアトークンから取得する機能と
を実現させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、本人の認証方法等に係り、より詳しくは、ＩＣカードなどのハードウェアトークンを用いた認証方法等に関する。
【背景技術】
【０００２】
近年、例えば企業における電子商取引が活発化しており、企業に対して個人情報の保護の機運が急速に高まっている。例えば個人情報の流出は、企業の社会的信用を大きく失うことにつながり、企業経営に対する影響が非常に大きい。一方、企業においては、派遣社員の採用や業務のアウトソーシングが一般化し、例えば社内ネットワークにアクセスする人やアクセスの形態が非常に多様化してきている。その結果、社内ネットワークと言えども、従来のユーザＩＤやパスワードだけではシステムをセキュアな状態に保つことが難しくなってきた。また、企業における社内システムの他に、金融における決済システム、教育現場における各種管理システム、行政機関や税務関係等の公共システム、例えば電子マネー等を利用する流通システム等においても、高いレベルでのセキュリティが要求されている。かかる状況から、「盗聴」、「改ざん」、「なりすまし」といった脅威に対応するために、ＩＣカードに代表されるハードウェアトークンを用いて個人認証を行う技術が従来から採用されている。
【０００３】
図１２(ａ),(ｂ)は、ＩＣカードを用いた従来のパスワード認証方式を説明するための図である。図１２(ａ)は証明書のインストール時の処理を説明しており、図１２(ｂ)は証明書の利用時の処理を示している。ここでは、インターネット等のネットワークを介してリモートアクセス装置(図示せず)にアクセスするコンピュータ装置(ＰＣ)２０１、例えばＩＣカードリーダ・ライタに挿入されてコンピュータ装置２０１に接続されるＩＣカード２０２が示されている。また、インターネットを介してコンピュータ装置２０１に接続される認証局２０３が示されている。
【０００４】
従来のパスワード認証方式では、図１２(ａ)に示す証明書のインストール時において、まず、コンピュータ装置２０１からＩＣカード２０２に対してパスワード(ＰＩＮ(Personal Identity Number)コード)の設定がなされる。また、ＩＣカード２０２では、公開鍵と秘密鍵のペアが作成される。その後、コンピュータ装置２０１によってＩＣカード２０２から公開鍵が読み出される。そして、コンピュータ装置２０１は、認証局２０３に対して公開鍵の登録(Enrollment)を申請し、認証局２０３は、この公開鍵の証明書をコンピュータ装置２０１に対して発行する。コンピュータ装置２０１は、ＩＣカード２０２に、認証局２０３から得られた公開鍵の証明書を格納する。
【０００５】
次に、図１２(ｂ)に示す証明書の利用時では、ＩＣカード２０２がコンピュータ装置２０１に接続された後、まず、コンピュータ装置２０１にてＩＣカード２０２のパスワードが入力される。ＩＣカード２０２ではパスワードの照合がなされ、正しいパスワードが入力された場合にはＯＫ(正しい旨)の返事をコンピュータ装置２０１に対して出力する。このようなパスワードの入力と照合によって、ＩＣカード２０２をＩＣカードリーダ・ライタに挿入してコンピュータ装置２０１にアクセスした者(パスワードを入力した者)が本人であることを認証する。その後、コンピュータ装置２０１とＩＣカード２０２との間で、公開鍵の読み出しや秘密鍵による認証等が行われる。
【０００６】
また、文献記載の従来技術として、ＩＣカードに格納した証明書を使用した個人認証の実現方法についての提案がある(例えば、非特許文献１参照。)。この非特許文献１には、個人認証実現への検討課題として、不正使用の防止が取り上げられている。ここでは、不正使用の防止を図るために、他人にＩＣカードを使用されないようにすること、他人がＩＣカードを使用できないようにすること、秘密鍵を盗まれないようにすること、その他、不正使用の早期発見、発覚時の対応、使用不可時の対応等が提案されている。
【０００７】
【非特許文献１】佐藤良夫著  「ＩＣカードによる個人認証」UNISYS TECHNOLOGY REVIEW  第７３号、２００２年５月  (第１３７〜１３９頁)
【発明の開示】
【発明が解決しようとする課題】
【０００８】
このように、図１２(ａ),(ｂ)に示す個人認証方式では、ユーザの公開鍵のディジタル証明書と、対となる秘密鍵とを格納するためにＩＣカード２０２が用いられている。このＩＣカード２０２に格納されるディジタル証明書と秘密鍵とのペアは、ＶＰＮ(Virtual Private Network)等を用いてリモート拠点等からプライベートのネットワークに接続する際のユーザ認証手段として用いられている。即ち、従来では、証明書をコンピュータ装置２０１のＷｅｂブラウザに組み込むのではなく、「鍵」のように持ち運びできるＩＣカード２０２などのハードウェアトークンに証明書を格納することで、本人認証の仕組みをハードウェアトークンを用いて運用している。
【０００９】
しかし、ＩＣカード２０２などのハードウェアトークンは、紛失したり盗難される危険性がある。上述のように、従来では、ハードウェアトークンにアクセスするための一種のパスワードを設定することにより、第三者がハードウェアトークンを入手しても不正にその情報をアクセスできないように保護している。しかしながら、パスワードは、入力している最中に盗み見られたり、ユーザが不用意に書き残したものが漏洩するなど、保護手段としての堅牢性に欠ける。そもそもディジタル証明書を用いて認証を行うのは、そのようなパスワードの欠点を防ぐことが目的であったが、スマートカードのアクセスをパスワードだけで保護するのでは、この部分にセキュリティ上の弱点が残ってしまう。上記非特許文献１には、これらの課題の一部が提起されているが、あくまでも課題の提起に留まっている。上記非特許文献１には、「机の上などに放置しない。」、「生年月日等を用いたＰＩＮを使用しない。」、「秘密鍵については鍵預託方式を採用しない。」、「ログイン日時を表示することで不正使用を早期に発見する。」等の運用上での対策だけが検討されており、不正使用に対する実質的な解決策とはなり得ない。
【００１０】
本発明は、以上のような技術的課題を解決するためになされたものであって、その目的とするところは、ＩＣカードなどのハードウェアトークンを用いて認証を行うシステムのセキュリティレベルを飛躍的に向上させることにある。
また他の目的は、あるハードウェアトークンが特定のコンピュータ装置でのみ利用できるようにする仕組みを提供することにある。
更に他の目的は、あるハードウェアトークンが特定の認証局で証明された複数または単数のコンピュータ装置でのみ利用できるようにする仕組みを提供することにある。
また更に他の目的は、不正アクセスに対するセキュリティレベルを飛躍的に向上させたＩＣカードなどのハードウェアトークンを提供することにある。
【課題を解決するための手段】
【００１１】
かかる目的のもと、本発明は、ハードウェアトークンへのアクセス許可の認証手段として、パスワードではなく、他のディジタル証明書と秘密鍵とのペアを用いる点に主たる特徴がある。即ち、本発明は、コンピュータ装置に接続されるハードウェアトークンを用いた認証方法であって、コンピュータ装置や認証局にて生成されたコンピュータ公開鍵Ｃｋおよびコンピュータ秘密鍵Ｃｋ’から、コンピュータ公開鍵Ｃｋをこのコンピュータ装置によってハードウェアトークンに格納するステップと、ハードウェアトークンに格納されているユーザ公開鍵Ｕｋをこのハードウェアトークンからコンピュータ装置にて読み出すステップと、読み出されたユーザ公開鍵Ｕｋをコンピュータ装置から認証局に登録し、認証局からユーザ公開鍵Ｕｋに対する証明書の発行をコンピュータ装置が受けるステップと、発行を受けたユーザ公開鍵Ｕｋの証明書をコンピュータ装置によってハードウェアトークンに格納するステップとを含む。ここで、このハードウェアトークンは、ユーザ公開鍵Ｕｋおよびユーザ秘密鍵Ｕｋ’を記憶装置に格納するＩＣカードであることを特徴とすることができる。
【００１２】
また本発明が適用されるハードウェアトークンを用いた認証方法は、ハードウェアトークンにて発生した乱数Ｒをハードウェアトークンからコンピュータ装置にて取得するステップと、取得した乱数Ｒをコンピュータ秘密鍵Ｃｋ’で署名した署名Ｃｋ’(Ｒ)を、コンピュータ装置からハードウェアトークンに返すステップと、ハードウェアトークンにて格納されているコンピュータ公開鍵Ｃｋを用いてハードウェアトークンにてなされた署名Ｃｋ’(Ｒ)の認証を、ハードウェアトークンからコンピュータ装置が受けるステップと、かかる署名Ｃｋ’(Ｒ)の認証の結果、正しいと判断される場合に、コンピュータ装置にてハードウェアトークンに格納されているユーザ公開鍵Ｕｋおよびユーザ秘密鍵Ｕｋ’を用いたユーザ認証を行うステップを含む。
【００１３】
更に他の観点から捉えると、本発明が適用されるハードウェアトークンを用いた認証方法は、認証局からコンピュータ公開鍵Ｃｋに対する証明書の発行をコンピュータ装置が受けるステップと、この認証局にて認証された認証局公開鍵Ａｋの証明書をコンピュータ装置にて取得するステップと、取得された認証局公開鍵Ａｋの証明書をコンピュータ装置からハードウェアトークンに格納するステップと、ハードウェアトークンに格納されているユーザ公開鍵Ｕｋをコンピュータ装置にて読み出すステップと、読み出されたユーザ公開鍵Ｕｋをコンピュータ装置から認証局に登録して、この認証局からユーザ公開鍵Ｕｋに対する証明書の発行をコンピュータ装置が受けるステップと、発行を受けたユーザ公開鍵Ｕｋの証明書をコンピュータ装置からハードウェアトークンに格納するステップとを含む。
【００１４】
また更に、本発明が適用されるハードウェアトークンを用いた認証方法は、このハードウェアトークンにて発生した乱数Ｒをコンピュータ装置にて取得するステップと、コンピュータ装置にて乱数Ｒをコンピュータ秘密鍵Ｃｋ’にて署名された署名Ｃｋ’(Ｒ)をコンピュータ装置からハードウェアトークンに送るステップと、認証局にて認証を受けているコンピュータ公開鍵Ｃｋの証明書をコンピュータ装置からハードウェアトークンに送るステップと、格納されている認証局の認証局公開鍵Ａｋの証明書を用いてこのハードウェアトークンにてコンピュータ公開鍵Ｃｋが認証され、認証が正しかった場合に、ハードウェアトークンによってなされるコンピュータ公開鍵Ｃｋを用いた署名Ｃｋ’(Ｒ)の認証をコンピュータ装置が受けるステップと、このハードウェアトークンによる署名Ｃｋ’(Ｒ)の認証の結果、正しいと判断される場合に、ハードウェアトークンに格納されているユーザ公開鍵Ｕｋおよびユーザ秘密鍵Ｕｋ’を用いてユーザ認証を行うステップとを含む。
【００１５】
一方、本発明は、コンピュータ装置に接続して用いられるハードウェアトークンであって、コンピュータ装置から取得したコンピュータ公開鍵Ｃｋをコンピュータ公開鍵格納手段にて格納し、本人認証に用いられるユーザ公開鍵Ｕｋおよびユーザ秘密鍵Ｕｋ’をユーザ鍵格納手段にて格納する。また、証明書格納手段は、格納されているユーザ公開鍵Ｕｋをコンピュータ装置に提供し、ユーザ公開鍵Ｕｋについて認証局から発行された証明書をコンピュータ装置から取得して格納する。また、乱数提供手段は、生成した乱数をコンピュータ装置に提供し、取得手段は、コンピュータ装置のコンピュータ秘密鍵Ｃｋ’を用いてコンピュータ装置により乱数に署名が施された署名Ｃｋ’(Ｒ)をコンピュータ装置から取得する。その後、認証手段は、取得された署名Ｃｋ’(Ｒ)を格納されているコンピュータ公開鍵Ｃｋで認証する。そして、ユーザ認証手段は、ユーザ認証のために、ユーザ公開鍵Ｕｋと、ユーザ秘密鍵Ｕｋ’と認証サーバから提供される乱数Ｒ’とをもとに作られた情報(Ｕｋ’(Ｒ’))とをコンピュータ装置に提供する。
【００１６】
他の観点から捉えると、本発明が適用されるハードウェアトークンは、本人認証に用いられるユーザ公開鍵Ｕｋおよびユーザ秘密鍵Ｕｋ’を格納するユーザ鍵格納手段と、格納されているユーザ公開鍵Ｕｋをコンピュータ装置に提供し、このユーザ公開鍵Ｕｋについて認証局から発行された証明書をコンピュータ装置から取得して格納する証明書格納手段と、認証局の公開鍵Ａｋの証明書をコンピュータ装置から取得して格納する認証局証明書格納手段と含む。
【００１７】
また、生成した乱数をこのコンピュータ装置または他のコンピュータ装置に提供する乱数提供手段と、乱数を提供したコンピュータ装置または乱数を提供した他のコンピュータ装置のコンピュータ秘密鍵Ｃｋ’を用いて乱数に署名を施した署名Ｃｋ’(Ｒ)と、コンピュータ装置または他のコンピュータ装置のコンピュータ公開鍵Ｃｋをコンピュータ装置または他のコンピュータ装置から取得する取得手段と、取得されたコンピュータ公開鍵Ｃｋを認証局の公開鍵Ａｋで認証する第１の認証手段と、この第１の認証手段によりコンピュータ公開鍵Ｃｋが正しいと判断された場合に、取得された署名Ｃｋ’(Ｒ)をコンピュータ公開鍵Ｃｋで認証する第２の認証手段とを含む。
更に、この第２の認証手段による署名Ｃｋ’(Ｒ)を認証した後、ユーザ鍵格納手段に格納されているユーザ公開鍵Ｕｋをコンピュータ装置または他のコンピュータ装置に提供し、ユーザ秘密鍵Ｕｋ’を用いた認証を行うユーザ認証手段を含む。
【００１８】
また更に他の観点から捉えると、本発明が適用されるハードウェアトークンは、コンピュータ装置に対して証明書を発行する認証局の公開鍵Ａｋの証明書を格納する格納手段と、生成した乱数をコンピュータ装置に提供する乱数提供手段と、このコンピュータ装置のコンピュータ秘密鍵Ｃｋ’を用いて乱数に署名を施した署名Ｃｋ’(Ｒ)と、このコンピュータ装置のコンピュータ公開鍵Ｃｋをコンピュータ装置から取得する取得手段と、取得されたコンピュータ公開鍵Ｃｋを認証局の公開鍵Ａｋで認証する第１の認証手段と、この第１の認証手段によりコンピュータ公開鍵Ｃｋが正しいと判断された場合に、取得された署名Ｃｋ’(Ｒ)をコンピュータ公開鍵Ｃｋで認証する第２の認証手段とを含む。
【００１９】
ここで、この取得手段は、認証局にて認証されたコンピュータ証明書Ｃｋ(コンピュータ公開鍵Ｃｋを含む)を取得することを特徴としている。
また、この第２の認証手段による署名Ｃｋ’(Ｒ)を認証した後、ユーザ認証のために、ユーザ公開鍵Ｕｋと、ユーザ秘密鍵Ｕｋ’と認証サーバから提供される乱数Ｒ’とをもとに作られた情報(Ｕｋ’(Ｒ’))とをコンピュータ装置に提供するユーザ認証手段を更に含む。
【００２０】
一方、本発明は、ハードウェアトークンを用いて本人認証を行うコンピュータ装置から把握することができる。このコンピュータ装置は、生成されたコンピュータ公開鍵Ｃｋおよびコンピュータ秘密鍵Ｃｋ’からコンピュータ公開鍵Ｃｋを格納手段によりハードウェアトークンに格納する。そして、このハードウェアトークンに格納されているユーザ公開鍵Ｕｋをユーザ公開鍵読み出し手段により読み出し、読み出されたユーザ公開鍵Ｕｋを認証局に登録して、証明書受領手段によりこの認証局からユーザ公開鍵Ｕｋに対する証明書の発行を受ける。その後、証明書格納手段では、証明書受領手段により受けたユーザ公開鍵Ｕｋの証明書をハードウェアトークンに格納する。
【００２１】
ここで、このハードウェアトークンから乱数を取得する乱数取得手段と、取得した乱数についてコンピュータ秘密鍵Ｃｋ’を用いて署名を施し、署名Ｃｋ’(Ｒ)をハードウェアトークンに出力する署名出力手段と、ハードウェアトークンに格納されたコンピュータ公開鍵Ｃｋを用いて署名Ｃｋ’(Ｒ)に対してハードウェアトークンによってなされた認証結果をこのハードウェアトークンから取得する取得手段とを更に含む。これによって、コンピュータ証明書と秘密鍵の対を保持する正当なコンピュータ装置の利用者だけがこのスマートカードにアクセスすることが可能となる点で好ましい。
【００２２】
しかして、本発明が適用されるコンピュータ装置は、コンピュータ公開鍵Ｃｋおよびコンピュータ秘密鍵Ｃｋ’を鍵生成手段により生成し、生成されたコンピュータ公開鍵Ｃｋを認証局に登録し、この認証局からコンピュータ公開鍵Ｃｋの証明書とこの認証局の認証局公開鍵Ａｋの証明書とを証明書取得手段により取得する。または、認証局により生成されたコンピュータ公開鍵Ｃｋと認証局の認証局公開鍵Ａｋとを証明書取得手段により取得する。そして、取得された認証局公開鍵Ａｋを認証局証明書格納手段によりハードウェアトークンに格納し、格納されているユーザ公開鍵Ｕｋをユーザ公開鍵読み出し手段により読み出す。その後、読み出されたユーザ公開鍵Ｕｋを認証局に登録して、証明書受領手段では、この認証局からユーザ公開鍵Ｕｋに対する証明書の発行を受ける。そして、受けたユーザ公開鍵Ｕｋの証明書を証明書格納手段によってハードウェアトークンに格納する。
【００２３】
また他の観点から捉えると、本発明が適用されるコンピュータ装置は、生成されたコンピュータ公開鍵Ｃｋおよびコンピュータ秘密鍵Ｃｋ’を格納する格納手段と、ハードウェアトークンから乱数を取得する乱数取得手段と、乱数取得手段により取得された乱数に対してコンピュータ秘密鍵Ｃｋ’を用いて署名を施し、署名Ｃｋ’(Ｒ)をハードウェアトークンに出力する署名出力手段と、この格納手段に格納されているコンピュータ公開鍵Ｃｋをハードウェアトークンに出力する公開鍵出力手段と、ハードウェアトークンに格納されている認証局公開鍵Ａｋの証明書を用いてコンピュータ公開鍵Ｃｋが認証され、さらに、認証されたコンピュータ公開鍵Ｃｋを用いて署名Ｃｋ’(Ｒ)に対してなされた認証結果をハードウェアトークンから取得する取得手段とを含む。
【００２４】
更に本発明は、コンピュータにて実行されるプログラムとして把握することができる。このプログラムは、接続されるハードウェアトークンを用いて本人認証を行うコンピュータに、コンピュータ公開鍵Ｃｋをハードウェアトークンに格納する機能と、ハードウェアトークンに格納されているユーザ公開鍵Ｕｋを読み出す機能と、読み出されたユーザ公開鍵Ｕｋを認証局に登録して、この認証局からユーザ公開鍵Ｕｋに対する証明書の発行を受ける機能と、発行を受けたユーザ公開鍵Ｕｋの証明書をハードウェアトークンに格納する機能とを実現させる。
【００２５】
ここで、このコンピュータに、ハードウェアトークンから乱数を取得する機能と、取得した乱数をコンピュータ秘密鍵Ｃｋ’を用いて署名を施し、署名Ｃｋ’(Ｒ)をハードウェアトークンに出力する機能と、ハードウェアトークンに格納されたコンピュータ公開鍵Ｃｋを用いて署名Ｃｋ’(Ｒ)に対してなされた認証結果をハードウェアトークンから取得する機能とを更に実現させることができる。
【００２６】
また他のプログラム発明として、コンピュータに、認証局からコンピュータ公開鍵Ｃｋの証明書および認証局の認証局公開鍵Ａｋの証明書を取得する機能と、取得された認証局公開鍵Ａｋの証明書をハードウェアトークンに格納する機能と、ハードウェアトークンにて格納されているユーザ公開鍵Ｕｋをハードウェアトークンから読み出す機能と、読み出されたユーザ公開鍵Ｕｋを認証局に登録して、この認証局からユーザ公開鍵Ｕｋに対する証明書の発行を受ける機能と、受けたユーザ公開鍵Ｕｋの証明書をハードウェアトークンに格納する機能とを実現させる。
【００２７】
更に他のプログラム発明として、コンピュータに、生成されたコンピュータ公開鍵Ｃｋおよびコンピュータ秘密鍵Ｃｋ’を格納する機能と、ハードウェアトークンから乱数を取得する機能と、取得された乱数に対してコンピュータ秘密鍵Ｃｋ’を用いて署名を施し、署名Ｃｋ’(Ｒ)をハードウェアトークンに出力する機能と、格納されているコンピュータ公開鍵Ｃｋをハードウェアトークンに出力する機能と、ハードウェアトークンに格納されている認証局公開鍵Ａｋの証明書を用いてコンピュータ公開鍵Ｃｋが認証され、さらに、認証されたコンピュータ公開鍵Ｃｋを用いて署名Ｃｋ’(Ｒ)に対してなされた認証結果をハードウェアトークンから取得する機能とを実現させる。
【発明の効果】
【００２８】
本発明によれば、ハードウェアトークンへのアクセス許可の認証手段として、パスワードではなく、例えば他のディジタル証明書と秘密鍵とのペアを用いることで、ハードウェアトークンを用いた場合の不正アクセスに対するセキュリティレベルを飛躍的に向上させることができる。
【発明を実施するための最良の形態】
【００２９】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
〔実施の形態１〕
図１は、本実施の形態(実施の形態１および実施の形態２)が適用される本人認証システムの全体構成を示した図である。本実施の形態が適用される本人認証システムは、リモートアクセスを行うクライアント側のＰＣ(パーソナルコンピュータ)であるコンピュータ装置(ＰＣ)１０、コンピュータ装置１０との間で本人認証を行うハードウェアトークン３０を備えている。また、図１には、インターネット９０を介してコンピュータ装置１０に接続されるものとして、ユーザ証明書やコンピュータ証明書の登録と取得をするための認証局５０、例えば企業における社内システム等からなるリモートシステム７０が示されている。リモートシステム７０は、インターネット９０に接続されてコンピュータ装置１０との間でアクセスを行うリモートアクセス装置７１、リモートアクセス時にユーザ証明書を用いたコンピュータ装置１０の認証を行うリモートアクセス認証サーバ７２を備えている。ユーザ証明書等のこれらのディジタル証明書には、シリアル番号や証明書を発行した認証局５０の名前、有効期限、所有者(ユーザ)名、所有者の公開鍵などの情報が含まれる。
【００３０】
ハードウェアトークン３０は、例えばＩＣカードリーダ・ライタ等に挿入され、例えばＵＳＢ(Universal Serial Bus)を介してコンピュータ装置１０に接続される。このハードウェアトークン３０には、ユーザ公開鍵Ｕｋとユーザ秘密鍵Ｕｋ’とが格納される。ハードウェアトークン３０としては、スマートカード(商標)として総称されるＩＣカードが最も一般的である。また、それ以外として、プラスチックカード、磁気カード、光カード等がハードウェアトークン３０の一つとして挙げられる。また、ＩＣカードの中でもメモリカード、マイクロプロセッサカードなどの接触型の他に、非接触型として、密着型や近接型、近傍型、マイクロ波型などがある。
【００３１】
認証局５０は、ディジタル証明書を発行する第三者機関であり、公開鍵が正当であることを保証している。例えば、株式会社トリトン(Toriton,Inc.)や、日本ベリサイン株式会社等がある。コンピュータ装置１０は、これらの認証局５０に対してユーザ公開鍵Ｕｋの登録を申請し、認証局５０からユーザ公開鍵Ｕｋの証明書を取得している。コンピュータ装置１０は、リモートアクセス認証サーバ７２に対して、ハードウェアトークン３０に格納されているユーザ公開鍵Ｕｋを用いてアクセスする。このリモートアクセス時に、認証局５０により発行されたユーザ証明書を用いてコンピュータ装置１０の認証を行うことで、リモートアクセス認証サーバ７２は一定のセキュリティを確保している。
【００３２】
ここで、ハードウェアトークン３０に格納されているユーザ公開鍵Ｕｋを読み出す際に、コンピュータ装置１０からハードウェアトークン３０に対するアクセス許可が必要である。従来では、このハードウェアトークン３０へのアクセス許可にパスワードが用いられていた。しかしながら、本実施の形態では、従来のパスワードではなく、他のディジタル証明書と秘密鍵とのペアをアクセス許可に用いている。ここで言う「他のディジタル証明書」と「秘密鍵ペア」の例としては、コンピュータ証明書が利用可能である。現在、ウィンドウズ(商標)などのシステムでは、証明書の被発行者(Subject)として、ユーザとは別に、コンピュータ装置１０に対してコンピュータ証明書を発行することができる。コンピュータ証明書を使ったスマートカードの認証では、このコンピュータ証明書と秘密鍵との対を保持する正当なコンピュータの利用者のみが、ハードウェアトークン３０にアクセスすることが可能である。実施の形態１において、ここでいう「正当」とは、狭義には、ハードウェアトークン３０のユーザ証明書を発行されたユーザに用いることが許可された特定のコンピュータ装置１０である。尚、後述する実施の形態２における「正当」とは、特定の認証局５０から発行されたコンピュータ証明書と秘密鍵との対を保持するコンピュータ装置１０である。但し、本実施の形態(実施の形態１および実施の形態２)の方式と従来のパスワード方式による認証は直交関係にあり、本実施の形態の方式だけを認証に用いても構わず、また、パスワード方式と組み合わせて認証に用いても構わない。
【００３３】
図２は、コンピュータ装置１０の構成(ハードウェアおよびソフトウェア)を示したブロック図である。コンピュータ装置１０は、コンピュータ装置１０全体の頭脳として機能しオペレーティングシステム(ＯＳ)２０の制御下で各種プログラムを実行するＣＰＵ１１、ＣＰＵ１１の作業用メインメモリとして用いられるＲＡＭ１２、ハードウェアトークン３０との通信を行うインタフェース(Ｉ/Ｆ)１３を備えている。また、例えばＲＯＭや、補助記憶装置としての例えばハードディスク装置等で構成される記憶装置１４を備えている。記憶装置１４には、コンピュータ公開鍵、コンピュータ秘密鍵、また、必要に応じて認証局公開鍵が格納される。インタフェース１３としては、ハードウェアトークン３０が例えばＩＣカードである場合に、例えばＩＣカードリーダ・ライタ等の装置を含む。
【００３４】
オペレーティングシステム２０は、予めＲＯＭに格納されており、ＣＰＵ１１による実行に際してＲＡＭ１２に書き込まれて実行される。この実行プログラムであるオペレーティングシステム２０は、ハードウェアトークン３０を駆動するハードウェアトークンドライバ２１、ハードウェアトークン３０を設定するためのソフトウェアであるハードウェアトークン設定ユーティリティ２２が設けられている。また、公開鍵や秘密鍵を管理し、認証局５０を利用するためのソフトウェアである公開鍵・秘密鍵管理,認証機関利用ユーティリティ２３が設けられている。
【００３５】
図３は、ハードウェアトークン３０のハードウェア構成を示したブロック図である。ハードウェアトークン３０は、全体を制御するＣＰＵ３１、ＣＰＵ３１の作業用メモリとして用いられる書き換え可能メモリであるＲＡＭ３２、ハードウェアトークン３０の実行プログラムが格納されているＲＯＭ３３を備えている。また、コンピュータ装置１０に接続された例えばＩＣカードリーダ・ライタとの通信を行うインタフェース(Ｉ/Ｆ)３４を備えている。更に、例えば不揮発性メモリからなる安全保護された記憶装置３５を備えている。安全保護された記憶装置３５としては、例えばＥＥＰＲＯＭ(Electrically Erasable Programmable Read-Only Memory)やフラッシュメモリ、ＦｅＲＡＭ(Ferro-electric Random Access Memory)等を用いることができる。この安全保護された記憶装置３５には、ユーザ公開鍵Ｕｋ、ユーザ秘密鍵Ｕｋ’、コンピュータ公開鍵Ｃｋまたは認証局公開鍵Ａｋが格納される。また、必要に応じて、パスワード設定を行う際に用いられるパスコードが格納される場合がある。     
【００３６】
次に、図４〜図７を用いて、上述した機能構成を用いた実施の形態１における本人認証方法について説明する。尚、以下の説明にて、「ユーザ証明書Ｕｋ」は認証局５０で証明されたユーザ公開鍵Ｕｋ、「コンピュータ証明書Ｃｋ」は認証局５０で証明されたコンピュータ公開鍵Ｃｋ、「認証局証明書Ａｋ」は認証局５０で証明された認証局公開鍵Ａｋの意味で用いている。
【００３７】
図４は、実施の形態１におけるユーザ証明書インストール時に着目した処理の概要を説明するための図である。まずコンピュータ装置１０は、ハードウェアトークン３０にコンピュータ公開鍵Ｃｋを格納する。また、コンピュータ装置１０は、ハードウェアトークン３０から、このハードウェアトークン３０にて作成されたユーザ公開鍵Ｕｋとユーザ秘密鍵Ｕｋ’の中から、ハードウェアトークン３０のメモリに格納されているユーザ公開鍵Ｕｋを読み出す。そして、コンピュータ装置１０は、ユーザ公開鍵Ｕｋの登録を認証局５０に申請し、認証局５０からユーザ公開鍵Ｕｋの証明書を取得する。その後、コンピュータ装置１０は、ユーザ証明書Ｕｋ(認証局５０にて証明されたユーザ公開鍵Ｕｋ)をハードウェアトークン３０に格納する。このように、ハードウェアトークン３０にユーザ証明書Ｕｋをインストールする際に、ないしはそれに先立って、そのユーザが利用可能なコンピュータ装置１０のコンピュータ証明書Ｃｋもインストールしておく。
【００３８】
図５は、実施の形態１におけるユーザ証明書利用時に着目した処理の概要を説明するための図である。まず、ハードウェアトークン３０から乱数Ｒを発生し、コンピュータ装置１０に送る。コンピュータ装置１０側は、乱数Ｒをコンピュータ秘密鍵Ｃｋ’で署名したＣｋ’(Ｒ)をハードウェアトークン３０に返す。ハードウェアトークン３０側でＣｋ’(Ｒ)をＣｋで認証し、正しければコンピュータ装置１０による以降のアクセスを許可する。以降のアクセスが許可されることで、コンピュータ装置１０は、ハードウェアトークン３０に対するユーザ公開鍵Ｕｋの読み出しやユーザ秘密鍵Ｕｋ’による認証等を行うことができる。
【００３９】
図６は、図４に示したユーザ証明書インストール時の処理を示した制御フローである。ここでは、図２および図３に示すブロック図を引用して説明する。まず、コンピュータ装置１０のＣＰＵ１１にて実行される公開鍵・秘密鍵管理,認証機関利用ユーティリティ２３では、コンピュータ公開鍵Ｃｋ、コンピュータ秘密鍵Ｃｋ’の生成がなされる(ステップ１０１)。コンピュータ装置１０のハードウェアトークン設定ユーティリティ２２は、各々のＩ/Ｆ(コンピュータ装置１０のインタフェース１３およびハードウェアトークン３０のインタフェース３４)を介して、ハードウェアトークン３０の安全保護された記憶装置３５に対してコンピュータ公開鍵Ｃｋを格納する(ステップ１０２)。
【００４０】
ハードウェアトークン３０のＣＰＵ３１は、ユーザ公開鍵Ｕｋ、ユーザ秘密鍵Ｕｋ’を生成し(ステップ１０３)、ハードウェアトークン３０の安全保護された記憶装置３５に格納する。コンピュータ装置１０の公開鍵・秘密鍵管理,認証機関利用ユーティリティ２３は、各々のＩ/Ｆを介して、ハードウェアトークン３０からユーザ公開鍵Ｕｋを読み出し(ステップ１０４)、認証局５０に対してユーザ公開鍵Ｕｋの登録を申請する(ステップ１０５)。認証局５０では、ユーザ公開鍵Ｕｋへ署名がなされ(ステップ１０６)、コンピュータ装置１０に対してユーザ公開鍵Ｕｋのユーザ証明書が発行される(ステップ１０７)。コンピュータ装置１０のハードウェアトークン設定ユーティリティ２２は、各々のＩ/Ｆを介して、ハードウェアトークン３０の安全保護された記憶装置３５に対してユーザ証明書Ｕｋ(認証局５０で認証されたユーザ公開鍵Ｕｋ)を格納する(ステップ１０８)。以上によって、ユーザ証明書インストール時の処理が終了する。
【００４１】
図７は、図５に示したユーザ証明書利用時の処理を示した制御フローである。ハードウェアトークン３０のＣＰＵ３１は、乱数Ｒを生成し(ステップ１５１)、各々のＩ/Ｆ(ハードウェアトークン３０のインタフェース３４およびコンピュータ装置１０のインタフェース１３)を介して、コンピュータ装置１０に乱数Ｒを送る(ステップ１５２)。コンピュータ装置１０では、乱数Ｒをコンピュータ秘密鍵Ｃｋ’で署名したＣｋ’(Ｒ)が生成され(ステップ１５３)、生成されたＣｋ’(Ｒ)が各々のＩ/Ｆを介してハードウェアトークン３０に送られる(ステップ１５４)。
【００４２】
ハードウェアトークン３０のＣＰＵ３１は、コンピュータ装置１０から送られたＣｋ’(Ｒ)をコンピュータ公開鍵Ｃｋで認証する(ステップ１５５)。ＣＰＵ３１では、認証によりＣｋ’(Ｒ)が正しいか否かが判断され(ステップ１５６)、正しくなければリジェクト(Reject)処理が行われる(ステップ１５７)。正しければ、正しかった旨(ＯＫ)の情報がコンピュータ装置１０に通知される(ステップ１５８)。その後、コンピュータ装置１０では、ハードウェアトークン３０の安全保護された記憶装置３５に格納されたユーザ公開鍵Ｕｋやユーザ秘密鍵Ｕｋ’を用いてユーザ認証(本人認証)され、各種処理が実行される(ステップ１５９)。認証は、リモートアクセス認証サーバ７２で行われるが、ハードウェアトークン３０は、ユーザ認証のために、ユーザ公開鍵Ｕｋと、ユーザ秘密鍵Ｕｋ’とリモートアクセス認証サーバ７２から提供される乱数Ｒ’をもとに作られた情報(Ｕｋ’(Ｒ’))をコンピュータ装置１０に提供する。コンピュータ装置１０では、この情報(Ｕｋ’(Ｒ’))を用いて、図１に示すリモートアクセス認証サーバ７２に対するリモートアクセス等を実行する。
【００４３】
このように、実施の形態１によれば、ハードウェアトークン３０に格納されたコンピュータ公開鍵Ｃｋに対応するコンピュータ秘密鍵Ｃｋ’を有するコンピュータ装置１０だけが、ハードウェアトークン３０にアクセスすることが可能となる。これによって、ハードウェアトークン３０を用いた不正使用に耐えるセキュリティレベルを向上させることができる。尚、ここでは、説明のためにコンピュータ証明書Ｕｋを一種類としたが、複数のコンピュータ証明書を用いても構わない。
【００４４】
〔実施の形態２〕
実施の形態１では、正当である特定のコンピュータ装置１０だけがハードウェアトークン３０を使用することができた。実施の形態２ではこれを拡張し、認証局５０の公開鍵で認証されているコンピュータ装置１０がハードウェアトークン３０を使用することができるものとした。尚、実施の形態１と同様な機能については同様な符号を用い、ここではその詳細な説明を省略する。
【００４５】
図８は、実施の形態２におけるユーザ証明書インストール時に着目した処理の概要を説明するための図である。まずコンピュータ装置１０は、コンピュータ公開鍵Ｃｋの登録を認証局５０に申請し、認証局５０からコンピュータ公開鍵Ｃｋの証明書と、認証局５０の公開鍵Ａｋ(認証局公開鍵Ａｋ)の発行を受ける。そして、コンピュータ装置１０は、ハードウェアトークン３０にこの認証局公開鍵Ａｋを格納する。一方、ハードウェアトークン３０は、ユーザ公開鍵Ｕｋとユーザ秘密鍵Ｕｋ’のペアを作成する。コンピュータ装置１０は、ハードウェアトークン３０からユーザ公開鍵Ｕｋを読み出し、ユーザ公開鍵Ｕｋの登録を認証局５０に申請し、認証局５０からユーザ公開鍵Ｕｋの証明書を取得する。そして、コンピュータ装置１０は、ハードウェアトークン３０にユーザ公開鍵Ｕｋの証明書を格納する。これによって、ハードウェアトークン３０にユーザ公開鍵Ｕｋの証明書をインストールする際に、ないしはそれに先立って、そのユーザが利用を認める(複数の)コンピュータ装置１０に対してコンピュータ公開鍵Ｃｋを認証する認証局５０で証明された認証局公開鍵Ａｋを共にインストールする。
【００４６】
図９は、実施の形態２におけるユーザ証明書利用時に着目した処理の概要を説明するための図である。まず、ハードウェアトークン３０から乱数Ｒを発生し、コンピュータ装置１０に送る。コンピュータ装置１０側は、乱数Ｒをコンピュータ秘密鍵Ｃｋ’で署名したＣｋ’(Ｒ)を作り、コンピュータ証明書(コンピュータ公開鍵Ｃｋを含む)と共にハードウェアトークン３０に送る。ハードウェアトークン３０側では、認証局５０で証明された認証局公開鍵Ａｋを用いてＣｋを認証する。Ｃｋが正しければ、次にＣｋを用いてＣｋ’(Ｒ)を認証する。Ｃｋ’(Ｒ)が正しければコンピュータ装置１０による以降のアクセスを許可する。以降のアクセスが許可されることで、コンピュータ装置１０は、ハードウェアトークン３０に対するユーザ公開鍵Ｕｋの読み出しやユーザ秘密鍵Ｕｋ’による認証等を行うことができる。
【００４７】
図１０は、図８に示したユーザ証明書インストール時の処理を示した制御フローである。ここでは、図２および図３に示すブロック図を引用して説明する。まず、コンピュータ装置１０のＣＰＵ１１にて実行される公開鍵・秘密鍵管理,認証機関利用ユーティリティ２３は、コンピュータ公開鍵Ｃｋ、コンピュータ秘密鍵Ｃｋ’を生成し(ステップ２０１)、認証局５０に対してコンピュータ公開鍵Ｃｋの登録を申請する(ステップ２０２)。認証局５０では、コンピュータ公開鍵Ｃｋへの署名がなされ(ステップ２０３)、コンピュータ公開鍵Ｃｋの証明書がコンピュータ装置１０に対して発行される(ステップ２０４)。また、認証局５０からコンピュータ装置１０に対して認証局５０で証明された認証局証明書Ａｋが発行される(ステップ２０５)。
【００４８】
コンピュータ装置１０のハードウェアトークン設定ユーティリティ２２は、各々のＩ/Ｆ(コンピュータ装置１０のインタフェース１３およびハードウェアトークン３０のインタフェース３４)を介して、ハードウェアトークン３０の安全保護された記憶装置３５に対して、認証局５０で証明された認証局証明書Ａｋを格納する(ステップ２０６)。ハードウェアトークン３０のＣＰＵ３１は、ユーザ公開鍵Ｕｋ、ユーザ秘密鍵Ｕｋ’を生成し(ステップ２０７)、ハードウェアトークン３０の安全保護された記憶装置３５に格納する。コンピュータ装置１０の公開鍵・秘密鍵管理,認証機関利用ユーティリティ２３は、各々のＩ/Ｆを介して、ハードウェアトークン３０からユーザ公開鍵Ｕｋを読み出し(ステップ２０８)、認証局５０に対してユーザ公開鍵Ｕｋの登録を申請する(ステップ２０９)。認証局５０では、ユーザ公開鍵Ｕｋへ署名がなされ(ステップ２１０)、コンピュータ装置１０に対してユーザ公開鍵Ｕｋに対するユーザ証明書Ｕｋが発行(送信)される(ステップ２１１)。コンピュータ装置１０のハードウェアトークン設定ユーティリティ２２は、各々のＩ/Ｆを介して、ハードウェアトークン３０の安全保護された記憶装置３５に対して認証局５０にて証明されたユーザ証明書Ｕｋを格納する(ステップ２１２)。以上によって、ユーザ証明書インストール時の処理が終了する。
【００４９】
図１１は、図９に示したユーザ証明書利用時の処理を示した制御フローである。ハードウェアトークン３０のＣＰＵ３１は、乱数Ｒを生成し(ステップ２５１)、各々のＩ/Ｆ(ハードウェアトークン３０のインタフェース３４およびコンピュータ装置１０のインタフェース１３)を介して、コンピュータ装置１０に乱数Ｒを送る(ステップ２５２)。コンピュータ装置１０では、乱数Ｒをコンピュータ秘密鍵Ｃｋ’で署名したＣｋ’(Ｒ)が生成され(ステップ２５３)、生成されたＣｋ’(Ｒ)が各々のＩ/Ｆを介してハードウェアトークン３０に送られる(ステップ２５４)。また、これと同時に、認証局５０で認証されているコンピュータ公開鍵Ｃｋ(コンピュータ証明書Ｃｋ)もハードウェアトークン３０に送られる(ステップ２５５)。
【００５０】
ハードウェアトークン３０のＣＰＵ３１は、安全保護された記憶装置３５に格納されている認証局公開鍵Ａｋを用いて、コンピュータ装置１０から送られたコンピュータ証明書Ｃｋを認証する(ステップ２５６)。ハードウェアトークン３０では、認証によりＣｋが正しいか否かが判断され(ステップ２５７)、正しくなければリジェクト(Reject)処理が行われる(ステップ２５８)。正しければ、コンピュータ装置１０から送られたＣｋ’(Ｒ)を、このＣｋで認証する(ステップ２５９)。そして、Ｃｋ’(Ｒ)が正しいか否かが判断され(ステップ２６０)、正しくなければリジェクト(Reject)処理が行われる(ステップ２６１)。正しければ、正しかった旨(ＯＫ)の情報がコンピュータ装置１０に通知される(ステップ２６２)。その後、コンピュータ装置１０は、ハードウェアトークン３０の安全保護された記憶装置３５に格納されたユーザ公開鍵Ｕｋやユーザ秘密鍵Ｕｋ’を用いてユーザ認証(本人認証)され、各種処理を実行する(ステップ２６３)。認証は、リモートアクセス認証サーバ７２で行われるが、ハードウェアトークン３０は、ユーザ認証のために、ユーザ公開鍵Ｕｋとユーザ秘密鍵Ｕｋ’とをもとに作られた情報(Ｕｋ’(Ｒ))をコンピュータ装置１０に提供する。コンピュータ装置１０では、この情報(Ｕｋ’(Ｒ))を用いて、図１に示すリモートアクセス認証サーバ７２に対するリモートアクセス等を実行する。
【００５１】
このように、実施の形態２によれば、コンピュータ公開鍵Ｃｋが認証局公開鍵Ａｋで認証された場合に正しいコンピュータ公開鍵Ｃｋであると判断し、そのコンピュータ公開鍵Ｃｋを用いて認証している。これによって、認証局５０で認証された正しいコンピュータ公開鍵Ｃｋとコンピュータ秘密鍵Ｃｋ’を持つコンピュータ装置１０であれば、ハードウェアトークン３０にアクセスすることが可能となる。これによって、ハードウェアトークン３０を用いた不正使用に対するセキュリティレベルを向上させることができると共に、特定の認証局５０で認証された複数のコンピュータ装置１０にてハードウェアトークン３０を利用可能であり、利便性を大幅に向上させることができる。尚、本実施の形態では、認証局証明書Ａｋ(認証局５０で証明された認証局公開鍵Ａｋ)を一種類としたが、複数であっても問題ない。また、本実施の形態では、コンピュータ公開鍵Ｃｋとコンピュータ秘密鍵Ｃｋ’をコンピュータ装置１０で生成されることで説明したが、場合によっては、認証局５０が直接、生成し、証明書を発行する形態もある。また、同様に、本実施の形態ではユーザ公開鍵Ｕｋとユーザ秘密鍵Ｕｋ’とがハードウェアトークン３０で生成されるように説明したが、場合によっては認証局５０で生成される場合もある。
【００５２】
以上詳述したように、本実施の形態では、ハードウェアトークン３０に対するアクセス許可の認証手段として、パスワードではなく、他のディジタル証明書(認証局５０で認証された公開鍵)と秘密鍵のペアを用いている。これによって、ハードウェアトークン３０を利用できるコンピュータ装置１０を特定することが可能となり、ハードウェアトークン３０の不正使用を抑制でき、システムのセキュリティを大幅に向上させることが可能となる。
【産業上の利用可能性】
【００５３】
本発明の活用例としては、ノートＰＣやデスクトップ型ＰＣ等の各種コンピュータ装置、ＩＣカードなどのハードウェアトークン、およびこれらを用いたネットワークシステムが挙げられる。また、これらのコンピュータ装置にて実行されるプログラムが活用例として挙げられる。
【図面の簡単な説明】
【００５４】
【図１】本実施の形態(実施の形態１および実施の形態２)が適用される本人認証システムの全体構成を示した図である。
【図２】コンピュータ装置の構成(ハードウェアおよびソフトウェア)を示したブロック図である。
【図３】ハードウェアトークンのハードウェア構成を示したブロック図である。
【図４】実施の形態１におけるユーザ証明書インストール時に着目した処理の概要を説明するための図である。
【図５】実施の形態１におけるユーザ証明書利用時に着目した処理の概要を説明するための図である。
【図６】図４に示したユーザ証明書インストール時の処理を示した制御フローである。
【図７】図５に示したユーザ証明書利用時の処理を示した制御フローである。
【図８】実施の形態２におけるユーザ証明書インストール時に着目した処理の概要を説明するための図である。
【図９】実施の形態２におけるユーザ証明書利用時に着目した処理の概要を説明するための図である。
【図１０】図８に示したユーザ証明書インストール時の処理を示した制御フローである。
【図１１】図９に示したユーザ証明書利用時の処理を示した制御フローである。
【図１２】(ａ),(ｂ)は、ＩＣカードを用いた従来のパスワード認証方式を説明するための図である。
【符号の説明】
【００５５】
１０…コンピュータ装置(ＰＣ)、１１…ＣＰＵ、１２…ＲＡＭ、１３…インタフェース(Ｉ/Ｆ)、１４…記憶装置、２０…オペレーティングシステム(ＯＳ)、２１…ハードウェアトークンドライバ、２２…ハードウェアトークン設定ユーティリティ、２３…公開鍵・秘密鍵管理,認証機関利用ユーティリティ、３０…ハードウェアトークン、３１…ＣＰＵ、３２…ＲＡＭ、３３…ＲＯＭ、３４…インタフェース(Ｉ/Ｆ)、３５…安全保護された記憶装置、５０…認証局、７０…リモートシステム、７１…リモートアクセス装置、７２…リモートアクセス認証サーバ、９０…インターネット
【図１】
2005242745.tif 000003
【図２】
2005242745.tif 000004
【図３】
2005242745.tif 000005
【図４】
2005242745.tif 000006
【図５】
2005242745.tif 000007
【図６】
2005242745.tif 000008
【図７】
2005242745.tif 000009
【図８】
2005242745.tif 000010
【図９】
2005242745.tif 000011
【図１０】
2005242745.tif 000012
【図１１】
2005242745.tif 000013
【図１２】
2005242745.tif 000014