JP2017534963A - 特権モードに基づくセキュアな入力機構のための方法 - Google Patents

特権モードに基づくセキュアな入力機構のための方法 Download PDF

Info

Publication number
JP2017534963A
JP2017534963A JP2017515761A JP2017515761A JP2017534963A JP 2017534963 A JP2017534963 A JP 2017534963A JP 2017515761 A JP2017515761 A JP 2017515761A JP 2017515761 A JP2017515761 A JP 2017515761A JP 2017534963 A JP2017534963 A JP 2017534963A
Authority
JP
Japan
Prior art keywords
data
input
host processor
mode
security module
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.)
Granted
Application number
JP2017515761A
Other languages
English (en)
Other versions
JP6611797B2 (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.)
Advanced Micro Devices Inc
Original Assignee
Advanced Micro Devices Inc
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 Advanced Micro Devices Inc filed Critical Advanced Micro Devices Inc
Publication of JP2017534963A publication Critical patent/JP2017534963A/ja
Application granted granted Critical
Publication of JP6611797B2 publication Critical patent/JP6611797B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • 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/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • G06F21/74Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information operating in dual or compartmented mode, i.e. at least one secure mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/606Protecting data by securing the transmission between two devices or processes
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

コンピュータシステムに接続された入力装置からデータをセキュアに受信するシステム及び方法を開示する。システムは、入力装置からデータを受信するように構成されたインタフェースと、コプロセッサと、ホストコンピュータと、を備え、ホストコンピュータは、入力ハンドラと、ホストプロセッサと、を備える。ホストプロセッサは、通常モード及び特権モードでコードを実行するように構成されている。ホストプロセッサは、ホストコンピュータがセキュア入力モードにある間にインタフェースからデータが取得可能になると、通常モードからセキュアモードに切り替わる。入力ハンドラは、インタフェースからデータを受信し、セキュアモードで動作している間にデータを受信したことに応じて、受信したデータをコプロセッサに送信する。【選択図】図2

Description

