JP4459703B2 - キーボードまたは関連デバイスとの機密保護機能のある通信 - Google Patents

キーボードまたは関連デバイスとの機密保護機能のある通信 Download PDF

Info

Publication number
JP4459703B2
JP4459703B2 JP2004132078A JP2004132078A JP4459703B2 JP 4459703 B2 JP4459703 B2 JP 4459703B2 JP 2004132078 A JP2004132078 A JP 2004132078A JP 2004132078 A JP2004132078 A JP 2004132078A JP 4459703 B2 JP4459703 B2 JP 4459703B2
Authority
JP
Japan
Prior art keywords
keyboard
component
initial value
data
nonce
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2004132078A
Other languages
English (en)
Other versions
JP2004355615A (ja
JP2004355615A5 (ja
Inventor
ペイナード マーカス
ベナロー ジョシュ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Corp filed Critical Microsoft Corp
Publication of JP2004355615A publication Critical patent/JP2004355615A/ja
Publication of JP2004355615A5 publication Critical patent/JP2004355615A5/ja
Application granted granted Critical
Publication of JP4459703B2 publication Critical patent/JP4459703B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72448User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
    • H04M1/72454User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to context-related or environment-related conditions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/82Protecting input, output or interconnection devices
    • G06F21/83Protecting input, output or interconnection devices input devices, e.g. keyboards, mice or controllers thereof
    • AHUMAN NECESSITIES
    • A61MEDICAL OR VETERINARY SCIENCE; HYGIENE
    • A61PSPECIFIC THERAPEUTIC ACTIVITY OF CHEMICAL COMPOUNDS OR MEDICINAL PREPARATIONS
    • A61P31/00Antiinfectives, i.e. antibiotics, antiseptics, chemotherapeutics
    • A61P31/04Antibacterial agents
    • GPHYSICS
    • G08SIGNALLING
    • G08BSIGNALLING OR CALLING SYSTEMS; ORDER TELEGRAPHS; ALARM SYSTEMS
    • G08B21/00Alarms responsive to a single specified undesired or abnormal condition and not otherwise provided for
    • G08B21/02Alarms for ensuring the safety of persons
    • G08B21/04Alarms for ensuring the safety of persons responsive to non-activity, e.g. of elderly persons
    • G08B21/0407Alarms for ensuring the safety of persons responsive to non-activity, e.g. of elderly persons based on behaviour analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72448User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions
    • H04M1/72457User interfaces specially adapted for cordless or mobile telephones with means for adapting the functionality of the device according to specific conditions according to geographic location
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/34Microprocessors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2201/00Electronic components, circuits, software, systems or apparatus used in telephone systems
    • H04M2201/36Memories
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/10Details of telephonic subscriber devices including a GPS signal receiver
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/12Details of telephonic subscriber devices including a sensor for measuring a physical value, e.g. temperature or motion

Landscapes

  • Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Environmental & Geological Engineering (AREA)
  • General Health & Medical Sciences (AREA)
  • General Engineering & Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Veterinary Medicine (AREA)
  • Gerontology & Geriatric Medicine (AREA)
  • Nuclear Medicine, Radiotherapy & Molecular Imaging (AREA)
  • Organic Chemistry (AREA)
  • Pharmacology & Pharmacy (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Animal Behavior & Ethology (AREA)
  • Public Health (AREA)
  • General Chemical & Material Sciences (AREA)
  • Chemical Kinetics & Catalysis (AREA)
  • Chemical & Material Sciences (AREA)
  • Oncology (AREA)
  • Communicable Diseases (AREA)
  • Emergency Management (AREA)
  • Business, Economics & Management (AREA)
  • Medicinal Chemistry (AREA)
  • Social Psychology (AREA)
  • Psychology (AREA)
  • Psychiatry (AREA)
  • Storage Device Security (AREA)
  • Input From Keyboards Or The Like (AREA)
  • Document Processing Apparatus (AREA)
  • Communication Control (AREA)
  • Transceivers (AREA)
  • Telephone Set Structure (AREA)
  • Mobile Radio Communication Systems (AREA)

Description

本発明は、一般に、コンピュータ・セキュリティの分野に関する。より詳細には、本発明は、傍受または他のタイプの不正操作(tampering)を受ける可能性がある通信チャネルを介するキーボードのセキュリティで保護された使用に関する。
キーボードは、ユーザが入力したデータをコンピュータなどの電子デバイスに通信する。ユーザがキーボード上のキーを押した際、キーボードは、押された特定のキーを表すデータ(例えば、文字「e」のASCIIコード)を生成し、このデータが、デバイス・ドライバなどのコンピュータ内部のコンポーネントによって受け取られる。次に、デバイス・ドライバが、そのデータを、どのようなプログラムであれ、現在、入力を受け取っているコンピュータ上で実行されているプログラムに送る(たとえば、そのデータを、いずれのアプリケーション・プログラムであれ、アクティブであるアプリケーション・プログラムの入力バッファに入れることにより)。
データの受け取りにキーボードを使用するときに生じる1つの問題は、データが機密扱いの場合、または、秘密にしておかれる必要がある場合である。たとえば、セキュリティで保護されたアプリケーション(またはオペレーティング・システムのセキュリティで保護されたサービス)が、一般に、公衆に漏らされてはならないパスワードを入力するようにユーザに求めることがある。しかし、キーボードからデータを受け取るソフトウェア・コンポーネントに至るパスは、このデータを傍受するいくつかの機会が存在すると理由で、セキュリティで保護されていない。たとえば、このデータは、しばしば、スヌーピング(snooping)を受けるバスを介して伝送され、不正操作を受ける可能性があるデバイス・ドライバによって扱われる(または、そのオペレーティング・システムが、そのドライバが扱う情報を格納したり、漏洩させたりする、セキュリティで保護されていないデバイス・ドライバに、置き換えられること許すことがある)。言い換えれば、キーボードから最終の宛先に向かう途中の秘密データを観察する、または不正操作するいくつかの機会が存在する。
一般に、セキュリティで保護されていないチャネルで接続された2つのコンポーネントの間で伝送するためにデータを暗号化することが可能である。しかし、色々な要因に起因して、たとえば、キー管理問題、リプレー攻撃の可能性、ならびに、暗号化テキストの程々のサイズのサンプルを傍受することができる場合、キーボードによって生成される可能性があるデータの範囲が比較的小さいことにより、キーボード通信上の通常の暗号を破ることが比較的容易になっていること、などの要因に起因して、キーボードのコンテキストにおいて、多くの暗号化技術を容易に適用することができない。
以上に鑑みて、キーボードとのセキュリティで保護された通信を円滑にする技術の必要性が存在する。
本発明は、セキュリティで保護されていない通信チャネルを介する2つのコンポーネント間におけるセキュリティで保護された通信のための技術を提供する。本技術は、キーボードに特によく適しており、標準の暗号化スキームをキーボードに適用する際に存在する問題に対処する暗号化スキームを使用する。
本発明によるキーボードは、キーと、暗号化スキームの初期化のために使用される定数値と、を格納する。コンポーネント(たとえば、コンピュータ上で実行されているアプリケーション)が、キーボードにおいて格納されているのと同じキーおよび同じ定数値を格納する。コンポーネントとキーボードの間でセキュリティで保護されたセッションを開始するため、それぞれが、ナンス(nonce)を生成し、次に、互いとナンスを交換して、キーボードおよびコンポーネントがそれぞれ両方のナンスを所有しているようにする。次に、キーボードおよびコンポーネントは、2つのナンス、キー、および定数値にそれぞれが基づく2つの初期値を計算する。たとえば、第1の初期値は、CBC−3DESMACアルゴリズムを使用して生成されることが可能であり、CBC−3DESMACは、格納された定数値を初期連鎖値として使用し、前述のキーを、2つのナンスに基づいて生成されたメッセージに適用する。(CBC−3DESMACとは、暗号ブロック連鎖を伴うデータ暗号化標準(Data Encryption Standard)(DES)アルゴリズムによるトリプル暗号化を適用し、最終の暗号化テキスト・ブロックを使用してメッセージ認証コード(Message Authentication Code)(MAC)を生成することを指す。好ましくは、第2の初期値は、第1の初期値のビットを反転させる(すなわち、第1の初期値と、数0xffffffffffffffffの間で「排他OR」演算を実行する)ことによって生成される。キーボードとコンポーネントは、第1の初期値および第2の初期値を同じやり方で計算するので、共に、同じ2つの初期値を所有する。
代替の好ましい実施形態では、キーボードおよびコンポーネントは、2つの定数値を備え、第1の初期値および第2の初期値は、第1の初期値を生成するために第1の定数を使用し、第2の初期値を生成するために第2の定数を使用するCBC−3DESMACを、両方のナンスに基づくメッセージに対して適用することによって、生成されることが可能である。
第1の初期値および第2の初期値が生成されると、キーボードは、暗号化されたデータを通信する準備ができ、データを受け取るコンポーネントは、そのデータを暗号化解除し、検証する準備ができる。データがキーボードに入力されると、キーボードは、第1の初期値およびキーに基づいてそのデータを暗号化する。好ましくは、キーボードは、暗号ブロック連鎖を準備する(prime)のに使用される第1の初期値と共に、CBC−3DES(暗号ブロック連鎖を伴うトリプルDES)を使用して、前述したキーでデータを暗号化する。キーボードは、好ましくは、CBC−3DESMACを使用して各データ単位に関するMACも生成する。ここで、CBC−3DESMACは、前述したキーを適用し、第2の初期値を使用して暗号ブロック連鎖を準備する。好ましくは、各キー入力が、別個の暗号ブロックの中に暗号化され、セッション中にキーボードにおいて生成されたデータストリーム全体が、暗号ブロックの連鎖を構成する。というのは、この技術は、同じキー入力(例えば、文字「e」)が、先行するキー入力に依存して異なる暗号化テキストとして出現することを可能にするからである。
暗号化されたデータおよびMACが受信側コンポーネントにおいて受け取られると、受信側コンポーネントは、前述したキー、ならびに第1の初期値および第2の初期値を使用して受け取られたデータを暗号化解除し、検証する。
本発明のその他の特徴を以下に説明する。
以上の概要、および好ましい実施形態の以下の詳細な説明は、添付の図面に関連して読むことでよりよく理解される。本発明を例示するため、図面では、本発明の例示的な構成を示しているが、本発明は、本明細書に開示する特定の方法および手段(instrumentalities)に限定されない。
例示的なコンピューティング構成
図1は、本発明の態様を実装することができる例示的なコンピューティング環境を示している。コンピューティング・システム環境100は、適切なコンピューティング環境の一例に過ぎず、本発明の用途または機能の範囲に関する限定を何ら示唆するものではない。また、コンピューティング環境100が、例示的な動作環境100に示したコンポーネントのいずれか1つ、またはいずれの組合せに関連する依存関係または要件を有していると解釈してはならない。
本発明は、多数の他の汎用または専用のコンピューティング・システム環境またはコンピューティング・システム構成で機能する。本発明で使用するのに適する可能性がある周知のコンピューティング・システム、コンピューティング環境、および/またはコンピューティング構成の例には、パーソナル・コンピュータ、サーバ・コンピュータ、ハンドヘルド・デバイスまたはラップトップ・デバイス、マルチ・プロセッサ・システム、マイクロ・プロセッサベースのシステム、セットトップボックス、プログラマブル家庭用電化製品、ネットワークPC、ミニ・コンピュータ、メインフレーム・コンピュータ、組み込みシステム、以上のシステムまたはデバイスのいずれかを含む分散コンピューティング環境などが含まれるが、以上には限定されない。
本発明は、コンピュータによって実行される、プログラム・モジュールなどのコンピュータ実行可能命令の一般的な文脈において説明することができる。一般に、プログラム・モジュールには、特定のタスクを実行する、または特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。本発明は、通信ネットワークまたは他のデータ伝送媒体を介してリンクされたリモート処理デバイスによってタスクが実行される分散コンピューティング環境において実施してもよい。分散コンピューティング環境では、プログラム・モジュールおよび他のデータは、メモリ記憶装置を含むローカル・コンピュータ記憶媒体とリモート・コンピュータ記憶媒体の両方の中に配置されることが可能である。
図1を参照すると、本発明を実装するための例示的なシステムが、コンピュータ110の形態で汎用コンピューティング・デバイスを含んでいる。コンピュータ110のコンポーネントには、処理ユニット120、システム・メモリ130、ならびにシステム・メモリから処理ユニット120までを含む様々なシステム・コンポーネントを結合するシステム・バス121が含まれることが可能であるが、以上には限定されない。システム・バス121は、様々なバス・アーキテクチャのいずれかを使用するメモリバスまたはメモリ・コントローラ、周辺バス、およびローカル・バスを含むいくつかのタイプのバス構造のいずれかであることが可能である。例として、限定としてではなく、そのようなアーキテクチャには、インダストリ・スタンダード・アーキテクチャ(Industry Standard Architecture)(ISA)バス、マイクロ・チャネル・アーキテクチャ(Micro Channel Architecture)(MCA)バス、エンハンストISA(Enhanced ISA)(EISA)バス、ビデオ・エレクトロニクス・スタンダーズ・アソシエーション(Video Electronics Standards Association)(VESA)ローカル・バス、および(メザニン(Mezzanine)バスとしても知られる)ペリフェラル・コンポーネント・インターコネクト(Peripheral Component Interconnect)(PCI)バスが含まれる。また、システム・バス121は、通信デバイスのなかでもとりわけ、ポイント・ツー・ポイント接続、交換ファブリックなどとして実装してもよい。
コンピュータ110は、通常、様々なコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ110がアクセスすることができる任意の利用可能な媒体であることが可能であり、揮発性媒体と不揮発性媒体、リムーバブルな媒体とリムーバブルでない媒体が共に含まれる。例として、限定としてではなく、コンピュータ可読媒体は、コンピュータ記憶媒体および通信媒体を含むことが可能である。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータなどの情報の格納のために任意の方法または技術で実装された揮発性媒体と不揮発性媒体、リムーバブルな媒体とリムーバブルでない媒体が共に含まれる。コンピュータ記憶媒体には、RAM、ROM、EEPROM、フラッシュ・メモリまたは他のメモリ技術、CD−ROM、デジタル・バーサタイル・ディスク(DVD)または他の光ディスク・ストレージ、磁気カセット、磁気テープ、磁気ディスク・ストレージまたは他の磁気記憶装置、あるいは所望の情報を格納するのに使用することができ、コンピュータ110がアクセスすることができる任意の他の媒体が含まれるが、以上には限定されない。通信媒体は、通常、搬送波などの変調されたデータ信号、または他のトランスポート機構でコンピュータ可読命令、データ構造、プログラム・モジュール、または他のデータを実体化し、あらゆる情報配信媒体が含まれる。「変調されたデータ信号」という用語は、信号内に情報をエンコードするような仕方で特性の1つまたは複数が設定または変更されている信号を意味する。例として、限定としてではなく、通信媒体には、有線ネットワークまたは直接配線接続などの有線媒体、ならびに音響媒体、RF媒体、赤外線媒体、およびその他の無線媒体などの無線媒体が含まれる。また、前述した媒体のいずれかの組合せも、コンピュータ可読媒体の範囲に含められなければならない。
システム・メモリ130は、読み取り専用メモリ(ROM)131およびランダム・アクセス・メモリ(RAM)132などの揮発性メモリおよび/または不揮発性メモリの形態でコンピュータ記憶媒体を含む。始動中などにコンピュータ110内部の要素間で情報を転送するのを助ける基本ルーチンを含む基本入出力システム133(BIOS)が、通常、ROM131の中に格納されている。RAM132は、通常、処理ユニット120によって即時にアクセス可能であり、かつ/または現在、処理されているデータおよび/またはプログラム・モジュールを含む。例として、限定としてではなく、図1は、オペレーティング・システム134、アプリケーション・プログラム135、その他のプログラム・モジュール136、およびプログラム・データ137を示している。
また、コンピュータ110は、他のリムーバブルな/リムーバブルでない、揮発性/不揮発性のコンピュータ記憶媒体も含むことが可能である。単に例として、図1は、リムーバブルでない不揮発性の磁気媒体に対して読み取りまたは書き込みを行うハード・ディスク・ドライブ141、リムーバブルな不揮発性の磁気ディスク152に対して読み取りまたは書き込みを行う磁気ディスク・ドライブ151、およびCD−ROMまたは他の光媒体などのリムーバブルな不揮発性の光ディスク156に対して読み取りまたは書き込みを行う光ディスク・ドライブ155を示している。例示的な動作環境において使用することができる他のリムーバブルな/リムーバブルでない揮発性/不揮発性のコンピュータ記憶媒体には、磁気テープカセット、フラッシュ・メモリ・カード、デジタル・バーサタイル・ディスク、デジタル・ビデオ・テープ、ソリッド・ステートRAM、ソリッド・ステートROMなどが含まれるが、以上には限定されない。ハード・ディスク・ドライブ141は、通常、インターフェース140のようなリムーバブルでないメモリ・インターフェースを介してシステム・バス121に接続され、磁気ディスク・ドライブ151および光ディスク・ドライブ155は、通常、インターフェース150のようなリムーバブルなメモリ・インターフェースでシステム・バス121に接続される。
前述し、図1に示すドライブおよび関連するコンピュータ記憶媒体により、コンピュータ可読命令、データ構造、プログラム・モジュール、およびその他のデータのストーレッジがコンピュータ110に提供される。図1では、たとえば、ハード・ディスク・ドライブ141が、オペレーティング・システム144、アプリケーション・プログラム145、他のプログラム・モジュール146、およびプログラム・データ147を格納しているのを示している。以上のコンポーネントは、オペレーティング・システム134、アプリケーション・プログラム135、他のプログラム・モジュール136、およびプログラム・データ137と同じであることも、異なることも可能であることに留意されたい。オペレーティング・システム144、アプリケーション・プログラム145、他のプログラム・モジュール146、およびプログラム・データ147に、ここでは、少なくともそれらが異なるコピーであることを示すために異なる符号を付けている。ユーザは、キーボード162や、マウス、トラック・ボール、またはタッチ・パッドと一般に呼ばれるポインティング・デバイス161などの入力デバイスを介して、コマンドおよび情報をコンピュータ20に入力することができる。その他の入力デバイス(図示せず)には、マイク、ジョイスティック、ゲーム・パッド、サテライト・ディッシュ、スキャナなどが含まれることが可能である。以上の入力デバイス、およびその他の入力デバイスは、しばしば、システム・バスに結合されたユーザ入力インターフェース160を介して処理ユニット120に接続されるが、パラレル・ポート、ゲーム・ポート、またはユニバーサル・シリアル・バス(USB)などの他のインターフェースおよびバス構造で接続してもよい。また、モニタ191、または他のタイプのディスプレイ・デバイスも、ビデオ・インターフェース190などのインターフェースを介してシステム・バス121に接続される。モニタに加えて、コンピュータは、出力周辺インターフェース190を介して接続することができるスピーカ197やプリンタ196などの他の周辺出力デバイスも含むことが可能である。
コンピュータ110は、リモート・コンピュータ180のような1つまたは複数のリモート・コンピュータに対する論理接続を使用するネットワーク化された環境において動作することが可能である。リモート・コンピュータ180は、パーソナル・コンピュータ、サーバ、ルータ、ネットワークPC、ピア・デバイス、または他の一般的なネットワーク・ノードであることが可能であり、通常、コンピュータ110に関連して前述した要素の多く、またはすべてを含むが、メモリ記憶装置181だけを図1に示している。図1に示した論理接続は、ローカル・エリア・ネットワーク(LAN)171およびワイド・エリア・ネットワーク(WAN)173を含むが、その他のネットワークを含むことも可能である・。そのようなネットワーキング環境は、オフィス、企業全体のコンピュータ・ネットワーク、イントラネット、およびインターネットで一般的である。
LANネットワーキング環境で使用される場合、コンピュータ110は、ネットワーク・インターフェースまたはネットワーク・アダプタ170を介してLAN171に接続される。WANネットワーキング環境で使用される場合、コンピュータ110は、通常、インターネットなどのWAN173を介して通信を確立するためのモデム172、またはその他の手段を含む。内部にあることも、外部にあることも可能なモデム172は、ユーザ入力インターフェース160、またはその他の適切な機構を介してシステム・バス121に接続することができる。ネットワーク化された環境では、コンピュータ110に関連して示したプログラム・モジュール、またはプログラム・モジュールの部分は、リモートメモリ記憶装置の中に格納されることが可能である。例として、限定としてではなく、図1は、リモート・アプリケーション・プログラム185が、メモリ・デバイス181上に常駐しているのを示している。図示したネットワーク接続は、例示的であり、コンピュータ間で通信リンクを確立する他の手段も使用できることが認められよう。
キーボードとコンポーネントの間における通信のセキュリティ
本発明は、キーボードからの入力を要するコンポーネントとセキュリティで保護された形で通信するためにキーボードをどのように使用することができるかという問題を扱う。図2は、このような通信のシナリオを示している。図2では、キーボード162が、コンポーネント204と通信している。コンポーネント204は、任意のタイプのコンポーネント、たとえば、コンピュータ上で実行されているプログラム、あるいはハードウェアなどであることが可能である。キーボード162からコンポーネント202への通信は、少なくとも何らかのセキュリティで保護されていない部分204を含む通信チャネルを経由する。つまり、キー入力を表すデータがキーボード162からコンポーネント202に向かう途中で何らかのチャネルを経由する際、第三者がそのデータを傍受する、または不正操作する何らかの機会が存在する、可能性がある。たとえば、キーボード162で入力されている情報が、公衆に明かされてはならない秘密パスワードである場合、この傍受または不正操作は問題である可能性がある。
図3は、キーボードとコンポーネントの間でセキュリティで保護された通信が所望される特定のシナリオを示している。図3では、キーボード162を使用して、コンピュータ110上で実行されているソフトウェアに入力が与えられる。図3の例では、キーボード162は、ユニバーサル・シリアル・バス(USB)302で使用するように適合されたキーボードである。(略して、そのようなキーボードをUSBキーボードと呼ぶ。)キーボード162は、キー入力を受け取り、そのキー入力を表すバイトをUSB302に乗せ、USB302においてバイトがUSBドライバ304によってピックアップされる。次に、ドライバ304が、図3の例では、ソフトウェア306である最終的な宛先にそのバイトを伝達する。ソフトウェア306は、コンポーネント202(図2に示す)の例である。
図3では、コンピュータ110上で実行されている2つのオペレーティング・システム134(1)および134(2)が存在する。オペレーティング・システム134(1)は、MICROSOFT WINDOWS(登録商標)XP、Unix(登録商標)、Linux、Solarisなどの通常のオペレーティング・システムである。オペレーティング・システム134(2)は、信頼されるアプリケーション用に使用されるハイ・アシュアランス(high assurance:高信頼)オペレーティング・システムである。たとえば、オペレーティング・システム134(2)は、オペレーティング・システム134(2)の外部ではアクセス可能でないcurtainedメモリに関連付けられていることが可能であり、オペレーティング・システム134(2)は、オペレーティング・システム134(2)の下で実行されることが許されているある特別な信頼されるアプリケーションだけが秘密情報を読み取ることができるように、そのcurtainedメモリの中に秘密情報(例えば、暗号化キー、パスワードなど)を格納することができる。オペレーティング・システム134(2)は、オペレーティング・システム134(2)が自らの機能を正しく実行するという非常に高いレベルのアシュアランスを受ける権利が与えられるという意味で、ハイ・アシュアランスである。すなわち、秘密情報を保護することが、オペレーティング・システム134(2)の意図される機能の1つである場合、オペレーティング・システム134(2)がその秘密情報を漏らさないという非常に高いレベルのアシュアランス信頼を受ける権利を与えられる。秘密情報を保護することができることの一部には、をその秘密を外部世界に漏らすことなく入力された秘密(例えば、パスワード)を受け取ることができることが含まれる。オペレーティング・システム134(2)は、ドライバ304がオペレーティング・システム134(1)の制御下にある(および、そのオペレーティング・システム134(1)が、ハッカーがUSB302から直接に情報を読み取ったり、または秘密情報を格納して外部に公表する不正なドライバに置き換えることを許容する可能性がある)ので、ドライバ304がそのような秘密情報を扱うのを信頼しない可能性がある。したがって、オペレーティング・システム134(2)は、オペレーティング・システム134(1)において引き起こされる動作(acts)によって秘密情報が漏らされる懸念なしに、オペレーティング・システム134(1)を介してキーボード162から情報を受け取る方法を必要とする。
図3の例は、キーボード162がユニバーサル・シリアル・バス302を介してコンピュータ110と通信しているのを示しているが、前述したシナリオは、キーボード162がコンピュータ110と通信する厳密な手段に関わりなく該当し、したがって、本発明は、USBキーボードに限定されない。
図4は、セキュリティで保護されていないチャネルを介してセキュリティで保護された通信に参加するようにキーボード162およびコンポーネント202を構成することができるやり方を示している。キーボード162およびコンポーネント202はそれぞれ、暗号化キー402のコピーを格納する。キーボード162およびコンポーネント202は、好ましくは、以下により詳細に説明するように、特定の好ましい暗号化技術のための初期値として使用される定数値404も格納する。さらに好ましい実施形態では、キーボード162およびコンポーネント202は、(キーに加えて)1つではなく2つの定数値を格納してもよい。この2つの定数値は、以下に説明するように、暗号化技術において使用することができる。キーボード162は、たとえば、キー402および定数404を格納する基板に実装した(onboard)不揮発性半導体を含むこと、またはキー402および定数404が格納されたリムーバブル記憶媒体を受けるポートを有することが可能である。コンポーネント202がソフトウェア・コンポーネントである場合、キー402および定数404は、コンポーネント202のデータ空間の中に格納することができる。ただし、本発明は、キー402および定数404を格納するいずれの特定の仕方にも限定されないことを理解されたい。
キーボード162とコンポーネント202の間におけるセキュリティで保護された通信の初めに、キーボード162およびコンポーネント202は、ナンスを生成し、交換する。つまり、キーボード162が、ナンス412を生成し、ナンス412をコンポーネント202に送る。コンポーネント202が、ナンス414を生成し、ナンス414をキーボード162に送る。当技術分野で周知のとおり、ナンスは、暗号化アプリケーション(暗号化の申し込み)において使用されるデータであり、しばしば、あるエンティティを暗号法において(crytographically)認証するのに使用され、あるいは暗号化を依存させることができる、容易に再現されない、要素を使用して暗号化セッションを初期化するのに使用される。ナンス412および414は、以下により詳細に説明するとおり、キーボード162とコンポーネント202の間で伝送されるデータの暗号化および認証のための初期値を生成するのに使用することができる。
キーボードからコンポーネントにデータをセキュリティで保護された形で送るプロセス
図5は、コンポーネント202がキーボード162からデータをセキュリティで保護された形で受け取るセッションに、キーボード162およびコンポーネント202が関与することができるプロセスを示している。図5のプロセスは、暗号化(送信データの傍受から保護する)と認証(送信データの変更から保護する)を共に提供する。ただし、伝送のセキュリティ要件に応じて、暗号化または認証を単独で使用することもできることを理解されたい。たとえば、データの変更を許容することができるが、傍受は許容することができない場合、暗号化を単独で使用することができる。逆に、データの傍受を許容することができるが、データの変更は許容することができない場合、認証だけを使用することができる。
最初、キーボード162とコンポーネント202が、ナンスを交換する(502)。たとえば、図4に関連して前述したとおり、キーボード162が、ナンス412を生成して、コンポーネント202に送ることが可能であり、コンポーネント202が、ナンス414を生成して、キーボード162に送ることが可能である。ナンスを生成するための技術は、当技術分野では周知であり、したがって、本明細書で詳述することはしない。一部の例として、ナンス412および414は、乱数、メモリの何らかの領域の内容、時刻、温度、月相(phase of the moon)等、あるいはしばしば変化する可能性が高くてキーボード162またはコンポーネント202が同じナンスを2回生成する可能性が低くなるだけ十分な範囲を有する任意の他の要因、に基づいて生成することが可能である。
ナンス412および414が交換される(502)と、キーボード162およびコンポーネント202はそれぞれ、両方のナンスを所有する。次に、キーボード162およびコンポーネント202は、共に合意した数式を使用して、両方のナンスおよびキー402の関数として2つの初期値、すなわち、IV_cおよびIV_mを計算する(504)。つまり、K=キー402、N=ナンス412、およびN=ナンス414である場合、
IV_c=f(K,N,N)、および
IV_m=g(K,N,N)である。
機能fおよびgは、あらゆる関数であることが可能である。好ましい実施形態では、
f(K,N,N)=CBC−3DESMAC(const_IV,N|N)、および
g(K,N,N)=f(K,N,N)xor 0xffffffffffffffffであり、
ここで、const_IVは、定数値404(図4に示す)に等しい。キーボードとコンポーネントが2つの定数値(たとえば、const_IV_1およびconst_IV_2)を共有するさらなる好ましい実施形態では、関数fおよびgは、代替として、以下のとおり計算することができる。
f(K,N,N)=CBC−3DESMAC(const_IV_1,N|N)、および
g(K,N,N)=CBC−3DESMAC(const_IV_2,N|N
(演算子「|」は連結を意味し、したがって、N|Nは、NとNを連結することからもたらされる値である。「xor」は、ビット単位の「排他OR」演算であり、したがって、A xor Bは、AまたはBのどちらかで「1」であるビットを「1」に設定するが、AとBの両方で「1」であるビットは「1」に設定せず、他のすべてのビットをゼロに設定することからもたらされる値である。)CBC−3DESMAC(const_IV,N|N)は、暗号化関数であり、この関数の意味は、当技術分野で周知であり、以下により詳細に説明する。
IV_cおよびIV_mが計算された後、キーボード162とコンポーネント202の間における通信を開始することができる。キーボード162が、キー入力、すなわち、操作者がキーの1つを押すことによるキー入力(あるいは<SHIFT>と「A」、または<CTRL>と「A」などのキーのある組合せ)を受け取る(ステップ506)。次に、キーボードは、キー入力を暗号化し(508)、暗号化は、好ましくは、キー402およびIV_cに基づく。好ましい実施形態では、キー入力は、キー402をキーとし、IV_cを初期値として、CBC−3DESを使用して暗号化される。CBC−3DESは、当技術分野で周知の暗号化アルゴリズムであり、以下により詳細に説明する。さらに、キーボード162は、好ましくは、キー402およびIV_mに基づき、キー入力に関するメッセージ認証コード(MAC)を計算する(510)。好ましい実施形態では、メッセージ認証コードは、キー402をキーとし、IV_mを初期値としてCBC−3DESMACを使用して生成される。前述したとおり、CBC−3DESMACは、当技術分野で周知であり、以下により詳細に説明する。
キーボードが暗号化されたキー入力データとMACの両方を生成した後、コンポーネント202が、その暗号化されたキー入力データおよびMACをキーボード162から受け取る512(ステップ512)。次に、コンポーネント202は、キー402およびIV_cを使用してデータを暗号化解除し(514)、キー402およびIV_mを使用してデータの検証も行う(ステップ514)。次に、処理は、ステップ506に戻り、キーボードにおける次の入力を受け取る。
暗号化関数CBC−3DESおよびCBC−3DESMAC
CBC−3DESは、データ暗号化標準(DES)と暗号ブロック連鎖(CBC)と組み合わせる暗号化関数である。「3DES」とは、DES暗号化アルゴリズムが所与のデータ・ブロックに3回、適用されることを意味する(「トリプルDES」)。DESは、キーをデータに周知のやり方で適用することによってデータを暗号化する。DESは、メッセージを、より小さいブロックに分割し、個々のブロックを暗号化することによって長いメッセージを暗号化する。(「トリプルDES」が使用される場合、DESアルゴリズムは、各ブロックに対して3回、そのブロックに関する暗号化テキストを生成するために適用される。)DES(およびトリプルDES)は、キーだけを使用して各データ・ブロックを暗号化することができるが、暗号ブロック連鎖が使用される場合、1つのブロックの暗号化は、そのキーだけにではなく、直前のブロックを暗号化することによって生成された暗号化テキストにも基づく。したがって、所与のブロックの暗号化は、2つの入力に、すなわち、キー、および先行のブロックを暗号化したことによりもたらされた暗号化テキストに基づく。暗号化される第1のデータ・ブロックは、「先行の」ブロックを有さないので、暗号ブロック連鎖プロセスは、「初期値」を準備しなければならない。つまり、第1のデータ・ブロックは、キーおよび何らかの初期値に基づいて暗号化される。初期値は、後続のブロックの暗号化では使用されないが、どのようにそれらのブロックが暗号化されるかに間接的に影響を与えることができる(第1のブロックの暗号化テキストが初期値に基づき、第2のブロックの暗号化テキストが第1のブロックの暗号化テキストに基づき、以下同様であるため)。
以上の説明に鑑みて、「CBC−3DES(IV,メッセージ」という語句は、トリプルDESおよび暗号ブロック連鎖を使用してキーKで「メッセージ」を暗号化することを意味し、IVは、暗号ブロック連鎖のための初期値である。
CBC−3DESMACは、CBC−3DESを使用してメッセージ認証コード(message authentication code:MAC)を生成するやり方である。詳細には、CBC−3DESMAC(IV,メッセージ)という語句は、トリプルDESおよび暗号ブロック連鎖を使用し、IVを暗号ブロック連鎖のための初期値として使用してキーKで「メッセージ」が暗号化されることを意味する。ただし、CBC−3DESMACの目的は、メッセージに関する複雑な暗号化テキストではなく、メッセージに関するMACを生成することだけであるため、最後の暗号化テキスト・ブロックだけが保存され、残りの暗号化テキスト・ブロックは、破棄されることが可能である。この最後の暗号化テキスト・ブロックをMACとして使用することができる。というのは、定数のキーおよび定数のIVが与えられても、異なるメッセージによって同じ最終ブロックが生成される可能性は低いからである(あるいは、より正確には、各ブロックが2個の異なる値を表すことが可能である場合、任意の2つのメッセージが同じ最終ブロックを有する確率は1/2だけしかない)。
CBC−3DESについての上記の特定の選択、ならびにCBC−3DESを使用する上記のやり方は、暗号化されたキーボード通信に特に有利であることに留意されたい。暗号化されるべきメッセージの領域は小さい(たとえば、128個の異なるASCII文字程度)ので、暗号ブロック連鎖は、暗号が破られないようにするのに特に役立つ。直線的(straight)暗号化が(連鎖なしで)使用された場合、所与のセッション内で、各文字は、入力されるたびに毎回、同じ暗号化テキストに暗号化されることになる。たとえば、「e」を入力することにより、同じ暗号化テキストが常に生成されることになる。経験に基づく推測を行うことにより(たとえば、「e」が英語において最もよく出現する文字であるという事実を使うことにより)、そのような暗号をより容易に破ることが可能である。セッション内の入力のすべてを連鎖させることは、同じデータが、入力ストリームの中でどこに現れるかに応じて異なる暗号化テキストが出現することを確実にすることにより、暗号を破ることをより困難にする(たとえば、「e」が、同じ暗号化テキストを常にもたらさない可能性がある)。さらに、ナンスに基づいて新しい初期値を生成することによって各セッションに関する暗号化を変更することにより、観察者が、セキュリティを危うくするのに使用する可能性がある使用パターンを検出することを防止する(たとえば、毎回のセッションで入力される最初のテキストがパスワードである場合、観察者は、そのパスワードに関する暗号化テキストをキャプチャし、リプレー攻撃を開始することができる)。さらに、DESによって使用される暗号ブロックのサイズは、DESが8バイトブロックを扱い、ほとんどのキーボード・プロトコルは、このサイズに収まることが可能なブロックでデータを伝送するため(たとえば、USB標準も8バイト・ブロックを扱い、したがって、各USBブロックは、無駄な領域なしに1つのDESブロックの中に収まることが可能である)、特によく適している。ただし、任意の他の暗号も使用することが可能であり、CBCと同様の連鎖概念をそのようブロック暗号に適用することも可能であることに留意されたい。
さらに、本明細書で説明する暗号化スキームがキーボードに特によく適しているのと同じ理由で、この暗号化スキームは、マウス(または他のポインティング・デバイス)などの他のあるタイプの入力デバイスにもよく適していることにさらに留意されたい。それらの入力デバイスは、少量のボキャブラリ(vocabulary)や、複雑な暗号化アルゴリズムを実行する能力が限られていることなどの、様々な特徴をキーボードと共有している。
データを暗号化するキーボードの例示的な用法
図6は、暗号化を実行するキーボードをセキュリティで保護された通信を要するコンポーネントと共に使用することができる例示的な環境を示している。図6の例では、製造業者602が、複数のキーボード162(1)、162(2)、…162(n)を製造し、一般の使用のためにそれらのキーボードを流通させる。キーボード162(1)、162(2)、…162(n)のそれぞれは、(図4に示す)キー402および定数値404を組み込んでいる(または、リムーバブル半導体メモリ用のポートによるなどの、キー402および定数値404に外部でアクセスするのに使用することができる何らかの手段、を組み込んでいる)。製造業者604は、キーボードとセキュリティで保護された形で通信することに役立つコンポーネント202(1)、202(2)、…202(m)を製造する。コンポーネント202(1)、202(2)、…202(m)のそれぞれは、キー402および定数値404を組み込んでいる(または、何からの仕方でキーおよび定数値を受け取ることができる)。したがって、コンポーネント202(1)、202(2)、…202(m)は、前述した技術を介して、キーボード162(1)、162(2)、…162(n)から入力を受け取ることが可能である。
製造業者602は、両方の製造業者は、セキュリティで保護された通信のために組み込まれるべきキー402および定数404について合意することができるように、製造業者604と前から存在する関係を有することが可能である。一例では、製造業者602と604は、同一のエンティティである。別の例では、製造業者604は、コンポーネント202(1)、202(2)、…202(m)がセキュリティで保護されたキーボードからデータを受け取ることができることを望むコンポーネント202(1)、202(2)、…202(m)の製造業者であり、製造業者602は、コンポーネント202(1)、202(2)、…202(m)とセキュリティで保護された通信を行うためのキーボードを製造し、キー402および/または定数404を保持するのに十分なだけ信頼できると製造業者604が考えたキーボードの製造業者である。
以上の例は、単に説明のために提示しており、本発明を決して限定するものと解釈すべきではないことに留意されたい。本発明を様々な実施形態に関連して説明してきたが、本明細書で使用してきた言葉は、限定する言葉ではなく、説明し、例示する言葉であるものと理解されたい。さらに、本発明を特定の手段、材料、および実施形態に関連して説明してきたが、本発明は、本明細書で開示した詳細に限定されるものではない。むしろ、本発明は、特許請求の範囲に含まれるようなすべての機能的に等価の構造、方法、および用途を範囲に含む。本明細書の教示を利用できる当分野の技術者は、教示に多数の変更を加えることができ、変更は、本発明の態様の範囲および趣旨を逸脱することなく行うことができる。
本発明の態様を実装することができる例示的なコンピューティング環境を示すブロック図である。 キーボードとコンポーネントの間の通信がセキュリティで保護されていないチャネルを介して行われる可能性がある第1の例示的な環境を示すブロック図である。 キーボードとコンポーネントの間の通信がセキュリティで保護されていないチャネルを介して行われる可能性がある第2の例示的な環境を示すブロック図である。 本発明の態様によるセキュリティで保護された通信のために構成されており、ナンスを交換するキーボードとコンポーネントを示すブロック図である。 キーボードとコンポーネントの間でセキュリティで保護された通信セッションを行うためのプロセスを示す流れ図である。 本発明の態様によるセキュリティで保護された通信を行うようにキーボードおよびコンポーネントを分散させることができる第1の例示的な環境を示すブロック図である。
符号の説明
110 コンピュータ
134(1)、134(2) オペレーティング・システム
162(1)、162(2)、162(n) キーボード
202(1)、202(2)、202(m)、204 コンポーネント
302 ユニバーサル・シリアル・バス
304 ユニバーサル・シリアル・バス・ドライバ
306 ソフトウェア
402 キー
404 定数
412 ナンス
414 ナンス
602、604 製造業者

Claims (20)

  1. キーボードと通信する方法であって、
    コンポーネントが、第1のナンスを前記キーボードから受信することと、
    前記コンポーネントが、第2のナンスを前記キーボードに送信することと、
    前記キーボードと前記コンポーネントの両方に知られているキーと定数値とを使用するトリプルDESおよび暗号ブロック連鎖を前記第1のナンスと前記第2のナンスとの組合せに適用することによって、第1の初期値、および該第1の初期値とは異なる第2の初期値を生成することと、
    前記コンポーネント前記キーボードから、前記コンポーネントと前記キーボードの両方に知られている前記キーと前記第1の初期値とを使用するトリプルDESおよび暗号ブロック連鎖を使用して前記キーボードによって暗号化された、複数のデータを受信することであって、前記複数のデータ内の各々のデータはそれぞれ、前記キーボードが受信した別個の各キー入力を含み、前記複数のデータ内の各々のデータはそれぞれ、前記トリプルDESおよび暗号ブロック連鎖の別個のブロックを使用して暗号化される、該受信することと、
    前記コンポーネントが、前記キーと前記第1の初期値に基づいて、前記複数のデータを暗号化解除すること
    を備えることを特徴とする方法。
  2. 前記コンポーネント前記キーボードから、前記コンポーネントと前記キーボードの両方に知られている前記キーと前記第2の初期値とを使用するトリプルDESおよび暗号ブロック連鎖を使用して前記キーボードによって生成され前記複数のデータに対応している、複数のメッセージ認証コードを受信することと、
    前記コンポーネントが、前記複数のメッセージ認証コードを使用することによって前記複数のデータを検証すること
    をさらに備えることを特徴とする請求項1に記載の方法。
  3. 前記定数値は、第1の定数値と、第2の定数値とを含み、
    前記第1の初期値、および該第1の初期値とは異なる第2の初期値を生成することは、
    前記キーボードと前記コンポーネントの両方に知られている前記キーと前記第1の定数値とを使用するトリプルDESおよび暗号ブロック連鎖を前記第1のナンスと前記第2のナンスの組合せに適用することによって、前記第1の初期値を生成すること
    前記キーボードおよび前記コンポーネントの両方に知られている前記キーと前記第2の定数値とを使用するトリプルDESおよび暗号ブロック連鎖を前記第1のナンスと前記第2のナンスの組合せに適用することによって、前記第2の初期値を生成すること
    含むことを特徴とする請求項に記載の方法。
  4. 前記複数のデータは、その動作の完全性が前記コンポーネントによって信頼されいないチャネルを介して前記キーボードから前記コンポーネントに送信されることを特徴とする請求項1に記載の方法。
  5. 前記コンポーネントは、コンピューティング・デバイス上でともに実行される、第1のオペレーティング・システムと、前記第1のオペレーティング・システムの動作を完全には信頼していない第2のオペレーティング・システムとを含み、前記キーボードは、前記第1のオペレーティング・システムによって制御されるドライバを介して前記第2のオペレーティング・システムと通信することを特徴とする請求項に記載の方法。
  6. 前記キーボードは、USBキーボードを含むことを特徴とする請求項1に記載の方法。
  7. 前記トリプルDESおよび前記暗号ブロック連鎖は、所定のサイズを有するブロック単位でデータを暗号化し、前記キーボードは、前記所定のサイズのブロック単位でデータを通信することを特徴とする請求項に記載の方法。
  8. コンポーネントにおいてキーボードからの入力をセキュアに受信する方法を実行するためのコンピュータ実行可能命令を記憶したコンピュータ可読な記憶媒体であって、前記方法は、
    コンポーネントが、第1のナンスを前記キーボードから受信することと、
    前記コンポーネントが、第2のナンスを前記キーボードに送信することと、
    前記キーボードと前記コンポーネントの両方に知られているキーと定数値とを使用するトリプルDESおよび暗号ブロック連鎖を前記第1のナンスと前記第2のナンスとの組み合わせに適用することによって、第1の初期値、および該第1の初期値とは異なる第2の初期値を生成することと、
    前記コンポーネントが前記キーボードから、前記コンポーネントと前記キーボードの両方に知られている前記キーと前記第1の初期値とを使用するトリプルDESおよび暗号ブロック連鎖を使用して前記キーボード信した複数のキー入力を暗号化することによって生成された、複数の暗号化されたキー入力を受信することであって、前記複数のキー入力の個々のキー入力はそれぞれ、前記トリプルDESおよび暗号ブロック連鎖の別個のブロックを使用して暗号化される、該受信することと、
    前記コンポーネントが、前記キー前記第1の初期値を使用して前記複数の暗号化されたキー入力を暗号化解除すること
    を備えることを特徴とするコンピュータ可読な記憶媒体。
  9. 前記コンポーネントは、コンピューティング・デバイス上でともに実行される、第1のオペレーティング・システムと、前記第1のオペレーティング・システムの動作を完全には信頼していない第2のオペレーティング・システムとを含み、前記キーボードは、前記第1のオペレーティング・システムによって制御されるドライバを介して前記第2のオペレーティング・システムと通信することを特徴とする請求項に記載のコンピュータ可読な記憶媒体。
  10. 前記方法は、
    前記コンポーネント前記キーボードから、前記コンポーネントと前記キーボードの両方に知られている前記キーと前記第2の初期値を使用するトリプルDESおよび暗号ブロック連鎖を使用して前記キーボードによって生成され前記複数の暗号化されたキー入力に対応している、複数のメッセージ認証コードを受信することと、
    前記コンポーネントが、前記複数のメッセージ認証コードを使用することによって前記複数の暗号化されたキー入力を検証することと
    をさらに備えることを特徴とする請求項に記載のコンピュータ可読な記憶媒体。
  11. 前記定数値は、第1の定数値および第2の定数値を含み、
    前記第1の初期値、および該第1の初期値とは異なる第2の初期値を生成することは、
    前記キーボードと前記コンポーネントの両方に知られている前記キーと前記第1の定数値とを使用するトリプルDESおよび暗号ブロック連鎖を前記第1のナンスと前記第2のナンスの組合せに適用することによって、前記第1の初期値を生成すること
    前記キーボードと前記コンポーネントの両方に知られている前記キーと前記第2の定数値とを使用するトリプルDESおよび暗号ブロック連鎖を前記第1のナンスと前記第2のナンスの組合せに適用することによって、前記第2の初期値を生成すること
    含むことを特徴とする請求項に記載のコンピュータ可読な記憶媒体。
  12. 前記トリプルDESおよび前記暗号ブロック連鎖は、所定のサイズを有するブロック単位でデータを暗号化し、前記キーボードは、前記所定のサイズのブロック単位でデータを通信することを特徴とする請求項に記載のコンピュータ可読な記憶媒体。
  13. 入力データをデータの受信側へセキュアに送信するためのキーボードであって、
    キーと定数値とを格納する1つまたは複数の記憶場所と、
    第1のナンスを受信側に送信し、第2のナンスを前記受信側から受信し、該キーボードと前記受信側との両方に知られている前記キーと前記定数値とを使用するトリプルDESおよび暗号ブロック連鎖を前記第1のナンスと前記第2のナンスとの組み合わせに適用することによって第1の初期値、および該第1の初期値とは異なる第2の初期値を生成し、該キーボード信した入力データを、該キーボードと前記受信側の両方に知られている前記キー前記第1の初期値を使用するトリプルDESおよび暗号ブロック連鎖を使用して暗号化することによって前記入力データに基づいた暗号化されたデータを生成する、暗号化コンポーネントであって、前記入力データ内の各入力データはそれぞれ、該キーボードが受信した別個のキー入力を表し、前記入力データ内の各入力データはそれぞれ、前記トリプルDESおよび暗号ブロック連鎖の別個のブロックを使用して暗号化される、該暗号化コンポーネントと、
    前記受信側から前記第1のナンスを通信し、前記受信側へ前記第2のナンスを通信し、および前記キーと前記第1の初期値とを知っている前記受信側を宛先とする前記暗号化されたデータを前記キーボードの外部のデバイスに通信する通信インターフェースと
    を備えことを特徴とするキーボード。
  14. 前記暗号化コンポーネントは、さらに、前記暗号化されたデータまたは前記入力データに対応する複数のメッセージ認証コードを、該キーボードと前記受信側の両方に知られている前記キーと前記第2の初期値を使用するトリプルDESおよび暗号ブロック連鎖を使用して生成することを特徴とする請求項13に記載のキーボード。
  15. 前記キーボードは、USBキーボードを含むことを特徴とする請求項13に記載のキーボード。
  16. 前記通信インターフェースが、前記暗号化されたデータを前記デバイス上で実行される第1のオペレーティング・システムによって制御されるドライバに通信すると、前記暗号化されたデータは、前記デバイス上で前記第1のオペレーティング・システムとともに実行され、前記第1のオペレーティング・システムの動作を完全には信頼していない第2のオペレーティング・システムである前記受信側に通信されることを特徴とする請求項13に記載のキーボード。
  17. キーボードがキーボードの外部のコンポーネントとのセキュリティで保護された通信を行うことができるようにする方法を実行するためのコンピュータ実行可能命令を記憶したコンピュータ可読な記憶媒体であって、前記方法は、前記キーボードが、
    第1のナンスを前記コンポーネントに送信することと、
    第2のナンスを前記コンポーネントから受信することと、
    該キーボードと前記コンポーネントの両方に知られているキーと定数値とを使用するトリプルDESおよび暗号ブロック連鎖を前記第1のナンスと前記第2のナンスとの組み合わせに適用することによって、第1の初期値、および該第1の初期値とは異なる第2の初期値を生成することと、
    複数の入力されたキー入力を受信すること
    前記複数の入力されたキー入力のそれぞれを、キーボードと前記コンポーネントの両方に知られている前記キーと前記第1の初期値を使用するトリプルDESおよび暗号ブロック連鎖を使用して暗号化することであって、前記複数の入力されたキー入力の各キー入力がそれぞれ、前記トリプルDESおよび暗号ブロック連鎖の別個のブロックを使用して暗号化される、該暗号化することと
    前記複数の暗号化されたキー入力を前記コンポーネントに伝送することと
    を備えることを特徴とするコンピュータ可読な記憶媒体。
  18. 前記トリプルDESおよび暗号ブロック連鎖は、所定のサイズを有するブロック単位でデータを暗号化し、前記キーボードは、前記所定のサイズのブロック単位でデータを通信することを特徴とする請求項17に記載のコンピュータ可読な記憶媒体。
  19. 前記方法は、前記キーボードが、
    該キーボードと前記コンポーネントの両方に知られている前記キーと前記第2の初期値を使用するトリプルDESおよび暗号ブロック連鎖を使用して、前記複数の暗号化されたキー入力に対応する複数のメッセージ認証コードを生成すること
    前記複数のメッセージ認証コードを前記コンポーネントに伝送すること
    をさらに備えることを特徴とする請求項17に記載のコンピュータ可読な記憶媒体。
  20. キーボードと通信する方法であって、
    コンポーネントが、第1のナンスを前記キーボードから受信することと、
    前記コンポーネントが、第2のナンスを前記キーボードに送信することと、
    前記キーボードと前記コンポーネントの両方に知られているキーと定数値とを使用するトリプルDESおよび暗号ブロック連鎖を前記第1のナンスと前記第2のナンスとの組み合わせに適用することによって、第1の初期値、および該第1の初期値とは異なる第2の初期値を生成することと、
    前記コンポーネントが前記キーボードから、前記コンポーネントと前記キーボードの両方に知られている前記キーと前記第1の初期値とを使用するトリプルDESおよび暗号ブロック連鎖を使用して前記キーボードによって暗号化された、複数のデータを受信することであって、前記複数のデータ内の各データはそれぞれ、前記キーボードから受信した別個の各キー入力を含み、前記複数のデータ内の各データはそれぞれ、前記トリプルDESおよび暗号ブロック連鎖の別個のブロックを使用して暗号化される、該受信することと、
    前記コンポーネントが、前記コンポーネントと前記キーボードの両方に知られている前記キーと前記第2の初期値とを使用するトリプルDESおよび暗号ブロック連鎖を使用して前記キーボードによって生成され、前記複数のデータに対応している、複数のメッセージ認証コードを受信することと、
    前記コンポーネントが、前記キーと前記第1の初期値とに基づいて、前記複数のデータを暗号化解除することと
    前記コンポーネントが、前記複数のメッセージ認証コードを使用することによって前記複数のデータを検証することと
    を備えたことを特徴とする方法。
JP2004132078A 2003-05-02 2004-04-27 キーボードまたは関連デバイスとの機密保護機能のある通信 Expired - Fee Related JP4459703B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US10/428,675 US7243237B2 (en) 2003-05-02 2003-05-02 Secure communication with a keyboard or related device

Publications (3)

Publication Number Publication Date
JP2004355615A JP2004355615A (ja) 2004-12-16
JP2004355615A5 JP2004355615A5 (ja) 2007-05-24
JP4459703B2 true JP4459703B2 (ja) 2010-04-28

Family

ID=32990487

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004132078A Expired - Fee Related JP4459703B2 (ja) 2003-05-02 2004-04-27 キーボードまたは関連デバイスとの機密保護機能のある通信

Country Status (18)

Country Link
US (1) US7243237B2 (ja)
EP (1) EP1473615B1 (ja)
JP (1) JP4459703B2 (ja)
KR (1) KR100996737B1 (ja)
CN (1) CN1599311B (ja)
AT (1) ATE504885T1 (ja)
AU (1) AU2004201802B2 (ja)
BR (1) BRPI0401684B1 (ja)
CA (1) CA2465270C (ja)
DE (1) DE602004032085D1 (ja)
ES (1) ES2361074T3 (ja)
HK (1) HK1069463A1 (ja)
MX (1) MXPA04004144A (ja)
MY (1) MY137940A (ja)
PL (1) PL1473615T3 (ja)
RU (1) RU2371756C2 (ja)
TW (1) TWI319536B (ja)
ZA (1) ZA200403290B (ja)

Families Citing this family (42)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005140823A (ja) 2003-11-04 2005-06-02 Sony Corp 情報処理装置、制御方法、プログラム、並びに記録媒体
US7581097B2 (en) * 2003-12-23 2009-08-25 Lenovo Pte Ltd Apparatus, system, and method for secure communications from a human interface device
KR100710032B1 (ko) * 2005-02-23 2007-04-25 제이알소프트 주식회사 윈도우즈 운영체제에서 보안 입력 필터 드라이버와 인터넷 익스플로러 내부의 키보드 보안 입력 비에이치오를 통한 인터넷 익스플로러 사용자의 키보드 입력 정보 해킹 방지 방법 및 시스템
DE102005014194B4 (de) * 2005-03-29 2006-12-14 Axel Ahnert Lesegerät mit integrierter Kryptographieeinheit
SG128507A1 (en) * 2005-06-25 2007-01-30 Krypt Technologies Encryption system for confidential data transmission
WO2007006072A1 (en) * 2005-07-14 2007-01-18 Teewoon Tan System and method for controllably concealing data from spying applications
KR100734145B1 (ko) * 2005-10-12 2007-07-03 주식회사 안철수연구소 키보드 데이터 인증을 이용한 키 입력 도용 방지 방법
JP2009517732A (ja) * 2005-11-24 2009-04-30 ソフト−キャンプ カンパニー リミティッド Usbキーボードによる入力データの保安方法及び保安システム
US7835521B1 (en) * 2005-12-02 2010-11-16 Google Inc. Secure keyboard
CA2571450A1 (en) * 2005-12-21 2007-06-21 Nervo Security Encrypted keyboard
US8566608B2 (en) 2006-02-02 2013-10-22 Strikeforce Technologies, Inc. Methods and apparatus for securing keystrokes from being intercepted between the keyboard and a browser
US7428306B2 (en) * 2006-04-18 2008-09-23 International Business Machines Corporation Encryption apparatus and method for providing an encrypted file system
KR100861104B1 (ko) * 2006-10-16 2008-09-30 킹스정보통신(주) 유에스비 키보드의 보안장치 및 그 방법
KR100846123B1 (ko) * 2006-10-24 2008-07-15 주식회사 하우리 키보드 보안 방법 및 상기 방법을 이용한 키보드 보안드라이버를 기록한 기록 매체
KR100838488B1 (ko) * 2007-01-24 2008-06-16 현대중공업 주식회사 사용자 컴퓨터에 키스트로크 해킹 보안 프로그램 설치가필요 없는 변조된 일회성 인증 데이터 생성 방식을 이용한정보 보안 방법 및 장치
DE102007004631A1 (de) * 2007-01-30 2008-07-31 Cherry Gmbh Verfahren, Anordnung, System und Softwaremittel zur sicheren Datenübertragung
US8615662B2 (en) * 2007-01-31 2013-12-24 Microsoft Corporation Password authentication via a one-time keyboard map
US20080263672A1 (en) 2007-04-18 2008-10-23 Hewlett-Packard Development Company L.P. Protecting sensitive data intended for a remote application
KR100909891B1 (ko) * 2007-10-02 2009-07-31 소프트캠프(주) 커널영역의 키보드 보안을 위한 입력정보 암호화 처리방법
TWI395112B (zh) * 2007-11-30 2013-05-01 Chi Pei Wang 防止鍵盤按鍵被側錄的配接器
CN101925909A (zh) * 2008-01-22 2010-12-22 惠普开发有限公司 在键盘与应用程序之间使用的共享密钥
US8214888B2 (en) * 2008-01-30 2012-07-03 Vasco Data Security, Inc. Two-factor USB authentication token
US9596250B2 (en) * 2009-04-22 2017-03-14 Trusted Knight Corporation System and method for protecting against point of sale malware using memory scraping
JP2010039913A (ja) * 2008-08-07 2010-02-18 Sony Corp 通信装置、通信方法、及びプログラム
DE102008042180B4 (de) * 2008-09-17 2010-09-23 Zf Friedrichshafen Ag Verfahren und System zur sicheren Übertragung von Daten
US20110208974A1 (en) * 2010-02-25 2011-08-25 Alcatel-Lucent Usa Inc. Countermeasure Against Keystroke Logger Devices
US8566934B2 (en) 2011-01-21 2013-10-22 Gigavation, Inc. Apparatus and method for enhancing security of data on a host computing device and a peripheral device
WO2012123859A1 (en) * 2011-03-16 2012-09-20 Garay Peter A Transaction security method and device
US8954747B2 (en) * 2011-07-01 2015-02-10 Intel Corporation Protecting keystrokes received from a keyboard in a platform containing embedded controllers
GB2506803B (en) 2011-08-10 2020-07-01 Srivastava Gita Apparatus and method for enhancing security of data on a host computing device and a peripheral device
US20150113286A1 (en) * 2012-03-21 2015-04-23 Irdeto Canada Corporation Method and system for chain transformation
GB201212878D0 (en) 2012-07-20 2012-09-05 Pike Justin Authentication method and system
US8868927B1 (en) 2012-08-14 2014-10-21 Google Inc. Method and apparatus for secure data input and output
CN103036681B (zh) * 2012-12-13 2015-07-29 中国工商银行股份有限公司 一种密码安全键盘装置及系统
US20140281549A1 (en) * 2013-03-15 2014-09-18 Strikeforce Technologies, Inc. Methods and apparatus for securing user input in a mobile device
US20150100795A1 (en) * 2013-10-07 2015-04-09 Microsemi Corporation Secure Storage Devices, Authentication Devices, and Methods Thereof
RU2663318C2 (ru) * 2014-03-13 2018-08-03 Акооо (Бэйцзин) Лимитед Клавиатурное устройство, содержащее операционную систему, и компьютерный узел
GB201520760D0 (en) * 2015-05-27 2016-01-06 Mypinpad Ltd And Licentia Group Ltd Encoding methods and systems
US9805200B2 (en) * 2016-02-01 2017-10-31 Quanta Computer, Inc. System and method for firmware verification
US9698777B1 (en) * 2016-05-23 2017-07-04 Nuvoton Technology Corporation Secured keyboard readout using capacitance matrix
CN110060161B (zh) * 2019-03-28 2021-05-28 众安信息技术服务有限公司 用于区块链交易防重的客户端服务实现方法及服务组件
WO2023069060A1 (en) * 2021-10-18 2023-04-27 Hewlett-Packard Development Company, L.P. Input encryption

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4386266A (en) 1980-02-11 1983-05-31 International Business Machines Corporation Method for operating a transaction execution system having improved verification of personal identification
US5870723A (en) * 1994-11-28 1999-02-09 Pare, Jr.; David Ferrin Tokenless biometric transaction authorization method and system
US5892900A (en) 1996-08-30 1999-04-06 Intertrust Technologies Corp. Systems and methods for secure transaction management and electronic rights protection
US5748888A (en) * 1996-05-29 1998-05-05 Compaq Computer Corporation Method and apparatus for providing secure and private keyboard communications in computer systems
WO1998018251A2 (en) * 1996-10-23 1998-04-30 Philips Electronics N.V. Payment scheme for a mobile communication service
JPH1139082A (ja) * 1997-07-15 1999-02-12 Fujitsu Ltd 機密保持機能を有するキーボード装置及びその方法
US6134661A (en) * 1998-02-11 2000-10-17 Topp; William C. Computer network security device and method
CN1298143A (zh) * 1999-11-30 2001-06-06 北京汇冠科技有限公司 密码键盘及其数据烧录装置和密码保密方法
CN100423041C (zh) * 2000-01-21 2008-10-01 索尼公司 数据处理设备和数据处理方法
US20020196935A1 (en) * 2001-02-25 2002-12-26 Storymail, Inc. Common security protocol structure and mechanism and system and method for using
US6981153B1 (en) * 2000-11-28 2005-12-27 Xilinx, Inc. Programmable logic device with method of preventing readback
US7224801B2 (en) * 2000-12-27 2007-05-29 Logitech Europe S.A. Wireless secure device
US7302571B2 (en) * 2001-04-12 2007-11-27 The Regents Of The University Of Michigan Method and system to maintain portable computer data secure and authentication token for use therein
US7110986B1 (en) * 2001-04-23 2006-09-19 Diebold, Incorporated Automated banking machine system and method
WO2002089441A1 (en) * 2001-05-01 2002-11-07 Meta4Hand Inc. Wireless network computing
JP2003087243A (ja) * 2001-06-28 2003-03-20 Hitachi Ltd データ検証方法、データ検証装置およびその処理プログラム製品
EP1286242A1 (en) * 2001-08-22 2003-02-26 Sonera SmartTrust, Ltd. System and method for protected data input of security data
US20030159053A1 (en) * 2002-02-19 2003-08-21 Charles Fauble Secure reconfigurable input device with transaction card reader
US6912605B1 (en) * 2002-03-29 2005-06-28 Cypress Semiconductor Corp. Method and/or apparatus for implementing security in keyboard-computer communication
JP2003099332A (ja) * 2002-06-27 2003-04-04 Sony Corp データ処理システム、データ記録再生器、記録デバイス、および方法、並びにプログラム提供媒体
US7212252B2 (en) * 2002-11-27 2007-05-01 Sedna Patent Services, Llc Method and system for enabling detection of signals in the presence of noise

Also Published As

Publication number Publication date
HK1069463A1 (en) 2005-05-20
CN1599311A (zh) 2005-03-23
CN1599311B (zh) 2011-08-24
JP2004355615A (ja) 2004-12-16
US20040230805A1 (en) 2004-11-18
EP1473615A2 (en) 2004-11-03
RU2371756C2 (ru) 2009-10-27
AU2004201802B2 (en) 2010-01-21
RU2004113566A (ru) 2005-10-27
ZA200403290B (en) 2005-11-08
DE602004032085D1 (de) 2011-05-19
BRPI0401684B1 (pt) 2018-04-17
ATE504885T1 (de) 2011-04-15
CA2465270C (en) 2011-06-14
KR20040094379A (ko) 2004-11-09
KR100996737B1 (ko) 2010-11-25
TW200508946A (en) 2005-03-01
MY137940A (en) 2009-04-30
EP1473615B1 (en) 2011-04-06
US7243237B2 (en) 2007-07-10
BRPI0401684A (pt) 2005-01-18
CA2465270A1 (en) 2004-11-02
EP1473615A3 (en) 2006-11-29
TWI319536B (en) 2010-01-11
ES2361074T3 (es) 2011-06-13
MXPA04004144A (es) 2005-06-08
PL1473615T3 (pl) 2011-09-30
AU2004201802A1 (en) 2004-11-18

Similar Documents

Publication Publication Date Title
JP4459703B2 (ja) キーボードまたは関連デバイスとの機密保護機能のある通信
US20190089527A1 (en) System and method of enforcing a computer policy
US11271730B2 (en) Systems and methods for deployment, management and use of dynamic cipher key systems
KR101130415B1 (ko) 비밀 데이터의 노출 없이 통신 네트워크를 통해 패스워드 보호된 비밀 데이터를 복구하는 방법 및 시스템
JP3999655B2 (ja) レベル化された機密保護があるアクセス制御のための方法及び装置
KR100334720B1 (ko) 보안기능을 갖는 어댑터 및 이를 이용한 컴퓨터 보안시스템
US20070028090A1 (en) Method and system for providing strong security in insecure networks
JP2016036166A (ja) 証明書不要公開鍵基盤に基づく安全なクライアント・サーバ通信プロトコルを設計するシステムと方法
GB2607846A (en) Dongle for ciphering data
KR20030085512A (ko) 통신 패스워드를 원격 변경시키는 방법
US11677546B2 (en) Methods and systems of securely transferring data
JP7568206B2 (ja) エアギャッピングハードウェアプロトコルを使用したセキュアなデータ転送のためのシステムおよび方法
CN114679270B (zh) 一种基于隐私计算的数据跨域加解密方法
CN114244508A (zh) 数据加密方法、装置、设备及存储介质
GB2395304A (en) A digital locking system for physical and digital items using a location based indication for unlocking
JP2002247021A (ja) アクセス制限付コンテンツ表示方法およびその装置
Gohel Introduction to Network & Cybersecurity
Rahmani Cryptographic algorithms and protocols
JP6830635B1 (ja) データ管理方法
WO2006114907A1 (ja) データ暗号化システム及び鍵生成サーバ
Sullivan The saltunnel protocol
Abikoye et al. Symmetric and Asymmetric Based Encryption Model for Mobile Commerce
JP2000244479A (ja) 暗号化方法および装置、ならびに、復号化方法および装置

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070403

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070403

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090731

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091102

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20100205

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100210

R150 Certificate of patent or registration of utility model

Ref document number: 4459703

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130219

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140219

Year of fee payment: 4

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees