統合入力デバイスおよび統合出力デバイスを備えるUSBコンプライアントパーソナルキー
【課題】コンパクトで内臓式のパーソナルキーを提供すること。
【解決手段】コンパクトで内臓式のパーソナルキーが開示される。パーソナルキーは、ホスト処理デバイス(102)、メモリ(214)、およびプロセッサ(212)に取り外し可能な結合をし得るUSBコンプライアントインターフェース(206)を含む。プロセッサ(212)は、メモリ(214)に格納可能なデータへのホスト処理デバイス(102)条件付アクセスおよびパーソナルキーで格納されるファイルを管理するように要求し、ファイルのデータに基いて実行される計算機能性を提供する。
【解決手段】コンパクトで内臓式のパーソナルキーが開示される。パーソナルキーは、ホスト処理デバイス(102)、メモリ(214)、およびプロセッサ(212)に取り外し可能な結合をし得るUSBコンプライアントインターフェース(206)を含む。プロセッサ(212)は、メモリ(214)に格納可能なデータへのホスト処理デバイス(102)条件付アクセスおよびパーソナルキーで格納されるファイルを管理するように要求し、ファイルのデータに基いて実行される計算機能性を提供する。
【発明の詳細な説明】
【技術分野】
【0001】
(発明の背景)
1.(発明の分野)
本発明は、コンピュータ周辺機器、特に、一体化された入力および出力デバイスを有し、セキュリティの向上を提供するパーソナルキーに関する。
【背景技術】
【0002】
2.(関連技術の説明)
過去十年において、家および職場の両方でパーソナルコンピュータの使用が広がってきた。これらのコンピュータにより、たった数十年前の大規模メインフレームコンピュータの機能性を実質的に超えるハイレベルの機能性が格安で多くの人々に提供される。その傾向は、モバイルベースで高性能のコンピューティングパワーを提供するラップトップおよびノートコンピュータの人気が高くなっていることにより、さらに証明される。
【0003】
パーソナルコンピュータの広範な利用可能性は、個人間通信にも大きなインパクトをもたらした。ほんの十年前、電話またはファックスマシーンが、事実上、高速ビジネス通信の唯一のメディアであった。今日、電子メール(eメール)を介して通信する企業および個人の数は、大幅に増加している。パーソナルコンピュータはまた、インターネットの出現で有用となり、商業媒体として多数使用されている。
【0004】
確かに有用ではあるが、個人通信、商業、およびビジネスでコンピュータが用いられるにつれ、多くの他に類を見ない問題が生じてきている。
【0005】
第1に、コンピュータの使用の増加により、ソフトウェア開発者の実収入を犠牲にするコンピュータソフトウェアの広範な不正使用および不正コピーが生じている。ソフトウェアの不正コピーまたは不正使用は法律違反であるが、海賊ソフトウェアの広範な利用可能性および施行の困難さにより、ソフトウェア著作権侵害を禁止する方法の有効性が制限されている。
【0006】
ソフトウェア開発者およびコンピュータ設計者等には、ソフトウェア著作権侵害の問題に取り組む技術的な解決手段を求めている。1つの解決手段は、ホストコンピュータの入力/出力(I/O)ポートに結合されるハードウェア鍵または「ドングル(dongle)」として公知である外部デバイスを用いることである。
【0007】
そのようなハードウェア鍵の使用は、ソフトウェア著作権侵害を減らす効率のよい方法であるが、現在のところ、それらの使用は高価なソフトウェア製品に実質的に制限されている。部分的には、ハードウェア鍵は非常に高価であること、保護プログラムの使用が望まれる場合はいつもハードウェア鍵を備えることが面倒であることをアプリケーションプログラムユーザが嫌うことが理由となり、ハードウェア鍵は一般的なソフトウェアパッケージに広くは適用されていない。多くの場合、ハードウェア鍵は、1つのアプリケーションのみに使用するように設計されている。同じコンピュータでの複数のアプリケーションの使用が望まれる場合、複数のハードウェア鍵が同時に動作しなければならない。
【0008】
eメールは、電話およびファクシミリマシーンに対する大きな利点を示すが、eメールもまた、問題を抱えている。これらの問題の1つは、セキュリティに関する。電話回線は比較的安全であり、個人の情報の伝送に関する法的に認証されている方法であるが、eメールは、一般的に全く安全でないインターネットを通じて送信される。個人の電子メッセージの送信では、それらのメッセージは、オープンでなく、許可されていない相手に開示されないことを保障されなければならない。さらに、電子メッセージの受信人は、送信者のアイデンティティ、およびそのメッセージが送信の間にいくつかの箇所を改竄されていないことを確かめるべきである。
【0009】
インターネット通信のパケット交換の特性は、通信の中断のリスクを最小化するが、決心の固い不正使用者がプロテクトされていないeメールメッセージへのアクセスを得ることは難しいことではない。
【0010】
送信間の電子メッセージの保全性を確実にするための多くの方法が開発されている。単純な暗号化は、データを安全にする最もありふれた方法である。公開鍵および復号鍵の両方を用いるDES(データ暗号規格)を例とするシークレットキー暗号と公開鍵暗号化方法の両方が実行される。公開および復号鍵暗号方法により、メッセージが許可されていない相手に読まれること、または、その内容を改竄されることを心配をせずにユーザがインターネットおよびeメールメッセージを送信することを可能とする。しかし、公開鍵暗号化方法は、受信者が公開鍵の有効性を認証出来ず、電子メッセージの送信者のアイデンティティを検査出来ないので、鍵暗号方法はメッセージの受信者をプロテクトしない。
【0011】
デジタル認定の使用は、この問題に1つの解決策を与える。デジタル認定は、メッセージへ署名した個人の、アイデンティティおよび公開鍵を証明する署名書類である。デジタル認定により、受信者が公開鍵の許可を検査することを可能になる。しかし、典型的なユーザは、eメールを用いて、数百人の相手と通信し得、数台あるコンピュータの内のいずれかを用いて、eメールを行い得る。それ故数台のコンピュータプラットフォームにわたる多くのデジタル認定を管理する手段が必要とされる。
【0012】
インターネット取引により、新たな問題が生じる。インターネットを用いて製品またはサービスの購入を求めるユーザは、自分のクレジットカードナンバー等が、妥協ではなく安全であることを保証されなければならない。同時に、ベンダーは、サービスおよび製品が、支払いをした相手にのみ配達されることを保証されなければならない。多くの場合、これらの目的は、パスワードの使用によって達成される。しかし、インターネット取引がより一般的になるにつれて、客は、自分が全てのトランザクションのために少数のパスワードを用いるか、または多数のパスワードを覚えるという困難な仕事に直面するかのどちらかに決定しなければならない羽目に陥っていることを知る。パスワードの任意の開示は他の部分の開示につながり得るので、全てのトランザクションに少数のパスワードを用いることは、本質的にセキュリティの妥協である。多数のパスワードを用いてさえ、セキュリティには妥協することになり得る。客は、通常自らパスワードを忘れるので、多くのインターネットベンダーは、出生地、母の旧姓、および/または社会保険番号を例とする他の個人情報を提供することによって、ユーザが自分のパスワードを忘れないようにするオプションを提供する。この特徴は、インターネット取引をプロモートするためにはしばしば必要であるが、実際、公に利用可能な「秘密」情報に依存することによって、パスワードにひどく妥協する。
【0013】
ユーザは、多数のパスワードを忘れないようにすることを厭わず、忘れないように出来る場合でさえ、パスワードセキュリティ技術は、ユーザにとって比較的思い出し易いパスワードを選ぶ傾向があるという事実により、しばしば妥協したものになる。実際、ユーザが真にランダムなパスワードを選ぶことはめったにない。広範な多様なコンピュータプラットホームに格納され得、使用のために呼び出され得るランダムなパスワードを生成し、管理する手段が必要とされる。
【0014】
インターネット通信はまた、「クッキー(cookies)」の使用が増加するのがわかる。クッキーは、インターネットサーバからユーザコンピュータの記憶装置にダウンロードされ得るユーザのパターンおよび嗜好の記憶をとるデータおよびプログラムを含む。一般的には、クッキーは、アドレスの範囲を含む。ブラウザによりそれらのアドレスに再度出会う場合、アドレスに関連するクッキーは、インターネットサーバに提供される。例えば、ユーザのパスワードがクッキーとして格納されるならば、2回目および次回のサービスへのアクセスをする場合に、クッキーの使用により、ユーザは再度パスワードを入力する必要なく、サービスまたは製品を要求することができる。
【0015】
しかし有益であるとしても、クッキーもまた、ダークサイドを有し得る。多くのユーザは、コンピュータのハードドライブにクッキーを格納することに反対する。これらのことに応じて、インターネットブラウザソフトウェアにより、ユーザは、オプションを選択してクッキーが格納されるまたは使用される前に通知され得る。この解決策の困難さは、これにより通常ユーザにクッキーを受け取るように促すメッセージが過剰になる。妥協を許さない手段よりよい解決策は、クッキーの格納および/または使用を可能にするが、その格納および使用をユーザの指定基準と一致するように切り離して制御することである。
【0016】
スマートカードが上記の機能性のいくつかを提供するが、スマートカードは理想的な解決をもたらさない。第1に、デジタル認定およびパスワードに対してパーソナルキーが単一の、広く許容された、安全なレポジトリを提供する場合、パーソナルキーは、ユーザに重要なだけである。スマートカード読み取り装置は、比較的高価であり、少なくとも米国では普及しておらず、それゆえ仕事に向いていない。
【0017】
第2に、スマートカードは、カードに直接データを入力することを提供しない。これにより、不正ソフトウェアの可能なスニファ(sniffer)モジュールに対してスマートカードを開ける。スマートカード読み取り装置インターフェースをモニタして、ユーザ個人のアイデンティティまたはパスワード情報を判定することができる。この問題は、ユーザが未知のまたは信頼性のないスマートカード読み出し装置を用いる状況で、特に問題となる。直接入力デバイスの欠如はまた、スマートカード読み取り装置が利用不可能である比較的ありふれた状況において、ユーザがスマートカード関連機能を実行することを妨げる。
【0018】
第3に、スマートカードが読み取り装置内になければ、データはスマートカードでアクセスできない。これにより、スマートカード読み出し装置に位置付けされ得るまで、ユーザがスマートカードに格納されたデータ(すなわち、格納されたパスワード)をみることを防ぐ。スマートカード読み取り装置(特に信頼性の高い装置)を見つけることが困難であり得る場合、これは、実質的にカードの有用性を制限する。もちろん、ユーザは無造作に紙にパスワードを書き留めることができるが、これはカードのデータ全てのセキュリティを妥協したものにし、中心的な、セキュリティが高く、携帯可能な個人データのレポジトリを提供する目的と矛盾してる。
【0019】
前述から、脆弱な外部インターフェースの使用を要求することなく、ユーザがパスワードおよびデジタル認定を格納し、検索することが可能とするパーソナルキーの必要性を理解し得る。
【発明の概要】
【課題を解決するための手段】
【0020】
(発明の要旨)
本発明は、ユニバーサルシリアルバス(USB)を例とする市販のI/Oインターフェースと対応するフォームファクタにおいて、パーソナルキーのこれらの必要性全てを満たす。パーソナルキーは、コピーおよび不正使用を防ぐソフトウェア保護スキームを実行するプロセッサおよびメモリを含む。パーソナルキーは、デジタル認定の格納および管理を提供し、ユーザが自分のデジタル認定の全てをある媒体に格納し、プラットフォームからプラットフォームへの移植を可能にする。パーソナルキーは、多くのパスワードを生成、格納、および管理を提供し、付加的なセキュリティを提供し、ユーザが多数のパスワードを覚える仕事から解放する。パーソナルキーは、クッキーおよび他のJava(R)実行ソフトウェアプログラムを格納し、ユーザがクッキーを除去可能なセキュリティフォームファクタで受け取ることを可能にする。これらの特性は、本発明が仮想プライベートネットワーク(VPN)で使用される場合に、特に有用である。本発明はまた、いくつかのアプリケーションに対して使用され得る。
【0021】
パーソナルキーは、ユーザの繊細な情報を全て実質的に格納することが可能であるので、パーソナルキーは、可能な限りのセキュリティを保持することが重要である。パーソナルキーの1実施形態はまた、指紋データを例とするバイオメトリックスを測定するように配置されるバイオメトリックスセンサーを含む。バイオメトリックスセンサーは、個人が保持する(指紋を例とする)鍵の特徴を測定し、鍵をオーナーが、実際にその鍵のオーナーであることを確認する。
【0022】
パーソナルキーは、ユーザが使用し、様々なコンピュータプラットフォームと双方向に交流する必要のある大量のデータの単一の安全なレポジトリを表すので、パーソナルキーは、多くの様々なコンピュータおよび周辺機器とインタフェース(すなわち、データを伝送および受信)し得ることがまた、重要である。パーソナルキーの1実施形態は、赤外線(IR)トランシーバを例とする電磁波トランスセプション(transception)デバイスを含む。このトランシーバにより、パーソナルキーは、物理的に結合せずに、広範囲で様々なコンピュータおよび周辺機器と情報を交換することを可能にする。
【0023】
本発明は、ネットワークサービスまたはパスワード、クッキー、デジタル認定または他の場合、スマートカードが用いられるいかなる場所へのアクセスを制御することによく適応しており、以下の、
・インターネットプロトコルセキュリティ(IPSec)、ポイント対ポイントトンネリングプロトコル(PPTP)、パスワード認証プロトコル(PAP)、チャレンジハンドシェイク認証プロトコル(CHAP)、遠隔アクセスダイアルインユーザサービス(RADIUS)、端末アクセス制御装置アクセス制御システム(TACACS)を含む遠隔アクセスサービスと、
・ハイパーテキストトランスポートプロトコル(HTTP)、セキュアソケット層(SSL)を含む、エクストラネットおよびサブスクリプションベースのウェブアクセス制御の提供と、
・セキュア(secure)オンラインバンキング、利益アドミニストレーション、会計管理のサポートの向上と、
・セキュアワークフローおよびサプライチェーンインテグレーション(署名形式(form signing))のサポートと、
・ラップトップコンピュータの盗難防止(ラップトップ操作にパーソナルキーの要求)と、
・ワークステーションログオン許可と、
・ソフトウェアの変更またはコピーの防止と、
・ファイルの暗号化と、
・セキュアeメール、例えば、セキュア多目的インターネットメール拡張(S/MIME)、およびオープンプリティグッドプライバシー(OpenPGP)ののサポートと、
・ネットワーク装置アドミニストレーションの管理と、
・例えば、セキュア電子取引での電子ウォレット(SET、MilliCent、eWallet)と、
を含む。
【0024】
1実施形態では、本発明は、コンパクトな自己完結してるパーソナルキーまたはトークンを含む。パーソナルキーは、ホスト処理デバイス、メモリ、プロセッサに取り外し可能な結合をし得るUSBコンプライアントインタフェースを含む。プロセッサは、メモリに格納可能なデータにホスト処理デバイス条件付アクセスおよびパーソナルキーに格納されるファイルの管理を要求し、ファイルのデータに基づき実行する機能性を提供する。1実施形態では、パーソナルキーはまた、統合ユーザ入力デバイスおよび統合ユーザ出力デバイスを含む。入力および出力デバイスは、USBコンプライアントインタフェースとは無関係の通信パスでプロセッサと通信し、ユーザがパーソナルキーを除く任意の個人情報を示さずともプロセッサを通信が可能にする。
【0025】
例えば、本発明は、以下を提供する。
(項目1)
コンパクトなパーソナルトークン(200)であって、
ホスト処理デバイス(102)に取り外し可能なように結合可能なUSBコンプライアントインターフェース(206)と、
メモリ(214)と、
該メモリ(214)に通信可能なように結合されたプロセッサ(212)であって、該プロセッサ(212)が、該USBコンプライアントインターフェース(130)を介して、ホスト処理デバイス(102)に通信可能なように結合可能であり、該プロセッサ(212)が、該メモリ(214)に格納可能なデータへの条件付アクセスをホスト処理デバイス(102)に提供する、プロセッサ(212)と、
該USBコンプライアントインターフェース(206)と異なるパス(220)により該プロセッサ(212)に通信可能なように結合されたユーザ入力デバイス(218)と
を含む、コンパクトなパーソナルトークン(200)。
(項目2)
ユーザ入力デバイス(218)が、前記プロセッサ(212)の動作を制御するように構成されている、項目1に記載の装置。
(項目3)
前記動作が、
暗号化動作と、
復号化動作と
を含む群から選択される動作を含む、項目1に記載の装置。
(項目4)
前記動作が、前記メモリ(214)に格納されている復号鍵を用いるデジタル署名動作を含む、項目1に記載の装置。
(項目5)
前記入力デバイス(218)が、前記トークン(200)の外部の面から作動可能な少なくとも1つの感圧性デバイスを含む、項目1に記載の装置。
(項目6)
前記入力デバイス(218)が少なくとも1つの押しボタンスイッチ(702)を含む、項目1に記載の装置。
(項目7)
前記USBコンプライアントインターフェース(206)と異なるパス(224)によって、前記プロセッサ(212)に通信可能なように結合された出力デバイス(222)をさらに含み、該出力デバイス(222)が、該プロセッサ(212)の動作に関する情報を提供する、項目1に記載の装置。
(項目8)
前記出力デバイス(212)が、少なくとも1つの発光デバイス(616)を含む、項目7に記載の装置。
(項目9)
前記出力デバイスが、少なくとも1つの液晶ディスプレイ(706)を含む、項目7に記載の装置。
(項目10)
前記出力デバイスが少なくとも1つの音声出力デバイスを含む、項目7に記載の装置。
(項目11)
コンパクトなパーソナルトークン(200)であって、
ホスト処理デバイス(102)に取り外し可能なように結合可能なUSBコンプライアントインターフェース(206)と、
メモリ(214)と、
該メモリ(214)に通信可能なように結合されたプロセッサ(212)であって、該プロセッサ(212)が、該USBコンプライアントインターフェース(206)を介して、該ホスト処理デバイス(102)に通信可能なように結合可能であり、該プロセッサ(212)が、該メモリ(214)に格納可能なデータへの条件付アクセスをホスト処理デバイス(102)に提供する、プロセッサ(212)と、
該プロセッサ(212)に通信可能なように結合されたユーザ出力デバイス(222)と
を含む、コンパクトなパーソナルトークン(200)。
(項目12)
前記ユーザ出力デバイス(212)が、前記USBコンプライアントインターフェース(206)と異なるパス(224)により前記プロセッサ(212)に結合される、項目11に記載の装置。
(項目13)
前記ユーザ出力デバイス(222)が前記プロセッサ(212)の動作を示すように構成されている、項目11に記載の装置。
(項目14)
前記動作が、
暗号化動作と、
復号化動作と、
復号鍵を用いるデジタル署名動作と
を含む群から選択される動作を含む、項目11に記載の装置。
(項目15)
前記ユーザ出力デバイス(212)が、
少なくとも1つの発光デバイス(616)と、
少なくとも1つの液晶ディスプレイ(706)と、
少なくとも1つの音声デバイスと
を含む群から選択される、項目11に記載の装置。
(項目16)
前記USBコンプライアントインターフェース(206)と異なるパス(220)によって、前記プロセッサ(212)に通信可能なように結合された入力デバイス(218)をさらに含み、該入力デバイス(218)が、該プロセッサ(212)の動作に関する情報を提供する、項目1に記載の装置。
(項目17)
前記プロセッサ(212)およびメモリ(214)が、該プロセッサ(212)との電気的な通信を提供する少なくとも1つの回路接続面(610)を有する回路基板(606)上に配置され、前記USBコンプライアントインターフェース(206)が、
少なくとも1つの導電性のピンであって、該少なくとも1つの導電性のピンは、該回路接続面(610)と前記ホスト処理デバイス(102)との間の電気的な通信を提供し、該導電性のピンは、ピン固定部を含み、該回路接続面(610)に取り外し可能なように結合可能である、少なくとも1つの導電性のピンと、
該回路基板(606)の少なくともいくつかを実質的に封入するハウジング(602)であって、該ハウジング(602)は、該導電性のピンの縦軸に沿ってピン部材を固定するための該ピン固定部と接触可能なピンインターフェースを含む、ハウジング(602)と
を含む、項目11に記載の装置。
全体にわたって、参照番号が同じものは対応する部材を表す。
【図面の簡単な説明】
【0026】
【図1】図1は、本発明を実行する例示的なハードウェア環境を示すダイアグラムである。
【図2】図2は、本発明の1実施形態の選択されるモジュールを例示するブロックダイアグラムである。
【図3】図3は、メモリのパーソナルキーによって提供されるメモリリソ−スのダイアグラムである。
【図4】図4は、暗号エンジンを用いて、パーソナルキーまたは暗号エンジンに格納されるアプリケーションデータの識別を認証する方法の1実施形態を示すダイアグラムである。
【図5】図5は、いくつかのアプリケーションの許可および詳細な設定データを提供するアクティブパーソナルキーのファイルシステムメモリリソースのデータコンテンツを例示するダイアグラムである。
【図6】図6は、パーソナルキーの1実施形態の例示を示すダイアグラムである。
【図7A】図7Aは、第1の感圧性デバイスおよび第2の感圧性デバイスを含む入力デバイスを有し、各々がUSBコンプライアントインタフェースと無関係な通信パスによりプロセッサと通信可能となる得る結合をするパーソナルキーの1実施形態を示すダイアグラムである。
【図7B】図7Bは、第1の感圧性デバイスおよび第2の感圧性デバイスを含む入力デバイスを有し、各々がUSBコンプライアントインタフェースと無関係な通信パスによりプロセッサと通信可能となる得る結合をするパーソナルキーの1実施形態を示すダイアグラムである。
【図7C】図7Cは、第1の感圧性デバイスおよび第2の感圧性デバイスを含む入力デバイスを有し、各々がUSBコンプライアントインタフェースと無関係な通信パスによりプロセッサと通信可能となる得る結合をするパーソナルキーの1実施形態を示すダイアグラムである。
【図8A】図8Aは、本発明の別の実施形態の例示を提供するダイアグラムである。
【図8B】図8Bは、本発明の別の実施形態の例示を提供するダイアグラムである。
【図8C】図8Cは、本発明の別の実施形態の例示を提供するダイアグラムである。
【図9】図9は、プロセッサ動作が、ユーザ許可を受ける本発明の1実施形態を例示するフローチャートである。
【図10】図10は、PINが直接にパーソナルキーに入力される、本発明の1実施形態を例示するフローチャートである。
【発明を実施するための形態】
【0027】
(好適な実施形態の詳細な説明)
以下の説明では、本明細書の一部を形成し、本発明のいくつかの実施形態を例示す目的で示す添付された図面を参考にする。本発明の範囲から逸脱することなく、他の実施形態が利用され得、構造的変更が為され得ることが理解される。
【0028】
(ハードウェア環境)
図1は、本発明を実行するために用いられ得る例示的なコンピュータシステム100を示す。コンピュータ102は、プロセッサ104およびメモリ(例としてはランダムアクセスメモリ(RAM)106)を含む。コンピュータ102は、機能的にでディスプレイ122に結合され、グラフィカルユーザインターフェース118B上でユーザにウィンドウを例とする画像を表示する。コンピュータ102は、キーボード114、マウスデバイス116、プリンタ128等を例とする他のデバイスに結合され得る。もちろん、当業者は、上記の構成エンティティの任意の組み合わせ、または任意の数の異なる構成エンティティ、周辺機器、および他のデバイスが、コンピュータ102で使用され得ることを認識する。
【0029】
一般に、コンピュータ102は、メモリ106に格納されるオペレーティングシステム108の制御下で動作し、ユーザとインターフェースをとり、入力およびコマンドを受け取り、グラフィカルユーザインターフェース(GUI)モジュール118Aを通じて結果を示す。GUIモジュール118Aは、分離したモジュールとして示されるが、GUI機能を実行する命令は、オペレーティングシステム108、コンピュータプログラム110に常駐または分散されてもよく、専用のメモリおよびプロセッサで実行されてもよい。コンピュータ102はまた、プログラミング言語(例として、COBOL、C++、FORTRANまたは他の言語)で書かれたアプリケーションプログラム110をプロセッサ104読み出し符号に翻訳することができる、コンパイラ112を実行する。完了後、アプリケーション110は、コンパイラ112を用いて生成される関係および論理を用いて、コンピュータ102のメモリ106に格納されるデータにアクセスし、操作する。コンピュータ102はまた、パーソナルトークン200(以降では、代わりにパーソナルキー200としても呼ばれる)に対する入力/出力(I/O)ポート130を含む。1実施形態において、I/Oポート130が、USBコンプライアントインターフェースを実行するUSBコンプライアントポートである。
【0030】
1実施形態において、オペレーティングシステム108、コンピュータプログラム110、およびコンパイラ112を実行する命令が、コンピュータ読み出し可能媒体(例として、データ格納デバイス120)内に、実体的に含まれる。そのコンピュータ読み出し可能媒体は、固定データ格納デバイスまたはリム−バルデータ格納デバイスを1つ以上含み得、これは、ジップドライブ、フロッピー(R)ディスクドライブ124、ハードドライブ、CD−ROMドライブ、テープドライブ等を例とする。さらに、オペレーティングシステム108およびコンピュータプログラム110は、コンピュータ102で読み出しおよび実行される場合、コンピュータ102に本発明を実行および/または使用するのに必要な工程を行わせる命令から構成される。コンピュータプログラム110および/またはオペレーティング命令はまた、メモリ106および/またはデータ通信デバイス内に実体的に含まれ得、それにより本発明に応じたコンピュータプログラム製品または製造品を製造する。そのようなものとして、本明細書中で用いられる用語「製造品」および「コンピュータプログラム製品」は、任意のコンピュータ読み出し可能デバイスまたは媒体からアクセス可能なコンピュータプログラムを含むように意図される。
【0031】
コンピュータ102は、ダイアルアップネットワーク、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、仮想プライベートネットワーク(VPN)またはインターネットを例とする通信媒体132を介して、遠隔コンピュータまたはサーバ134に通信可能な結合をし得る。付加的または代替的なアプリケーションプログラムを含む、コンピュータ動作に対するプログラム命令は、遠隔コンピュータ/サーバ134からロードされ得る。1実施形態において、コンピュータ102は、インターネットブラウザを実行し、ユーザがワールドワイドウェブ(WWW)および他のインターネットリソースにアクセス可能となる。
【0032】
当業者は、本発明の範囲から逸脱することなく、この設定に、多くの改変が為され得ることを認識する。例えば、当業者は、上記の構成エンティティの任意の組み合わせ、または任意の数の異なる構成エンティティ、周辺機器および他のデバイスが、本発明で使用され得ることを認識する。
【0033】
(アーキテクチャの概要)
図2は、本発明の選択されたモジュールを例示するブロックダイアグラムである。パーソナルキー200は、ホストコンピュータ102の入力/出力ポート130およびパーソナルキー200にマッチングする入力/出力(I/O)ポート206を含むUSBコンプライアントインターフェース204のUSBコンプライアント通信パス202を通じて、ホストコンピュータと通信し、パワーを得る。パーソナルキーI/Oポート206で受信される信号は、通信パス210および216を介してドライバ/バッファ208によってプロセッサ212へ往復する。プロセッサ212は、本発明の上記の機能を実行するためのデータおよび命令を格納するメモリ214に通信可能な結合される。1実施形態において、メモリ214は、工場供給データおよび顧客供給アプリケーション関連データを保持し得る不揮発性ランダムアクセスメモリである。プロセッサ212は、これらの機能のいくつかを実行するために、いくつかの内部メモリを含み得る。
【0034】
プロセッサ212は、随意に、入力デバイス通信パス220を介して、入力デバイス218に通信し得るように結合され、出力デバイス通信224を介して、出力デバイス222に通信し得るように結合される。その両方のパスは、USBコンプライアントインターフェース204および通信パス202と異なる。これら個別の通信222バスおよび224によって、USBコンプライアントインタフェース204を識別するプロセスまたは他のエンティティが盗む(eavesdrop)またはとりなす(intercede)ことを可能にすることなく、ユーザがプロセッサ212の動作についての情報を見ることを可能とし、プロセッサ212の動作に関連する入力を提供する。これにより、重要な(key)プロセッサ212とユーザとの間のセキュリティの高い通信を可能にする。以下に十分に説明する本発明の1実施形態において、ユーザは、鍵の外側で動作可能な機械的スイッチまたはデバイス(例えば、ボタンおよび機械的スイッチのような感圧性デバイス)の物理的操作によって、直接プロセッサ212と通信する。以下でより十分に説明する本発明の別の実施形態において、入力デバイスは、文字の選択を示す接触つめを備えるホイールを含む。
【0035】
入力デバイス218および出力デバイス222は、共同的にお互い双方向に相互作用し、パーソナルキー200の機能性を高め得る。例えば、出力デバイス222は、ユーザが入力デバイス218に情報を入力するように促す情報を提供し得る。例えば、出力デバイス222は、(アラビア数字およびまたは文字を表示し得る)英数字のLEDまたはLCDディスプレイを例とする視覚的ディスプレイおよび/または聴覚的デバイスを含み得る。ユーザは、聴覚的デバイスのビープによって、LEDのフラッシュパターンによって、または両方によって情報を入力するように促され得る。出力デバイス222はまた、随意に用いられ、入力デバイス218によって情報の入力を確かめ得る。例えば、ユーザが、情報を入力デバイス218に入力する場合、またはユーザ入力が無効である場合、聴覚的出力デバイスは、ビープし得る。入力デバイス218が、入力デバイスの異なる組み合わせを含む多くの形式の1つを取り得る。
【0036】
入力デバイス通信パス220および出力デバイス通信パス224は、個別のパスとして図2において図示されるが、USBコンプライアントインターフェース204と異なる通信パスを依然と保持して、パス220および224を組み合わせることにより、本発明は実行され得る。例えば、入力デバイス218および出力デバイス222は、単一のデバイスにパッケージ化され得、プロセッサ212との通信は単一の通信パスで多重化される。
【0037】
1実施形態において、本発明は、USBコンプライアントインターフェース204と異なる通信パスを介してプロセッサに結合される代わりに、USBコンプライアントインターフェース204に結合され得る第2の出力デバイス222をさらに含む。この実施形態は、例えば、ユーザにパーソナルキー200が正確にホストコンピュータのUSBポートに挿入されたかどうかを示す(例えば、USBコンプライアントインターフェースの出力信号の表示を提供することによって)ために用いられ得る。第2の出力デバイスはまた、(例えば、USBコンプライアントインターフェースのデータ信号の表示を提供することによって)データがホストコンピュータとパーソナルキー200とを往復することを示すために用いられ得る。
【0038】
パーソナルキーは、複数のAPIライブラリルーティンを有するアプリケーションプログラムインターフェース(API)260と通信し得るように結合されるUSBドライバモジュール266を含むインターフェースを有する。API260は、アプリケーション110とのインターフェースを提供し、コマンドを出し、パーソナルキー200からの結果を受け取る。1実施形態において、NETSCAPE、Inc.製の利用可能なブラウザを例とするブラウザ262は、APIおよび公開鍵暗号規格(PKCS)モジュール264で動作し、トークンベースユーザ許可システムを実行する。
【0039】
パーソナルキーの可搬性および利用性は、多くの利点を有する一方で、パーソナルキーはまた、重大な不利点・・・紛失および盗難があり得る。パーソナルキー200は、多くのユーザのプライベートデータに対してセキュリティの高いレポジトリを表すので、これは特にトラブルとなる。これらの理由から、パーソナルキー200に含まれる情報(しかし、必ずしもパーソナルキー200それ自体ではない)の究極的なセキュリティは非常に重要となる。
【0040】
究極的に、パーソナルキー200は、ホストコンピュータ102を通じて外部に対して所有者を識別するが、パーソナルキーは紛失または盗難に遭う可能性があるので、パーソナルキー200を所有する個人は実際のオーナーであるという保証はない。セキュリティは、個人のパスワード等の使用により向上し得るが、この解決手段は理想ではない。第1に、単一パスワードの使用は、パスワードが、妥協され得るという非常に現実的な可能性を高める(結局、盗人は、ユーザ、およびユーザのパスワードを知っている)。複数回のパスワードの入力を要求することはまた、ホストコンピュータ102または遠隔コンピュータ134で実行してる不正なソフトウェアが、パスワードまたは個人識別を盗み得る機会を増やすことになる。パーソナルキー200を使用する理由の1つは多くのパスワードを覚える必要性をユーザから取り除くことであるので、多数のパスワードの使用は、解決にはならない。パスワードに関する別の問題は、ハッキング手段を用いて、パスワード保護を出し抜き、またはパスワードそれ自体を発見し得ることである。これは、パーソナルキー200は、たいていの場合、キーボード114を例とするホストコンピュータ102の周辺機器に入力される入力/出力ポート130を介しての伝送されるデータに左右され、その結果、パーソナルキー200はハッキングに脆弱になるという観点で特に問題である。
【0041】
本発明の1実施形態において、バイオメトリックセンシングデバイス250は、パーソナルキー200上にまたは内にマウントされ、ユーザがパーソナルキー200を保持する場合に、バイオメトリックデータをユーザから集める。1実施形態において、バイオメトリックセンシングデバイス250は、ユーザの指紋を読み取ることが可能である指紋センサーを含む。バイオメトリックセンサー250はまた、バイオメトリックデータをプロセッサ212による使用に適切なデータに減らすビルトイン処理を含み得る。バイオメトリックデータの収集が必要な場合、発光または発熱デバイスをバイオメトリックセンサーの近くに配置して、光または熱を使用するアクティヴデータ測定を提供し得る
バイオメトリックセンサー250は、名目上、関心のあるバイオメトリックデータを測定する最適な場所に配置される。図示される実施形態において、バイオメトリックセンサー250は、ユーザがパーソナルキー200を握って、パーソナルキーをホストコンピュータ102のI/Oポート130に挿入する場合に、ユーザの親指の指紋からのデータを収集するように寸法を調整され、配置される。ホルダーの指紋の測定を容易にするために、パーソナルキー200の外部表面は、ユーザの親指を特定の場所に置くように設計され得る。あるいは、セキュリティを高めるために、パーソナルキー200の外観は、バイオメトリックセンサー250の存在を全くマスクするように設計され得る。
【0042】
バイオメトリックセンサー250は、既知の時間に予測可能なタイプの既知のデータを集める(例えば、パーソナルキー200をホストコンピュータのI/Oポート130に接続する時、親指の指紋を収集する)ことを期待され得るポジションに有利に配置され得る。パーソナルキー200は、バイオメトリックセンサー通信パス226を介してバイオメトリックセンサー250からデータを受け取り、覚えたかまたは妥協したパスワード、または任意の他の入力なしで鍵を保持して、個人のアイデンティティを確認する。このように、バイオメトリックセンサー250は、バイオメトリックセンサーまたはパスワードのみで得ることができるより高度なレベルのセキュリティを備えるパーソナルキー200を提供する。必要な場合、パーソナルキー200を接続するホストコンピュータ102を認識するように、パーソナルキー200は設定され得、このように得られたデータを用いて、鍵のセキュリティを向上させ得る。
【0043】
バイオメトリックセンサーはまた、同様に他の方法でパーソナルキーのセキュリティを向上させるように用いられ得る。例えば、パーソナルキーが盗難される場合、バイオメトリックセンサーは、盗人の指紋を測定するために用いられ得る。このデータは、盗人がパーソナルキーを用いて、例えば、インターネットで買い物しようと試みるまで格納され、維持され得る。このときに、パーソナルキー200は、指紋情報(および任意の他の関連情報)を適切な機関に送信し得る(例としては、インターネットサイト)特定のエンティティに(盗人を識別しても、しなくとも)コンタクトをとるようにプログラムされ得る。パーソナルキー200はまた、多くの不正確なパスワードが供給される場合、このダイアルアップおよびレポート機能を実行し得る。
【0044】
本発明の1実施形態において、パーソナルキー200はまた、外部データトランシーバ254とデータを通信するデータトランシーバ252を含む。データトランシーバ252は、ドライバ208および通信パス216、228を介して、プロセッサ212と通信し得るように結合され、パーソナルキー200をUSBコンプライアントインタフェース204を曝すことなく、電磁波を送信および受信を介して、データを送信および受信を可能にする。あるいは、データトランシーバ252は、プロセッサ212に通信し得るように直接に結合され得る。
【0045】
1実施形態において、データトランシーバ252は、同じ能力を備える多くの市販の利用可能な周辺機器と通信し得る赤外線(IR)トランシーバを含む。この機能は、パーソナルキー200が、既にホストコンピュータ102のI/Oポート130に結合される場合でさえ、パーソナルキー200に、外部の周辺機器およびデバイスと通信する別の手段を提供する。
【0046】
1実施形態において、パーソナルキー200はまた、バッテリーまたは容量性デバイスを例とする電源を含む。電源は、ホストコンピュータ102に接続されていない場合でさえ、パーソナルキーの構成エンティティにパワーを供給し、データが保持され、パーソナルキーの機能および動作が実行されることを可能にする。
【0047】
図3は、パーソナルキー200のメモリ214により提供されるメモリリソースのダイアグラムである。メモリリソースは、マスターキーメモリリソース312、個人識別番号(PIN)メモリリソース314、関連PINカウンタレジスタ316およびPINリセットレジスタリソース318、シリアルナンバーメモリリソース310、グローバルアクセスコントロールレジスタメモリリソース320、ファイルシステムスペース324、補助プログラム命令スペース322、およびプロセッサ動作プログラム命令スペース326を含む。プロセッサ動作プログラム命令スペース326は、パーソナルキー200が本明細書中に説明される名目上の動作を行うように実行し、ホストコンピュータ102または遠隔サーバ134のいずれかにおいても実行するアプリケーション110と関連するアプリケーションプログラムインターフェース260により呼び出されるそれらのサポーティング機能を含む命令を格納する。補助プログラム命令スペースは、所望な場合、パーソナルキー200に、付加的な機能性を実現するプロセッサ212命令を格納するスペースを提供する。
【0048】
マスターキーは、管理パスワードであって、その管理パスワードは、信用性の高いエンティティまたはパーソナルキー200を初期化し、設定するプログラムにより既知でなければならない。例えば、パーソナルキー200は、多くの遠隔地に位置する従業員に供給され、VPNを通じて、遠隔サーバに格納されるプライベートドキュメントにアクセスすることが可能になる場合、マスターキーを遠隔地に位置する従業員に提供する前に、遠隔サーバのシステムアドミニストレータは、マスターキーを入力する(またはマスターキーを工場設定から変える)。システムアドミニストレータはまたセキュリティの高い場所にマスターキーを格納し、このマスターキーを用いて、要求されるセキュリティの高い(例えば、遠隔ユーザの許可および認定を含む)動作を行う。
【0049】
1実施形態において、MKEYが、最初に照合不可能である場合、マスターキーは、設定、リセット、または初期化は不可能である。マスターキーが既知でない場合、パーソナルキー200は、破壊/廃棄、または工場セッティングにリセットするように工場に返されなければならない。
【0050】
PINは任意の値であり、パーソナルキー200のユーザを認定するように用いられ得る。PINは、信用性の高いアドミニストレータによって初期化される。パーソナルキー200初期化プログラムがどのように実行され、配置されるかに応じて、端末ユーザは、自分のPINをセッティングおよび/またはアップデートすることが可能になる。PINは、英数字または単に数字を含み得る。
【0051】
PINはまた、2つの関連レジスタ316および318を透過的に用いるアプリケーションプログラムインターフェース(API)呼び出しを用いる間、チェックされ得る。PINリセットレジスタリソース318は、PINカウンタ316メモリリソースをリセットするように用いられるリミットを格納するように用いられ、PINカウンタリソース316は、減少カウンタである。PINカウンタレジスタ316およびPINリミットレジスタ318は、違法アプリケーションまたはユーザが、PINを発見しようして、素早く何千ものランダムPINを試験することを防止するように用いられる。
【0052】
PINが初期化される場合、減少カウンタレジスタ316は、PINリセットレジスタリソース318での値にセットされる。PIN照合が失敗する場合はいつでも、カウンタレジスタ316は減少される。PIN照合が成功する場合、カウンタレジスタは、限界値にセットされる。減少カウンタレジスタ316が0になる場合、信用性の高いアドミニスタがPINカウンタレジスタ316を限界値にリセットするまで、もうPIN照合は、できない。例えば、PINレセットレジスタリソース318リミットを3にセットする場合、ユーザは、PIN照合を3回失敗すると、リセットされるまで、PINは無効となる。正しいPIN照合が成功する場合、カウンタレジスタ316は、3にリセットされる。
【0053】
シリアル番号は、ユニークな工場インストールシリアル番号(SN)である。シリアル番号を用いて、他のパーソナルキー200ユーザの全てと単一のユーザとを区別し得る。
【0054】
パーソナルキー200のメモリ214はまた、ビルトインアルゴリズムメモリリソース302を含む。ビルトインアルゴリズムメモリリソース302は、関連処理命令を格納するためのMD−5ハッシュエンジンメモリ304を含み、関連処理命令を格納するためのHMAC−MD5許可メモリリソース306を含み、乱数を生成する処理命令を格納するための乱数生成メモリリソース308を含む。乱数ジェネレータを用いて、認定ダイジェストを生成する場合は、使用されるチャレンジ(challenge)を生成し得、他の暗号手順にシードを提供し得る。MD−5アルゴリズムは、入力として任意の長さのメッセージを受け取り、出力として128ビットの「指紋」または入力の「メッセ−ジダイジェスト」を作る。その過程で、そのアルゴリズムは、RFC−1321を例とする高速アルゴリズムを用いて入力データを再生可能な製品にスクランブルまたはハッシュする。ハッシュされたメッセージ認定コード(HMAC)は、任意に繰り返される暗号ハッシュ関数(例えば、MD−5)をシークレットキーと組み合わして用いられ得、メッセージまたはデータ収集を認定する。パーソナルキー200は、この方法を統合し、端末ユーザまたはアプリケーションデータがシークレットキーを曝さずに認定される1つの方法を提供し得る。
【0055】
本発明は、2つのセキュリティ機構を用いて端末ユーザの認定を可能にする。以下で議論される第1の機構は、ホストコンピュータ102または遠隔コンピュータ/サーバ134上で実行しているソフトウェアによるパーソナルキー200の認定を可能にする。この第1の機構は、ハッシュアルゴリズムおよびパーソナルキー200およびパーソナルキーの認定を試験するエンティティの両方に既知である手動合意秘密値を使用する。本発明の開示で後で議論される第2の機構は、パーソナルキー200がパーソナルキー200の使用を試みるユーザの認定を可能にする。第2の機構は、その鍵が紛失または盗難に遭った状況で、個人識別番号(PIN)を用いて、許可されていないユーザまたはアクセスの防止に役立てる。以下で、十分に説明されるように、PINは、パーソナルキー200に直接に入力され得、したがってPINがパーソナルキー200の外部に決して曝されないということを保証することによりセキュリティを高める。
【0056】
図4は、HMAC−MD5エンジンを用いて、パーソナルキー200または本明細書中のアプリケーションデータのアイデンティティを認定する方法の1実施形態を示すダイアグラムである。ホストコンピュータで実行しているアプリケーション(例えば、アプリケーションプログラム110)または遠隔コンピュータ/サーバ134で実行しているアプリケーションとリンクしている機能を有するパーソナルキーのライブラリは、パーソナルキー200に関連して、ホストコンピュータ102または遠隔コンピュータ/サーバ134のどちらか一方で実行してる。ハッシュアルゴリズム410は、アプリケーション110およびパーソナルキー200の両方で、実行される。アプリケーション110およびパーソナルキー200の両方は、秘密406へのアクセスを有する。秘密406Bは、適切な認証なしでは、アクセスできないロケーションにあるパーソナルキー200のメモリ214内に保持される。一般的には、秘密406Bは、システムアドミニストレータまたは他のいくつかの信用性のあるソースにより、パーソナルキー200に格納される。パーソナルキー200のユーザは、アプリケーション110が、アプリケーション110がそうであると考えるエンティティである場合、アプリケーションの秘密406Aおよびパーソナルキーの秘密406Bは同じである。これは、秘密を曝さずに、ハッシュアルゴリズムにより照合され得る。同様に、パーソナルキー200のユーザは、アプリケーションが期待するエンティティでない場合、アプリケーションが、秘密406Aおよび406Bは異なる。これも、秘密を曝すことなく、ハッシュアルゴリズムにより照合される。
【0057】
チャレンジが、アプリケーション110により生成される。アプリケーション110にアクセス可能なハッシュアルゴリズム410およびパーソナルキー200で実行されるハッシュアルゴリズムに提供される。各ハッシュアルゴリズムにより、チャレンジおよび常駐する秘密を適用して、ハッシュ出力412を適用する。ハッシュアルゴリズムが等しく、406Aおよび406Bそれぞれが同じである場合、それそれの場合に結果として生じるハッシュ出力412またはダイジェストストリングは、同一である。ダイジェストストリング412Aおよび412Bはアプリケーションのロジック414を用いた等式を比較する場合、パーソナルキー200は、信用される。さらに、ユーザ認定が、照合される場合、ユーザは、同様に信用される。この認定システムの1つの利点は、チャレンジ408は、インターネット等の信用性の低い媒体によって、伝送され得る。秘密406は、秘密406が、ネットワークスニファ/スヌーパ(snooper)または潜在的に妥協されたユーザインターフェースに露出されずに残っているアプリケーション110または遠隔サーバ134プログラムおよびパーソナルキー200において、符号化されたままである。
【0058】
ファイルシステムメモリリソース324は、ホストコンピュータ102または遠隔サーバ134のどちらかにおけるアプリケーションプログラムインターフェースライブラリ260内で十分に管理される。ファイルシステムメモリリソース324により、柔軟なシステムを提供し、パーソナルキー200のデータの格納、保護、および検索を行う。
【0059】
図5は、いくつかのアプリケーション用の認定のために認定および特定の設定データを提供するアクティブパーソナルキー200のファイルシステムリソース324のデータコンテンツを図示するダイアグラムである。マスターファイル(MF)502は、ルートディレクトリであり、アイデンティティ(ID)にはゼロ(0)を用いる。MF502は、ポインタ504Aおよびポインタ504Bまたは506Aおよび506Bに対する他の指定、ディレクトリ510および516へのポインタ508Aおよび508B含み得る。ディレクトリおよびファイルは、識別することによって、定義される(ディレクトリに対して、1→0xFFFFFFFF、およびファイルに対して、0→0xFFFFFFFF)。ディレクトリ510および516はまた、データファイル(514A−514Bおよび520A−520Cそれぞれ)に対するポインタ(512A−512Bおよび518A−518Bそれぞれ)を含む。
【0060】
3つのファイルタイプが、以下の表1に示されるように実行される。
【0061】
【表1】
これらのファイルタイプは、以下の表2に応じてファイル毎に制御され得る。
【0062】
【表2】
読み出しおよび書き出しアクセスタイプ制御によりアプリケーション110を往復するパーソナルキー200でのファイル転送を統括する。暗号アクセスタイプは、ハッシュ値、暗号または解読データの計算を含む暗号操作を実行するKEYファイルタイプで用いられる。セッティングされた場合、表2で定義された制御は、以下の表3にリストとして挙げられた4つの属性の内の1つを有し得る。
【0063】
【表3】
グローバルアクセス制御レジスタ320は、パーソナルキー200ファイルシステムの全範囲に適用する。名目上、グローバルアクセス制御レジスタ320は、表4に示されるように2つのグローバルアクセス制御に分割される8ビット値である。
【0064】
【表4】
作成および削除グローバルアクセスタイプは、以下の表5に示された4つの属性値の内1つを有し得る。作成および削除グローバル制御は、以下の表5に説明されるCreateDir、CreateFile、DeleteDir、DeleteFileおよびDeleteAllFilesAPI呼び出しによって、実行される。
【0065】
【表5】
表6は、ライブラリのパーソナルキー200のAのAPI260英数字のリスト項目である。表6において、「D」はデバイス関連機能を示し、「F」はファイルシステム関連機能を示し、「A」は管理機能を示し、および「C」は暗号機能を示す。
【0066】
【表6】
(仮想プライベートネットワークへの例示的アプリケーション)
前述の記載を用いることによって、パーソナルキー200および関連API260が使用され、安全なドキュメントアクセスシステムを実行し得る。この安全なドキュメントアクセスシステムは、遠隔ユーザの秘密暗号化ドキュメントへのインターネットを介したアクセスを会社従業員に提供する。このシステムはまた秘密暗号化ドキュメントの配布を制限し、それによって特定のドキュメントを、制限された回数だけ読むことができる。
【0067】
ドキュメントを読むために使用されるアプリケーションプログラム110は、パーソナルキーAPI260ライブラリとリンクされ、パーソナルキー200の情報に基づくドキュメント閲覧を可能にする。マスターキーにより制御されている信用された管理プログラムは、広範囲の従業員についてのパーソナルキー200(関連する安全制御装置設定を有する適切な情報を格納することにより)を設定するために使用され得る。
【0068】
パーソナルキー200およびAPI260ライブラリを用いて、ドキュメント閲覧者およびドキュメント管理者を許可し、ドキュメントの解読および暗号化のためのキーを供給し、閲覧可能ドキュメントのリストを提供し、ドキュメントアクセス権およびドキュメントアクセスカウンタを実行することができる。
【0069】
前述の記載が多数のプログラム中で実行され得、これらのプログラムは、従業員に配信する以前の、パーソナルキー200を設定する管理初期化プログラム(以降、SETKEYと呼ぶ)、ドキュメント暗号化およびライブラリアップデートプログラム(以降、BUILDDOCと呼ぶ)、ユーザおよびパーソナルキー200を許可する閲覧アプリケーション(以降、VIEWDOCと呼ぶ)、およびユーザを許可し、パーソナルキーをアップデートするライブラリアプリケーション(以降、LIBDOCと呼ぶ)を含む。
【0070】
SETKEYプログラムは、個々のユーザについてのファクトリから受信したパーソナルキーを設定するために使用される。ドキュメントネーム、アクセスカウンタ、PINおよびハッシュ秘密はパーソナルキー200中にロードされる。従業員の安全クリアランスに依存して、閲覧用の特定のドキュメントが構成され得る。明瞭にするために、次のシンボルネームが以下の議論の際に用いられる。
【0071】
DOCFilename−ドキュメントファイルネームを保有するiKeyデータファイル
DOCSecret−解読/暗号化キーを作成するために使用される秘密を保有するiKeyデータファイル
第1に、SETKEYプログラムは、OpenDeviceコマンドを発行することにより、パーソナルキー200へのアクセスを引き起こす。次いで、VerifyMasterKeyコマンドが発行され、パーソナルキー200をマスターアクセスに公開する。Dirコマンドはループ中で使用され、パーソナルキー200の状態を取得および実証することを行う。コメントがファクトリフレッシュキーのコンテンツと比較され、いくつかの状態の1つが決定される。キーがファクトリフレッシュである場合、パーソナルキーは初期化される。次いで、VIEWDOCディレクトリおよびファイルセットが作成される。次いで、従業員データベースがアクセスされ、各従業員に許可されるアクセスのタイプおよび範囲を決定するために使用され得る。各従業員の安全クリアランスに依存して、いくつかのタイプのディレクトリおよびファイルセットのうち1つが作成され得る。次いで、包括的作成アクセスタイプおよび削除アクセスタイプが、SetAccessSettingコマンドを用いて、マスターキーに設定される。次いで、DOCFilenameデータベースはパーソナルキー200中にロードされ、CreateDirおよびCreateFile API260は、ディレクトリおよびファイルを生成し、割り当てを行うために必要とされるものとして使用される。SelectFileコマンド、WriteFileコマンドおよびCloseFile APIコマンドはファイルおよび秘密をロードするために使用される。アクセスが特定数の事象に制限されるかどうかに依存して、DATAファイルタイプまたはCTRファイルタイプが使用される。
【0072】
BUILDOCプログラムは、安全アクセスライブラリ中の新規のドキュメントを受容するために使用される。パーソナルキー200からの情報を用いることで、解読キーが生成され、この解読キーはパーソナルキー200中のドキュメント解読エンジンにより使用される。
【0073】
BUILDOCプログラムはスタンドアロンのアプリケーションであり、安全壁の機構内の信用されたシステム上で実行する。BUILDOCプログラムは、マスターキーの有効性を必要とする。BUILDOCプログラムはパーソナルキー200を使用し、各ドキュメントファイルネームについての解読キーを作成する。
【0074】
第1に、XORオプションを有するHashToken API260は、DOCFilename、(ドキュメントを読み出し、解読しながらBUILDOCプログラムにより計算される)ブロック数、DOCSecretを互いにハッシュするために使用される。BUILDOCプログラムは、ドキュメントを読み出し、解読しながらブロック数を計算する。結果的に発生するMD5−XORダイジェストはBUILDOCアプリケーション中の解読エンジンによって使用される解読キーとして用いられる。次いで、XORモードのHashTokenと共にCreateFile、SelectFile、WriteFileおよびCloseFile API260が、各ドキュメント上で使用され、このドキュメントは安全ドキュメントライブラリに追加される。
【0075】
VIEWDOCプログラムはウェブブラウザ262プラグインアプリケーションであり、このプログラムにより、ユーザがドキュメントアクセスコードに基いて自身のパーソナルキー200に基づくドキュメントの公開(open)、解読、閲覧を行うことができる。所望ならば、いくつかのタイプのドキュメントについての閲覧カウンタはまた、VIEWDOCプログラム中でデクリメントされ得る。VIEWDOCプログラムは、ファイルの保存、ファイルの転送、スクリーンのスクラッピングおよびスクリーンの印刷を必要としない。
【0076】
VIEWDOCプログラムは、ユーザを確認し、ドキュメントのアップロードおよび解読を行う。VIEWDOCプログラムは、VcrifyPINコマンドAPI260を用い、ユーザを許可する。次いで、ユーザは、パーソナルキー200がUSBポート130と通信可能に接続される限り、パーソナルキー200ディレクトリにリストされたドキュメントを閲覧し得る。
【0077】
WINDOWS(登録商標)オペレーティングシステム(WM_DEVICECHANGE)で使用されるメッセージ機能のようなメッセージ機能は、キーが削除されたか否かを判定するために使用され得る。Dirコマンド、SelectFile、ReadFileおよびCloseFileコマンドAPI260は、どのドキュメントが読み出され得るかを判定するために使用される。DOCSecret、DOCFilenameおよびドキュメントブロック番号と共にXORモードAPI260を備えるHashTokenは、基本ブロック単位毎に暗号キーを生成する。DOCfilenameがファイルタイプCTRである場合、CTRはDecrementコマンドAPI260を用いて、デクリメントされる。1つの実施形態において、複雑性を減少させるためにCTR場はハッシュされず、VIEWDOCにより単に管理されるだけである。
【0078】
LIBDOCプログラムはSETKEYのサブセットである管理機能を提供する。その管理機能により、安全ドキュメントライブラリアンは、パーソナルキー200に格納される情報に基づくドキュメントへのアクセスを許可され得る。正味の効果は、信頼されたライブラリアンが、閲覧され得るドキュメントリストに基づいて、パーソナルキー200のアップデートを行い得るということである。
【0079】
LIBDOCプログラムは基本パーソナルキー200単位でDOCFilenameのリストをアップデートする。VerifyMasterKeyコマンドAPI260を備えるマスターキーを確認し、雇用データベース中で、ユーザネームを検索した後、DOCFilenameの現在のセットはSelectFile、WriteFileおよびCloseFileコマンドAPI260を用いてアップデートされる。
【0080】
前述の記載を用いることによって、従業員は、自身のファイルネームのローカルデータベースをロードしたパーソナルキー200を携帯し得る。個々の部署はMIS手続きに依存する必要がなく、ドキュメントにアクセスする人物を制限する。必要であれば、パーソナルキー200の部署番号はLIBDOCプログラムを使用し、アップデートされ得る。パーソナルキー200秘密が正確な場合のみ、従業員はドキュメントを解読および閲覧し得る。パーソナル秘密が安全であるのは、パーソナル秘密がパーソナルキー200の外に決して漏らされないからである。メータリングの単一形式はまたドキュメントのコピー数を減らすことに使用され得、閲覧され得るドキュメントのコピー数を減少するために使用され得る。
【0081】
図6は、パーソナルキー200の1つの実施形態の説明を示す図である。パーソナルキー200は第1のハウジング部材602および第2のハウジング部材604を含む。第1のハウジング部材602は、回路基板606を自身に収容するようなサイズおよび形状にされる。
【0082】
第1のハウジング部材602は複数のボス624を含み、複数のボス624は、第2のハウジング部材604の各ホール640中に挿入された場合、第1のハウジング部材602を第2のハウジング部材604に固定する。第1のハウジング部材602および第2のハウジング部材604はまた、それぞれアパーチャ628を含み、アパーチャ628はパーソナルキー200がキーチェーンに添付されることを可能にする。
【0083】
複数の回路基板サポート608は、所定の位置で回路基板606を保持する。回路基板606は、伝導ピンを介したホスト処理デバイスまたはコンピュータ102と通信可能に接続するために、回路基板606の周辺に実質的にフラットな回路接続表面610を含む。回路接続表面610は回路基板606上にマウントされたプロセッサ212との通信を可能にする。プロセッサ212は、メモリおよび本明細書中で公開されたパーソナルキー200の機能をインプリメントするために必要とされるオペレーションを実行するための命令を含む。プロセッサは、回路基板上でメモリ214と通信可能に接続され、プロセッサ212の命令により要求されるデータの格納および読み出しを行う。説明された実施形態において、回路基板606はまた、パーソナルキー200によって実行されているオペレーションを視覚表示することを、パーソナルキー200のユーザに提供する発光デバイス616(例えば、発光ダイオード(LED))のような出力デバイスを含む。例えば、ホストコンピュータ102からパーソナルキー200まで通過する信号により光を発光することによって、このことは達成される。発光デバイスはまた、液晶ディスプレイ(LCD)またはパーソナルキー中で実行される機能の視覚的な表示またはパーソナルキー200へのまたはパーソナルキー200からの渡されるデータを提供する他のデバイスを含み得る。
【0084】
発光デバイス616からのエネルギーは、2種類の方法の内の1つでユーザに提示される。図2に示された実施形態において、発光デバイス616は、第2のハウジング部材604中の発光デバイスオリフィス644を介して配置される。この設計において、パーソナルキー200は、エポキシ材料、または組み立てた後に発光デバイスオリフィス644中に配置される他の適切な材料を少量添加して密封され得る。
【0085】
他の実施形態において、発光デバイス616はハウシング602、604の内部を超過して拡張せず、パーソナルキー200の内部にとどまる。この実施形態において、第1のハウジング602または第2のハウジング604の少なくとも一部分は、対象となる帯域幅において発光デバイス616により放射されるエネルギーを少なくとも部分的に透過させる。例えば、発光デバイス616が単一LEDである場合、第2のハウジング604は、可視の波長で光を透過させる材料により選択され得る。先の実施形態の1つの利点は、LEDが、電磁放電ならびに回路基板606または回路基板606上に配置された任意の構成エンティティに対する他の所望しないエネルギーを許容しない場所に配置され得る。これは、常にユーザの手に接触するLEDの部分(LEDの表面においてさえも)が存在しないからである。
【0086】
前述の記載では、単一発光デバイス646を用いて記述されたが、本発明はまた、2つ以上の発光デバイス、または他の波長でエネルギーを放射するデバイスを有利に統合し得る。例えば、前述の記載では、3つのカラーLED(赤、黄および緑)または3つの単一カラーLEDを用いてインプリメントされ得、パーソナルキー200の情報をユーザに転送する。
【0087】
前述の記載に加えてまたは代替として、音声トランスデューサ(例えば、小型拡声器または圧電トランスデューサ)が、パーソナルキー200のオペレーションに関連する情報を提供する。そのような音声情報は、制限された視覚を有するユーザまたは視覚を有さないユーザに対して特に有用である。例えば、音声トランスデューサは、パーソナルキー200が、ホストコンピュータ102I/Oポート130に適切に挿入されたことを示すために使用され得る。
【0088】
音声トランスデューサはまた、警告情報をユーザに提供するために使用され得る。この警告は、ユーザが任意の入力またはキーからの情報を予想していない場合に、特に有用である。例えば、パーソナルキー200または関連デバイスが長時間の計算に従事した場合、音声トランスデューサはいつプロセスが終了するかを示し得る。また、感染したソフトウェア命令または他の有害なソフトウェア命令によりキーの安全性を妥協しようとする試み、またはユーザにキー200への入力を提供するような行動を取らせるようとする試みがある場合、音声トランスデューサは内部フォールトが生じた時を示し得る。
【0089】
さらに、パーソナルキー200の使用が広範囲に及ぶにつれて、他のデバイスの機能をパーソナルキーに組み込むことが有利となることが考えられる。例えば、ページングトランシーバのようなデバイスがパーソナルキー中に組み込まれ、ユーザが遠隔的に呼び出されるか、または接触されることを可能にすることができる。または、パーソナルキー200が、プログラムおよびユーザのカレンダーのような命令を格納するために使用され得る。この適用の際には、パーソナルキー200は、特に上記のLCDディスプレイと共に、ユーザにカレンダーの事象を思い出させるために使用され得る。音声トランスデューサは、最小可聴振動周波数を含む広範で多様な周波数で作動し得る。パーソナルキーがユーザのキーリング上に配置されるのに十分小さいために、キーリングが見られ得ないか、または容易に聞かれ得ないポケットまたは財布に、長期間ある場合にこの設計は特に有利である。
【0090】
図7A〜図7Cは、第1の感圧性デバイス702および第2の圧力デバイス704を含む入力デバイス218を有するパーソナルキー200の、ある実施形態を示す図であり、各デバイスは、USBに対応するインターフェース204と別個の通信パスにより、プロセッサ212と通信可能に接続される。
【0091】
図7Aはパーソナルキー200の実施形態を示し、この実施形態において、LEDまたはLCDディスプレイ706のような出力デバイス222が、USBに対応するインターフェース204と別個の第2の通信パスにより、プロセッサ212と通信可能に接続される。この実施形態において、パーソナルキープロセッサ212への入力は、任意で出力デバイス222によって行われるように、感圧性デバイス702、704を組み合わせて押し下げることによって提供され得る。
【0092】
図7Bおよび図7Cに示す実施形態において、感圧性デバイス702および704は、回路基板606上のトレースを介してプロセッサ212と通信可能に接続される単一の機械的プッシュスイッチである。この場合、スイッチ702および704は、第2のハウジング部材604中のアパーチャ708および710を通って伸びるボタン表面を押し下げることによって作動され得る。図7Bはまた、出力デバイス706の表示を見ることを可能にするウインドウ712を示す。
【0093】
図7Cは、第1のハウジング部材602および第2のハウジング部材604が取り付けられた場合の、パーソナルキー200のこの実施形態における外観を示す。
【0094】
本発明の他の実施形態において、圧力スイッチ702および704は、パーソナルキー200の外部にまで至らない。代わりに、パーソナルキー200は、スイッチのどの部分も必要とするすることなく、圧力が、感圧性スイッチ702および704上に加えられ得るように構成され、それにより圧力はパーソナルキー200の外部に達する。例えば、ある実施形態において、パーソナルキー200の外部表面の少なくとも一部は十分フレキシブであり、このキー200の外側の表面に加えられた圧力がパーソナルキー200内のスイッチを動作させ得る。あるいは、第1のハウジング部材602および第2のハウジング部材604は、圧力がスイッチに印加され得るように取り付けられる。他の実施形態において、パーソナルキーへのユーザ入力を示ために、ひずみゲージのような感圧性デバイスのしきい値出力が使用される。
【0095】
前述の記載の感圧性デバイス702および704は、以下のように使用され得る。ある実施形態において、2つの感圧性デバイス702および704は、英数字情報を入力するために使用され得る。ここで、圧力は第1の感圧性デバイス702に印加され、所望の文字を選択し得る。ユーザを補助するために、現在選択された文字は出力デバイス222上に表示され得る。ユーザが選択された文字に満足する場合、圧力を第2の感圧性デバイスに印加することは、現在表示されている文字が入力されるべきであることを示し得る(従って、「入力」機能を提供する)。このプロセスはユーザが全文字(例えば、ユーザパスワードまたは個人識別番号(PIN))を入力するまで繰り返されられ得る。ユーザ入力の終了は、第2の感圧性デバイス702へ、圧力を繰り返し印加することにより示されて、出力デバイス222により確認される得る。音声トランスデューサは単独で、または視覚ディスプレイと組み合わせて使用され、文字を表示するか、エラーを示すか、またはユーザ入力プロセスが完了した時を示すことができる。
【0096】
前述に記載の感圧性デバイスはまた、バイナリ入力をパーソナルキー200に提供するために使用され得る。例えば、ユーザのPINまたはパスワードが、迅速に相次いで適切な順序で、圧力を第1の感圧性デバイス702および第2の感圧性デバイス704に印加することによって入力され得る。このような方法で、「10100010111」として規定されるユーザパスワードまたはPINは、「0」を示すために、第1の感圧性デバイス702を押し下げて、「1」を示すために、第2の感圧性デバイス704を押し下げて入力され得る。
【0097】
図8A〜図8Cは本発明の他の実施形態の例を示す図である。この実施形態において、入力デバイス218は、入力デバイス通信パス808によりプロセッサに接続されるエッジの見えたホイール802を含む。この実施形態において、ユーザは、一連の接触部位を介して入力文字を識別するホイール802を動かして入力を行う。所望の入力文字が、出力デバイス222上に示されるか、ホイール802自身上に示されるかのどちらかの場合に、ユーザは、ホイール802をパーソナルキー200の中央線に向かって動かすことによりユーザ入力として文字を示し得る。このプロセスは、所望の文字全てが提供されるまで、一連の入力文字について繰り返され得る。ユーザはまた、ホイール802を迅速に相次いでパーソナルキーの中央部へ複数回動かすことにより、またはホイール802上の入力接触位置を選択しホイール802を押し下げることにより、これ以上入力がないということを示し得る。
【0098】
(入力および出力デバイスを用いる安全性機能)
本発明の入力デバイス218および出力デバイス222は、パーソナルキー200の安全性を拡張するために有利に使用され得る。例えば、ホストコンピュータ102と接続された場合、パーソナルキー200は、通信媒体132(例えば、ダイヤルアップネットワーク、インターネット、LANまたはWAN)を介しホストコンピュータ102に通信可能に接続された遠隔コンピュータ/サーバ134とのトランザクションを許可するために使用され得る。遠隔コンピュータ/サーバ134またはホストコンピュータ102中で実行され得る不正なソフトウェアは、必要なものすべてをパーソナルキー200に送り、ユーザが知ることなく、またはユーザの許可なく許可を行うことができる。ある種のユーザ入力デバイス218を用いずに、パーソナルキー200は、カード保有者が拒否することができないトランザクションをユーザが知ることなく許可し得る。例えば、このようなトランザクションは、支払いおよび法的に拘束力のある署名を含み得る。
【0099】
個人識別番号(PIN)のような個人識別は、パーソナルキー200をログオンし、パーソナルキー200を起動するために必要とされるが、通常、パーソナルキー200は、PINが入力されると起動したままである。ゆえに、パーソナルキー200は、ユーザに気づかれることなくまたはユーザに許可されることなく、任意のアプリケーションについて任意のアクションを行う。
【0100】
この問題を解決するために、本発明の1実施形態は「署名の強制」許可技術を利用し、この技術においては、直接的なユーザのアクションが、パーソナルキー200に格納された識別秘密値の使用を許可するために、必要とされる。(例えば、秘密406のような)復号鍵またはパーソナルキー200のメモリ214中に格納されたPINが「署名への強制」許可を要求するものとして識別された場合、パーソナルキー200のプロセッサ212中で実行するファームウェアは、ホストコンピュータ102、または復号鍵または個人情報の使用を含む遠隔コンピュータ/サーバ134からの任意のリクエストを受け取る前に、入力デバイス410またはデータトランシーバ252を介する直接的なユーザの入力を必要とする。通常、復号鍵および/または他の個人情報は、メモリ214中の関連値または関連フラグによる、直接許可を要求するものとして設計される。そのようなデータはまた、データが任意の状況下でキーから直接的に読み出され得ないことを示す「使用のみ」として設計され得る。データは(PINを用いた場合によくあるような)他の入力と共有され得ない、または信頼された入力と共有し、許可に使用される値(例えば、秘密406)であり得る。例えば、復号鍵がハッシュ機能を介して許可を行う秘密406として使用され得る。このような場合、秘密値406は、通常、DESキーまたはパスワードのような共有された秘密である。秘密値406がパーソナルキー200のメモリ214に格納され得るので、パーソナルキー200をユーザに分配する前に、秘密値406は、いかなる時でも、平文フォームで利用可能にされる必要がない。
【0101】
通常、ユーザが、クライアント許可を補助するSSL安全ウェブサイトに接続するたびに、ブラウザ262は、API260またはPKCS264の1つのようなミドルウェアを呼び出し、このミドルウェアはパーソナルキー200に命令し、ユーザの秘密復号鍵406B(パーソナルキーメモリ214に格納される)を用いチャレンジ値を解読する。ユーザのPINがすでにパーソナルキー200に格納され、ユーザをパーソナルキー200に許可すると仮定すると、やはり、キーを安全ウェブサイトに許可することが残る。この場合、ユーザの秘密復号鍵へのアクセスが要求され、パーソナルキー200に統合された出力デバイス222は、復号鍵へのアクセスを要求するコマンドが呼び出されたこと、およびユーザがこのアクセスを許可する必要のあることを示すために起動し得る。本発明の1つの実施形態において、このことは、視覚的出力デバイス(例えば、LEDまたはLCDディスプレイ)を点滅すること、または音声デバイスをビープすることにより、達成される。本発明の他の実施形態において、ミドルウェア(API260またはPKCS264のどちらか)は、コンピュータ102に付属のディスプレイ122を起動し、処理が進められ得る前に、ユーザが復号鍵へのアクセスを許可しなければいけないことを示す。次いで、パーソナルキー200の入力デバイス218(例えば、ホイール802または感圧性デバイス702および704の1つ)はユーザにより作動させられ、ユーザがプラーベートキーへのアクセスを許可されたことを示すことができる。どの許可も許可されないのは、パーソナルキー200がI/Oポート130から取り除かれた場合、またはディスプレイ122上に表示される「キャンセル」ボタンが選択され、スクリーン上のダイアログを拒否した場合である。復号鍵へのアクセス(上記の例では、ハッシュ機能の実行)が許可されるのは、ユーザがそういうものとして許可される場合である。従って、「署名の強制」概念によって、不正なソフトウェアがユーザの同意または認知を必要とせずに、秘密406Bを使用し得ることは、おそらく不適切になる。
【0102】
不正なソフトウェアは、ユーザのPIN値をキャプチャするために、パーソナルキー200とホストコンピュータ102との間のインターフェースをモニタし得る。PINを直接読み出すことはできないが、不正なソフトウェアは、表6に示されたVerifyPINコマンド(およびその引数)とパーソナルキー200からの応答の両方を調べることが可能である。応答が、適切なPINがVerifyPINコマンドに引数として提供されたことを示す場合、不正なソフトウェアは、PIN自身を決定し得る。前記では、秘密406Bの代わりにユーザのPINをさらに保護するためにも適用され得る。例えば、ホストコンピュータの不正なソフトウェアの検知(sniffer)モジュールがユーザのPINにアクセスに成功した場合、その検知モジュールがユーザが意図しないコンテクストにおいてユーザのPINを使用しようと試みたとき、ユーザはそのPINの信用度が下がったという事実を警告される。
【0103】
図9は、プロセッサ212の動作がユーザ許可を受ける場合の、本発明の実施形態を示すフローチャートである。はじめに、API260は、プロセッサ212の動作を呼び出すコマンドを命令する(902)。そのコマンドは、USBインターフェース204を介してパーソナルキー200に伝送される。プロセッサ212は、ブロック904で示されるように、コマンドを承認する。続いて、パーソナルキー200は、命令されたプロセッサコマンドが許可を要求するコマンドであるかどうかを判定する。このことは、プロセッサコマンドが許可を要求することを示すパーソナルキーのメモリ214に情報を格納することによって達成され得る。例えば、このことは、メモリ214に格納されたマップにおいてインプリメントされ得、(各ユーザ用にカスタマイズされ得る)複数のフラグまたは情報が、プロセッサ212のファームウェアまたはこれと類似した位置に格納され得る。そのため、そのマッピングは変更され得ない。1つの実施形態において、異なるレベルの許可は、異なるプロセッサコマンドに対してインプリメントされる(例えば、書き込みコマンドは許可を要求し得るが、読み取りコマンドは許可を要求し得ない)。
【0104】
別の実施形態において、許可は、呼び出されたコマンドの代わりのデータ、または呼び出されたコマンドおよびデータの組み合わせを前提とされ得る。例えば、本発明は、PINが何らかの方法でアクセスされた任意の時間の許可、またはPINがパーソナルキー200のメモリ214から読み取られたときの許可を要求するために構成され得るが、他のデータが読み取られたときの許可、またはPINがパーソナルキー200に書き込まれたときの許可を要求するためには構成されていない。このことは、例えば、メモリ214に格納されたどのデータがプロセッサの動作によって影響を与えられるかを判定すること、およびプロセッサの動作によって影響を受けたデータがプライベート情報のようなデータを指定している識別に関連するかどうかを判定することによって、達成され得る。
【0105】
1つの出力デバイス222、データトランシーバー252またはホストコンピュータに接続されたディスプレイ122を用いると、その結果、パーソナルキー200は、ブロック906で示されるように、プロセッサの動作を許可するようにユーザにプロンプトを与え得る。このことは、ディスプレイデバイス(例えば、LEDまたはLCD)を点滅させること、音声トランスデューサを作動させること、または両方の動作を実行することにより、達成され得る。所望ならば、ユーザは、ディスプレイデバイスではじめにプロンプトを与えられ、許可が指定した期間内にされない場合、音声トランスデューサが作動し得る。
【0106】
不正なソフトウェアまたは他の扱いにくい作動をできる限り小さくしてプロンプトを与える動作を露呈するために、そのプロンプトは、好適には、パーソナルキー200とホストコンピュータ102との間の通信経路(例として示される)USBインターフェース204から完全に分離した通信経路を用いて実行される。よりセキュリティを増すために、示された実施形態は、不正なソフトウェアで見ることができるいかなる方法においても、パーソナルキーから外部にもらさない通信経路を介して、出力デバイス222でユーザにプロンプトを与えるので、改ざんされることはない。
【0107】
次に、ユーザは、動作の入力信号伝達(signaling)許可を提供する(910)。このことは、種々の入力デバイス(例えば、マウス116またはキーボード114)を用いて実行され得るが、好適には、入力デバイス218またはパーソナルキー200のデータトランシーバ252を用いて実行される。この情報は、パーソナルキー200とホストコンピュータ102との間の通信経路から完全に分離している通信経路、好適には、パーソナルキー200に完全に内臓している(不正なソフトウェアで見ることができる手段によりパーソナルキーを外部にもらさない)通信経路を介してパーソナルキー200と通信される。このことは、ユーザ許可に干渉するまたはユーザ許可をエミュレートする不正なソフトウェアを防止する。
【0108】
本発明の別の実施形態において、さらなるPINセキュリティを提供する。この実施形態において、VerifyPINコマンドは、表6に記載されているコマンドから変更される。通常、VerifyPINコマンドは、どのホストコンピュータ102または遠隔コンピュータ/サーバ134が、引数としてユーザのPINであるかと考えるかを承認する。パーソナルキー200はこのコマンドを承認し、適切なPINが提供されたかどうか示す状態に戻る。しかしながら、この代替的な実施形態において、VerifyPINコマンドは、変更されるので、VerifyPINコマンドは、引数としてPINを含まない。VerifyPINコマンドは、パーソナルキー200に提供され、ユーザは、ユーザのPINを入力するようにプロンプトを与えられる。PINが入力された後、PINは、ホストコンピュータ102とパーソナルキー200とのインターフェースから分離している通信経路220を介して、プロセッサ212と通信し、不正なソフトウェアによって検出され得る場所のどこにも明らかにされない。その結果、PINは内部で確認され、出現(manifestation)がパーソナルキー200からホストコンピュータ200または遠隔コンピュータ/サーバ134に伝送された結果をメッセージとして提供する。このことは、任意の外部のPINの出現を防止する。
【0109】
上述の秘密406を用いたハッシング技術と組み合わされた場合、前記では、ユーザ許可用の高度なセキュア(secure)技術を提供する。このセキュアハッシング技術は、キーを許可し、外部の露呈から秘密406を保護する。しかしながら、ハッシング技術は、キーを所有する人物を許可しない(なぜなら、キーは紛失するか盗まれ得るからである)。PINをパーソナルキーのプロセッサ212に直接入力するための能力は、パーソナルキーがユーザを許可することを可能にし、PINがキーから外部に決してもらされないので、不正なソフトウェアの露呈が防止される。第三者がパーソナルキーを許可し得、かつ、パーソナルキーがユーザを許可し得るため、第三者は、高度な信用でユーザ許可を実行し得る。
【0110】
図10は、PINがパーソナルキー200に直接入力される場合の、本発明の実施形態を示すフローチャートである。ブロック1002では、ユーザのPIN(例えば、表6に挙げられたVerifyPINおよびModifyPINコマンド)へのアクセスを要求するコマンドを出す。パーソナルキー200は、コマンドを承認し(1004)、必要であれば、ブロック1006で示されるように、ユーザにPINに対するプロンプトを与える。このことは、ディスプレイ122、出力デバイス222の1つまたはその任意の組み合わせで達成され得る。好適には、このことは、USBインターフェース204から分離し、アクセス不可能な通信経路を介して達成される。上記で説明された実施形態の入力デバイス218の1つを用いて、ユーザは、PINをパーソナルキー200に提供する。メモリ214に記録された値を用いて、パーソナルキー200のプロセッサ212は、ユーザが入力したPINを有効にする。1つの実施形態において、このことは、ユーザに提供された値をメモリ214に格納された値と直接比較することによって達成される。続いて、パーソナルキーは、PINの有効性を示す応答を提供する(1014)。このPINの有効性は、API260によって承認される。その応答は、ユーザが供給されたPINが有効であるかどうかを示す。
【0111】
1つの実施形態において、バイオメトリックセンサ250はまた、プロセッサ212に通信可能に接続される。バイオメトリックセンサ250は、データをプロセッサ212に提供し、本開示のはじめに記載されたプロセッサ212からコマンドを受信する。
【0112】
プロセッサはまた、任意に1つ以上の発光デバイス216、あるいは動作の視覚的表示またはパーソナルキー200の状態を提供する他の視覚的表示デバイスに必要に応じて通信可能に接続される。プロセッサ212はまた、ユーザに、パーソナルキー200の状態または動作の振動データまたは音声データを提供するための音声デバイスと通信可能に接続され得る。
【0113】
(結論)
ここでは、本発明の好適な実施形態の記載を結論づける。要約すれば、本発明は、コンパクトで内蔵型のパーソナルトークンを説明する。そのトークンは、ホスト処理デバイス、メモリおよびプロセッサに取り外し可能に接続可能なUSBコンプライアントインターフェースを含む。プロセッサは、メモリに格納できるデータに条件付きでアクセスするホスト処理デバイス、およびパーソナルキーに格納された管理ファイルに要求される機能を提供し、これは、そのファイルのデータに基づいて計算を実行するためである。1つの実施形態において、パーソナルキーはまた、一体型のユーザ入力デバイスおよび一体型のユーザ出力デバイスも含む。その入力および出力デバイスは,USBコンプライアントインターフェースに依存しない通信経路によってプロセッサと通信し、従って、パーソナルキーの外部にどのようなプライベート情報も外部にもらすことなく、ユーザがプロセッサと通信することを可能にする。
【0114】
本発明の好適な実施形態の前述の説明は、図示および説明の目的のために示されてきた。本発明は開示されたそのままの形態にこだわったり、または制限されることを意図しない。上記の教示を考慮すると、多くの変更および改変が可能である。例えば、前記のパーソナルキーは、ホスト通信との電子通信を提供するものとして記載されてきたが、このような電子通信は、光ファイバーおよびその同等物によってインプリメントされるようなデータの光転送を含むことが想定される。
【0115】
本発明の範囲は、詳細な説明によって制限されるものではなく、むしろ、ここに添付された特許請求の範囲によって制限されことが意図される。上記の明細書、実施例およびデータは、本発明の製造の完全な説明および本発明の組成の使用を提供する。本発明の多くの実施例は、本発明の意図および範囲から逸脱され得ないため、本発明は、添付された特許請求の範囲に属する。
【技術分野】
【0001】
(発明の背景)
1.(発明の分野)
本発明は、コンピュータ周辺機器、特に、一体化された入力および出力デバイスを有し、セキュリティの向上を提供するパーソナルキーに関する。
【背景技術】
【0002】
2.(関連技術の説明)
過去十年において、家および職場の両方でパーソナルコンピュータの使用が広がってきた。これらのコンピュータにより、たった数十年前の大規模メインフレームコンピュータの機能性を実質的に超えるハイレベルの機能性が格安で多くの人々に提供される。その傾向は、モバイルベースで高性能のコンピューティングパワーを提供するラップトップおよびノートコンピュータの人気が高くなっていることにより、さらに証明される。
【0003】
パーソナルコンピュータの広範な利用可能性は、個人間通信にも大きなインパクトをもたらした。ほんの十年前、電話またはファックスマシーンが、事実上、高速ビジネス通信の唯一のメディアであった。今日、電子メール(eメール)を介して通信する企業および個人の数は、大幅に増加している。パーソナルコンピュータはまた、インターネットの出現で有用となり、商業媒体として多数使用されている。
【0004】
確かに有用ではあるが、個人通信、商業、およびビジネスでコンピュータが用いられるにつれ、多くの他に類を見ない問題が生じてきている。
【0005】
第1に、コンピュータの使用の増加により、ソフトウェア開発者の実収入を犠牲にするコンピュータソフトウェアの広範な不正使用および不正コピーが生じている。ソフトウェアの不正コピーまたは不正使用は法律違反であるが、海賊ソフトウェアの広範な利用可能性および施行の困難さにより、ソフトウェア著作権侵害を禁止する方法の有効性が制限されている。
【0006】
ソフトウェア開発者およびコンピュータ設計者等には、ソフトウェア著作権侵害の問題に取り組む技術的な解決手段を求めている。1つの解決手段は、ホストコンピュータの入力/出力(I/O)ポートに結合されるハードウェア鍵または「ドングル(dongle)」として公知である外部デバイスを用いることである。
【0007】
そのようなハードウェア鍵の使用は、ソフトウェア著作権侵害を減らす効率のよい方法であるが、現在のところ、それらの使用は高価なソフトウェア製品に実質的に制限されている。部分的には、ハードウェア鍵は非常に高価であること、保護プログラムの使用が望まれる場合はいつもハードウェア鍵を備えることが面倒であることをアプリケーションプログラムユーザが嫌うことが理由となり、ハードウェア鍵は一般的なソフトウェアパッケージに広くは適用されていない。多くの場合、ハードウェア鍵は、1つのアプリケーションのみに使用するように設計されている。同じコンピュータでの複数のアプリケーションの使用が望まれる場合、複数のハードウェア鍵が同時に動作しなければならない。
【0008】
eメールは、電話およびファクシミリマシーンに対する大きな利点を示すが、eメールもまた、問題を抱えている。これらの問題の1つは、セキュリティに関する。電話回線は比較的安全であり、個人の情報の伝送に関する法的に認証されている方法であるが、eメールは、一般的に全く安全でないインターネットを通じて送信される。個人の電子メッセージの送信では、それらのメッセージは、オープンでなく、許可されていない相手に開示されないことを保障されなければならない。さらに、電子メッセージの受信人は、送信者のアイデンティティ、およびそのメッセージが送信の間にいくつかの箇所を改竄されていないことを確かめるべきである。
【0009】
インターネット通信のパケット交換の特性は、通信の中断のリスクを最小化するが、決心の固い不正使用者がプロテクトされていないeメールメッセージへのアクセスを得ることは難しいことではない。
【0010】
送信間の電子メッセージの保全性を確実にするための多くの方法が開発されている。単純な暗号化は、データを安全にする最もありふれた方法である。公開鍵および復号鍵の両方を用いるDES(データ暗号規格)を例とするシークレットキー暗号と公開鍵暗号化方法の両方が実行される。公開および復号鍵暗号方法により、メッセージが許可されていない相手に読まれること、または、その内容を改竄されることを心配をせずにユーザがインターネットおよびeメールメッセージを送信することを可能とする。しかし、公開鍵暗号化方法は、受信者が公開鍵の有効性を認証出来ず、電子メッセージの送信者のアイデンティティを検査出来ないので、鍵暗号方法はメッセージの受信者をプロテクトしない。
【0011】
デジタル認定の使用は、この問題に1つの解決策を与える。デジタル認定は、メッセージへ署名した個人の、アイデンティティおよび公開鍵を証明する署名書類である。デジタル認定により、受信者が公開鍵の許可を検査することを可能になる。しかし、典型的なユーザは、eメールを用いて、数百人の相手と通信し得、数台あるコンピュータの内のいずれかを用いて、eメールを行い得る。それ故数台のコンピュータプラットフォームにわたる多くのデジタル認定を管理する手段が必要とされる。
【0012】
インターネット取引により、新たな問題が生じる。インターネットを用いて製品またはサービスの購入を求めるユーザは、自分のクレジットカードナンバー等が、妥協ではなく安全であることを保証されなければならない。同時に、ベンダーは、サービスおよび製品が、支払いをした相手にのみ配達されることを保証されなければならない。多くの場合、これらの目的は、パスワードの使用によって達成される。しかし、インターネット取引がより一般的になるにつれて、客は、自分が全てのトランザクションのために少数のパスワードを用いるか、または多数のパスワードを覚えるという困難な仕事に直面するかのどちらかに決定しなければならない羽目に陥っていることを知る。パスワードの任意の開示は他の部分の開示につながり得るので、全てのトランザクションに少数のパスワードを用いることは、本質的にセキュリティの妥協である。多数のパスワードを用いてさえ、セキュリティには妥協することになり得る。客は、通常自らパスワードを忘れるので、多くのインターネットベンダーは、出生地、母の旧姓、および/または社会保険番号を例とする他の個人情報を提供することによって、ユーザが自分のパスワードを忘れないようにするオプションを提供する。この特徴は、インターネット取引をプロモートするためにはしばしば必要であるが、実際、公に利用可能な「秘密」情報に依存することによって、パスワードにひどく妥協する。
【0013】
ユーザは、多数のパスワードを忘れないようにすることを厭わず、忘れないように出来る場合でさえ、パスワードセキュリティ技術は、ユーザにとって比較的思い出し易いパスワードを選ぶ傾向があるという事実により、しばしば妥協したものになる。実際、ユーザが真にランダムなパスワードを選ぶことはめったにない。広範な多様なコンピュータプラットホームに格納され得、使用のために呼び出され得るランダムなパスワードを生成し、管理する手段が必要とされる。
【0014】
インターネット通信はまた、「クッキー(cookies)」の使用が増加するのがわかる。クッキーは、インターネットサーバからユーザコンピュータの記憶装置にダウンロードされ得るユーザのパターンおよび嗜好の記憶をとるデータおよびプログラムを含む。一般的には、クッキーは、アドレスの範囲を含む。ブラウザによりそれらのアドレスに再度出会う場合、アドレスに関連するクッキーは、インターネットサーバに提供される。例えば、ユーザのパスワードがクッキーとして格納されるならば、2回目および次回のサービスへのアクセスをする場合に、クッキーの使用により、ユーザは再度パスワードを入力する必要なく、サービスまたは製品を要求することができる。
【0015】
しかし有益であるとしても、クッキーもまた、ダークサイドを有し得る。多くのユーザは、コンピュータのハードドライブにクッキーを格納することに反対する。これらのことに応じて、インターネットブラウザソフトウェアにより、ユーザは、オプションを選択してクッキーが格納されるまたは使用される前に通知され得る。この解決策の困難さは、これにより通常ユーザにクッキーを受け取るように促すメッセージが過剰になる。妥協を許さない手段よりよい解決策は、クッキーの格納および/または使用を可能にするが、その格納および使用をユーザの指定基準と一致するように切り離して制御することである。
【0016】
スマートカードが上記の機能性のいくつかを提供するが、スマートカードは理想的な解決をもたらさない。第1に、デジタル認定およびパスワードに対してパーソナルキーが単一の、広く許容された、安全なレポジトリを提供する場合、パーソナルキーは、ユーザに重要なだけである。スマートカード読み取り装置は、比較的高価であり、少なくとも米国では普及しておらず、それゆえ仕事に向いていない。
【0017】
第2に、スマートカードは、カードに直接データを入力することを提供しない。これにより、不正ソフトウェアの可能なスニファ(sniffer)モジュールに対してスマートカードを開ける。スマートカード読み取り装置インターフェースをモニタして、ユーザ個人のアイデンティティまたはパスワード情報を判定することができる。この問題は、ユーザが未知のまたは信頼性のないスマートカード読み出し装置を用いる状況で、特に問題となる。直接入力デバイスの欠如はまた、スマートカード読み取り装置が利用不可能である比較的ありふれた状況において、ユーザがスマートカード関連機能を実行することを妨げる。
【0018】
第3に、スマートカードが読み取り装置内になければ、データはスマートカードでアクセスできない。これにより、スマートカード読み出し装置に位置付けされ得るまで、ユーザがスマートカードに格納されたデータ(すなわち、格納されたパスワード)をみることを防ぐ。スマートカード読み取り装置(特に信頼性の高い装置)を見つけることが困難であり得る場合、これは、実質的にカードの有用性を制限する。もちろん、ユーザは無造作に紙にパスワードを書き留めることができるが、これはカードのデータ全てのセキュリティを妥協したものにし、中心的な、セキュリティが高く、携帯可能な個人データのレポジトリを提供する目的と矛盾してる。
【0019】
前述から、脆弱な外部インターフェースの使用を要求することなく、ユーザがパスワードおよびデジタル認定を格納し、検索することが可能とするパーソナルキーの必要性を理解し得る。
【発明の概要】
【課題を解決するための手段】
【0020】
(発明の要旨)
本発明は、ユニバーサルシリアルバス(USB)を例とする市販のI/Oインターフェースと対応するフォームファクタにおいて、パーソナルキーのこれらの必要性全てを満たす。パーソナルキーは、コピーおよび不正使用を防ぐソフトウェア保護スキームを実行するプロセッサおよびメモリを含む。パーソナルキーは、デジタル認定の格納および管理を提供し、ユーザが自分のデジタル認定の全てをある媒体に格納し、プラットフォームからプラットフォームへの移植を可能にする。パーソナルキーは、多くのパスワードを生成、格納、および管理を提供し、付加的なセキュリティを提供し、ユーザが多数のパスワードを覚える仕事から解放する。パーソナルキーは、クッキーおよび他のJava(R)実行ソフトウェアプログラムを格納し、ユーザがクッキーを除去可能なセキュリティフォームファクタで受け取ることを可能にする。これらの特性は、本発明が仮想プライベートネットワーク(VPN)で使用される場合に、特に有用である。本発明はまた、いくつかのアプリケーションに対して使用され得る。
【0021】
パーソナルキーは、ユーザの繊細な情報を全て実質的に格納することが可能であるので、パーソナルキーは、可能な限りのセキュリティを保持することが重要である。パーソナルキーの1実施形態はまた、指紋データを例とするバイオメトリックスを測定するように配置されるバイオメトリックスセンサーを含む。バイオメトリックスセンサーは、個人が保持する(指紋を例とする)鍵の特徴を測定し、鍵をオーナーが、実際にその鍵のオーナーであることを確認する。
【0022】
パーソナルキーは、ユーザが使用し、様々なコンピュータプラットフォームと双方向に交流する必要のある大量のデータの単一の安全なレポジトリを表すので、パーソナルキーは、多くの様々なコンピュータおよび周辺機器とインタフェース(すなわち、データを伝送および受信)し得ることがまた、重要である。パーソナルキーの1実施形態は、赤外線(IR)トランシーバを例とする電磁波トランスセプション(transception)デバイスを含む。このトランシーバにより、パーソナルキーは、物理的に結合せずに、広範囲で様々なコンピュータおよび周辺機器と情報を交換することを可能にする。
【0023】
本発明は、ネットワークサービスまたはパスワード、クッキー、デジタル認定または他の場合、スマートカードが用いられるいかなる場所へのアクセスを制御することによく適応しており、以下の、
・インターネットプロトコルセキュリティ(IPSec)、ポイント対ポイントトンネリングプロトコル(PPTP)、パスワード認証プロトコル(PAP)、チャレンジハンドシェイク認証プロトコル(CHAP)、遠隔アクセスダイアルインユーザサービス(RADIUS)、端末アクセス制御装置アクセス制御システム(TACACS)を含む遠隔アクセスサービスと、
・ハイパーテキストトランスポートプロトコル(HTTP)、セキュアソケット層(SSL)を含む、エクストラネットおよびサブスクリプションベースのウェブアクセス制御の提供と、
・セキュア(secure)オンラインバンキング、利益アドミニストレーション、会計管理のサポートの向上と、
・セキュアワークフローおよびサプライチェーンインテグレーション(署名形式(form signing))のサポートと、
・ラップトップコンピュータの盗難防止(ラップトップ操作にパーソナルキーの要求)と、
・ワークステーションログオン許可と、
・ソフトウェアの変更またはコピーの防止と、
・ファイルの暗号化と、
・セキュアeメール、例えば、セキュア多目的インターネットメール拡張(S/MIME)、およびオープンプリティグッドプライバシー(OpenPGP)ののサポートと、
・ネットワーク装置アドミニストレーションの管理と、
・例えば、セキュア電子取引での電子ウォレット(SET、MilliCent、eWallet)と、
を含む。
【0024】
1実施形態では、本発明は、コンパクトな自己完結してるパーソナルキーまたはトークンを含む。パーソナルキーは、ホスト処理デバイス、メモリ、プロセッサに取り外し可能な結合をし得るUSBコンプライアントインタフェースを含む。プロセッサは、メモリに格納可能なデータにホスト処理デバイス条件付アクセスおよびパーソナルキーに格納されるファイルの管理を要求し、ファイルのデータに基づき実行する機能性を提供する。1実施形態では、パーソナルキーはまた、統合ユーザ入力デバイスおよび統合ユーザ出力デバイスを含む。入力および出力デバイスは、USBコンプライアントインタフェースとは無関係の通信パスでプロセッサと通信し、ユーザがパーソナルキーを除く任意の個人情報を示さずともプロセッサを通信が可能にする。
【0025】
例えば、本発明は、以下を提供する。
(項目1)
コンパクトなパーソナルトークン(200)であって、
ホスト処理デバイス(102)に取り外し可能なように結合可能なUSBコンプライアントインターフェース(206)と、
メモリ(214)と、
該メモリ(214)に通信可能なように結合されたプロセッサ(212)であって、該プロセッサ(212)が、該USBコンプライアントインターフェース(130)を介して、ホスト処理デバイス(102)に通信可能なように結合可能であり、該プロセッサ(212)が、該メモリ(214)に格納可能なデータへの条件付アクセスをホスト処理デバイス(102)に提供する、プロセッサ(212)と、
該USBコンプライアントインターフェース(206)と異なるパス(220)により該プロセッサ(212)に通信可能なように結合されたユーザ入力デバイス(218)と
を含む、コンパクトなパーソナルトークン(200)。
(項目2)
ユーザ入力デバイス(218)が、前記プロセッサ(212)の動作を制御するように構成されている、項目1に記載の装置。
(項目3)
前記動作が、
暗号化動作と、
復号化動作と
を含む群から選択される動作を含む、項目1に記載の装置。
(項目4)
前記動作が、前記メモリ(214)に格納されている復号鍵を用いるデジタル署名動作を含む、項目1に記載の装置。
(項目5)
前記入力デバイス(218)が、前記トークン(200)の外部の面から作動可能な少なくとも1つの感圧性デバイスを含む、項目1に記載の装置。
(項目6)
前記入力デバイス(218)が少なくとも1つの押しボタンスイッチ(702)を含む、項目1に記載の装置。
(項目7)
前記USBコンプライアントインターフェース(206)と異なるパス(224)によって、前記プロセッサ(212)に通信可能なように結合された出力デバイス(222)をさらに含み、該出力デバイス(222)が、該プロセッサ(212)の動作に関する情報を提供する、項目1に記載の装置。
(項目8)
前記出力デバイス(212)が、少なくとも1つの発光デバイス(616)を含む、項目7に記載の装置。
(項目9)
前記出力デバイスが、少なくとも1つの液晶ディスプレイ(706)を含む、項目7に記載の装置。
(項目10)
前記出力デバイスが少なくとも1つの音声出力デバイスを含む、項目7に記載の装置。
(項目11)
コンパクトなパーソナルトークン(200)であって、
ホスト処理デバイス(102)に取り外し可能なように結合可能なUSBコンプライアントインターフェース(206)と、
メモリ(214)と、
該メモリ(214)に通信可能なように結合されたプロセッサ(212)であって、該プロセッサ(212)が、該USBコンプライアントインターフェース(206)を介して、該ホスト処理デバイス(102)に通信可能なように結合可能であり、該プロセッサ(212)が、該メモリ(214)に格納可能なデータへの条件付アクセスをホスト処理デバイス(102)に提供する、プロセッサ(212)と、
該プロセッサ(212)に通信可能なように結合されたユーザ出力デバイス(222)と
を含む、コンパクトなパーソナルトークン(200)。
(項目12)
前記ユーザ出力デバイス(212)が、前記USBコンプライアントインターフェース(206)と異なるパス(224)により前記プロセッサ(212)に結合される、項目11に記載の装置。
(項目13)
前記ユーザ出力デバイス(222)が前記プロセッサ(212)の動作を示すように構成されている、項目11に記載の装置。
(項目14)
前記動作が、
暗号化動作と、
復号化動作と、
復号鍵を用いるデジタル署名動作と
を含む群から選択される動作を含む、項目11に記載の装置。
(項目15)
前記ユーザ出力デバイス(212)が、
少なくとも1つの発光デバイス(616)と、
少なくとも1つの液晶ディスプレイ(706)と、
少なくとも1つの音声デバイスと
を含む群から選択される、項目11に記載の装置。
(項目16)
前記USBコンプライアントインターフェース(206)と異なるパス(220)によって、前記プロセッサ(212)に通信可能なように結合された入力デバイス(218)をさらに含み、該入力デバイス(218)が、該プロセッサ(212)の動作に関する情報を提供する、項目1に記載の装置。
(項目17)
前記プロセッサ(212)およびメモリ(214)が、該プロセッサ(212)との電気的な通信を提供する少なくとも1つの回路接続面(610)を有する回路基板(606)上に配置され、前記USBコンプライアントインターフェース(206)が、
少なくとも1つの導電性のピンであって、該少なくとも1つの導電性のピンは、該回路接続面(610)と前記ホスト処理デバイス(102)との間の電気的な通信を提供し、該導電性のピンは、ピン固定部を含み、該回路接続面(610)に取り外し可能なように結合可能である、少なくとも1つの導電性のピンと、
該回路基板(606)の少なくともいくつかを実質的に封入するハウジング(602)であって、該ハウジング(602)は、該導電性のピンの縦軸に沿ってピン部材を固定するための該ピン固定部と接触可能なピンインターフェースを含む、ハウジング(602)と
を含む、項目11に記載の装置。
全体にわたって、参照番号が同じものは対応する部材を表す。
【図面の簡単な説明】
【0026】
【図1】図1は、本発明を実行する例示的なハードウェア環境を示すダイアグラムである。
【図2】図2は、本発明の1実施形態の選択されるモジュールを例示するブロックダイアグラムである。
【図3】図3は、メモリのパーソナルキーによって提供されるメモリリソ−スのダイアグラムである。
【図4】図4は、暗号エンジンを用いて、パーソナルキーまたは暗号エンジンに格納されるアプリケーションデータの識別を認証する方法の1実施形態を示すダイアグラムである。
【図5】図5は、いくつかのアプリケーションの許可および詳細な設定データを提供するアクティブパーソナルキーのファイルシステムメモリリソースのデータコンテンツを例示するダイアグラムである。
【図6】図6は、パーソナルキーの1実施形態の例示を示すダイアグラムである。
【図7A】図7Aは、第1の感圧性デバイスおよび第2の感圧性デバイスを含む入力デバイスを有し、各々がUSBコンプライアントインタフェースと無関係な通信パスによりプロセッサと通信可能となる得る結合をするパーソナルキーの1実施形態を示すダイアグラムである。
【図7B】図7Bは、第1の感圧性デバイスおよび第2の感圧性デバイスを含む入力デバイスを有し、各々がUSBコンプライアントインタフェースと無関係な通信パスによりプロセッサと通信可能となる得る結合をするパーソナルキーの1実施形態を示すダイアグラムである。
【図7C】図7Cは、第1の感圧性デバイスおよび第2の感圧性デバイスを含む入力デバイスを有し、各々がUSBコンプライアントインタフェースと無関係な通信パスによりプロセッサと通信可能となる得る結合をするパーソナルキーの1実施形態を示すダイアグラムである。
【図8A】図8Aは、本発明の別の実施形態の例示を提供するダイアグラムである。
【図8B】図8Bは、本発明の別の実施形態の例示を提供するダイアグラムである。
【図8C】図8Cは、本発明の別の実施形態の例示を提供するダイアグラムである。
【図9】図9は、プロセッサ動作が、ユーザ許可を受ける本発明の1実施形態を例示するフローチャートである。
【図10】図10は、PINが直接にパーソナルキーに入力される、本発明の1実施形態を例示するフローチャートである。
【発明を実施するための形態】
【0027】
(好適な実施形態の詳細な説明)
以下の説明では、本明細書の一部を形成し、本発明のいくつかの実施形態を例示す目的で示す添付された図面を参考にする。本発明の範囲から逸脱することなく、他の実施形態が利用され得、構造的変更が為され得ることが理解される。
【0028】
(ハードウェア環境)
図1は、本発明を実行するために用いられ得る例示的なコンピュータシステム100を示す。コンピュータ102は、プロセッサ104およびメモリ(例としてはランダムアクセスメモリ(RAM)106)を含む。コンピュータ102は、機能的にでディスプレイ122に結合され、グラフィカルユーザインターフェース118B上でユーザにウィンドウを例とする画像を表示する。コンピュータ102は、キーボード114、マウスデバイス116、プリンタ128等を例とする他のデバイスに結合され得る。もちろん、当業者は、上記の構成エンティティの任意の組み合わせ、または任意の数の異なる構成エンティティ、周辺機器、および他のデバイスが、コンピュータ102で使用され得ることを認識する。
【0029】
一般に、コンピュータ102は、メモリ106に格納されるオペレーティングシステム108の制御下で動作し、ユーザとインターフェースをとり、入力およびコマンドを受け取り、グラフィカルユーザインターフェース(GUI)モジュール118Aを通じて結果を示す。GUIモジュール118Aは、分離したモジュールとして示されるが、GUI機能を実行する命令は、オペレーティングシステム108、コンピュータプログラム110に常駐または分散されてもよく、専用のメモリおよびプロセッサで実行されてもよい。コンピュータ102はまた、プログラミング言語(例として、COBOL、C++、FORTRANまたは他の言語)で書かれたアプリケーションプログラム110をプロセッサ104読み出し符号に翻訳することができる、コンパイラ112を実行する。完了後、アプリケーション110は、コンパイラ112を用いて生成される関係および論理を用いて、コンピュータ102のメモリ106に格納されるデータにアクセスし、操作する。コンピュータ102はまた、パーソナルトークン200(以降では、代わりにパーソナルキー200としても呼ばれる)に対する入力/出力(I/O)ポート130を含む。1実施形態において、I/Oポート130が、USBコンプライアントインターフェースを実行するUSBコンプライアントポートである。
【0030】
1実施形態において、オペレーティングシステム108、コンピュータプログラム110、およびコンパイラ112を実行する命令が、コンピュータ読み出し可能媒体(例として、データ格納デバイス120)内に、実体的に含まれる。そのコンピュータ読み出し可能媒体は、固定データ格納デバイスまたはリム−バルデータ格納デバイスを1つ以上含み得、これは、ジップドライブ、フロッピー(R)ディスクドライブ124、ハードドライブ、CD−ROMドライブ、テープドライブ等を例とする。さらに、オペレーティングシステム108およびコンピュータプログラム110は、コンピュータ102で読み出しおよび実行される場合、コンピュータ102に本発明を実行および/または使用するのに必要な工程を行わせる命令から構成される。コンピュータプログラム110および/またはオペレーティング命令はまた、メモリ106および/またはデータ通信デバイス内に実体的に含まれ得、それにより本発明に応じたコンピュータプログラム製品または製造品を製造する。そのようなものとして、本明細書中で用いられる用語「製造品」および「コンピュータプログラム製品」は、任意のコンピュータ読み出し可能デバイスまたは媒体からアクセス可能なコンピュータプログラムを含むように意図される。
【0031】
コンピュータ102は、ダイアルアップネットワーク、ワイドエリアネットワーク(WAN)、ローカルエリアネットワーク(LAN)、仮想プライベートネットワーク(VPN)またはインターネットを例とする通信媒体132を介して、遠隔コンピュータまたはサーバ134に通信可能な結合をし得る。付加的または代替的なアプリケーションプログラムを含む、コンピュータ動作に対するプログラム命令は、遠隔コンピュータ/サーバ134からロードされ得る。1実施形態において、コンピュータ102は、インターネットブラウザを実行し、ユーザがワールドワイドウェブ(WWW)および他のインターネットリソースにアクセス可能となる。
【0032】
当業者は、本発明の範囲から逸脱することなく、この設定に、多くの改変が為され得ることを認識する。例えば、当業者は、上記の構成エンティティの任意の組み合わせ、または任意の数の異なる構成エンティティ、周辺機器および他のデバイスが、本発明で使用され得ることを認識する。
【0033】
(アーキテクチャの概要)
図2は、本発明の選択されたモジュールを例示するブロックダイアグラムである。パーソナルキー200は、ホストコンピュータ102の入力/出力ポート130およびパーソナルキー200にマッチングする入力/出力(I/O)ポート206を含むUSBコンプライアントインターフェース204のUSBコンプライアント通信パス202を通じて、ホストコンピュータと通信し、パワーを得る。パーソナルキーI/Oポート206で受信される信号は、通信パス210および216を介してドライバ/バッファ208によってプロセッサ212へ往復する。プロセッサ212は、本発明の上記の機能を実行するためのデータおよび命令を格納するメモリ214に通信可能な結合される。1実施形態において、メモリ214は、工場供給データおよび顧客供給アプリケーション関連データを保持し得る不揮発性ランダムアクセスメモリである。プロセッサ212は、これらの機能のいくつかを実行するために、いくつかの内部メモリを含み得る。
【0034】
プロセッサ212は、随意に、入力デバイス通信パス220を介して、入力デバイス218に通信し得るように結合され、出力デバイス通信224を介して、出力デバイス222に通信し得るように結合される。その両方のパスは、USBコンプライアントインターフェース204および通信パス202と異なる。これら個別の通信222バスおよび224によって、USBコンプライアントインタフェース204を識別するプロセスまたは他のエンティティが盗む(eavesdrop)またはとりなす(intercede)ことを可能にすることなく、ユーザがプロセッサ212の動作についての情報を見ることを可能とし、プロセッサ212の動作に関連する入力を提供する。これにより、重要な(key)プロセッサ212とユーザとの間のセキュリティの高い通信を可能にする。以下に十分に説明する本発明の1実施形態において、ユーザは、鍵の外側で動作可能な機械的スイッチまたはデバイス(例えば、ボタンおよび機械的スイッチのような感圧性デバイス)の物理的操作によって、直接プロセッサ212と通信する。以下でより十分に説明する本発明の別の実施形態において、入力デバイスは、文字の選択を示す接触つめを備えるホイールを含む。
【0035】
入力デバイス218および出力デバイス222は、共同的にお互い双方向に相互作用し、パーソナルキー200の機能性を高め得る。例えば、出力デバイス222は、ユーザが入力デバイス218に情報を入力するように促す情報を提供し得る。例えば、出力デバイス222は、(アラビア数字およびまたは文字を表示し得る)英数字のLEDまたはLCDディスプレイを例とする視覚的ディスプレイおよび/または聴覚的デバイスを含み得る。ユーザは、聴覚的デバイスのビープによって、LEDのフラッシュパターンによって、または両方によって情報を入力するように促され得る。出力デバイス222はまた、随意に用いられ、入力デバイス218によって情報の入力を確かめ得る。例えば、ユーザが、情報を入力デバイス218に入力する場合、またはユーザ入力が無効である場合、聴覚的出力デバイスは、ビープし得る。入力デバイス218が、入力デバイスの異なる組み合わせを含む多くの形式の1つを取り得る。
【0036】
入力デバイス通信パス220および出力デバイス通信パス224は、個別のパスとして図2において図示されるが、USBコンプライアントインターフェース204と異なる通信パスを依然と保持して、パス220および224を組み合わせることにより、本発明は実行され得る。例えば、入力デバイス218および出力デバイス222は、単一のデバイスにパッケージ化され得、プロセッサ212との通信は単一の通信パスで多重化される。
【0037】
1実施形態において、本発明は、USBコンプライアントインターフェース204と異なる通信パスを介してプロセッサに結合される代わりに、USBコンプライアントインターフェース204に結合され得る第2の出力デバイス222をさらに含む。この実施形態は、例えば、ユーザにパーソナルキー200が正確にホストコンピュータのUSBポートに挿入されたかどうかを示す(例えば、USBコンプライアントインターフェースの出力信号の表示を提供することによって)ために用いられ得る。第2の出力デバイスはまた、(例えば、USBコンプライアントインターフェースのデータ信号の表示を提供することによって)データがホストコンピュータとパーソナルキー200とを往復することを示すために用いられ得る。
【0038】
パーソナルキーは、複数のAPIライブラリルーティンを有するアプリケーションプログラムインターフェース(API)260と通信し得るように結合されるUSBドライバモジュール266を含むインターフェースを有する。API260は、アプリケーション110とのインターフェースを提供し、コマンドを出し、パーソナルキー200からの結果を受け取る。1実施形態において、NETSCAPE、Inc.製の利用可能なブラウザを例とするブラウザ262は、APIおよび公開鍵暗号規格(PKCS)モジュール264で動作し、トークンベースユーザ許可システムを実行する。
【0039】
パーソナルキーの可搬性および利用性は、多くの利点を有する一方で、パーソナルキーはまた、重大な不利点・・・紛失および盗難があり得る。パーソナルキー200は、多くのユーザのプライベートデータに対してセキュリティの高いレポジトリを表すので、これは特にトラブルとなる。これらの理由から、パーソナルキー200に含まれる情報(しかし、必ずしもパーソナルキー200それ自体ではない)の究極的なセキュリティは非常に重要となる。
【0040】
究極的に、パーソナルキー200は、ホストコンピュータ102を通じて外部に対して所有者を識別するが、パーソナルキーは紛失または盗難に遭う可能性があるので、パーソナルキー200を所有する個人は実際のオーナーであるという保証はない。セキュリティは、個人のパスワード等の使用により向上し得るが、この解決手段は理想ではない。第1に、単一パスワードの使用は、パスワードが、妥協され得るという非常に現実的な可能性を高める(結局、盗人は、ユーザ、およびユーザのパスワードを知っている)。複数回のパスワードの入力を要求することはまた、ホストコンピュータ102または遠隔コンピュータ134で実行してる不正なソフトウェアが、パスワードまたは個人識別を盗み得る機会を増やすことになる。パーソナルキー200を使用する理由の1つは多くのパスワードを覚える必要性をユーザから取り除くことであるので、多数のパスワードの使用は、解決にはならない。パスワードに関する別の問題は、ハッキング手段を用いて、パスワード保護を出し抜き、またはパスワードそれ自体を発見し得ることである。これは、パーソナルキー200は、たいていの場合、キーボード114を例とするホストコンピュータ102の周辺機器に入力される入力/出力ポート130を介しての伝送されるデータに左右され、その結果、パーソナルキー200はハッキングに脆弱になるという観点で特に問題である。
【0041】
本発明の1実施形態において、バイオメトリックセンシングデバイス250は、パーソナルキー200上にまたは内にマウントされ、ユーザがパーソナルキー200を保持する場合に、バイオメトリックデータをユーザから集める。1実施形態において、バイオメトリックセンシングデバイス250は、ユーザの指紋を読み取ることが可能である指紋センサーを含む。バイオメトリックセンサー250はまた、バイオメトリックデータをプロセッサ212による使用に適切なデータに減らすビルトイン処理を含み得る。バイオメトリックデータの収集が必要な場合、発光または発熱デバイスをバイオメトリックセンサーの近くに配置して、光または熱を使用するアクティヴデータ測定を提供し得る
バイオメトリックセンサー250は、名目上、関心のあるバイオメトリックデータを測定する最適な場所に配置される。図示される実施形態において、バイオメトリックセンサー250は、ユーザがパーソナルキー200を握って、パーソナルキーをホストコンピュータ102のI/Oポート130に挿入する場合に、ユーザの親指の指紋からのデータを収集するように寸法を調整され、配置される。ホルダーの指紋の測定を容易にするために、パーソナルキー200の外部表面は、ユーザの親指を特定の場所に置くように設計され得る。あるいは、セキュリティを高めるために、パーソナルキー200の外観は、バイオメトリックセンサー250の存在を全くマスクするように設計され得る。
【0042】
バイオメトリックセンサー250は、既知の時間に予測可能なタイプの既知のデータを集める(例えば、パーソナルキー200をホストコンピュータのI/Oポート130に接続する時、親指の指紋を収集する)ことを期待され得るポジションに有利に配置され得る。パーソナルキー200は、バイオメトリックセンサー通信パス226を介してバイオメトリックセンサー250からデータを受け取り、覚えたかまたは妥協したパスワード、または任意の他の入力なしで鍵を保持して、個人のアイデンティティを確認する。このように、バイオメトリックセンサー250は、バイオメトリックセンサーまたはパスワードのみで得ることができるより高度なレベルのセキュリティを備えるパーソナルキー200を提供する。必要な場合、パーソナルキー200を接続するホストコンピュータ102を認識するように、パーソナルキー200は設定され得、このように得られたデータを用いて、鍵のセキュリティを向上させ得る。
【0043】
バイオメトリックセンサーはまた、同様に他の方法でパーソナルキーのセキュリティを向上させるように用いられ得る。例えば、パーソナルキーが盗難される場合、バイオメトリックセンサーは、盗人の指紋を測定するために用いられ得る。このデータは、盗人がパーソナルキーを用いて、例えば、インターネットで買い物しようと試みるまで格納され、維持され得る。このときに、パーソナルキー200は、指紋情報(および任意の他の関連情報)を適切な機関に送信し得る(例としては、インターネットサイト)特定のエンティティに(盗人を識別しても、しなくとも)コンタクトをとるようにプログラムされ得る。パーソナルキー200はまた、多くの不正確なパスワードが供給される場合、このダイアルアップおよびレポート機能を実行し得る。
【0044】
本発明の1実施形態において、パーソナルキー200はまた、外部データトランシーバ254とデータを通信するデータトランシーバ252を含む。データトランシーバ252は、ドライバ208および通信パス216、228を介して、プロセッサ212と通信し得るように結合され、パーソナルキー200をUSBコンプライアントインタフェース204を曝すことなく、電磁波を送信および受信を介して、データを送信および受信を可能にする。あるいは、データトランシーバ252は、プロセッサ212に通信し得るように直接に結合され得る。
【0045】
1実施形態において、データトランシーバ252は、同じ能力を備える多くの市販の利用可能な周辺機器と通信し得る赤外線(IR)トランシーバを含む。この機能は、パーソナルキー200が、既にホストコンピュータ102のI/Oポート130に結合される場合でさえ、パーソナルキー200に、外部の周辺機器およびデバイスと通信する別の手段を提供する。
【0046】
1実施形態において、パーソナルキー200はまた、バッテリーまたは容量性デバイスを例とする電源を含む。電源は、ホストコンピュータ102に接続されていない場合でさえ、パーソナルキーの構成エンティティにパワーを供給し、データが保持され、パーソナルキーの機能および動作が実行されることを可能にする。
【0047】
図3は、パーソナルキー200のメモリ214により提供されるメモリリソースのダイアグラムである。メモリリソースは、マスターキーメモリリソース312、個人識別番号(PIN)メモリリソース314、関連PINカウンタレジスタ316およびPINリセットレジスタリソース318、シリアルナンバーメモリリソース310、グローバルアクセスコントロールレジスタメモリリソース320、ファイルシステムスペース324、補助プログラム命令スペース322、およびプロセッサ動作プログラム命令スペース326を含む。プロセッサ動作プログラム命令スペース326は、パーソナルキー200が本明細書中に説明される名目上の動作を行うように実行し、ホストコンピュータ102または遠隔サーバ134のいずれかにおいても実行するアプリケーション110と関連するアプリケーションプログラムインターフェース260により呼び出されるそれらのサポーティング機能を含む命令を格納する。補助プログラム命令スペースは、所望な場合、パーソナルキー200に、付加的な機能性を実現するプロセッサ212命令を格納するスペースを提供する。
【0048】
マスターキーは、管理パスワードであって、その管理パスワードは、信用性の高いエンティティまたはパーソナルキー200を初期化し、設定するプログラムにより既知でなければならない。例えば、パーソナルキー200は、多くの遠隔地に位置する従業員に供給され、VPNを通じて、遠隔サーバに格納されるプライベートドキュメントにアクセスすることが可能になる場合、マスターキーを遠隔地に位置する従業員に提供する前に、遠隔サーバのシステムアドミニストレータは、マスターキーを入力する(またはマスターキーを工場設定から変える)。システムアドミニストレータはまたセキュリティの高い場所にマスターキーを格納し、このマスターキーを用いて、要求されるセキュリティの高い(例えば、遠隔ユーザの許可および認定を含む)動作を行う。
【0049】
1実施形態において、MKEYが、最初に照合不可能である場合、マスターキーは、設定、リセット、または初期化は不可能である。マスターキーが既知でない場合、パーソナルキー200は、破壊/廃棄、または工場セッティングにリセットするように工場に返されなければならない。
【0050】
PINは任意の値であり、パーソナルキー200のユーザを認定するように用いられ得る。PINは、信用性の高いアドミニストレータによって初期化される。パーソナルキー200初期化プログラムがどのように実行され、配置されるかに応じて、端末ユーザは、自分のPINをセッティングおよび/またはアップデートすることが可能になる。PINは、英数字または単に数字を含み得る。
【0051】
PINはまた、2つの関連レジスタ316および318を透過的に用いるアプリケーションプログラムインターフェース(API)呼び出しを用いる間、チェックされ得る。PINリセットレジスタリソース318は、PINカウンタ316メモリリソースをリセットするように用いられるリミットを格納するように用いられ、PINカウンタリソース316は、減少カウンタである。PINカウンタレジスタ316およびPINリミットレジスタ318は、違法アプリケーションまたはユーザが、PINを発見しようして、素早く何千ものランダムPINを試験することを防止するように用いられる。
【0052】
PINが初期化される場合、減少カウンタレジスタ316は、PINリセットレジスタリソース318での値にセットされる。PIN照合が失敗する場合はいつでも、カウンタレジスタ316は減少される。PIN照合が成功する場合、カウンタレジスタは、限界値にセットされる。減少カウンタレジスタ316が0になる場合、信用性の高いアドミニスタがPINカウンタレジスタ316を限界値にリセットするまで、もうPIN照合は、できない。例えば、PINレセットレジスタリソース318リミットを3にセットする場合、ユーザは、PIN照合を3回失敗すると、リセットされるまで、PINは無効となる。正しいPIN照合が成功する場合、カウンタレジスタ316は、3にリセットされる。
【0053】
シリアル番号は、ユニークな工場インストールシリアル番号(SN)である。シリアル番号を用いて、他のパーソナルキー200ユーザの全てと単一のユーザとを区別し得る。
【0054】
パーソナルキー200のメモリ214はまた、ビルトインアルゴリズムメモリリソース302を含む。ビルトインアルゴリズムメモリリソース302は、関連処理命令を格納するためのMD−5ハッシュエンジンメモリ304を含み、関連処理命令を格納するためのHMAC−MD5許可メモリリソース306を含み、乱数を生成する処理命令を格納するための乱数生成メモリリソース308を含む。乱数ジェネレータを用いて、認定ダイジェストを生成する場合は、使用されるチャレンジ(challenge)を生成し得、他の暗号手順にシードを提供し得る。MD−5アルゴリズムは、入力として任意の長さのメッセージを受け取り、出力として128ビットの「指紋」または入力の「メッセ−ジダイジェスト」を作る。その過程で、そのアルゴリズムは、RFC−1321を例とする高速アルゴリズムを用いて入力データを再生可能な製品にスクランブルまたはハッシュする。ハッシュされたメッセージ認定コード(HMAC)は、任意に繰り返される暗号ハッシュ関数(例えば、MD−5)をシークレットキーと組み合わして用いられ得、メッセージまたはデータ収集を認定する。パーソナルキー200は、この方法を統合し、端末ユーザまたはアプリケーションデータがシークレットキーを曝さずに認定される1つの方法を提供し得る。
【0055】
本発明は、2つのセキュリティ機構を用いて端末ユーザの認定を可能にする。以下で議論される第1の機構は、ホストコンピュータ102または遠隔コンピュータ/サーバ134上で実行しているソフトウェアによるパーソナルキー200の認定を可能にする。この第1の機構は、ハッシュアルゴリズムおよびパーソナルキー200およびパーソナルキーの認定を試験するエンティティの両方に既知である手動合意秘密値を使用する。本発明の開示で後で議論される第2の機構は、パーソナルキー200がパーソナルキー200の使用を試みるユーザの認定を可能にする。第2の機構は、その鍵が紛失または盗難に遭った状況で、個人識別番号(PIN)を用いて、許可されていないユーザまたはアクセスの防止に役立てる。以下で、十分に説明されるように、PINは、パーソナルキー200に直接に入力され得、したがってPINがパーソナルキー200の外部に決して曝されないということを保証することによりセキュリティを高める。
【0056】
図4は、HMAC−MD5エンジンを用いて、パーソナルキー200または本明細書中のアプリケーションデータのアイデンティティを認定する方法の1実施形態を示すダイアグラムである。ホストコンピュータで実行しているアプリケーション(例えば、アプリケーションプログラム110)または遠隔コンピュータ/サーバ134で実行しているアプリケーションとリンクしている機能を有するパーソナルキーのライブラリは、パーソナルキー200に関連して、ホストコンピュータ102または遠隔コンピュータ/サーバ134のどちらか一方で実行してる。ハッシュアルゴリズム410は、アプリケーション110およびパーソナルキー200の両方で、実行される。アプリケーション110およびパーソナルキー200の両方は、秘密406へのアクセスを有する。秘密406Bは、適切な認証なしでは、アクセスできないロケーションにあるパーソナルキー200のメモリ214内に保持される。一般的には、秘密406Bは、システムアドミニストレータまたは他のいくつかの信用性のあるソースにより、パーソナルキー200に格納される。パーソナルキー200のユーザは、アプリケーション110が、アプリケーション110がそうであると考えるエンティティである場合、アプリケーションの秘密406Aおよびパーソナルキーの秘密406Bは同じである。これは、秘密を曝さずに、ハッシュアルゴリズムにより照合され得る。同様に、パーソナルキー200のユーザは、アプリケーションが期待するエンティティでない場合、アプリケーションが、秘密406Aおよび406Bは異なる。これも、秘密を曝すことなく、ハッシュアルゴリズムにより照合される。
【0057】
チャレンジが、アプリケーション110により生成される。アプリケーション110にアクセス可能なハッシュアルゴリズム410およびパーソナルキー200で実行されるハッシュアルゴリズムに提供される。各ハッシュアルゴリズムにより、チャレンジおよび常駐する秘密を適用して、ハッシュ出力412を適用する。ハッシュアルゴリズムが等しく、406Aおよび406Bそれぞれが同じである場合、それそれの場合に結果として生じるハッシュ出力412またはダイジェストストリングは、同一である。ダイジェストストリング412Aおよび412Bはアプリケーションのロジック414を用いた等式を比較する場合、パーソナルキー200は、信用される。さらに、ユーザ認定が、照合される場合、ユーザは、同様に信用される。この認定システムの1つの利点は、チャレンジ408は、インターネット等の信用性の低い媒体によって、伝送され得る。秘密406は、秘密406が、ネットワークスニファ/スヌーパ(snooper)または潜在的に妥協されたユーザインターフェースに露出されずに残っているアプリケーション110または遠隔サーバ134プログラムおよびパーソナルキー200において、符号化されたままである。
【0058】
ファイルシステムメモリリソース324は、ホストコンピュータ102または遠隔サーバ134のどちらかにおけるアプリケーションプログラムインターフェースライブラリ260内で十分に管理される。ファイルシステムメモリリソース324により、柔軟なシステムを提供し、パーソナルキー200のデータの格納、保護、および検索を行う。
【0059】
図5は、いくつかのアプリケーション用の認定のために認定および特定の設定データを提供するアクティブパーソナルキー200のファイルシステムリソース324のデータコンテンツを図示するダイアグラムである。マスターファイル(MF)502は、ルートディレクトリであり、アイデンティティ(ID)にはゼロ(0)を用いる。MF502は、ポインタ504Aおよびポインタ504Bまたは506Aおよび506Bに対する他の指定、ディレクトリ510および516へのポインタ508Aおよび508B含み得る。ディレクトリおよびファイルは、識別することによって、定義される(ディレクトリに対して、1→0xFFFFFFFF、およびファイルに対して、0→0xFFFFFFFF)。ディレクトリ510および516はまた、データファイル(514A−514Bおよび520A−520Cそれぞれ)に対するポインタ(512A−512Bおよび518A−518Bそれぞれ)を含む。
【0060】
3つのファイルタイプが、以下の表1に示されるように実行される。
【0061】
【表1】
これらのファイルタイプは、以下の表2に応じてファイル毎に制御され得る。
【0062】
【表2】
読み出しおよび書き出しアクセスタイプ制御によりアプリケーション110を往復するパーソナルキー200でのファイル転送を統括する。暗号アクセスタイプは、ハッシュ値、暗号または解読データの計算を含む暗号操作を実行するKEYファイルタイプで用いられる。セッティングされた場合、表2で定義された制御は、以下の表3にリストとして挙げられた4つの属性の内の1つを有し得る。
【0063】
【表3】
グローバルアクセス制御レジスタ320は、パーソナルキー200ファイルシステムの全範囲に適用する。名目上、グローバルアクセス制御レジスタ320は、表4に示されるように2つのグローバルアクセス制御に分割される8ビット値である。
【0064】
【表4】
作成および削除グローバルアクセスタイプは、以下の表5に示された4つの属性値の内1つを有し得る。作成および削除グローバル制御は、以下の表5に説明されるCreateDir、CreateFile、DeleteDir、DeleteFileおよびDeleteAllFilesAPI呼び出しによって、実行される。
【0065】
【表5】
表6は、ライブラリのパーソナルキー200のAのAPI260英数字のリスト項目である。表6において、「D」はデバイス関連機能を示し、「F」はファイルシステム関連機能を示し、「A」は管理機能を示し、および「C」は暗号機能を示す。
【0066】
【表6】
(仮想プライベートネットワークへの例示的アプリケーション)
前述の記載を用いることによって、パーソナルキー200および関連API260が使用され、安全なドキュメントアクセスシステムを実行し得る。この安全なドキュメントアクセスシステムは、遠隔ユーザの秘密暗号化ドキュメントへのインターネットを介したアクセスを会社従業員に提供する。このシステムはまた秘密暗号化ドキュメントの配布を制限し、それによって特定のドキュメントを、制限された回数だけ読むことができる。
【0067】
ドキュメントを読むために使用されるアプリケーションプログラム110は、パーソナルキーAPI260ライブラリとリンクされ、パーソナルキー200の情報に基づくドキュメント閲覧を可能にする。マスターキーにより制御されている信用された管理プログラムは、広範囲の従業員についてのパーソナルキー200(関連する安全制御装置設定を有する適切な情報を格納することにより)を設定するために使用され得る。
【0068】
パーソナルキー200およびAPI260ライブラリを用いて、ドキュメント閲覧者およびドキュメント管理者を許可し、ドキュメントの解読および暗号化のためのキーを供給し、閲覧可能ドキュメントのリストを提供し、ドキュメントアクセス権およびドキュメントアクセスカウンタを実行することができる。
【0069】
前述の記載が多数のプログラム中で実行され得、これらのプログラムは、従業員に配信する以前の、パーソナルキー200を設定する管理初期化プログラム(以降、SETKEYと呼ぶ)、ドキュメント暗号化およびライブラリアップデートプログラム(以降、BUILDDOCと呼ぶ)、ユーザおよびパーソナルキー200を許可する閲覧アプリケーション(以降、VIEWDOCと呼ぶ)、およびユーザを許可し、パーソナルキーをアップデートするライブラリアプリケーション(以降、LIBDOCと呼ぶ)を含む。
【0070】
SETKEYプログラムは、個々のユーザについてのファクトリから受信したパーソナルキーを設定するために使用される。ドキュメントネーム、アクセスカウンタ、PINおよびハッシュ秘密はパーソナルキー200中にロードされる。従業員の安全クリアランスに依存して、閲覧用の特定のドキュメントが構成され得る。明瞭にするために、次のシンボルネームが以下の議論の際に用いられる。
【0071】
DOCFilename−ドキュメントファイルネームを保有するiKeyデータファイル
DOCSecret−解読/暗号化キーを作成するために使用される秘密を保有するiKeyデータファイル
第1に、SETKEYプログラムは、OpenDeviceコマンドを発行することにより、パーソナルキー200へのアクセスを引き起こす。次いで、VerifyMasterKeyコマンドが発行され、パーソナルキー200をマスターアクセスに公開する。Dirコマンドはループ中で使用され、パーソナルキー200の状態を取得および実証することを行う。コメントがファクトリフレッシュキーのコンテンツと比較され、いくつかの状態の1つが決定される。キーがファクトリフレッシュである場合、パーソナルキーは初期化される。次いで、VIEWDOCディレクトリおよびファイルセットが作成される。次いで、従業員データベースがアクセスされ、各従業員に許可されるアクセスのタイプおよび範囲を決定するために使用され得る。各従業員の安全クリアランスに依存して、いくつかのタイプのディレクトリおよびファイルセットのうち1つが作成され得る。次いで、包括的作成アクセスタイプおよび削除アクセスタイプが、SetAccessSettingコマンドを用いて、マスターキーに設定される。次いで、DOCFilenameデータベースはパーソナルキー200中にロードされ、CreateDirおよびCreateFile API260は、ディレクトリおよびファイルを生成し、割り当てを行うために必要とされるものとして使用される。SelectFileコマンド、WriteFileコマンドおよびCloseFile APIコマンドはファイルおよび秘密をロードするために使用される。アクセスが特定数の事象に制限されるかどうかに依存して、DATAファイルタイプまたはCTRファイルタイプが使用される。
【0072】
BUILDOCプログラムは、安全アクセスライブラリ中の新規のドキュメントを受容するために使用される。パーソナルキー200からの情報を用いることで、解読キーが生成され、この解読キーはパーソナルキー200中のドキュメント解読エンジンにより使用される。
【0073】
BUILDOCプログラムはスタンドアロンのアプリケーションであり、安全壁の機構内の信用されたシステム上で実行する。BUILDOCプログラムは、マスターキーの有効性を必要とする。BUILDOCプログラムはパーソナルキー200を使用し、各ドキュメントファイルネームについての解読キーを作成する。
【0074】
第1に、XORオプションを有するHashToken API260は、DOCFilename、(ドキュメントを読み出し、解読しながらBUILDOCプログラムにより計算される)ブロック数、DOCSecretを互いにハッシュするために使用される。BUILDOCプログラムは、ドキュメントを読み出し、解読しながらブロック数を計算する。結果的に発生するMD5−XORダイジェストはBUILDOCアプリケーション中の解読エンジンによって使用される解読キーとして用いられる。次いで、XORモードのHashTokenと共にCreateFile、SelectFile、WriteFileおよびCloseFile API260が、各ドキュメント上で使用され、このドキュメントは安全ドキュメントライブラリに追加される。
【0075】
VIEWDOCプログラムはウェブブラウザ262プラグインアプリケーションであり、このプログラムにより、ユーザがドキュメントアクセスコードに基いて自身のパーソナルキー200に基づくドキュメントの公開(open)、解読、閲覧を行うことができる。所望ならば、いくつかのタイプのドキュメントについての閲覧カウンタはまた、VIEWDOCプログラム中でデクリメントされ得る。VIEWDOCプログラムは、ファイルの保存、ファイルの転送、スクリーンのスクラッピングおよびスクリーンの印刷を必要としない。
【0076】
VIEWDOCプログラムは、ユーザを確認し、ドキュメントのアップロードおよび解読を行う。VIEWDOCプログラムは、VcrifyPINコマンドAPI260を用い、ユーザを許可する。次いで、ユーザは、パーソナルキー200がUSBポート130と通信可能に接続される限り、パーソナルキー200ディレクトリにリストされたドキュメントを閲覧し得る。
【0077】
WINDOWS(登録商標)オペレーティングシステム(WM_DEVICECHANGE)で使用されるメッセージ機能のようなメッセージ機能は、キーが削除されたか否かを判定するために使用され得る。Dirコマンド、SelectFile、ReadFileおよびCloseFileコマンドAPI260は、どのドキュメントが読み出され得るかを判定するために使用される。DOCSecret、DOCFilenameおよびドキュメントブロック番号と共にXORモードAPI260を備えるHashTokenは、基本ブロック単位毎に暗号キーを生成する。DOCfilenameがファイルタイプCTRである場合、CTRはDecrementコマンドAPI260を用いて、デクリメントされる。1つの実施形態において、複雑性を減少させるためにCTR場はハッシュされず、VIEWDOCにより単に管理されるだけである。
【0078】
LIBDOCプログラムはSETKEYのサブセットである管理機能を提供する。その管理機能により、安全ドキュメントライブラリアンは、パーソナルキー200に格納される情報に基づくドキュメントへのアクセスを許可され得る。正味の効果は、信頼されたライブラリアンが、閲覧され得るドキュメントリストに基づいて、パーソナルキー200のアップデートを行い得るということである。
【0079】
LIBDOCプログラムは基本パーソナルキー200単位でDOCFilenameのリストをアップデートする。VerifyMasterKeyコマンドAPI260を備えるマスターキーを確認し、雇用データベース中で、ユーザネームを検索した後、DOCFilenameの現在のセットはSelectFile、WriteFileおよびCloseFileコマンドAPI260を用いてアップデートされる。
【0080】
前述の記載を用いることによって、従業員は、自身のファイルネームのローカルデータベースをロードしたパーソナルキー200を携帯し得る。個々の部署はMIS手続きに依存する必要がなく、ドキュメントにアクセスする人物を制限する。必要であれば、パーソナルキー200の部署番号はLIBDOCプログラムを使用し、アップデートされ得る。パーソナルキー200秘密が正確な場合のみ、従業員はドキュメントを解読および閲覧し得る。パーソナル秘密が安全であるのは、パーソナル秘密がパーソナルキー200の外に決して漏らされないからである。メータリングの単一形式はまたドキュメントのコピー数を減らすことに使用され得、閲覧され得るドキュメントのコピー数を減少するために使用され得る。
【0081】
図6は、パーソナルキー200の1つの実施形態の説明を示す図である。パーソナルキー200は第1のハウジング部材602および第2のハウジング部材604を含む。第1のハウジング部材602は、回路基板606を自身に収容するようなサイズおよび形状にされる。
【0082】
第1のハウジング部材602は複数のボス624を含み、複数のボス624は、第2のハウジング部材604の各ホール640中に挿入された場合、第1のハウジング部材602を第2のハウジング部材604に固定する。第1のハウジング部材602および第2のハウジング部材604はまた、それぞれアパーチャ628を含み、アパーチャ628はパーソナルキー200がキーチェーンに添付されることを可能にする。
【0083】
複数の回路基板サポート608は、所定の位置で回路基板606を保持する。回路基板606は、伝導ピンを介したホスト処理デバイスまたはコンピュータ102と通信可能に接続するために、回路基板606の周辺に実質的にフラットな回路接続表面610を含む。回路接続表面610は回路基板606上にマウントされたプロセッサ212との通信を可能にする。プロセッサ212は、メモリおよび本明細書中で公開されたパーソナルキー200の機能をインプリメントするために必要とされるオペレーションを実行するための命令を含む。プロセッサは、回路基板上でメモリ214と通信可能に接続され、プロセッサ212の命令により要求されるデータの格納および読み出しを行う。説明された実施形態において、回路基板606はまた、パーソナルキー200によって実行されているオペレーションを視覚表示することを、パーソナルキー200のユーザに提供する発光デバイス616(例えば、発光ダイオード(LED))のような出力デバイスを含む。例えば、ホストコンピュータ102からパーソナルキー200まで通過する信号により光を発光することによって、このことは達成される。発光デバイスはまた、液晶ディスプレイ(LCD)またはパーソナルキー中で実行される機能の視覚的な表示またはパーソナルキー200へのまたはパーソナルキー200からの渡されるデータを提供する他のデバイスを含み得る。
【0084】
発光デバイス616からのエネルギーは、2種類の方法の内の1つでユーザに提示される。図2に示された実施形態において、発光デバイス616は、第2のハウジング部材604中の発光デバイスオリフィス644を介して配置される。この設計において、パーソナルキー200は、エポキシ材料、または組み立てた後に発光デバイスオリフィス644中に配置される他の適切な材料を少量添加して密封され得る。
【0085】
他の実施形態において、発光デバイス616はハウシング602、604の内部を超過して拡張せず、パーソナルキー200の内部にとどまる。この実施形態において、第1のハウジング602または第2のハウジング604の少なくとも一部分は、対象となる帯域幅において発光デバイス616により放射されるエネルギーを少なくとも部分的に透過させる。例えば、発光デバイス616が単一LEDである場合、第2のハウジング604は、可視の波長で光を透過させる材料により選択され得る。先の実施形態の1つの利点は、LEDが、電磁放電ならびに回路基板606または回路基板606上に配置された任意の構成エンティティに対する他の所望しないエネルギーを許容しない場所に配置され得る。これは、常にユーザの手に接触するLEDの部分(LEDの表面においてさえも)が存在しないからである。
【0086】
前述の記載では、単一発光デバイス646を用いて記述されたが、本発明はまた、2つ以上の発光デバイス、または他の波長でエネルギーを放射するデバイスを有利に統合し得る。例えば、前述の記載では、3つのカラーLED(赤、黄および緑)または3つの単一カラーLEDを用いてインプリメントされ得、パーソナルキー200の情報をユーザに転送する。
【0087】
前述の記載に加えてまたは代替として、音声トランスデューサ(例えば、小型拡声器または圧電トランスデューサ)が、パーソナルキー200のオペレーションに関連する情報を提供する。そのような音声情報は、制限された視覚を有するユーザまたは視覚を有さないユーザに対して特に有用である。例えば、音声トランスデューサは、パーソナルキー200が、ホストコンピュータ102I/Oポート130に適切に挿入されたことを示すために使用され得る。
【0088】
音声トランスデューサはまた、警告情報をユーザに提供するために使用され得る。この警告は、ユーザが任意の入力またはキーからの情報を予想していない場合に、特に有用である。例えば、パーソナルキー200または関連デバイスが長時間の計算に従事した場合、音声トランスデューサはいつプロセスが終了するかを示し得る。また、感染したソフトウェア命令または他の有害なソフトウェア命令によりキーの安全性を妥協しようとする試み、またはユーザにキー200への入力を提供するような行動を取らせるようとする試みがある場合、音声トランスデューサは内部フォールトが生じた時を示し得る。
【0089】
さらに、パーソナルキー200の使用が広範囲に及ぶにつれて、他のデバイスの機能をパーソナルキーに組み込むことが有利となることが考えられる。例えば、ページングトランシーバのようなデバイスがパーソナルキー中に組み込まれ、ユーザが遠隔的に呼び出されるか、または接触されることを可能にすることができる。または、パーソナルキー200が、プログラムおよびユーザのカレンダーのような命令を格納するために使用され得る。この適用の際には、パーソナルキー200は、特に上記のLCDディスプレイと共に、ユーザにカレンダーの事象を思い出させるために使用され得る。音声トランスデューサは、最小可聴振動周波数を含む広範で多様な周波数で作動し得る。パーソナルキーがユーザのキーリング上に配置されるのに十分小さいために、キーリングが見られ得ないか、または容易に聞かれ得ないポケットまたは財布に、長期間ある場合にこの設計は特に有利である。
【0090】
図7A〜図7Cは、第1の感圧性デバイス702および第2の圧力デバイス704を含む入力デバイス218を有するパーソナルキー200の、ある実施形態を示す図であり、各デバイスは、USBに対応するインターフェース204と別個の通信パスにより、プロセッサ212と通信可能に接続される。
【0091】
図7Aはパーソナルキー200の実施形態を示し、この実施形態において、LEDまたはLCDディスプレイ706のような出力デバイス222が、USBに対応するインターフェース204と別個の第2の通信パスにより、プロセッサ212と通信可能に接続される。この実施形態において、パーソナルキープロセッサ212への入力は、任意で出力デバイス222によって行われるように、感圧性デバイス702、704を組み合わせて押し下げることによって提供され得る。
【0092】
図7Bおよび図7Cに示す実施形態において、感圧性デバイス702および704は、回路基板606上のトレースを介してプロセッサ212と通信可能に接続される単一の機械的プッシュスイッチである。この場合、スイッチ702および704は、第2のハウジング部材604中のアパーチャ708および710を通って伸びるボタン表面を押し下げることによって作動され得る。図7Bはまた、出力デバイス706の表示を見ることを可能にするウインドウ712を示す。
【0093】
図7Cは、第1のハウジング部材602および第2のハウジング部材604が取り付けられた場合の、パーソナルキー200のこの実施形態における外観を示す。
【0094】
本発明の他の実施形態において、圧力スイッチ702および704は、パーソナルキー200の外部にまで至らない。代わりに、パーソナルキー200は、スイッチのどの部分も必要とするすることなく、圧力が、感圧性スイッチ702および704上に加えられ得るように構成され、それにより圧力はパーソナルキー200の外部に達する。例えば、ある実施形態において、パーソナルキー200の外部表面の少なくとも一部は十分フレキシブであり、このキー200の外側の表面に加えられた圧力がパーソナルキー200内のスイッチを動作させ得る。あるいは、第1のハウジング部材602および第2のハウジング部材604は、圧力がスイッチに印加され得るように取り付けられる。他の実施形態において、パーソナルキーへのユーザ入力を示ために、ひずみゲージのような感圧性デバイスのしきい値出力が使用される。
【0095】
前述の記載の感圧性デバイス702および704は、以下のように使用され得る。ある実施形態において、2つの感圧性デバイス702および704は、英数字情報を入力するために使用され得る。ここで、圧力は第1の感圧性デバイス702に印加され、所望の文字を選択し得る。ユーザを補助するために、現在選択された文字は出力デバイス222上に表示され得る。ユーザが選択された文字に満足する場合、圧力を第2の感圧性デバイスに印加することは、現在表示されている文字が入力されるべきであることを示し得る(従って、「入力」機能を提供する)。このプロセスはユーザが全文字(例えば、ユーザパスワードまたは個人識別番号(PIN))を入力するまで繰り返されられ得る。ユーザ入力の終了は、第2の感圧性デバイス702へ、圧力を繰り返し印加することにより示されて、出力デバイス222により確認される得る。音声トランスデューサは単独で、または視覚ディスプレイと組み合わせて使用され、文字を表示するか、エラーを示すか、またはユーザ入力プロセスが完了した時を示すことができる。
【0096】
前述に記載の感圧性デバイスはまた、バイナリ入力をパーソナルキー200に提供するために使用され得る。例えば、ユーザのPINまたはパスワードが、迅速に相次いで適切な順序で、圧力を第1の感圧性デバイス702および第2の感圧性デバイス704に印加することによって入力され得る。このような方法で、「10100010111」として規定されるユーザパスワードまたはPINは、「0」を示すために、第1の感圧性デバイス702を押し下げて、「1」を示すために、第2の感圧性デバイス704を押し下げて入力され得る。
【0097】
図8A〜図8Cは本発明の他の実施形態の例を示す図である。この実施形態において、入力デバイス218は、入力デバイス通信パス808によりプロセッサに接続されるエッジの見えたホイール802を含む。この実施形態において、ユーザは、一連の接触部位を介して入力文字を識別するホイール802を動かして入力を行う。所望の入力文字が、出力デバイス222上に示されるか、ホイール802自身上に示されるかのどちらかの場合に、ユーザは、ホイール802をパーソナルキー200の中央線に向かって動かすことによりユーザ入力として文字を示し得る。このプロセスは、所望の文字全てが提供されるまで、一連の入力文字について繰り返され得る。ユーザはまた、ホイール802を迅速に相次いでパーソナルキーの中央部へ複数回動かすことにより、またはホイール802上の入力接触位置を選択しホイール802を押し下げることにより、これ以上入力がないということを示し得る。
【0098】
(入力および出力デバイスを用いる安全性機能)
本発明の入力デバイス218および出力デバイス222は、パーソナルキー200の安全性を拡張するために有利に使用され得る。例えば、ホストコンピュータ102と接続された場合、パーソナルキー200は、通信媒体132(例えば、ダイヤルアップネットワーク、インターネット、LANまたはWAN)を介しホストコンピュータ102に通信可能に接続された遠隔コンピュータ/サーバ134とのトランザクションを許可するために使用され得る。遠隔コンピュータ/サーバ134またはホストコンピュータ102中で実行され得る不正なソフトウェアは、必要なものすべてをパーソナルキー200に送り、ユーザが知ることなく、またはユーザの許可なく許可を行うことができる。ある種のユーザ入力デバイス218を用いずに、パーソナルキー200は、カード保有者が拒否することができないトランザクションをユーザが知ることなく許可し得る。例えば、このようなトランザクションは、支払いおよび法的に拘束力のある署名を含み得る。
【0099】
個人識別番号(PIN)のような個人識別は、パーソナルキー200をログオンし、パーソナルキー200を起動するために必要とされるが、通常、パーソナルキー200は、PINが入力されると起動したままである。ゆえに、パーソナルキー200は、ユーザに気づかれることなくまたはユーザに許可されることなく、任意のアプリケーションについて任意のアクションを行う。
【0100】
この問題を解決するために、本発明の1実施形態は「署名の強制」許可技術を利用し、この技術においては、直接的なユーザのアクションが、パーソナルキー200に格納された識別秘密値の使用を許可するために、必要とされる。(例えば、秘密406のような)復号鍵またはパーソナルキー200のメモリ214中に格納されたPINが「署名への強制」許可を要求するものとして識別された場合、パーソナルキー200のプロセッサ212中で実行するファームウェアは、ホストコンピュータ102、または復号鍵または個人情報の使用を含む遠隔コンピュータ/サーバ134からの任意のリクエストを受け取る前に、入力デバイス410またはデータトランシーバ252を介する直接的なユーザの入力を必要とする。通常、復号鍵および/または他の個人情報は、メモリ214中の関連値または関連フラグによる、直接許可を要求するものとして設計される。そのようなデータはまた、データが任意の状況下でキーから直接的に読み出され得ないことを示す「使用のみ」として設計され得る。データは(PINを用いた場合によくあるような)他の入力と共有され得ない、または信頼された入力と共有し、許可に使用される値(例えば、秘密406)であり得る。例えば、復号鍵がハッシュ機能を介して許可を行う秘密406として使用され得る。このような場合、秘密値406は、通常、DESキーまたはパスワードのような共有された秘密である。秘密値406がパーソナルキー200のメモリ214に格納され得るので、パーソナルキー200をユーザに分配する前に、秘密値406は、いかなる時でも、平文フォームで利用可能にされる必要がない。
【0101】
通常、ユーザが、クライアント許可を補助するSSL安全ウェブサイトに接続するたびに、ブラウザ262は、API260またはPKCS264の1つのようなミドルウェアを呼び出し、このミドルウェアはパーソナルキー200に命令し、ユーザの秘密復号鍵406B(パーソナルキーメモリ214に格納される)を用いチャレンジ値を解読する。ユーザのPINがすでにパーソナルキー200に格納され、ユーザをパーソナルキー200に許可すると仮定すると、やはり、キーを安全ウェブサイトに許可することが残る。この場合、ユーザの秘密復号鍵へのアクセスが要求され、パーソナルキー200に統合された出力デバイス222は、復号鍵へのアクセスを要求するコマンドが呼び出されたこと、およびユーザがこのアクセスを許可する必要のあることを示すために起動し得る。本発明の1つの実施形態において、このことは、視覚的出力デバイス(例えば、LEDまたはLCDディスプレイ)を点滅すること、または音声デバイスをビープすることにより、達成される。本発明の他の実施形態において、ミドルウェア(API260またはPKCS264のどちらか)は、コンピュータ102に付属のディスプレイ122を起動し、処理が進められ得る前に、ユーザが復号鍵へのアクセスを許可しなければいけないことを示す。次いで、パーソナルキー200の入力デバイス218(例えば、ホイール802または感圧性デバイス702および704の1つ)はユーザにより作動させられ、ユーザがプラーベートキーへのアクセスを許可されたことを示すことができる。どの許可も許可されないのは、パーソナルキー200がI/Oポート130から取り除かれた場合、またはディスプレイ122上に表示される「キャンセル」ボタンが選択され、スクリーン上のダイアログを拒否した場合である。復号鍵へのアクセス(上記の例では、ハッシュ機能の実行)が許可されるのは、ユーザがそういうものとして許可される場合である。従って、「署名の強制」概念によって、不正なソフトウェアがユーザの同意または認知を必要とせずに、秘密406Bを使用し得ることは、おそらく不適切になる。
【0102】
不正なソフトウェアは、ユーザのPIN値をキャプチャするために、パーソナルキー200とホストコンピュータ102との間のインターフェースをモニタし得る。PINを直接読み出すことはできないが、不正なソフトウェアは、表6に示されたVerifyPINコマンド(およびその引数)とパーソナルキー200からの応答の両方を調べることが可能である。応答が、適切なPINがVerifyPINコマンドに引数として提供されたことを示す場合、不正なソフトウェアは、PIN自身を決定し得る。前記では、秘密406Bの代わりにユーザのPINをさらに保護するためにも適用され得る。例えば、ホストコンピュータの不正なソフトウェアの検知(sniffer)モジュールがユーザのPINにアクセスに成功した場合、その検知モジュールがユーザが意図しないコンテクストにおいてユーザのPINを使用しようと試みたとき、ユーザはそのPINの信用度が下がったという事実を警告される。
【0103】
図9は、プロセッサ212の動作がユーザ許可を受ける場合の、本発明の実施形態を示すフローチャートである。はじめに、API260は、プロセッサ212の動作を呼び出すコマンドを命令する(902)。そのコマンドは、USBインターフェース204を介してパーソナルキー200に伝送される。プロセッサ212は、ブロック904で示されるように、コマンドを承認する。続いて、パーソナルキー200は、命令されたプロセッサコマンドが許可を要求するコマンドであるかどうかを判定する。このことは、プロセッサコマンドが許可を要求することを示すパーソナルキーのメモリ214に情報を格納することによって達成され得る。例えば、このことは、メモリ214に格納されたマップにおいてインプリメントされ得、(各ユーザ用にカスタマイズされ得る)複数のフラグまたは情報が、プロセッサ212のファームウェアまたはこれと類似した位置に格納され得る。そのため、そのマッピングは変更され得ない。1つの実施形態において、異なるレベルの許可は、異なるプロセッサコマンドに対してインプリメントされる(例えば、書き込みコマンドは許可を要求し得るが、読み取りコマンドは許可を要求し得ない)。
【0104】
別の実施形態において、許可は、呼び出されたコマンドの代わりのデータ、または呼び出されたコマンドおよびデータの組み合わせを前提とされ得る。例えば、本発明は、PINが何らかの方法でアクセスされた任意の時間の許可、またはPINがパーソナルキー200のメモリ214から読み取られたときの許可を要求するために構成され得るが、他のデータが読み取られたときの許可、またはPINがパーソナルキー200に書き込まれたときの許可を要求するためには構成されていない。このことは、例えば、メモリ214に格納されたどのデータがプロセッサの動作によって影響を与えられるかを判定すること、およびプロセッサの動作によって影響を受けたデータがプライベート情報のようなデータを指定している識別に関連するかどうかを判定することによって、達成され得る。
【0105】
1つの出力デバイス222、データトランシーバー252またはホストコンピュータに接続されたディスプレイ122を用いると、その結果、パーソナルキー200は、ブロック906で示されるように、プロセッサの動作を許可するようにユーザにプロンプトを与え得る。このことは、ディスプレイデバイス(例えば、LEDまたはLCD)を点滅させること、音声トランスデューサを作動させること、または両方の動作を実行することにより、達成され得る。所望ならば、ユーザは、ディスプレイデバイスではじめにプロンプトを与えられ、許可が指定した期間内にされない場合、音声トランスデューサが作動し得る。
【0106】
不正なソフトウェアまたは他の扱いにくい作動をできる限り小さくしてプロンプトを与える動作を露呈するために、そのプロンプトは、好適には、パーソナルキー200とホストコンピュータ102との間の通信経路(例として示される)USBインターフェース204から完全に分離した通信経路を用いて実行される。よりセキュリティを増すために、示された実施形態は、不正なソフトウェアで見ることができるいかなる方法においても、パーソナルキーから外部にもらさない通信経路を介して、出力デバイス222でユーザにプロンプトを与えるので、改ざんされることはない。
【0107】
次に、ユーザは、動作の入力信号伝達(signaling)許可を提供する(910)。このことは、種々の入力デバイス(例えば、マウス116またはキーボード114)を用いて実行され得るが、好適には、入力デバイス218またはパーソナルキー200のデータトランシーバ252を用いて実行される。この情報は、パーソナルキー200とホストコンピュータ102との間の通信経路から完全に分離している通信経路、好適には、パーソナルキー200に完全に内臓している(不正なソフトウェアで見ることができる手段によりパーソナルキーを外部にもらさない)通信経路を介してパーソナルキー200と通信される。このことは、ユーザ許可に干渉するまたはユーザ許可をエミュレートする不正なソフトウェアを防止する。
【0108】
本発明の別の実施形態において、さらなるPINセキュリティを提供する。この実施形態において、VerifyPINコマンドは、表6に記載されているコマンドから変更される。通常、VerifyPINコマンドは、どのホストコンピュータ102または遠隔コンピュータ/サーバ134が、引数としてユーザのPINであるかと考えるかを承認する。パーソナルキー200はこのコマンドを承認し、適切なPINが提供されたかどうか示す状態に戻る。しかしながら、この代替的な実施形態において、VerifyPINコマンドは、変更されるので、VerifyPINコマンドは、引数としてPINを含まない。VerifyPINコマンドは、パーソナルキー200に提供され、ユーザは、ユーザのPINを入力するようにプロンプトを与えられる。PINが入力された後、PINは、ホストコンピュータ102とパーソナルキー200とのインターフェースから分離している通信経路220を介して、プロセッサ212と通信し、不正なソフトウェアによって検出され得る場所のどこにも明らかにされない。その結果、PINは内部で確認され、出現(manifestation)がパーソナルキー200からホストコンピュータ200または遠隔コンピュータ/サーバ134に伝送された結果をメッセージとして提供する。このことは、任意の外部のPINの出現を防止する。
【0109】
上述の秘密406を用いたハッシング技術と組み合わされた場合、前記では、ユーザ許可用の高度なセキュア(secure)技術を提供する。このセキュアハッシング技術は、キーを許可し、外部の露呈から秘密406を保護する。しかしながら、ハッシング技術は、キーを所有する人物を許可しない(なぜなら、キーは紛失するか盗まれ得るからである)。PINをパーソナルキーのプロセッサ212に直接入力するための能力は、パーソナルキーがユーザを許可することを可能にし、PINがキーから外部に決してもらされないので、不正なソフトウェアの露呈が防止される。第三者がパーソナルキーを許可し得、かつ、パーソナルキーがユーザを許可し得るため、第三者は、高度な信用でユーザ許可を実行し得る。
【0110】
図10は、PINがパーソナルキー200に直接入力される場合の、本発明の実施形態を示すフローチャートである。ブロック1002では、ユーザのPIN(例えば、表6に挙げられたVerifyPINおよびModifyPINコマンド)へのアクセスを要求するコマンドを出す。パーソナルキー200は、コマンドを承認し(1004)、必要であれば、ブロック1006で示されるように、ユーザにPINに対するプロンプトを与える。このことは、ディスプレイ122、出力デバイス222の1つまたはその任意の組み合わせで達成され得る。好適には、このことは、USBインターフェース204から分離し、アクセス不可能な通信経路を介して達成される。上記で説明された実施形態の入力デバイス218の1つを用いて、ユーザは、PINをパーソナルキー200に提供する。メモリ214に記録された値を用いて、パーソナルキー200のプロセッサ212は、ユーザが入力したPINを有効にする。1つの実施形態において、このことは、ユーザに提供された値をメモリ214に格納された値と直接比較することによって達成される。続いて、パーソナルキーは、PINの有効性を示す応答を提供する(1014)。このPINの有効性は、API260によって承認される。その応答は、ユーザが供給されたPINが有効であるかどうかを示す。
【0111】
1つの実施形態において、バイオメトリックセンサ250はまた、プロセッサ212に通信可能に接続される。バイオメトリックセンサ250は、データをプロセッサ212に提供し、本開示のはじめに記載されたプロセッサ212からコマンドを受信する。
【0112】
プロセッサはまた、任意に1つ以上の発光デバイス216、あるいは動作の視覚的表示またはパーソナルキー200の状態を提供する他の視覚的表示デバイスに必要に応じて通信可能に接続される。プロセッサ212はまた、ユーザに、パーソナルキー200の状態または動作の振動データまたは音声データを提供するための音声デバイスと通信可能に接続され得る。
【0113】
(結論)
ここでは、本発明の好適な実施形態の記載を結論づける。要約すれば、本発明は、コンパクトで内蔵型のパーソナルトークンを説明する。そのトークンは、ホスト処理デバイス、メモリおよびプロセッサに取り外し可能に接続可能なUSBコンプライアントインターフェースを含む。プロセッサは、メモリに格納できるデータに条件付きでアクセスするホスト処理デバイス、およびパーソナルキーに格納された管理ファイルに要求される機能を提供し、これは、そのファイルのデータに基づいて計算を実行するためである。1つの実施形態において、パーソナルキーはまた、一体型のユーザ入力デバイスおよび一体型のユーザ出力デバイスも含む。その入力および出力デバイスは,USBコンプライアントインターフェースに依存しない通信経路によってプロセッサと通信し、従って、パーソナルキーの外部にどのようなプライベート情報も外部にもらすことなく、ユーザがプロセッサと通信することを可能にする。
【0114】
本発明の好適な実施形態の前述の説明は、図示および説明の目的のために示されてきた。本発明は開示されたそのままの形態にこだわったり、または制限されることを意図しない。上記の教示を考慮すると、多くの変更および改変が可能である。例えば、前記のパーソナルキーは、ホスト通信との電子通信を提供するものとして記載されてきたが、このような電子通信は、光ファイバーおよびその同等物によってインプリメントされるようなデータの光転送を含むことが想定される。
【0115】
本発明の範囲は、詳細な説明によって制限されるものではなく、むしろ、ここに添付された特許請求の範囲によって制限されことが意図される。上記の明細書、実施例およびデータは、本発明の製造の完全な説明および本発明の組成の使用を提供する。本発明の多くの実施例は、本発明の意図および範囲から逸脱され得ないため、本発明は、添付された特許請求の範囲に属する。
【特許請求の範囲】
【請求項1】
単一のコンパクトなハウジング(602、604)を含むコンパクトなパーソナルトークン(200)であって、該ハウジング(602、604)は、
ホスト処理デバイス(102)に取り外し可能なように結合することが可能なUSBコンプライアントインターフェース(206)と、
メモリ(214)と、
該メモリ(214)に通信可能なように結合されたプロセッサ(212)であって、該プロセッサ(212)が、第1のパス(216)によって、該USBコンプライアントインターフェース(130)を介して、該ホスト処理デバイス(102)に通信可能なように結合することが可能であり、該プロセッサ(212)が、該メモリ(214)に格納されているデータへのアクセスをホスト処理デバイス(102)に提供する、プロセッサ(212)と、
第2のパス(220)によって、該プロセッサ(212)に通信可能なように結合されたユーザ入力デバイス(218)と
を保持し、
該第2のパス(220)上の通信が該USBコンプライアントインターフェース(206)にアクセス可能でないように、該第1のパス(216)および該第2のパス(220)が互いに異なっており、
該プロセッサが、該ユーザ入力デバイス(218)からの入力に基づいて、該メモリ(214)に格納されているデータへのアクセスを制御する、コンパクトなパーソナルトークン(200)。
【請求項2】
前記ユーザ入力デバイス(218)が、前記プロセッサ(212)の動作を制御するように構成されている、請求項1に記載の装置。
【請求項3】
前記動作が、
暗号化動作と、
復号化動作と
を含む群から選択される動作を含む、請求項2に記載の装置。
【請求項4】
前記動作が、前記メモリ(214)に格納されている復号鍵を用いるデジタル署名動作を含む、請求項2に記載の装置。
【請求項5】
前記入力デバイス(218)が、前記トークン(200)の外部の面から作動可能な少なくとも1つの感圧性デバイスを含む、請求項1に記載の装置。
【請求項6】
前記入力デバイス(218)が少なくとも1つの押しボタンスイッチ(702)を含む、請求項1に記載の装置。
【請求項7】
前記USBコンプライアントインターフェース(206)と異なるパス(224)によって、前記プロセッサ(212)に通信可能なように結合された出力デバイス(222)をさらに含み、該出力デバイス(222)が、該プロセッサ(212)の動作に関する情報を提供する、請求項1に記載の装置。
【請求項8】
前記出力デバイス(222)が、少なくとも1つの発光デバイス(616)を含む、請求項7に記載の装置。
【請求項9】
前記出力デバイスが、少なくとも1つの液晶ディスプレイ(706)を含む、請求項7に記載の装置。
【請求項10】
前記出力デバイスが、少なくとも1つの音声出力デバイスを含む、請求項7に記載の装置。
【請求項11】
単一のコンパクトなハウジング(602、604)を含むコンパクトなパーソナルトークン(200)であって、該ハウジング(602、604)は、
ホスト処理デバイス(102)に取り外し可能なように結合することが可能なUSBコンプライアントインターフェース(206)と、
メモリ(214)と、
該メモリ(214)に通信可能なように結合されたプロセッサ(212)であって、該プロセッサ(212)が、第1のパスによって、該USBコンプライアントインターフェース(206)を介して、該ホスト処理デバイス(102)に通信可能なように結合することが可能であり、該プロセッサ(212)が、該メモリ(214)に格納されているデータへのアクセスを該ホスト処理デバイス(102)に提供する、プロセッサ(212)と、
第2のパス(224)によって、該プロセッサ(212)に通信可能なように結合されたユーザ出力デバイス(222)と
を保持し、
該第2のパス(224)上の通信が該USBコンプライアントインターフェース(206)にアクセス可能でないように、該第1のパス(216)および該第2のパス(224)が互いに異なっている、コンパクトなパーソナルトークン(200)。
【請求項12】
前記ユーザ出力デバイス(222)が、前記プロセッサ(212)の動作を示すように構成されている、請求項11に記載の装置。
【請求項13】
前記動作が、
暗号化動作と、
復号化動作と、
復号鍵を用いるデジタル署名動作と
を含む群から選択される動作を含む、請求項12に記載の装置。
【請求項14】
前記ユーザ出力デバイス(222)が、
少なくとも1つの発光デバイス(616)と、
少なくとも1つの液晶ディスプレイ(706)と、
少なくとも1つの音声デバイスと
を含む群から選択される、請求項11に記載の装置。
【請求項15】
前記USBコンプライアントインターフェース(206)と異なるパス(220)によって、前記プロセッサ(212)に通信可能なように結合された入力デバイス(218)をさらに含み、該入力デバイス(218)が、該プロセッサ(212)の動作に関する情報を提供する、請求項11に記載の装置。
【請求項1】
単一のコンパクトなハウジング(602、604)を含むコンパクトなパーソナルトークン(200)であって、該ハウジング(602、604)は、
ホスト処理デバイス(102)に取り外し可能なように結合することが可能なUSBコンプライアントインターフェース(206)と、
メモリ(214)と、
該メモリ(214)に通信可能なように結合されたプロセッサ(212)であって、該プロセッサ(212)が、第1のパス(216)によって、該USBコンプライアントインターフェース(130)を介して、該ホスト処理デバイス(102)に通信可能なように結合することが可能であり、該プロセッサ(212)が、該メモリ(214)に格納されているデータへのアクセスをホスト処理デバイス(102)に提供する、プロセッサ(212)と、
第2のパス(220)によって、該プロセッサ(212)に通信可能なように結合されたユーザ入力デバイス(218)と
を保持し、
該第2のパス(220)上の通信が該USBコンプライアントインターフェース(206)にアクセス可能でないように、該第1のパス(216)および該第2のパス(220)が互いに異なっており、
該プロセッサが、該ユーザ入力デバイス(218)からの入力に基づいて、該メモリ(214)に格納されているデータへのアクセスを制御する、コンパクトなパーソナルトークン(200)。
【請求項2】
前記ユーザ入力デバイス(218)が、前記プロセッサ(212)の動作を制御するように構成されている、請求項1に記載の装置。
【請求項3】
前記動作が、
暗号化動作と、
復号化動作と
を含む群から選択される動作を含む、請求項2に記載の装置。
【請求項4】
前記動作が、前記メモリ(214)に格納されている復号鍵を用いるデジタル署名動作を含む、請求項2に記載の装置。
【請求項5】
前記入力デバイス(218)が、前記トークン(200)の外部の面から作動可能な少なくとも1つの感圧性デバイスを含む、請求項1に記載の装置。
【請求項6】
前記入力デバイス(218)が少なくとも1つの押しボタンスイッチ(702)を含む、請求項1に記載の装置。
【請求項7】
前記USBコンプライアントインターフェース(206)と異なるパス(224)によって、前記プロセッサ(212)に通信可能なように結合された出力デバイス(222)をさらに含み、該出力デバイス(222)が、該プロセッサ(212)の動作に関する情報を提供する、請求項1に記載の装置。
【請求項8】
前記出力デバイス(222)が、少なくとも1つの発光デバイス(616)を含む、請求項7に記載の装置。
【請求項9】
前記出力デバイスが、少なくとも1つの液晶ディスプレイ(706)を含む、請求項7に記載の装置。
【請求項10】
前記出力デバイスが、少なくとも1つの音声出力デバイスを含む、請求項7に記載の装置。
【請求項11】
単一のコンパクトなハウジング(602、604)を含むコンパクトなパーソナルトークン(200)であって、該ハウジング(602、604)は、
ホスト処理デバイス(102)に取り外し可能なように結合することが可能なUSBコンプライアントインターフェース(206)と、
メモリ(214)と、
該メモリ(214)に通信可能なように結合されたプロセッサ(212)であって、該プロセッサ(212)が、第1のパスによって、該USBコンプライアントインターフェース(206)を介して、該ホスト処理デバイス(102)に通信可能なように結合することが可能であり、該プロセッサ(212)が、該メモリ(214)に格納されているデータへのアクセスを該ホスト処理デバイス(102)に提供する、プロセッサ(212)と、
第2のパス(224)によって、該プロセッサ(212)に通信可能なように結合されたユーザ出力デバイス(222)と
を保持し、
該第2のパス(224)上の通信が該USBコンプライアントインターフェース(206)にアクセス可能でないように、該第1のパス(216)および該第2のパス(224)が互いに異なっている、コンパクトなパーソナルトークン(200)。
【請求項12】
前記ユーザ出力デバイス(222)が、前記プロセッサ(212)の動作を示すように構成されている、請求項11に記載の装置。
【請求項13】
前記動作が、
暗号化動作と、
復号化動作と、
復号鍵を用いるデジタル署名動作と
を含む群から選択される動作を含む、請求項12に記載の装置。
【請求項14】
前記ユーザ出力デバイス(222)が、
少なくとも1つの発光デバイス(616)と、
少なくとも1つの液晶ディスプレイ(706)と、
少なくとも1つの音声デバイスと
を含む群から選択される、請求項11に記載の装置。
【請求項15】
前記USBコンプライアントインターフェース(206)と異なるパス(220)によって、前記プロセッサ(212)に通信可能なように結合された入力デバイス(218)をさらに含み、該入力デバイス(218)が、該プロセッサ(212)の動作に関する情報を提供する、請求項11に記載の装置。
【図1】
【図2】
【図3】
【図4】
【図5】
【図9】
【図10】
【図6】
【図7A】
【図7B】
【図7C】
【図8A】
【図8B】
【図8C】
【図2】
【図3】
【図4】
【図5】
【図9】
【図10】
【図6】
【図7A】
【図7B】
【図7C】
【図8A】
【図8B】
【図8C】
【公開番号】特開2011−192311(P2011−192311A)
【公開日】平成23年9月29日(2011.9.29)
【国際特許分類】
【外国語出願】
【出願番号】特願2011−139594(P2011−139594)
【出願日】平成23年6月23日(2011.6.23)
【分割の表示】特願2000−594004(P2000−594004)の分割
【原出願日】平成12年1月12日(2000.1.12)
【出願人】(505308641)セーフネット インコーポレイテッド (15)
【Fターム(参考)】
【公開日】平成23年9月29日(2011.9.29)
【国際特許分類】
【出願番号】特願2011−139594(P2011−139594)
【出願日】平成23年6月23日(2011.6.23)
【分割の表示】特願2000−594004(P2000−594004)の分割
【原出願日】平成12年1月12日(2000.1.12)
【出願人】(505308641)セーフネット インコーポレイテッド (15)
【Fターム(参考)】
[ Back to top ]