本発明は、コンピュータシステムの分野に関し、より具体的には、キーボードによるセキュアな入力の実現に関する。
パーソナルコンピュータ(PC)、ラップトップコンピュータ及びモバイルデバイス(例えば、スマートフォン及びタブレット)等のコンピュータシステムは、様々な日常業務に広く用いられている。多くの業務では、ユーザの身元を確認するために、ユーザが、パスワード又は他の形態のセキュアなコードワードを入力して業務を行うことに頼っている。「アイデンティティ泥棒(Identity thieves)」(すなわち、多くの場合、悪意を持ってユーザに成りすまそうとする他人)は、ユーザのコンピュータにソフトウェアプログラムをインストールすることによって、当該ユーザのパスワードを取得しようとする可能性がある。このソフトウェアプログラムは、ユーザのキーボードからのキーストロークを記録し、情報をインターネット又は他の通信チャネルを介してアイデンティティ泥棒に送信することができる。ユーザ入力を記録するこれらのソフトウェアプログラムは、「キーロガー」と呼ばれ、悪意のあるソフトウェア(本明細書では「マルウェア」とも呼ばれる)の一形態である。アイデンティティ泥棒がユーザのコンピュータにキーロガーを配置する1つの方法は、ユーザがインストール可能なソフトウェアアプリケーションであって、他の点では無害に見えるソフトウェアアプリケーションにマルウェアを隠すことである。
キーロガーがコンピュータにインストールされると、全てのキーストロークが捕捉され、アイデンティティ泥棒に送信される。コンピュータにインストールされているアンチウイルスソフトウェアは、キーロガーを検出して削除することができる。しかしながら、キーロガーを検出するためには、アンチウイルスソフトウェアが、キーロガーを認識できなければならない。したがって、アンチウイルスプログラムは、ある程度の期間使用されている既知のキーロガーを検出することに優れている。アイデンティティ泥棒が公開していないキーロガーは、ユーザがキーロガーを検出して、アンチウイルスプログラマーが、その検出情報をアンチウイルスプログラムに追加するまでの間、アンチウイルスソフトウェアの影響を受けない可能性がある。キーロガーが検出されていないこの期間中に、知らない間にインストールされたキーロガーを使用したユーザは、自身の情報、特に、パスワードが盗まれ易くなり、自身の機密情報を危険にさらす可能性がある。
このようなキーロギングの試みを阻止するために、様々な技術が開発されている。かかる方法の1つは、セキュアキーボードを使用することである。セキュアキーボードは、通常使用されるデフォルトのキーボードに替わるハードウェアである。セキュアキーボードは、キーボードからコンピュータに送信されるデータを暗号化し、キーロガーがデータを読み取ることができるポイントをデータが通過した後にのみデータを復号化することができる。かかるシステムでは、ログデータを受信するアイデンティティ泥棒にとって役に立たない支離滅裂な言葉のように見えるものをキーロガーに受信させることができる。しかしながら、セキュアキーボードは高価であり、所定のユーザにとって望ましい機能では利用できない場合がある。
キーロギングソフトウェアが、アンセキュアなキーボード(アンセキュアキーボード)から送信されたデータにアクセスするのを防止する方法が望まれている。本明細書では、データを、キーボードからコンピュータシステムのホストプロセッサにセキュアに転送するためのシステム及び方法を提示する。
コンピュータシステムの様々な実施形態が開示される。概して、システムが、入力装置からデータを受信し、データを受信したときに信号をアサートするように構成されたインタフェースを備える、システム及び方法が考えられる。また、システムは、コプロセッサと、ホストコンピュータと、を備え、ホストコンピュータは、ホストプロセッサと、入力ハンドラと、を備える。入力ハンドラは、ホストプロセッサが通常動作モードで動作している間に、インタフェースからの第1信号に応じて当該インタフェースから第1データを受信し、受信した第1データを1つ以上のメモリ位置に記憶するように構成されてもよい。ホストコンピュータは、ユーザ要求に応じて、セキュアな入力モードを起動してもよい。ホストプロセッサは、インタフェースからの第2信号に応じて、通常動作モードから特権動作モードに移行してもよい。次に、入力ハンドラは、ホストプロセッサが特権動作モードに移行したことに応じて、インタフェースから第2データを受信してもよい。入力ハンドラは、受信した第2データに対応するコードワードを生成し、受信した第2データと、コードワードと、をコプロセッサに送信してもよい。コプロセッサは、受信した第2データがコードワードに対応することを検証してもよい。
一実施形態では、コプロセッサは、セッションキーワードを生成し、当該セッションキーワードを入力ハンドラと共有するように構成されてもよい。他の実施形態では、ホストプロセッサは、割り込みのアサートに応じて特権動作モードに移行するように構成されてもよく、割り込みのアサートは、インタフェースからの第2信号に対する応答であってもよい。さらなる実施形態では、この割り込みは、ホストプロセッサの他の割り込みよりも高い優先順位を有してもよい。
所定の実施形態では、入力ハンドラは、入力装置から受信したデータとコードワードとをコプロセッサに送信するために、受信したデータを、セッションキーワードを用いて暗号化するように構成されてもよい。他の実施形態では、入力ハンドラは、受信した第2データがコードワードに対応することをコプロセッサが検証したという判別に応じて、検証されたデータを1つ以上のメモリ位置に記憶するように構成されてよい。また、入力ハンドラは、受信した第2データを、予め選択した値に置き換えてもよい。さらなる実施形態では、ホストプロセッサは、検証されたデータを入力ハンドラが記憶したことに応じて、通常動作モードに戻るように構成されてもよい。
コンピュータシステムの様々な実施形態を示す図である。 コンピュータシステムの一実施形態を示すブロック図である。 ユニバーサルシリアルバス(USB)入力装置とのセキュア通信をサポートするコンピュータシステムの実施形態を示すブロック図である。 Personal System/2(PS/2)入力装置とのセキュア通信をサポートするコンピュータシステムの実施形態を示すブロック図である。 Bluetooth(登録商標)入力装置とのセキュア通信をサポートするコンピュータシステムの実施形態を示すブロック図である。 入力装置からのデータを保護する方法の実施形態を示すフロー図である。 入力装置とのセキュア通信をサポートするコンピュータシステムの実施形態を示すブロック図である。 入力装置からのデータを保護する方法の他の実施形態を示すフロー図である。 セキュア認証をサポートするコンピュータシステムの実施形態を示すブロック図である。 入力装置を用いて許可を生成する方法の実施形態を示すフロー図である。
本開示は、様々な変更及び代替の形態が可能であるが、その特定の実施形態が一例として図面に示され、本明細書にて詳細に説明される。しかしながら、図面及びその詳細な説明は、本開示を、例示した特定の形態に限定することを意図しておらず、むしろ、添付の請求項に規定される本発明の趣旨及び範囲に含まれる全ての変形物、均等物及び代替物を包含することを意図しているものと理解されたい。本明細書で使用する見出し(heading)は、組織的な目的のためであり、開示の範囲を制限するために使用しているのではない。本願を通して、「may」という言葉は、強制的な意味(すなわち、「しなければならない」という意味)ではなく、許可的な意味(すなわち、「可能性がある」という意味)で使用されている。同様に、「include」、「including」、「includes」という言葉は、含むことを意味しており、制限することを意味していない。
様々なユニット、回路又は他のコンポーネントは、1つ以上のタスクを実行する「ように構成される」と説明することができる。かかる文脈において、「ように構成される」とは、動作中に1つ以上のタスクを実行する「回路を有する」ことを一般的に意味する構造を幅広く記載したものである。したがって、ユニット/回路/コンポーネントは、ユニット/回路/コンポーネントが現在オンでなくても、タスクを実行するように構成することができる。一般に、「ように構成される」に対応する構造を形成する回路は、ハードウェア回路を含むことができる。同様に、説明の便宜上、様々なユニット/回路/コンポーネントは、1つ以上のタスクを実行するものとして説明することができる。かかる説明は、「ように構成される」というフレーズを含むものとして解釈されるべきである。1つ以上のタスクを実行するように構成されたユニット/回路/コンポーネントと記載することは、ユニット/回路/コンポーネントに関して、米国特許法第112条第6パラグラフの解釈を行使しないことを明示的に意図している。より一般的には、任意の要素の記載は、「する手段」又は「するステップ」という言葉を具体的に記載していない限り、当該要素に関して、米国特許法第112条第6パラグラフの解釈を行使しないことを明示的に意図している。
コンピュータシステムは、悪意のあるキーロギングソフトウェア(通常、「キーロガー」と呼ばれる)に弱い場合がある。キーロギングソフトウェアは、キーボード又は他の形態のヒューマンインタフェース装置(HID)で入力された機密情報を検出し、この情報を不正使用しようとする個人(すなわち、「ハッカー」又は「アイデンティティ泥棒」)に当該情報を転送しようとすることができる。キーロガーは、知らないうちにコンピュータシステムにインストールされている場合があり、コンピュータシステムにインストールされたアンチウイルスソフトウェアによって検出されない場合がある。HIDへのデータ入力を、システムにインストールされたキーロガーから保護することの可能なシステム及び方法が、本明細書で提示される。
コンピュータシステムの幾つかの実施形態を図1に示す。システム101は、デスクトップコンピュータを表し、システム102は、ラップトップコンピュータを表し、システム103は、無線キーボードを有するタブレット又はスマートフォンを表している。これらのコンピュータシステムは、何れもキーロガーの影響を受け易い可能性がある。
システム101は、キーボード、マウス、マイクロフォン、カメラ等の1つ以上のHIDを備えてもよい。かかる装置は何れも、ユーザからの入力を受信可能であってもよく、そのデータを使用して機密処理の実行又は開始可能であってもよい。機密処理には、ユーザが公開したくない個人データ又は企業データにアクセスするのに使用されるパスワードを入力することや、ジェスチャを実行すること等が含まれてもよい。
システム102及びシステム103は、システム101と同様のHIDを備えてもよく、これにより、これらのHIDのうち1つ以上を介したキーロガーによる攻撃に対して影響を受け易い。スマートテレビやビデオゲーム機等の図示されていない他の装置は、キーロガー又は類似のタイプのマルウェアの攻撃を受け易い。HIDを介して入力された機密データを処理し、第三者が閲覧可能な通信チャネルを有するソフトウェアをインストール可能なコンピュータシステムは、アイデンティティ泥棒のターゲットとなり得る。
図1に示すコンピュータシステムは、単なる一例であることに留意されたい。HIDを有する他のタイプのコンピュータシステムも可能であり、考慮される。
図2を参照すると、コンピュータシステムのブロック図が示されている。システム200は、ホストコンピュータ220を備え、ホストコンピュータ220は、メモリ202に接続されたホストプロセッサ201を含む。ホストコンピュータ220は、ユニバーサルシリアルバス(USB)204を介して入力装置203に接続される。ホストプロセッサ201は、入力ハンドラ205及びオペレーティングシステム(OS)206からのコードを実行してもよい。ホストプロセッサ201は、システム200のユーザが気付いていないキーロガー207からのコードを実行することもできる。
ホストコンピュータ220は、ホストプロセッサ201及びメモリ202から構成されたシステム200内のコンピューティングブロックであってよい。ある実施形態では、ホストコンピュータは、システム200内のマザーボードとして実装されてもよい。例えば、ホストプロセッサ201及びメモリ202の両方の機能が1つのダイに含まれるシステムオンチップ(SoC)に対応するホストコンピュータ220、又は、ホストプロセッサ201及びメモリ202が単一のパッケージに含まれる別個のダイとして実装されるシステムインパッケージ(SiP)に対応するホストコンピュータ220等のように、他の実施形態も考えられる。ホストコンピュータは、入力ハンドラ205、オペレーティングシステム206及びキーロガー207等のソフトウェアアプリケーション用のコード命令を記憶、実行可能であってもよい。
ホストプロセッサ201は、いくつかの実施形態では、アプリケーションソフトウェアに関連する命令の実行に応じて演算を行う汎用プロセッサとして実装されてもよい。他の実施形態では、ホストプロセッサ201は、マイクロプロセッサ又はマイクロコントローラ等の中央処理装置(CPU)であってもよく、複数のCPUコアを含んでもよい。様々な実施形態では、ホストプロセッサ201は、例えば、x86、ARM(商標)、MIPS又はPowerPC(商標)ISA等の任意の適切な命令セットアーキテクチャ(ISA)を実装してもよい。
ホストプロセッサ201は、通常モード及びセキュアモード(本明細書では、「特権モード」とも呼ばれる)等の複数の動作モードを含むことができる。OS206のコード命令の一部又は全ては通常動作モードでのみ実行され、入力ハンドラ205のコード命令は通常モード及びセキュアモードの両方で実行されてもよい。OS206等のオペレーティングシステムは、他のアプリケーションの動作を管理することができるので、OS206を介して起動される他のアプリケーションは、通常モードでのみ動作するようにされてもよい。様々な実施形態では、セキュア動作モードは、パワーアップブートシーケンス又は特定のタイプのセキュア割り込みを介して移行されてもよい。セキュア割り込みは、ホストプロセッサ201内で最も優先順位の高い割り込みであってもよい。最も優先順位の高い割り込みとして、セキュアモードで実行するコードは、OS206又はキーロガー207のコード等のようにホストコンピュータ220で実行される他のアプリケーションによって割り込まれないことが可能である。セキュアモードは、いくつかの実施形態では、x86アーキテクチャで使用されるシステム管理モード(SMM)、又は、ARMアーキテクチャで使用されるTrustZoneセキュアモードに対応してもよい。OS206の動作を通常モードに制限することによって、OS206がアクティブになるまでキーロガー207が開始しないので、キーロガー207のコード命令がセキュアモードで実行されるのを防止することができる。セキュアモードは、例えば、制限されたメモリアクセス範囲やセキュアモードでのみアクセス可能な周辺機器等のように、追加のハードウェア制限を有してもよい。
メモリ202は、1つ以上のタイプのメモリを含んでもよい。例えば、様々な実施形態において、メモリ202は、ダイナミックランダムアクセスメモリ(DRAM)、スタティックランダムアクセスメモリ(SRAM)、読み出し専用メモリ(ROM)、NANDフラッシュメモリ、NORフラッシュメモリ、強誘電体ランダムアクセスメモリ(FeRAM)又は任意の他の適切なデータ記憶媒体を含むことができる。メモリ202は、ホストプロセッサ201がコード命令を実行することの可能な1つ以上のキャッシュメモリを含んでもよい。
入力装置203は、キーボード、又は、ユーザがデータを入力する他のタイプのHIDであってもよい。適切なHIDの他の例は、マウス、トラックパッド(「タッチパッド」とも呼ばれる)、マイクロフォン、ジョイスティック、ウェブカメラ又はトラックボールを含んでもよい。いくつかの実施形態では、入力装置は、2つ以上のHIDの組み合わせであってもよい。入力装置203は、USBポートに接続されたコードを介してUSB204に取り付けられた別個の物理デバイスであってもよいし、USBポートを介してUSB204に取り付けられた受信機を有する別個の無線デバイスであってもよい。他の実施形態では、入力装置203は、内部USBチャネルを介してUSB204に取り付けられた同じ物理デバイス(例えば、ラップトップのキーボード)の一部であってもよい。入力装置203は、例えば、キーボードのキーの押下、又は、マウスの動き等のユーザからの入力に応じて、サポートされたUSBプロトコルを用いてデジタル値を出力してよい。これらの例において、キーを押下することによって、例えばアスキー(ASCII)値等の対応する値が発生して、USB204に送信されてもよい。マウスの場合には、横方向及び上下方向の変化に対応する値が装置によって計算され、様々なボタンの押下に対応する値と共にUSB204に送信されてもよい。
USB204は、入力装置203からホストプロセッサ201へのインタフェースであってもよい。USB204は、USB1.1、USB2.0又はUSB3.0等の任意の適切なUSBプロトコル規格を実装してもよい。USB204は、専用のUSBホストコントローラであってもよい。他の実施形態では、一部のモバイルデバイスによって使用されるUSB On‐The‐Go(OTG)プロトコルによって許可されるようなUSB装置又はホストとして構成可能であってもよい。USB204は、ホストプロセッサ201と同じチップ(本明細書では「ダイ」とも呼ばれる)上の機能ブロックとして組み込まれてもよいし、または、ホストプロセッサ201と同じ回路基板上の別個のパッケージの別個のダイであってもよい。他の実施形態では、USB204は、ホストプロセッサ201とは別の回路基板上に存在し、ホストプロセッサ201に電気的に接続されてもよい。
USB204は、実装されたUSBプロトコルを用いて、入力アクティビティに関して入力装置203をモニタしてもよい。入力アクティビティに応じて、USB204は、入力装置203が送信した値を受信して、入力を受信してホストプロセッサ201に転送する準備ができていることをホストプロセッサ201に送信してもよい。ホストプロセッサ201では、USB204からの信号をポーリングして、信号がアサートされているか否かを判別してもよいし、信号状態の変化によってホストプロセッサ201に内部割り込みを引き起こすように、割り込みに接続されてもよい。
入力ハンドラ205のコード又はプログラム命令は、メモリ202に存在してもよい。いくつかの実施形態では、メモリ202が、例えばフラッシュメモリ又はROM等の不揮発性メモリを含む場合に、入力ハンドラ205のコード命令は、メモリ202に常駐してもよい。他の実施形態では、入力ハンドラ205のコード命令は、長期記憶のために別個のメモリに存在し、システムブートプロセス中に、メモリ202にコピーされてもよい。入力ハンドラ205は、デバイスドライバ(すなわち、システム200のハードウェアと直接インタフェースするためのプログラム命令)に対応してもよいし、入力装置203上のアクティビティに関してUSB204をモニタしてもよい。いくつかの実施形態では、モニタリングは、USB204からの1つ以上の信号のポーリングによって行われてもよい。また、他の実施形態では、モニタリングは、USB204からの1つ以上の信号への割り込みを有効にすることを含んでもよい。入力ハンドラ205は、USB204からの入力を検出すると、USB204からデータ値を受信し、これらの値を入力バッファに記憶してもよい。入力バッファは、入力装置203からのユーザ入力を記憶するために確保したメモリ202内の位置に対応してもよい。他の実施形態では、USB204は、ダイレクトメモリアクセスモジュール(図示せず)の使用を介して、データ値をメモリ202の入力バッファに記憶してもよい。次に、入力ハンドラ205は、入力装置203からのデータを受信し、入力バッファからデータにアクセス可能であることを、OS206又はホストプロセッサ201でアクティブな他のアプリケーションに送信してもよい。
OS206は、メモリ202からホストプロセッサ201によって実行されるコード又はプログラム命令を含んでもよい。OS206は、アクティブなアプリケーションとシステム200のハードウェアとの間のインタフェースを提供してもよい。また、OS206は、様々なプログラムを起動(又は「開始」)するために、システム200上のインタフェースをユーザに提供してもよい。いくつかの実施形態では、アクティブなアプリケーションは、ハードウェアドライバ(システム200の特定のハードウェアを動作させるコード命令)へのアクセスを有してもよい。他の実施形態では、アプリケーションは、OS206を介してハードウェアへアクセスするように制限されてもよい。
キーロガー207は、ユーザによって無意識にメモリ202に配置されたコード命令から構成することができる。キーロガー207は、正当な機能を実行するものとして広告されたアプリケーションによってメモリ202内に配置され、ユーザによって故意にインストールされ得る悪意のあるソフトウェアの形態であってもよい。有用なアプリケーションでマルウェアを隠すプログラムは、トロイの木馬としても知られている。アンチウイルスソフトウェアがホストプロセッサ201上でアクティブな場合であっても、アンチウイルスソフトウェアのプロバイダがキーロガー207を事前に検出していなければ、又は、キーロガー207が、キーロギングマルウェアに関連する不審なアクティビティにアンチウイルスソフトウェアが気付く程度に十分長くシステム200内でアクティブになっていなければ、キーロガー207が検出されない場合がある。
キーロガー207は、OS206又は入力ハンドラ205をモニタして、入力がいつ受信されたかを検出し、新たな入力を受信したことを入力ハンドラ205がOS206に送信した場合に、入力バッファを読み出そうとすることができる。キーロガー207は、入力バッファを読み出して、読み出したデータを、一時的又は長期的に記憶するために他の場所に保存することができる。いくつかの実施形態では、キーロガー207は、記憶したデータを、インターネット接続又は他の通信チャネルを介して、定期的に所定の場所に送信することができる。他の実施形態では、キーロガー207は、設定された量のデータが収集されると、読み取りデータを送信することができる。アイデンティティ泥棒の可能性があるデータ受信者は、データを使用して、システム200の使用中に入力された可能性があるユーザ名及びパスワード等の機密情報を判別してもよい。
入力ハンドラ205、OS206及びキーロガー207は、ホストプロセッサ201によって実行されるコード命令の集合(すなわち、プログラム、アプリケーション又はドライバ)から構成されてもよいことに留意されたい。従って、本開示においては、入力ハンドラ205、OS206又はキーロガー207がタスクを実行するものとして記載されている場合、ホストプロセッサ201は、対応するコード命令の実行によって生じるタスクを実行していることが理解される。
図2に示すシステムは、例示目的のための単なる一例である。したがって、本明細書では、概念を示す特徴のみが開示されている。他の実施形態は、例えば、ディスプレイ、オーディオ周辺機器及び通信周辺機器等のコンピュータシステムに関連する他の機能ブロックを含んでもよい。
図3を参照すると、コンピュータシステムの他の実施形態が示されている。システム300は、ホストプロセッサ301及びメモリ302を含むホストコンピュータ320であって、USB304を介して入力装置303に接続されたホストコンピュータ320等のように、図2のシステム200と同様の多くのコンポーネントを備える。システム300は、ホストコンピュータ320に接続されたセキュリティモジュール309を含んでもよい。メモリ302は、入力ハンドラ305、OS306又はキーロガー307からのコードを含んでもよい。メモリ302は、信頼できるアプリケーション308及びセキュリティモジュールドライバ310を含んでもよい。ホストコンピュータ320、ホストプロセッサ301、メモリ302、入力装置303及びUSB304と、OS306及びキーロガー307に対応するコード命令とは、上述した図2のシステム200に関して説明したように動作してもよい。
セキュリティモジュール309は、入力ハンドラ305を介してホストプロセッサ301に送信されるユーザ入力の認証をサポートしてもよい。セキュリティモジュール309は、プロセッサ、メモリ、割り込み、及び、システム300の他の部分と通信するための入力/出力ポートを備えるマイクロコントローラから構成されてもよい。セキュリティモジュール309は、ホストプロセッサ301と同じダイ、ホストプロセッサ301と同じパッケージ内の異なるダイ、又は、ホストプロセッサ301と異なるパッケージに実装可能である等の様々な実施形態が考えられる。セキュリティモジュール309は、ハッシング及び/又は暗号化/復号化機能を含んでもよい。
入力ハンドラ305は、入力ハンドラ205に関して説明した機能に加えて、セキュリティモジュール309と同様のハッシング及び/又は暗号化/解読機能を含んでもよい。いくつかの実施形態では、入力ハンドラ305は、2セットのコード命令(すなわち、入力ハンドラ205に関して説明した機能に対応し得る標準の入力ハンドラと、ハッシング及び/又は暗号化/解読のための追加の機能を含むセキュアな入力ハンドラと)を含んでもよい。ここで、入力ハンドラ305は、組み合わされた機能に関するコード命令の両方のセットを参照する。入力ハンドラ305は、セキュリティモジュール309を用いてデータを認証してもよい。例えば、入力ハンドラ305は、セッションキーワードをセキュリティモジュール309と共有してもよい。セッションキーワードは、入力ハンドラが最初にシステム300にインストールされたときに共有されてもよいし、他の実施形態では、ディフィー・ヘルマン鍵交換等の鍵共有プロトコルを用いて、システム起動時に決定されてもよい。セッションキーが共有された後のある時点で、入力ハンドラ305は、USB304からデータを受信し、受信したデータを入力バッファに記憶してもよい。図2を参照すると、入力ハンドラ205は、この時点で、データを受信したことをOS206に通知してもよい。これに対し、入力ハンドラ305は、セッションキーワードを用いてデータのハッシュを計算し、次いで、データを、データのハッシュと共にセキュリティモジュール309に送信してもよい。セキュリティモジュール309は、データ及びデータのハッシュを受信し、共有セッションキーワードを用いてデータのハッシュを計算し、計算したハッシュ値を、入力ハンドラから受信したハッシュ値と比較してもよい。
本明細書において、データをハッシュすること又はデータハッシングとは、可変長のデータを関数で処理して、ハッシュ値と呼ばれる固定長の結果を生成する手順を指すことに留意されたい。ハッシュ関数は決定論的であるべきである。つまり、同じデータが同じ順序で提示されると、常に同じハッシュ値が生成されるはずである。データの順序又は1つ以上のデータの値の変更によって、異なるハッシュ値が生成されるはずである。ハッシュ関数は、同じデータが異なるキーを用いてハッシュされると異なるハッシュ値が生成されるように、キーワード又は「ハッシュキー」を用いてもよい。ハッシュ値は、入力データの可能な組み合わせよりも少ない一意の値を有し得るので、データ入力の異なる組み合わせによって同じハッシュ値が得られる場合がある。例えば、16ビットのハッシュ値は65536の一意の値を有するが、4バイトのデータは、40億を超える一意の組み合わせを有し得る。したがって、ハッシュ関数を複雑過ぎない又は時間がかかり過ぎないようにしながら、結果が重複する可能性が最小になるハッシュ値の長さが選択されてもよい。
実施例に戻ると、2つのハッシュ値が一致する場合には、データは、入力装置303からのものとして検証され、セキュリティモジュール309は、このデータを、メモリ302内の信頼できるアプリケーション308に転送してもよい。信頼できるアプリケーションは、ユーザによってインストールされたソフトウェアアプリケーションであってもよく、ソフトウェアのインストール時にセキュリティモジュール309に登録された値を含む。登録に用いられる値は、信頼できるソフトウェアプロバイダに対応する一意の値であってもよいし、システム300内の信頼できるソフトウェアアプリケーションを識別するためにユーザが生成したコードワードであってもよい。セキュリティモジュール309は、信頼できるアプリケーションとデータを共有するために、データを、セキュアな入力バッファに記憶してもよく、当該データの位置は、信頼できるアプリケーションとのみ共有されてもよい。入力装置からの検証されたデータが、信頼できるアプリケーション308と共有されると、入力ハンドラは、データを受信したことをOS306に通知することなく、入力装置303からの次のユーザ入力についてUSB304のモニタリングに戻ることができる。データが、信頼できるアプリケーション308に直接渡されたので、この通知を必要としなくてもよい。入力ハンドラ305からOS306への観察される信号がないので、キーロガー307は、入力装置303からデータを受信したという指標を有しないので、データは、キーロガー307によって記録されることなく、信頼できるアプリケーション308に転送される。
メモリ302は、セキュリティモジュールドライバ310用のコード命令を含んでもよい。セキュリティモジュールドライバ310は、信頼できるアプリケーションとデータを共有するためのセキュアな入力バッファと、セキュリティモジュール309の適切な動作に必要な他の命令と、を含んでもよい。他のタスクは、ホストプロセッサ301とセキュリティモジュール309との間のインタフェースを含むセキュリティモジュールドライバによって行われてもよい。
前述した例では、キーロガー307は、入力ハンドラ305からOS306への信号を観察しなくても、入力バッファをモニタする命令を含む場合、又は、入力ハンドラ305から生じるアクティビティをキーロガーが観察することができる場合、依然として、入力バッファからデータを読み出し、データを記憶してアイデンティティ泥棒へ送信することができる。かかるシナリオを回避するために、入力ハンドラ305は、USB304からデータを受信する前にセキュリティモジュール309に通知して、セキュアなデータトランザクションの準備をしてもよい。セキュリティモジュール309は、USB304から入力ハンドラ305にデータが送信されようとしていることを、セキュリティモジュールドライバ310を介してホストプロセッサ301に示してもよい。ホストプロセッサ301は、USB304のアクティビティのモニタリングに使用される割り込みライン上で、セキュアモードオプションを有効にしてもよい。USB304が、ホストプロセッサ301に信号をアサートして、データが送信されようとしていることを示す場合には、ホストプロセッサ301は、通常動作モードからセキュア動作モードに切り替えられてもよい。セキュア動作モードでは、OS306と、OS306から起動されたアプリケーションとは、コードを実行することができない。このセキュアモードでは、入力ハンドラ305を含み得る一部のハードウェアドライバのみが、命令を実行することができる。いくつかの実施形態では、セキュリティモジュールドライバ310は、セキュアモードで実行することができる。OS306内で起動し得るキーロガー307は、セキュアモードが有効にされている場合には命令を実行することができず、これにより、入力バッファを読み出すことができない。ここで、入力ハンドラ305は、USB304からデータを受信し、ハッシュ値を生成し、ハッシュ値及びデータの両方をセキュリティモジュール309に送信して検証し、セキュアな入力バッファに記憶することができる。セキュアな入力バッファにおいて、信頼できるアプリケーション308と共有されてもよい。セキュアな入力バッファにデータが記憶されると、ホストプロセッサは、通常の動作モードに切り替わり、通常動作モードにおいて、信頼できるアプリケーションは、セキュアな入力バッファからデータを取り出してもよい。
入力ハンドラ305、OS306、キーロガー307、信頼できるアプリケーション308及びセキュリティモジュールドライバ310等のソフトウェアプログラム、アプリケーション及びドライバの各々は、ホストプロセッサ301によって実行されるコード命令の集合から構成されてもよいことに再度留意されたい。したがって、コード命令から構成されたこれらのブロックの何れかがタスク又は動作を実行するものとして説明されている場合、本明細書では、ホストプロセッサ301は、上記ブロックに対応するコード命令の実行に応じて、上記タスク又は動作を行ってもよいことが理解される。
図3のシステムは、入力装置からデータをセキュアに受信する方法をサポートするコンピュータシステムの一例に過ぎない。他の実施形態は、例えば、電源、又は、DVD‐ROMドライブ等のリムーバブル記憶装置等のようにコンピュータシステムに関連する他の機能ブロックを含んでもよい。
図4を参照すると、入力装置からデータをセキュアに受信する方法をサポートするコンピュータシステムの他の例が示されている。システム400は、図3のシステム300の特徴と同様の多くの特徴を備える。したがって、図3に関する記載は、別段の記載がない限り、図4の対応するブロックに適用されてもよい。
PS/2 404は、図3のUSB304と同様のタスクを行ってもよい。しかしながら、PS/2 404は、入力装置403に対して異なるプロトコルを提供してもよい。PS/2 404は、異なるハードウェアコネクタと、様々なUSBプロトコルとは異なるデータ送信プロトコルと、を用いるPS/2インタフェースを使用してもよい。よって、入力装置403は、PS/2規格対応のプロトコルを用いて、データをPS/2 404に送信してもよい。USB304とは異なり、PS/2 404は、DMAを介しても、データをメモリ402に書き込むことができない場合がある。このような場合、入力ハンドラ405は、PS/2 404からデータを読み出し、そのデータをメモリ402の入力バッファに記憶してもよい。ハードウェア又はプロトコルの相違にも関わらず、入力ハンドラ405は、それ以外は、入力ハンドラ305に関して前述したように動作してもよく、PS/2対応の入力装置は、同等のUSB対応の入力装置と同じセキュア性を有する。
USB接続とPS/2接続との1つの相違は、PS/2接続が、入力装置のみ(特に、キーボードやマウス、又は、トラックボール等の他のポインティングデバイス)を対象としており、USB接続が、上記の入力装置と、大容量記憶フラッシュドライブ、カメラ、電話、タブレット、おもちゃ等と、を含む、増え続ける範囲の装置をサポートすることである。よって、PS/2 404のアクティビティが入力装置403に制限されるので、PS/2 404は、図3に関連して説明したセキュアな入力手順を実行する、より簡単な機構を提供してもよい。一方、USB304のアクティビティは、入力装置303に限定されず、USB304を介した非入力装置に関するアクティビティを、システム300のセキュリティ要件を認識して管理することが必要となり得る。さらに、PS/2 404は、所定のポートに対して1つの装置、すなわち、ポイントツーポイントプロトコルに限定されてもよい。USB304は、所定のポートに関して複数のタイプの複数の装置に拡張可能であってもよい。
図4のシステムは、入力装置からデータをセキュアに受信する方法をサポートするコンピュータシステムの一例に過ぎない。図4のシステムは、デモンストレーション目的として単純化されている。他の実施形態は、コンピュータシステムに関連する他の機能ブロックを含んでもよい。
次に、入力装置からデータをセキュアに受信する方法をサポートするコンピュータシステムの他の例が図5に示されている。システム500は、図3のシステム300の特徴と同様の多くの特徴を含み、別段の記載のない限り、図3に関する説明が、図5の対応するブロックに適用されてもよい。
Bluetooth(登録商標)(BT)送信機503は、例えば、ワイヤレスキーボード及び/又はマウス等の無線入力装置の一部として含まれてもよい。いくつかの実施形態では、BT送信機は、図2の入力装置203に関して説明した他のタイプの入力装置に備えられてもよい。BT送信機503は、Bluetooth(登録商標)無線規格又はBluetooth(登録商標)低エネルギー(BTLE)規格対応であってもよい。他の実施形態では、BT送信機は、電気電子技術者協会(IEEE)802.11(Wi‐Fi(登録商標))規格の1つ以上に対応してもよいし、独自の無線プロトコルをサポートしてもよい。
BT送信機503は、データを、BT受信機504を介してホストプロセッサ501に送信してもよい。BT受信機504は、BT送信機503と同じ通信規格をサポートしてもよいし、BT送信機503が使用するプロトコルに加えて、追加の無線プロトコルをサポートしてもよい。BT受信機504は、図3のUSB304と同様のタスクを行ってもよい。ハードウェア又はプロトコルの相違に関わらず、入力ハンドラ505は、入力ハンドラ305に関して上述したように動作してもよく、BT受信機504は、BT送信機503に接続された入力装置からのデータをセキュアにすることに関して同等の機能を提供してもよい。よって、BT受信機504は、ホストプロセッサ501に信号をアサートしてもよく、信号は、割り込み信号に結合されて、BT受信機504から入力ハンドラ505にデータが転送されることを示してもよい。データが入力ハンドラ505によって受信されると、そのデータをセキュアにして検証する手順は、図3で説明した手順と同様であってもよい。
図5に示すシステムは、無線入力装置からのデータをセキュアに受信する方法をサポートするコンピュータシステムの単なる一例である。図5のシステムは、デモンストレーションの目的で単純化されている。他の実施形態は、コンピュータシステムに関連する他の機能ブロックを含んでもよい。
図6を参照すると、入力装置からコンピュータシステムのアプリケーションにデータを送信する方法のフローチャートが示されている。図6の方法は、例えば、図3のシステム300等のシステムに適用されてもよい。図3及び図6をまとめて参照する。方法は、ブロック601から開始することができる。
図3の入力装置303等の入力装置は、セキュア入力モードを開始することができる(ブロック602)。様々な他の実施形態では、信頼できるアプリケーション308等のアプリケーションがセキュア入力モードを開始してもよいし、例えばウェブブラウザ等のようにOS306内で実行しているアプリケーションが、リモートサーバからロードしたウェブページからセキュア入力モードに移行する要求を受信してもよい。セキュア入力モードの一部として、セキュリティモジュール309等のセキュリティプロセッサ、又は、入力ハンドラ305等の入力ハンドラが、USB304等のUSB回路からの信号にセキュアモード割り込みを結合するようにホストプロセッサ301に命令してもよい。他の実施形態では、ホストプロセッサ301以外の論理回路が、USB304からの信号をセキュアモード割り込みに結合してもよい。USB304からの信号は、入力装置303からのデータをUSB304が受信する毎にアサートされてもよい。
セキュア入力モードは、システム300が起動されるときに開始されてもよいし、システム300のユーザによって有効、無効にされてもよい。セキュア入力モードがシステム起動時に有効にされる場合には、入力装置303からの全ての入力は、セキュアな方法を用いて送信されてもよい。これは、データをセキュアにして、信頼できる宛先に到達するのを確実にするために余分な処理時間が費やされることから、システム性能を低下させる場合がある。ユーザがセキュア入力モードを有効、無効にするオプションを含むことによって、入力されたデータが機密でないとみなされる場合には、システム性能を向上させることができる。ユーザ名やパスワードをウェブサイトに入力する場合等のように機密データを入力する必要がある場合、ユーザは、セキュア入力モードを開始してもよい。セキュア入力モードは、入力装置から送信された所定の値を使用して、開始されてもよい。例えば、キーボードを用いて、ユーザは、例えば、<Ctrl>+<Alt>+<S>等のような特定のキーストロークをタイプしてもよい。あるいは、マウスを用いると、ユーザが、マウスを用いた素早い左右の動き等のように特定のジェスチャを行いながら、マウス上のあるボタンをクリックすることが必要になる。マイクロフォンを入力として使用すると、ユーザは、「Command、enter、safe、mode」等のような特定の単語列、又は、単語若しくは数の他の組み合わせを発話する必要がある。使用する値は、セキュア入力モードに関連するソフトウェアによって予め決定されてもよいし、ユーザによってプログラム可能であってもよい。
セキュア入力モードが開始されると、セッションキーが、入力ハンドラ305及びセキュリティモジュール309によって使用されるために生成されてもよい(ブロック603)。他の実施形態では、セッションキーは、システム起動時に生成されてもよく、システムの電源が切られる、ユーザがログオフする、システムが一定時間アイドリング状態になる、又は、他の適切なイベントが発生するまで、全てのセキュア入力モードセッションに対して再使用されてもよい。セッションキーは、入力ハンドラ305及びセキュリティモジュール309のためのコード命令がインストールされたときに決定された値に基づいてもよい。他の実施形態では、ディフィー・ヘルマン鍵交換等の鍵交換プロトコルを用いて、セッションキーが生成されてもよい。鍵交換プロトコルにおいて、セッションキーは、様々な方法によって、入力ハンドラ305とセキュリティモジュール309との間で共有されてもよい。入力ハンドラ305及びセキュリティモジュール309の各々は、入力ハンドラ305がインストールされたときに生成された同じ開始値(一般的に「シード値」とも呼ばれる」)を有してもよい。他の実施形態では、セキュリティモジュール309又は入力ハンドラ305は、シード値を生成し、当該シード値を他のブロックに送信してもよい。入力ハンドラ305及びセキュリティモジュール309が同じシード値を共有すると、各ブロックは、秘密鍵を用いてシード値を暗号化してもよい。入力ハンドラ305及びセキュリティモジュール309の各々は、他のブロックに知られていない独自の秘密鍵を有してもよい。次に、入力ハンドラ305及びセキュリティモジュール309は、暗号化された各シード値を他のブロックに送信してもよく、各ブロックは、他のブロックによって暗号化されたシード値を受信して暗号化してもよい。結果として、入力ハンドラ305及びセキュリティモジュール309は、両方のブロックによって暗号化され、セッションキーとして使用し得る共通の暗号化シード値を共有してもよい。セッションキーを共有する様々な他の方法が知られており、開示の実施形態の代わりに用いられてもよい。
USB304は、入力装置303からデータを受信してもよい(ブロック604)。USB304は、データを受信すると、ホストプロセッサ301に信号をアサートして、データを入力ハンドラ305に送信する準備ができていることを示してもよい。アサートされた信号は、セキュアモードオプションを有効にして、ホストプロセッサ301にて割り込みに結合されてもよい。
割り込みは、USB304による信号のアサートに応じて、ホストプロセッサ301で生成されてもよい(ブロック605)。割り込みは、通常動作モードからセキュア動作モードに切り替わるようにホストプロセッサ301をトリガしてもよい。セキュア動作モードは、例えば、x86アーキテクチャを用いたプロセッサのSMMモード、ARMアーキテクチャを用いたプロセッサのTrustZoneセキュアモード、又は、ホストプロセッサ301で利用可能な任意の他の適切な特権モードである。ホストプロセッサをセキュア動作モードに切り替えることによって、OS306等のオペレーティングシステムに関連する命令が、OS306内で開始された任意のアプリケーションに関する命令と共に実行されるのを防止してもよい。入力ハンドラ305と、例えばセキュリティモジュールドライバ310等のセキュリティモジュール309のソフトウェアドライバとは、セキュア動作モードでの命令実行を許可されてもよい。セキュア動作モードに移行すると、データは、USB304から入力ハンドラ305に転送されてもよい。
入力ハンドラ305は、ブロック603にて生成されたセッションキーに応じて、転送されたデータのハッシュを生成し、生成したハッシュ値とデータとをセキュリティモジュール309に送信してもよい(ブロック606)。ハッシュアルゴリズムは、例えばMD5、SHA−2又はSHA−3等の任意の適切なものを使用してもよい。セッションキーは、ハッシュアルゴリズムのキーとして使用されてもよい。データは、暗号化され又は暗号化されずに、セキュリティモジュール309に送信されてもよい。データが暗号化されて送信される場合には、データの復号化に成功すると当該データが入力装置303からのものであるという十分な証拠になるので、データハッシュをオプションにしてもよい。セッションキーは、データをハッシュするだけでなく、データの暗号化及び復号化に使用されてもよい。
次に、データの有効性に応じて判別が行われてもよい(ブロック607)。セキュリティモジュール309は、ハッシュ値及びデータを受信し、受信したデータと、ブロック603にて生成されたセッションキーとを用いて、第2ハッシュ値を生成してもよい。次いで、セキュリティモジュール309は、第2ハッシュ値と、入力ハンドラ305から受信したハッシュ値と、を比較してもよい。2つの値が同じ場合には、データは、入力装置303からのものであると検証されたとみなされることによって、有効であると判別される。2つのハッシュ値が異なる場合には、データは、入力装置303からのものではなく、信頼できないとみなされてもよい。いくつかの実施形態では、データは、ハッシュ値と共に暗号化データとして受信されてもよい。このような実施形態では、セキュリティモジュール309は、第2ハッシュ値を生成する前に、セッションキーを用いてデータを復号化してもよい。他の実施形態では、対応するハッシュ値なしに、暗号化データのみを受信してもよい。かかる場合、復号化されたデータは、特定の値の範囲内に含まれることが予測され得る。復号化されたデータが予測された値の範囲外である場合には、当該データは、信頼できないとみなされてもよい。さらなる実施形態では、復号化されたデータは、データの復号化に成功したか否かの判別に使用し得るパリティビット又は1つ以上のエラー訂正コード(ECC)ビットを含んでもよく、復号化に成功した場合には、データが有効であるとみなされてもよい。データが有効であると判別された場合、方法は、ブロック609に進む。有効であると判別されない場合、方法は、ブロック608に進み、データがタグ付けされてもよい。
ハッシュ値が一致しない、又は、データの復号化に失敗した場合、データは、信頼できないものとしてとタグ付けされてもよい(ブロック608)。いくつかの実施形態では、信頼できないデータは、信頼できないデータのソースの決定を試みるために、アンチウイルスアプリケーションによって記憶、使用されてもよい。これは、例えば、キーロガー307等のマルウェアがシステム300にインストールされているか否かを決定するのを助けることができる。信頼できないデータは、「検疫」場所に記憶されてもよい。「検疫」場所は、信頼できないデータが、気付かずに実行されると悪意の目的を有するコード命令を含む場合に、コードの実行を制限する。信頼できないデータは、記憶用に隔離されたメモリを使用する代わりに、又は、使用することに加えて、記憶前に暗号化されてもよい。ホストプロセッサ301は、暗号化された命令を実行可能であってはならず、信頼できないデータを暗号化することによって、意図せずに実行されないようにする。セキュリティモジュール309は、信頼できないデータを受信したことを、OS306を介して、アンチウイルスプログラム又はユーザに送信してもよい。
他の実施形態では、セキュリティモジュール309は、信頼できないデータを記憶しなくてもよい。代わりに、セキュリティモジュール309は、信頼できないデータを削除し、悪意の可能性のあるコード命令の実行を妨げる助けをしてもよい。データが記憶又は削除されると、セキュリティモジュール309は、セキュア動作モードを出るようにホストプロセッサ301に通知してもよい。様々な実施形態では、ホストプロセッサ301への信号は、セキュリティモジュールドライバ310又は入力ハンドラ305からであってもよい。方法は、ブロック610に進み、セキュア入力モードを終了してもよい。
ブロック607でデータが有効とみなされた場合、有効なデータは、信頼できるアプリケーション308等の信頼できるアプリケーションに送信されてもよい(ブロック609)。有効なデータを信頼できるアプリケーション308に転送するために、データは、信頼できるアプリケーションのみがアクセスするセキュア入力バッファに記憶されてもよい。他の実施形態では、有効なデータは、(セッションキーとは異なる)所定のキーワードを用いて暗号化されてもよく、任意のアプリケーションがアクセスし得る標準の入力バッファに記憶されてもよい。かかる場合、信頼できるアプリケーションのみが、データを復号化するための所定のキーワードを有してもよい。信頼できるアプリケーションとは、セキュリティモジュール309及び/又はセキュリティモジュールドライバ310を用いて登録されたアプリケーションを指してもよい。登録プロセスは、セキュア入力バッファの位置をアプリケーションと共有すること、又は、所定のキーワードをアプリケーションと共有すること、を含んでもよい。セキュリティモジュール309は、信頼できるアプリケーション308のためのデータを記憶すると、ホストプロセッサ301にセキュア動作モードを出るように通知してもよい。様々な実施形態では、ホストプロセッサ301への信号は、セキュリティモジュールドライバ310又は入力ハンドラ305からのものであってもよい。
データが、信頼できないとしてタグ付けされるか、信頼できるアプリケーションに送信された後、セキュア入力モードを終了してもよい(ブロック610)。セキュア入力モードは、ブロック605にて生成された割り込みの処理が完了すると、終了してもよい。割り込み処理の完了は、割り込みからの応答による指定、又は、ホストプロセッサ301に割り込み処理を完了させる同様の命令による指定等によるものであってもよい。ホストプロセッサ301は、この時点で通常動作モードに戻ってもよい。いくつかの実施形態では、USB304からの信号が、セキュアモード割り込みから分離されてもよい。セキュア入力モードに移行するのに使用したものと同じ値をユーザが入力することによって、又は、信頼できるアプリケーション308からの要求によって、セキュア入力モードを終了するような他の実施形態も考えられる。かかる実施形態では、入力ハンドラ305又はセキュリティモジュール309は、セキュア動作モードを終了してもよく、及び/又は、USB304に結合された割り込みのセキュアモードプションを無効にするようにホストプロセッサ301に命令してもよい。セキュア入力が終了し、ホストプロセッサ301が通常動作モードに切り替わると、方法は、ブロック611で終了してもよい。
セキュリティモジュール309は、本明細書の実施形態では、ハードウェアモジュールとして提示したことに留意されたい。しかしながら、いくつかの実施形態では、セキュリティモジュール309は、ソフトウェアモジュールとして実装されてもよい。このような実施形態では、セキュリティモジュール309は、SMMモード又はTrustZoneモード等のセキュアモードのみで動作してもよい。他の実施形態では、セキュリティモジュール309は、セキュアモードのサブモードとなり得るモードで動作してもよい。サブモードは、基本的なセキュアモードよりもアクセス制限が厳しくてもよい。例えば、SMMやTrustZone等のモードが基本的なモードに対応してもよく、セキュリティモジュール309の動作を有効にするために、これらのモードを通して、より高いレベルのセキュアモードに移行してもよい。セキュリティモジュール309がソフトウェアモジュールとして実装されている場合、いくつかの実施形態では、セキュリティモジュールドライバ310は、別のエンティティではなく、同じソフトウェアの一部であってもよい。
入力ハンドラ305、OS306、キーロガー307、信頼できるアプリケーション308及びセキュリティモジュールドライバ310等のソフトウェアプログラム、アプリケーション、ドライバは、ホストプロセッサ301によって実行される一連のコード命令から構成されてもよいことに再度留意されたい。したがって、コード命令から構成された任意のブロックが、本明細書において、タスク又は動作を行っていると説明される場合に、ホストプロセッサ301は、ブロックに対応するコード命令の実行に応じて、このタスク又は動作を行っているものと理解される。
図6のフローチャートに記載した方法は、単なる一例であることに留意されたい。他の実施形態では、異なる数の動作を使用してもよいし、1つ以上の動作を並行して又は別の順序で行ってもよい。
図7を参照すると、入力装置からデータをセキュアに受信する方法をサポートするコンピュータシステムの他の例が示されている。システム700は、図3のシステム300の特徴に類似した多くの特徴を含む。よって、図3に関する説明は、別段の記載のない限り、図7の対応するブロックに適用されてもよい。
図7の実施形態では、図6の方法に従ってセキュア割り込みを生成し、ホストコンピュータ720がセキュア動作モードに切り替わった後に、入力ハンドラ705は、図3に関して説明したのと同様に、USB704からデータを受信してもよく、当該データをセキュリティモジュール709に送信する前に入力バッファに記憶してもよい。入力ハンドラ705は、受信したデータのハッシュを生成し、データのコピーをセキュリティモジュール709に送信してもよい。セキュリティモジュール709は、図6の方法で説明したように、そのデータが入力装置703からであることを検証してもよく、これにより、データが有効であることを判別する。セキュリティモジュール709は、信頼できるアプリケーション708等のように登録されたアプリケーションのみがアクセスし得るセキュア入力バッファを用いて、有効なデータを、信頼できるアプリケーション708に送信してもよい。
また、セキュリティモジュール709は、入力ハンドラ705にデータを返信して、入力バッファの有効なデータを置き換えてもよい。返信されるデータは、有効なデータと同じサイズであるが、所定の値の繰り返しによって構成された特定のASCII文字に対応してもよい。例えば、有効なデータが、入力されたパスワードを表す「passwordl23」等のASCII文字列から構成されている場合には、セキュリティモジュール709は、例えば、パスワードの各文字を「#」文字で置き換えた「###########」等のASCII文字列を返信してもよい。有効なデータを所定の値に置き換えるプロセスは、データを「編集する」と呼んでもよい。有効なデータがセキュア入力バッファに記憶され、編集済みのデータが入力バッファに記憶されると、セキュリティモジュール709は、通常動作モードに切り替えるようにホストプロセッサ701に通知してもよい。キーロガー707が入力バッファを読み出そうとすると、編集済みのデータ、例えば「###########」のみが読み出されてもよい。
入力ハンドラ705、OS706、キーロガー707、信頼できるアプリケーション708及びセキュリティモジュールドライバ710は、ホストプロセッサ701で実行される一連のコード命令から構成されてもよいことに留意されたい。本明細書でタスク又は動作を行うとして説明されるコード命令から構成された任意のブロックは、ホストプロセッサ701が、ブロックに対応するコード命令の実行に応じて、このタスク又は動作を行うものとして解釈されるべきである。
図7のシステムは、入力装置からデータをセキュアに受信する方法をサポートするコンピュータシステムの単なる一例である。図7のシステムは、デモンストレーションの目的で単純化されている。他の実施形態では、コンピュータシステムに関連する他の機能ブロックを含んでよい。
図8を参照すると、コンピュータシステムのデータを編集する方法の実施形態を示すフローチャートが示されている。図8の方法は、例えば、図7のシステム700等のシステムに適用されてもよい。図7及び図8をまとめて参照すると、方法は、ブロック801で開始してもよい。
セキュリティモジュール709等のセキュリティモジュールは、受信したデータが有効であることを確認してもよい(ブロック802)。ホストプロセッサ701等のプロセッサがセキュア動作モードにある間、入力ハンドラ705等の入力ハンドラは、データを受信して、当該データを入力バッファに記憶してもよい。セキュリティモジュール709は、入力ハンドラ705からデータを受信してもよい。セキュリティモジュール709は、受信したハッシュ値を、セキュリティモジュール709が生成したハッシュ値と比較する等のように前述した何れか方法を用いて、データが有効であることを確認してもよい。
セキュリティモジュール709は、セキュリティモジュールドライバ710等のセキュリティモジュールドライバに有効なデータを送信してもよい(ブロック803)。セキュリティモジュール709は、有効なデータを、セキュリティモジュールドライバ710によって読み出されるセキュア入力バッファに記憶してもよい。いくつかの実施形態では、記憶された有効なデータは、セキュリティモジュール709及びセキュリティモジュールドライバ710に知られているキーワードを用いて暗号化されてもよい。他の実施形態では、有効なデータは、暗号化されなくてもよい。
セキュリティモジュール709は、有効なデータと同様のサイズの編集されたデータを生成してもよい(ブロック804)。編集されたデータは、有効なデータに含まれるものと等しい数のデータ値を含んでもよい。しかしながら、有効なデータ値は、所定の値に置き換えられてもよい。例えば、有効なデータは、「mypassword」等のパスワードに対応してよく、編集されたデータは、「**********」、又は、任意の他の適切な文字の繰り返しであってもよい。他の実施形態では、入力ハンドラ705は、セキュリティモジュール709から編集済みのデータを受信するのではなく、有効なデータを直接編集してもよい。編集済みのデータは、入力バッファの有効なデータを置き換えてよい。有効なデータ及び編集済みのデータの両方が記憶された後、ホストプロセッサ701は、通常動作モードに切り替わってもよい。
セキュリティモジュールドライバ710は、信頼できるアプリケーション708等の信頼できるアプリケーションに有効なデータを送信してもよい(ブロック805)。ホストプロセッサ701が通常動作モードに戻ると、セキュリティモジュールドライバ710は、データの読み出し準備ができたことを、信頼できるアプリケーション708に送信してよい。信頼できるアプリケーションは、セキュア入力バッファから有効なデータを読み出してもよく、データが暗号化されている場合には当該データを復号化してもよい。他の方法では、信頼できるアプリケーション708は、必要に応じて、有効なデータを使用してもよい。方法は、ブロック807で終了してもよい。
入力ハンドラ705は、データが受信されて、読み出しの準備ができていることを、OS706等のオペレーティングシステムに送信してもよい(ブロック806)。OS706は、入力ハンドラ705からの入力を待っているアプリケーションに、入力バッファからのデータの読み出し準備ができたことを通知してもよい。データを入力ハンドラ705に送信するニーズを引き起こしたのは、信頼できるアプリケーション708であってもよいが、他のアプリケーションは、データが入力バッファに存在するときを知るために、入力ハンドラ705及び/又はOS706をモニタし得る。例えば、キーロガー707等のマルウェアは、データが入力バッファに存在するという信号を待っている場合や、定期的にバッファを読み出して、バッファのコンテンツを記録する場合がある。編集済みのデータのみがバッファに存在し得るので、意味のないデータのみが収集されてもよい。方法は、ブロック807で終了してもよい。
図8に示すフローチャートに記載されたデータ編集方法は、単なる一例であって、ある動作が連続して行われ、他の動作が並行して行われ得ることに留意されたい。他の実施形態では、異なる順序の動作及び異なる数の動作が可能であり、考えられる。
図9を参照すると、入力装置から電子署名を受信する方法をサポートするコンピュータシステムの他の例が示されている。システム900は、図3のシステム300の特徴に類似した多くの特徴を含む。よって、図3に関する説明は、別段の記載のない限り、図9の対応するブロックに適用されてもよい。
入力装置を通してデータをセキュアに入力するコンピュータシステム及び方法を、ここまで開示してきた。同様のコンピュータシステムは、電子署名の生成に利用されてもよい。電子署名とは、動作を認証するために、システム900等のコンピュータシステムのユーザが入力装置903を介して値を入力するプロセスを指してもよい。この場合、入力装置903に入力されようとしているデータは、重要でなくてもよい。むしろ、ユーザがデータ入力に関与しているのを確実にすることが、より重要であってもよい。例えば、ユーザは、ウェブサイトからダウンロードするファイルを選択してもよい。ウェブサイトのプロバイダは、本当のユーザがファイルを要求していることと、要求がユーザに気付かれずに実行しているマルウェアからのものでないことと、を確認することができる。ウェブサイトは、ファイルをダウンロードする前に、電子署名の入力を要求してもよい。
信頼できるアプリケーション908(例えば、ホストコンピュータ920上で実行しているウェブブラウザ)は、ユーザからの電子署名を要求するウェブサイトによって要求されてもよい。信頼できるアプリケーションは、ディスプレイ950を介して、電子署名が要求されていることをユーザに通知してもよい。入力装置903を用いて電子署名を入力してもよい。署名のデータは、ディスプレイ950に示されたランダムなワードであってもよいし、ユーザは、当該ワードを繰り返すことを要求される。以下に記載のプロセスを用いて、セキュリティモジュール909は、データを認証し、認証したデータを、信頼できるアプリケーション908に提供してもよい。次に、信頼できるアプリケーション908は、ウェブサイトに応じて、有効な電子署名が入力されたことを確認してもよい。次に、ウェブサイトは、ファイルのダウンロードを開始してもよい。
入力ハンドラ905、OS906、キーロガー907、信頼できるアプリケーション908及びセキュリティモジュールドライバ910は、ホストプロセッサ901によって実行される一連のコード命令から構成されてもよいことに留意されたい。本明細書でタスク又は動作を行うものとして説明されたコード命令で構成された任意のブロックは、ホストプロセッサ901が、ブロックに対応するコード命令の実行に応じて、タスク又は動作を行うものと解釈されるべきである。
図9のシステムは、入力装置から電子署名を受信する方法をサポートするコンピュータシステムの単なる一例である。他の実施形態では、1つ以上の追加の機能ブロックがコンピュータシステムに含まれてもよい。
図10を参照すると、コンピュータシステムの電子署名を生成する方法のフローチャートが示されている。方法は、図9のシステム900に適用されてもよい。図9及び図10をまとめて参照する。方法は、ブロック1001で開始されてもよい。
信頼できるアプリケーション908等の信頼できるアプリケーションは、システム900のユーザからの電子署名を要求してもよい(ブロック1002)。他の実施形態では、ウェブブラウザ等の他のアプリケーションは、リモートサーバからロードしたウェブページを介して、リモートサーバからの電子署名の要求を受信してもよい。信頼できるアプリケーション908は、ディスプレイ950を介して、電子署名が必要なことをユーザに通知してもよい。通知は、ユーザが繰り返す必要のある値を含んでもよいし、例えば、パスワード等のようにユーザが既知の特定の値を要求してもよい。
要求された値を入力する前に、ユーザは、入力装置903で所定の値を入力することによって、セキュア入力モードをアクティブにしてもよい(ブロック1003)。他の実施形態では、信頼できるアプリケーション908は、セキュア入力モードに移行するように、ホストコンピュータ920に要求を送信してもよい。次に、ユーザは、要求された値を入力装置903上で入力してもよく、値は、USB904を介してホストプロセッサ901に送信されてもよい。USB904は、値をホストプロセッサ901に送信する準備ができたことをホストプロセッサ901に送信してよい。USB904からの信号に応じて、ホストプロセッサ901は、セキュア入力モードが有効にされたことによって、セキュア動作モードに移行してもよい。セキュア動作モードは、OS906に関連する何れの命令、又は、例えば信頼できるアプリケーション908及びキーロガー907等のようにOS906から開始されるアプリケーションをホストプロセッサ901が実行することを制限してもよい。入力ハンドラ905及びセキュリティモジュールドライバ910等の装置ドライバに関連する命令は、なお実行されてもよい。よって、入力ハンドラ905は、要求された値をUSB904から受信し、当該値を入力バッファに記憶し、次に、要求されたデータとセッションキーワードとに基づいてハッシュ値を生成してもよい。要求されたデータ及びハッシュ値は、セキュリティモジュール909に送信されてもよい。いくつかの実施形態では、データは、暗号化されてもよい。
次に、方法は、要求されたデータの有効性に依存してもよい(ブロック1004)。セキュリティモジュール909は、要求されたデータ及びハッシュ値を、入力ハンドラ905から受信してもよい。セキュリティモジュール909は、入力ハンドラ905によって使用された同じセッションキーワードを用いて、第2ハッシュ値を生成してもよい。データが暗号化されている場合には、セキュリティモジュール909は、第2ハッシュ値を生成する前に、データを復号化してもよい。2つのハッシュ値が一致する場合には、電子署名が有効とみなされてもよく、方法は、ブロック1006に移行してもよい。そうでなければ、2つのハッシュ値が一致しない場合には、署名が無効であるとみなされてもよい。
署名が無効である場合、当該署名は、信頼できないとタグ付けされてもよい(ブロック1005)。署名にタグ付けすることは、入力バッファのデータを他の値に置き換えることを含んでもよい。置き換えられる値は、セキュア入力バッファに記憶されてもよい。入力バッファ及びセキュア入力バッファの値は、同じであってもよいし、異なっていてもよい。新たな値が記憶されると、ホストプロセッサ901は、セキュア動作モードを終了するように通知されてもよい。セキュア入力モードを終了してもよい。セキュリティモジュールドライバ910は、セキュア入力バッファからデータを読み出す準備ができていることを、信頼できるアプリケーション908に送信してもよい。信頼できるアプリケーション908は、セキュア入力バッファからの値を読み出してもよく、予測した値と比較して不一致を検出してもよい。他の実施形態では、信頼できるアプリケーション908は、データを他のアプリケーションに転送してもよく、他のアプリケーションは、不一致を検出してもよい。方法は、ブロック1007で終了してもよい。
要求されたデータは、ブロック1004でデータが有効であるとみなされた場合(ブロック1006)、信頼できるアプリケーション908に送信されてもよい。要求されたデータは、セキュア入力バッファに記憶されてもよい。様々な実施形態では、セキュア入力バッファのデータは、暗号化されてもよく、入力バッファのデータは、編集されてもよいし編集されなくてもよい。要求されたデータが記憶されると、ホストプロセッサ901は、セキュア動作モードを終了するように通知されてもよい。セキュア入力モードを終了してもよい。セキュリティモジュールドライバ910は、セキュア入力バッファからデータを読み出す準備ができていることを、信頼できるアプリケーション908に送信してもよい。信頼できるアプリケーション908は、セキュア入力バッファから値を読み出し、当該値を予測した値と比較して、電子署名の成功を示す一致を検出してもよい。他の実施形態では、信頼できるアプリケーション908は、データを他のアプリケーションに転送し、他のアプリケーションが、電子署名の成功を検出してもよい。方法は、ブロック1007で終了してもよい。
図10に示す方法は、電子署名を認証するプロセスを示す単なる一例である。他の実施形態では、異なる動作及び異なる動作順序が採用されてもよい。
特定の実施形態を説明してきたが、これらの実施形態は、特定の特徴に関して単一の実施形態が説明されている場合であっても、本開示の範囲を限定することを意図していない。本開示で提供される特徴の例は、別段の記載のない限り、限定的ではなく例示することを意図している。上述した説明は、本開示の利益を有する当業者には明らかなように、代替、修正及び均等物を包含することを意図している。
本開示の範囲は、本明細書で扱う問題の何れか又は全てを軽減するか否かにかかわらず、本明細書に(明示的又は暗黙的に)開示された任意の特徴若しくはその組み合わせ、又はそれらの任意の一般化を含む。したがって、本願の審査(又は、本願の優先権を主張する出願)中に、かかる特徴についての新たな請求項が作成されてもよい。特に、添付の請求項を参照して、従属請求項の特徴は、独立請求項の特徴と組み合わされてもよく、各独立請求項の特徴は、添付の請求項で列挙された特定の組み合わせだけでなく、任意に適切なように組み合わされてもよい。

