(57)【特許請求の範囲】
【請求項１】
コンピュータのキーボードデータ保護方法において、
(a) CPUがキーボードハードウェアのポートを介してキーボードデータを受信するステップと、
(b) 前記(a)ステップで受信されたキーボードデータをセキュリティキーボードドライバに格納するステップと、
(c) 前記キーボードデータが前記キーボードハードウェアから前記コンピュータのシステムメッセージ待機列またはスレッドメッセージ待機列に伝達されないように、キーボードドライバを非アクティブにするステップと、
(d) セキュリティ入力手段が前記(b)ステップで格納されたキーボードデータを読み出すステップと、
(e) 前記セキュリティ入力手段が前記(d)ステップで読み出されたキーボードデータを現在アクティブになっているアプリケーションプログラムに伝送するステップと、
を含むことを特徴とするコンピュータのキーボードデータ保護方法。
【請求項２】
前記セキュリティ入力手段は、
Ａｃｔｉｖｅ Ｘ形式から構成されることを特徴とする請求項１に記載のコンピュータのキーボードデータ保護方法。
【請求項３】
コンピュータのキーボードデータを保護するために、コンピュータに、
(a) CPUがキーボードハードウェアのポートを介してキーボードデータを受信する過程と、
(b) 前記(a)過程で受信されたキーボードデータをセキュリティキーボードドライバに格納する過程と、
(c) 前記キーボードデータが前記キーボードハードウェアから前記コンピュータのシステムメッセージ待機列またはスレッドメッセージ待機列に伝達されないように、キーボードドライバを非アクティブにする過程と、
(d) セキュリティ入力手段が前記(b)過程で格納されたキーボードデータを読み出す過程と、
(e) 前記セキュリティ入力手段が前記(d)過程で読み出されたキーボードデータを現在アクティブになっているアプリケーションプログラムに伝送する過程と、
を実現させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キーボードデータ流出を防ぐセキュリティプログラムであって、ウェブブラウザや一般的な応用プログラムで用いられるＡｃｔｉｖｅＸ(マイクロソフト社が開発したＰＣプラットホームとインターネットを接続する統合プラットホーム技術)の形式を有し、追加的なＨ／Ｗを使用しないで既存のキーボードを利用することにより、キーボードデータを流出させないソフトウェア基盤のセキュリティ入力窓である。
【背景技術】
【０００２】
インターネット上でのキーボードデータセキュリティ関連の従来技術には、２００１年１月に発表したセーフテク(ＷＷＷ．ｅｓａｆｅｔｅｋ．ｃｏｍ)の製品名「キス」とＪＡＶＡを利用した仮想キーボード(Ｖｉｒｔｕａｌ  Ｋｅｙｂｏａｒｄ)等のような、キーボードでない他の入力手段(方法)を利用して、キーボード入力を代わりに行わせる装置などがある。しかし、これらの製品中で前者はＨ／Ｗを基盤としてキーボードデータを保護するため特定装置が必要であるという特性があって、インターネットのような大規模な汎用サービスを行うには困難さが多く、後者である他の入力手段を利用したセキュリティは、ユーザの未熟と不便さによって積極的な使用ができない状況である。これにインターネットでのキーボードデータは、個人の重要な情報を持っていてセキュリティが急に必要であるのにもかかわらず汎用製品が市場に発売されていないことが今の現実である。
【０００３】
本発明は、ユーザの基本入力方法であるキーボードを用いて、入力データを安全かつ便利に使用できるようにすることに重点をおいて考案した。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明は、上述したような問題点を解決するためになされたもので、その目的は、インターネット上での個人情報の入力及びメールの作成、書類の作成などの資料を入力する時、キーボードデータがハッカーにより流出されることを防止することである。
【課題を解決するための手段】
【０００５】
本発明を達成するためには基本的にキーボードデータ保護機能、ウェブブラウザ支援機能を備えなければならない。
【０００６】
まず、キーボードデータセキュリティを達成するための技術的課題は次の通りである。
【０００７】
第１は、キーボードハードウェアからキーボードデバイスドライバにスキャンコードを伝送した後、Ｉ／Ｏポート６０Ｈに残っているキーボードデータの流出を防止しなければならない。しかし、ウィンドウの特性とハードウェアの特性上、一般的なアプリケーションプログラムでは正しく処理できないため、Ｒｉｎｇ  ０に接近可能な仮想装置ドライバ(ＶＸＤ)を使用して流出を防止しなければならない。
【０００８】
第２は、スキャンコードをキーボードデバイスドライバがキーボードデータに変換してシステムメッセージキューへ伝達する過程でＡＰＩフッキング、メッセージフッキングのような外部プログラムにより流出できる。この過程は、ウィンドウの基本運用体系(ＵＳＥＲ．ＥＸＥ)として一般の方法では防止できないため、ウィンドウの基本体系を利用しないキーボード入力方法が支援されなければならない。
【０００９】
第３は、キーボードデータを受け取る応用プログラムに伝達する過程でのデータ流出を防止しなければならない。ハッカーらは、アプリケーションプログラムが使用するＡＰＩやメッセージをフッキングしたりモニターしたりしてキーボードデータを流出させることができる。したがって、キーボードデータを安全にアプリケーションプログラムに伝達するための技術が発明されなければならない。
【００１０】
キーボードデータ入力後ウェブブラウザで使用するためには、次の技術的課題がある。
【００１１】
第１は、セキュリティ入力窓は、ウェブブラウザが支援可能なＨＴＭＬ文書で記述できる方法を使用しなければならない。セキュリティ入力窓は、ウィンドウの基本キーボード運用体系によらないため、ウェブブラウザと連動されて使用するための特別な方法で具現化されなければならない。
【００１２】
第２は、ウェブブラウザ上の仮想装置ドライバ(ＶＸＤ)と通信、ハードウェアの制御のような低い水準の業務を行う方法を支援しなければならない。本発明のセキュリティ入力窓は、セキュリティキーボードドライバを用いて、キーボードハードウェアを直接制御することによって、セキュリティ入力窓を具現化しなければならないためである。
【図面の簡単な説明】
【００１３】
【図１】本発明に係るキーボードデータセキュリティシステムの全体構成図である。
【図２】本発明に係るセキュリティ入力窓のキーボードデータフローチャートである。
【図３】本発明に係るセキュリティキーボードドライバとＡｃｔｉｖｅＸとの間の資料フローチャートである。
【図４】本発明に係るセキュリティ入力窓を適用したウェブブラウザの例示図である。
【図５】本発明に係るセキュリティ入力窓を適用したＨＴＭＬ例題ソースである。
【発明を実施するための形態】
【００１４】
本発明の基本動作原理は、ユーザが入力したキーボードデータをマイクロソフトウィンドウの正規キーボード処理を用いないでセキュリティキーボードドライバとセキュリティ入力窓とを用いて、ウェブブラウザにデータを安全に伝達することである。
【００１５】
図１は、本発明に係るキーボードデータセキュリティシステムの全体構成であって、ウェブブラウザに適用される場合を示したものである。
【００１６】
マイクロソフトウィンドウの正規キーボード処理は、次の通りである。キーボードハードウェア１０１から発生する電気的信号は、マザーボードの８２５５に接続し、これはスキャンコードで表現されてキーボードデバイスドライバ１０２に入力される。キーボードの種類ごとに異なるスキャンコードは、キーボードデバイスドライバ(ＶＫＤ,Ｖｉｒｔｕａｌ  Ｋｅｙｂｏａｒｄ  Ｄｒｉｖｅｒ)によって、運営体制で標準として使用するキーボードメッセージに変換される。このようなキーボードメッセージは、システムメッセージ待機列１０３に格納され運営体制のＲｉｎｇ３の構成要素であるＵＳＥＲ．ＥＸＥによって現在活性化されている仮想マシンＶＭに伝送される。仮想マシンに格納されたキーボードデータは、スレッドメッセージ待機列１０４を通してウェブブラウザ１０５に伝達されてキー入力作業を進行するようになる。
【００１７】
しかし、発明のセキュリティ入力窓のキー入力作業は、上記の一般的方法とは異なって具現化される。
【００１８】
セキュリティ入力窓でのキー入力セキュリティ作業の原理は、キーボードハードウェア１０１から発生する電気的信号はマザーボードの８２５５に接続され、これはスキャンコードで表現されてキーボードデバイスドライバ１０２に入力される。スキャンコードがキーボードデバイスドライバＶＫＤに入力された後、キーボードデバイスドライバＶＫＤはユーザ定義キーの運用のためにフッキング関数(ユーザ再定義関数)のＶＫＤ_Ｆｉｌｔｅｒ_Ｋｅｙｂｏａｒｄ_Ｉｎｐｕｔを呼び出す。仮りにキーボードデバイスドライバで呼び出したフッキング関数からキャリー(ＣＡＲＲＹ)をセットさせてかえせば、キーボードデバイスドライバはキーボードメッセージを無視し以後のキーボードメッセージ処理を中断する。セキュリティキーボードドライバにあるフッキング関数は、キーボードデータを自体待機列(Ｑｕｅｕｅ)に格納した後、キャリーをセットしてかえす。これはキーボードメッセージがシステムメッセージ待機列またはスレッドメッセージ待機列、ウェブブラウザに伝達されないため、メッセージフッキングによるキーボードデータの流出を防ぐ効果を持つ。ここでフッキング関数は、セキュリティキーボードドライバで作成されて運用される。
【００１９】
セキュリティキーボードドライバは、上記の方法でＶＫＤ_Ｆｉｌｔｅｒ_Ｋｅｙｂｏａｒｄ_Ｉｎｐｕｔを再定義してメッセージフッキングを防止する。しかし上記の作業後にもマザーボードの８２５５にスキャンコードは残っているようになる。８２５５の特性上一般的な方法でスキャンコード痕跡データを消去することはできない。それで本発明は８２５５に残っているスキャンコード痕跡データを消去するために、キーボードハードウェアをコントロールする。
【００２０】
痕跡データを消去する方法は、セキュリティキーボードドライバのフッキング関数であるＶＫＤ＿Ｆｉｌｔｅｒ＿ｋｅｙｂｏａｒｄ＿Ｉｎｐｕｔが呼び出されると、ｐｏｒｔ  ６０Ｈを介してキーボードハードウェアの一般的に定義された制御命令(Ｅｎａｂｌｅ  ｋｅｙｂｏａｒｄ[Ｆ４Ｈ])をキーボードハードウェアに送出させる。制御命令を受けたキーボードハードウェアは、キーボードをイネーブルさせ(本来イネーブル状態であるが)、自体に格納されたキーボードデータを削除した後、８２５５にＡｃｋｎｏｗｌｅｄｇｍｅｎｔ(ＦＡｈ)を送出する。この過程でキーボードハードウェアに格納されたキーボードデータが削除され、ｐｏｒｔ  ６０Ｈの痕跡データは他の値(ＦＡｈ)に変更されてスキャンコード痕跡データが消される効果を持つ。このような効果を利用してキーボードポートスキャンを利用したキーボードデータハッキングを防止する。
【００２１】
セキュリティキーボードドライバのキーボードデータ待機列に格納されたキーボードデータをＡｃｔｉｖｅＸ形式を持つセキュリティ入力窓１１０に伝達する方法は、セキュリティ入力窓により周期的にセキュリティキーボードドライバの待機列の状態を確認して、格納されたキーボードデータを伝達される形態である。キーボードデータを伝達されたセキュリティ入力窓は、スキャンコード形態のキーボードデータを文字形態に変換して格納し、ユーザの入力確認のために画面に出力する。
【００２２】
ユーザがセキュリティ入力窓に入力を終了した後、伝送または確認ボタンを押して、次の業務に移ると、ウェブブラウザ１１２は、スクリプトを通してセキュリティ入力窓のデータプロパティを参照１１１してスクリプトが指定した業務を継続するようになる。
【００２３】
図２は、キーボードデバイスドライバとセキュリティキーボードドライバとの間のインターフェスと運用流れを示すフローチャートである。まずユーザがキーボードを押すと、８２５５はキーボードからキーボードデータを受け取り、キーボード割込みが発生されてキーボードデバイスドライバを呼び出す（２０１）。呼び出されたキーボードデバイスドライバは、キーボードデータが格納されているポート６０Ｈの値を読み出して特定レジスタに格納したあと、ＶＫＤ＿Ｆｉｌｔｅｒ＿ｋｅｙｂｏａｒｄ＿ｉｎｐｕｔのフッキング関数２１０を呼び出す。フッキング関数２１０は、セキュリティキーボードドライバが持っている一つの関数であって、セキュリティキーボードドライバがアクティブになったか否かを判断してアクティブになっていない場合は終了し、アクティブになっている場合はキーボードポート０６ｈのキーボードデータ痕跡を上記の方法で削除したあと、自体待機列(Ｑｕｅｕｅ)にキーボードデータを格納する。そしてキーボードデバイスドライバでキーボードデータの使用を不可能にするため、キャリー(Carry)を指定したあと終了する。
【００２４】
キーボードデバイスドライバは、フッキング関数を呼び出した後キャリーを確認して、既存のキーボードデバイスドライバを行なったり受け取ったキーボードデータを無視する。
【００２５】
図３は、セキュリティ入力窓とセキュリティキーボードドライバとのインターフェスでキーボードデータを処理するフローチャートを示す。セキュリティ入力窓は、タイマーを利用して周期的３０１にセキュリティキーボードドライバと通信(ｆｕｎｃｔｉｏｎ  ＤｅｖｉｃｅＩｏＣｏｎｔｒｏｌ)してセキュリティキーボードデータを伝送３０３される。セキュリティキーボードデータを受信した後、セキュリティ入力窓は画面に出力したりキーボードデータを格納したりする業務を行う。
【００２６】
図４は、セキュリティ入力窓４０４が適用されたウェブブラウザ４０５の例を示したことであって、ＨＴＭＬコードは図５を参照する。図４のウェブページは、ユーザがキーボード４０１を利用してブラウザー４０５のセキュリティ入力窓４０４にウェブアドレスを入力した後ボタン４０６を押すと、該当ウェブページに移動する機能を持つ。
【００２７】
図５は、ＨＴＭＬコード形式で表現されるセキュリティ入力窓５０１とＨＴＭＬ形式で表現されるセキュリティ入力窓に入力されたキーボードデータの処理５０２を示している。
【００２８】
ＨＴＭＬ上でセキュリティ入力窓の記述は、ＡｃｔｉｖｅＸ形式によって作成され、セキュリティ入力窓のデータ参照もＡｃｔｉｖｅＸ属性(Property)様式に従う。
【００２９】
次の例文５０２のようにセキュリティ入力窓は、ＨＴＭＬコードでＯＢＪＥＣＴとして表現される。
<OBJECT
classid="clsid:C1BF8F0F‐05BA‐497C‐AEDA‐F377E0867B3C"
name="akl1"
codebase="http://localhost/AKLEditXControl1.cab#version=1,0,89,9"
width=350
height=23
align=center
hspace=0
vspace=0
> 
<param name="Value" value="www.yahoo.com">
<param name="Border" value="2">
<param name="BorderLeftcolor" value="0">
<param name="BorderRightcolor" value="0">
<param name="BorderTopcolor" value="0">
<param name="BorderBottomcolor" value="0">
<param name="BorderStyle" value="1">
<param name="Font" value="MS Sans Serif">
<param name="Size" value="56">
</OBJECT>
(関連文書:http://msdn.microsoft.com/workshop/author/dhtml/reference/objects/OBJECT.asp)
【００３０】
次の例文５０１は、ＨＴＭＬコード上でセキュリティ入力窓に入力されたキーボードデータを参照する方法を記述する。
<script language="javascript">
function geturl() 
var ak = "http://" + akl1.value;
window.open(ak)
</script>
【００３１】
上記のコードを呼び出すことによって、セキュリティ入力窓のデータを参照するようになる。
【産業上の利用可能性】
【００３２】
１.本発明は、インターネット上ユーザが入力するキーボードデータを保護して、インターネット関連産業の信頼度向上と活性化に寄与する。
【００３３】
インターネットバンキング、インターネット証券、インターネットゲーム、ウェブメール、ウェブコンテンツ、セキュリティ文書の作成などのようなインターネット関連業務において、キーボードによる業務は必須である。流出されたキーボードデータは、インターネット業務を行うのに多くの混乱と大きな被害を与えることができる。
【００３４】
これにセキュリティキー入力窓を使用する場合、キーボードデータの流出が防止されて、上記のインターネット事業の信頼性の確保につながり、インターネット事業の活性化に多大な影響を及ぼすはずである。またキーボードデータの流出による直接的な被害も減るはずである。
【００３５】
２.本発明は、ワクチンのような知られた悪性プログラムに対応して措置する方式でないハッキング技法に対して措置を行なうため、新しいプログラムや予め発見できなかったハッキングプログラムに対してもユーザのキーボードデータを保護することができる。
【００３６】
３.本発明は、既存のハッキング方法ではキーボードデータを盗むことができないため、新しいハッキング方法を開発しなければならない。これはハッカーの活動領域を縮小する間接効果がある。
【００３７】
４.本発明は、ソフトウェア基盤のセキュリティシステムであって、システムのセキュリティ性が低下する場合、即刻改善作業をすることによりセキュリティ性を回復できるため、キーボードデータセキュリティに対する信頼を高めてインターネット関連産業の信頼性を確保する効果がある。
【図１】
0005451857.tif 000002
【図２】
0005451857.tif 000003
【図３】
0005451857.tif 000004
【図４】
0005451857.tif 000005
【図５】
0005451857.tif 000006