Claims (20)

  1. ホストコンピュータが、要求に応じて、セキュア入力モードをアクティブにすることと、
    前記セキュア入力モードがアクティブである間にデータが入力装置から取得可能であることに応じて、前記ホストプロセッサを特権動作モードに移行させることと、
    前記ホストプロセッサが前記特権動作モードである間に、入力ハンドラが、前記入力装置から前記データを受信することと、
    前記入力ハンドラが、前記受信したデータに対応するコードワードを生成することと、
    前記入力ハンドラが、前記受信したデータと、前記コードワードと、をセキュリティモジュールに送信することと、
    前記セキュリティモジュールが、前記受信したデータが前記コードワードに対応することを検証することと、
    を含む、方法。
  2. 前記ホストコンピュータが、要求に応じて、セキュア入力モードをアクティブにすることは、ユーザから前記入力装置を介して所定の値を受信することを含む、請求項1の方法。
  3. 前記ホストコンピュータが、要求に応じて、セキュア入力モードをアクティブにすることは、リモートサーバから受信した所定の値を受信することを含む、請求項1の方法。
  4. 前記ホストプロセッサを特権動作モードに移行させることは、割り込みのアサートに応じて前記ホストプロセッサを特権動作モードに移行させることを含み、前記割り込みの前記アサートは、前記データが前記入力装置から取得可能であることに応じている、請求項1の方法。
  5. 前記受信したデータと、前記コードワードと、をセキュリティモジュールに送信することは、前記受信したデータと、前記コードワードと、をセキュリティモジュールに送信する前に、前記入力ハンドラが、前記入力装置から受信したデータを暗号化することを含む、請求項1の方法。
  6. 前記セキュリティモジュールはソフトウェアモジュールである、請求項1の方法。
  7. 前記セキュリティモジュールが、前記受信したデータが前記コードワードに対応すると検証したことに応じて、前記検証されたデータを1つ以上の他のメモリ位置に記憶することと、
    前記入力ハンドラが、前記セキュリティモジュールが前記検証されたデータを1つ以上の他のメモリ位置に記憶したことに応じて、前記受信したデータを所定の値に置き換えることと、
    前記ホストプロセッサが、前記セキュリティモジュールが前記検証されたデータを記憶したことに応じて、通常動作モードに戻ることと、
    を含む、請求項1の方法。
  8. 入力装置からデータを受信し、前記入力装置からデータを受信した場合に信号をアサートするように構成されたインタフェースと、
    ホストコンピュータと、
    を備えるシステムであって、
    前記ホストコンピュータは、
    ホストプロセッサと、
    第1入力ハンドラであって、前記ホストプロセッサが通常動作モードである間、前記インタフェースからの第1信号のアサートに応じて、前記インタフェースから第1データを受信し、前記受信した第1データを1つ以上のメモリ位置に記憶するように構成された第1入力ハンドラと、
    第2の入力ハンドラと、を備え、
    前記ホストコンピュータは、要求に応じて、セキュア入力モードをアクティブにするように構成されており、
    前記ホストコンピュータが前記セキュア入力モードである間、前記ホストプロセッサは、前記インタフェースからの第2信号のアサートに応じて、前記通常動作モードから特権動作モードに移行するように構成されており、
    前記第2入力ハンドラは、
    前記ホストプロセッサが前記特権動作モードに移行したことに応じて、前記入力装置から第2データを受信し、
    前記受信した第2データに対応するコードワードを生成し、
    前記受信した第2データと、前記コードワードと、をセキュリティモジュールに送信するように構成されており、
    前記ホストプロセッサは、前記特権動作モードで動作中に、前記受信した第2データが前記コードワードに対応することを検証するように構成されている、
    システム。
  9. 前記セキュリティモジュールは、
    前記要求に応じてセッションキーワードを生成し、
    前記セッションキーワードを前記第2入力ハンドラと共有する、ように構成されている、
    請求項8のシステム。
  10. 前記ホストプロセッサは、前記通常動作モードから前記特権動作モードに移行するために、割り込みのアサートに応じて前記特権動作モードに移行するように構成されており、前記割り込みのアサートは、前記インタフェースからの前記第2信号に応じたものである、請求項8のシステム。
  11. 前記ホストプロセッサは、前記特権動作モードに移行するために、専用のハードウェアをアクティブにするように構成されている、請求項8のシステム。
  12. 前記専用のハードウェアは、前記ホストプロセッサとは別のチップ上に存在する、請求項11のシステム。
  13. 前記第2入力ハンドラは、
    前記受信した第2データが前記コードワードに対応すると前記セキュリティモジュールが検証したという判別に応じて、前記検証されたデータを1つ以上の他のメモリ位置に記憶し、
    前記受信した第2データを事前に選択した値に置き換える、ように構成されており、
    前記ホストプロセッサは、前記第2入力ハンドラが前記検証されたデータを記憶したことに応じて、前記通常動作モードに戻るように構成されている、
    請求項8のシステム。
  14. 前記第2入力ハンドラは、前記受信した第2のデータと、前記コードワードと、を前記コプロセッサに送信するために、前記受信した第2データを、前記セッションキーワードを用いて暗号化するように構成されている、請求項8のシステム。
  15. ホストコンピュータが、電子署名の要求を受信したことに応じて、セキュア入力モードをアクティブにすることと、
    前記ホストコンピュータの入力ハンドラが、前記電子署名の要求を受信したことに応じて、セッションキーワードを生成することと、
    前記電子署名が入力装置から取得可能であることに応じて、前記ホストコンピュータのホストプロセッサを通常動作モードから特権動作モードに移行させることと、
    前記入力ハンドラが、前記ホストプロセッサが前記特権動作モードである間、前記入力装置から前記電子署名を受信することと、
    前記入力ハンドラが、前記受信した電子署名と前記セッションキーワードとに対応するコードワードを生成することと、
    前記入力ハンドラが、前記コードワードをセキュリティモジュールに送信することと、
    前記セキュリティモジュールが、前記コードワードが、前記受信した電子署名と前記セッションキーワードとに対応することを検証することと、
    を含む、方法。
  16. 前記電子署名の要求は、前記入力装置を介して受信した所定の値である、請求項15の方法。
  17. 前記電子署名の要求は、前記ホストコンピュータ上で実行するアプリケーションを介して受信される、請求項15の方法。
  18. 前記セキュリティモジュールが、前記コードワードが、前記受信した電子署名と前記セッションキーワードとに対応することを検証したことに応じて、前記入力ハンドラが、前記検証されたデータを所定の値に置き換えることを含む、請求項15の方法。
  19. 前記ホストコンピュータが、前記ホストコンピュータ上で実行する前記アプリケーションから確認を受信したことに応じて、前記セキュア入力モードを非アクティブにすることを含む、請求項16の方法。
  20. 前記ホストプロセッサが前記通常動作モードに戻ることは、前記コードワードが、前記受信した電子署名と前記セッションキーワードとに対応することを前記セキュリティモジュールが検証したことに応じて、前記ホストプロセッサが前記通常動作モードに切り替えることを含む、請求項15の方法。
JP2017515761A 2014-09-22 2015-09-22 特権モードに基づくセキュアな入力機構のための方法 Active JP6611797B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/492,786 2014-09-22
US14/492,786 US9471799B2 (en) 2014-09-22 2014-09-22 Method for privileged mode based secure input mechanism
PCT/US2015/051346 WO2016048955A1 (en) 2014-09-22 2015-09-22 Method for privileged mode based secure input mechanism

Publications (2)

Publication Number Publication Date
JP2017534963A true JP2017534963A (ja) 2017-11-24
JP6611797B2 JP6611797B2 (ja) 2019-11-27

Family

ID=55526014

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017515761A Active JP6611797B2 (ja) 2014-09-22 2015-09-22 特権モードに基づくセキュアな入力機構のための方法

Country Status (6)

Country Link
US (1) US9471799B2 (ja)
EP (1) EP3198516B1 (ja)
JP (1) JP6611797B2 (ja)
KR (1) KR102403138B1 (ja)
CN (1) CN106687985B (ja)
WO (1) WO2016048955A1 (ja)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10049233B2 (en) * 2014-10-09 2018-08-14 Canon Denshi Kabushiki Kaisha Information processing apparatus, security management method and information processing system that switches from one monitoring unit to another in accordance with operating mode
JP2016139322A (ja) * 2015-01-28 2016-08-04 株式会社リコー 画像処理装置及びそれを備えた電子黒板
US10289846B2 (en) * 2015-04-17 2019-05-14 Easy Solutions Enterprises Corp. Systems and methods for detecting and addressing remote access malware
WO2016172944A1 (zh) * 2015-04-30 2016-11-03 华为技术有限公司 终端的界面显示方法和终端
US10311236B2 (en) 2016-11-22 2019-06-04 Advanced Micro Devices, Inc. Secure system memory training
US10372625B2 (en) 2016-12-27 2019-08-06 Intel Corporation Secure memory
US10699013B2 (en) * 2017-03-20 2020-06-30 Honeywell International Inc. Systems and methods for USB/firewire port monitoring, filtering, and security
US10699033B2 (en) 2017-06-28 2020-06-30 Advanced Micro Devices, Inc. Secure enablement of platform features without user intervention
EP3506143B1 (en) 2017-12-27 2024-02-14 Siemens Aktiengesellschaft Interface for a hardware security module
US11429753B2 (en) * 2018-09-27 2022-08-30 Citrix Systems, Inc. Encryption of keyboard data to avoid being read by endpoint-hosted keylogger applications
US10895597B2 (en) 2018-11-21 2021-01-19 Advanced Micro Devices, Inc. Secure coprocessor assisted hardware debugging
CN110414225B (zh) * 2019-07-24 2023-05-26 广东魅视科技股份有限公司 一种防hid键盘攻击的系统及方法
US11055017B1 (en) 2020-01-27 2021-07-06 International Business Machines Corporation Throttling a point-in-time snapshot copy operation within a data consistency application
IL280028B1 (en) * 2021-01-07 2023-07-01 Sec Labs Ltd High Method and device for locking secure mediation between console peripherals and host computers
KR102347940B1 (ko) 2021-06-10 2022-01-06 제이티드론협동조합 드론용 운반체

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4333090A (en) 1980-05-05 1982-06-01 Hirsch Steven B Secure keyboard input terminal
US4479112A (en) 1980-05-05 1984-10-23 Secure Keyboards Limited Secure input system
US5748888A (en) * 1996-05-29 1998-05-05 Compaq Computer Corporation Method and apparatus for providing secure and private keyboard communications in computer systems
US6581162B1 (en) * 1996-12-31 2003-06-17 Compaq Information Technologies Group, L.P. Method for securely creating, storing and using encryption keys in a computer system
KR100378586B1 (ko) 2001-08-29 2003-04-03 테커스 (주) 엑티브엑스 기반의 키보드 해킹 방지 방법 및 장치
US20030159053A1 (en) 2002-02-19 2003-08-21 Charles Fauble Secure reconfigurable input device with transaction card reader
US20030229794A1 (en) 2002-06-07 2003-12-11 Sutton James A. System and method for protection against untrusted system management code by redirecting a system management interrupt and creating a virtual machine container
DE102004062203B4 (de) * 2004-12-23 2007-03-08 Infineon Technologies Ag Datenverarbeitungseinrichtung, Telekommunikations-Endgerät und Verfahren zur Datenverarbeitung mittels einer Datenverarbeitungseinrichtung
US7835521B1 (en) 2005-12-02 2010-11-16 Google Inc. Secure keyboard
KR100909891B1 (ko) 2007-10-02 2009-07-31 소프트캠프(주) 커널영역의 키보드 보안을 위한 입력정보 암호화 처리방법
US20090119221A1 (en) * 2007-11-05 2009-05-07 Timothy Martin Weston System and Method for Cryptographically Authenticated Display Prompt Control for Multifunctional Payment Terminals
US8726013B2 (en) 2008-08-22 2014-05-13 Chi-Pei Wang Anti-keylogger computer network system
US20120272059A1 (en) 2011-04-20 2012-10-25 Varun Shetty System and method for secure exchange of information in a computer system
US8954747B2 (en) 2011-07-01 2015-02-10 Intel Corporation Protecting keystrokes received from a keyboard in a platform containing embedded controllers
US9037869B2 (en) * 2011-11-02 2015-05-19 Intel Corporation Delivering data from a secure execution environment to a display controller
US20130145475A1 (en) * 2011-12-02 2013-06-06 Samsung Electronics Co., Ltd. Method and apparatus for securing touch input
KR101873530B1 (ko) * 2012-04-10 2018-07-02 삼성전자주식회사 모바일 기기, 모바일 기기의 입력 처리 방법, 및 모바일 기기를 이용한 전자 결제 방법
LT2936369T (lt) * 2012-12-21 2020-07-27 Biobex, Llc Slaptažodžio patvirtinimas, naudojant klaviatūra ir saugų slaptažodžio įvedimo režimą

Also Published As

Publication number Publication date
EP3198516B1 (en) 2019-12-04
CN106687985B (zh) 2018-09-21
KR102403138B1 (ko) 2022-05-27
WO2016048955A1 (en) 2016-03-31
EP3198516A4 (en) 2018-05-23
US9471799B2 (en) 2016-10-18
JP6611797B2 (ja) 2019-11-27
EP3198516A1 (en) 2017-08-02
KR20170057279A (ko) 2017-05-24
US20160085976A1 (en) 2016-03-24
CN106687985A (zh) 2017-05-17

Similar Documents

Publication Publication Date Title
JP6611797B2 (ja) 特権モードに基づくセキュアな入力機構のための方法
US10762216B2 (en) Anti-theft in firmware
US9235719B2 (en) Apparatus, system, and method for providing memory access control
JP5924829B2 (ja) データトラフィックへの未認証アクセスの軽減
US8856534B2 (en) Method and apparatus for secure scan of data storage device from remote server
US9507964B2 (en) Regulating access using information regarding a host machine of a portable storage drive
US9183390B2 (en) Systems and methods for providing anti-malware protection on storage devices
US8954747B2 (en) Protecting keystrokes received from a keyboard in a platform containing embedded controllers
US10776095B2 (en) Secure live media boot system
JP2012508931A (ja) モバイル装置とコンピュータを組み合わせ、安全な個人ごとの環境を生成する装置および方法
KR20090078551A (ko) 이동 저장 장치에서 호스트 인증 방법, 호스트 인증을 위한정보 제공 방법, 장치, 및 기록매체
US10853086B2 (en) Information handling systems and related methods for establishing trust between boot firmware and applications based on user physical presence verification
US9792438B2 (en) Protecting user input against focus change
US10192056B1 (en) Systems and methods for authenticating whole disk encryption systems
EP3044721B1 (en) Automatic pairing of io devices with hardware secure elements
US20050044408A1 (en) Low pin count docking architecture for a trusted platform
WO2024027472A1 (zh) 一种确定内核状态的方法和相关设备
EP4281893A1 (en) Read-only memory (rom) security
EP4281891A1 (en) Read-only memory (rom) security

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180925

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20190320

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190416

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20190716

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190912

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: 20191001

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20191029

R150 Certificate of patent or registration of utility model

Ref document number: 6611797

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250