説明

アクティブX基盤のキーボードハッキング防止入力窓

【課題】インターネット上での個人情報の入力及びメールの作成、書類の作成などの資料を入力する時、キーボードデータがハッカーにより流出されることを防止する。
【解決手段】追加的なH/Wを使用しないで既存のキーボードを利用して、ウェブブラウザや一般的な応用プログラムで用いられるActiveX(登録商標)で構成されるセキュリティ入力手段をソフトウェア基盤の保安入力窓として構成し、キーボードデータを現在アクティブになっているアプリケーションプログラムに伝送する保安プログラム。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、キーボードデータ流出を防ぐセキュリティプログラムであって、ウェブブラウザや一般的な応用プログラムで用いられるActiveX(マイクロソフト社が開発したPCプラットホームとインターネットを接続する統合プラットホーム技術)の形式を有し、追加的なH/Wを使用しないで既存のキーボードを利用することにより、キーボードデータを流出させないソフトウェア基盤のセキュリティ入力窓である。
【背景技術】
【0002】
インターネット上でのキーボードデータセキュリティ関連の従来技術には、2001年1月に発表したセーフテク(WWW.esafetek.com)の製品名「キス」とJAVAを利用した仮想キーボード(Virtual Keyboard)等のような、キーボードでない他の入力手段(方法)を利用して、キーボード入力を代わりに行わせる装置などがある。しかし、これらの製品中で前者はH/Wを基盤としてキーボードデータを保護するため特定装置が必要であるという特性があって、インターネットのような大規模な汎用サービスを行うには困難さが多く、後者である他の入力手段を利用したセキュリティは、ユーザの未熟と不便さによって積極的な使用ができない状況である。これにインターネットでのキーボードデータは、個人の重要な情報を持っていてセキュリティが急に必要であるのにもかかわらず汎用製品が市場に発売されていないことが今の現実である。
【0003】
本発明は、ユーザの基本入力方法であるキーボードを用いて、入力データを安全かつ便利に使用できるようにすることに重点をおいて考案した。
【発明の概要】
【発明が解決しようとする課題】
【0004】
本発明は、上述したような問題点を解決するためになされたもので、その目的は、インターネット上での個人情報の入力及びメールの作成、書類の作成などの資料を入力する時、キーボードデータがハッカーにより流出されることを防止することである。
【課題を解決するための手段】
【0005】
本発明を達成するためには基本的にキーボードデータ保護機能、ウェブブラウザ支援機能を備えなければならない。
【0006】
まず、キーボードデータセキュリティを達成するための技術的課題は次の通りである。
【0007】
第1は、キーボードハードウェアからキーボードデバイスドライバにスキャンコードを伝送した後、I/Oポート60Hに残っているキーボードデータの流出を防止しなければならない。しかし、ウィンドウの特性とハードウェアの特性上、一般的なアプリケーションプログラムでは正しく処理できないため、Ring 0に接近可能な仮想装置ドライバ(VD)を使用して流出を防止しなければならない。
【0008】
第2は、スキャンコードをキーボードデバイスドライバがキーボードデータに変換してシステムメッセージキューへ伝達する過程でAPIフッキング、メッセージフッキングのような外部プログラムにより流出できる。この過程は、ウィンドウの基本運用体系(USER.EXE)として一般の方法では防止できないため、ウィンドウの基本体系を利用しないキーボード入力方法が支援されなければならない。
【0009】
第3は、キーボードデータを受け取る応用プログラムに伝達する過程でのデータ流出を防止しなければならない。ハッカーらは、アプリケーションプログラムが使用するAPIやメッセージをフッキングしたりモニターしたりしてキーボードデータを流出させることができる。したがって、キーボードデータを安全にアプリケーションプログラムに伝達するための技術が発明されなければならない。
【0010】
キーボードデータ入力後ウェブブラウザで使用するためには、次の技術的課題がある。
【0011】
第1は、セキュリティ入力窓は、ウェブブラウザが支援可能なHTML文書で記述できる方法を使用しなければならない。セキュリティ入力窓は、ウィンドウの基本キーボード運用体系によらないため、ウェブブラウザと連動されて使用するための特別な方法で具現化されなければならない。
【0012】
第2は、ウェブブラウザ上の仮想装置ドライバ(VD)と通信、ハードウェアの制御のような低い水準の業務を行う方法を支援しなければならない。本発明のセキュリティ入力窓は、セキュリティキーボードドライバを用いて、キーボードハードウェアを直接制御することによって、セキュリティ入力窓を具現化しなければならないためである。
【図面の簡単な説明】
【0013】
【図1】本発明に係るキーボードデータセキュリティシステムの全体構成図である。
【図2】本発明に係るセキュリティ入力窓のキーボードデータフローチャートである。
【図3】本発明に係るセキュリティキーボードドライバとActiveXとの間の資料フローチャートである。
【図4】本発明に係るセキュリティ入力窓を適用したウェブブラウザの例示図である。
【図5】本発明に係るセキュリティ入力窓を適用したHTML例題ソースである。
【発明を実施するための形態】
【0014】
本発明の基本動作原理は、ユーザが入力したキーボードデータをマイクロソフトウィンドウの正規キーボード処理を用いないでセキュリティキーボードドライバとセキュリティ入力窓とを用いて、ウェブブラウザにデータを安全に伝達することである。
【0015】
図1は、本発明に係るキーボードデータセキュリティシステムの全体構成であって、ウェブブラウザに適用される場合を示したものである。
【0016】
マイクロソフトウィンドウの正規キーボード処理は、次の通りである。キーボードハードウェア101から発生する電気的信号は、マザーボードの8255に接続し、これはスキャンコードで表現されてキーボードデバイスドライバ102に入力される。キーボードの種類ごとに異なるスキャンコードは、キーボードデバイスドライバ(VKD,Virtual Keyboard Driver)によって、運営体制で標準として使用するキーボードメッセージに変換される。このようなキーボードメッセージは、システムメッセージ待機列103に格納され運営体制のRing3の構成要素であるUSER.EXEによって現在活性化されている仮想マシンVMに伝送される。仮想マシンに格納されたキーボードデータは、スレッドメッセージ待機列104を通してウェブブラウザ105に伝達されてキー入力作業を進行するようになる。
【0017】
しかし、発明のセキュリティ入力窓のキー入力作業は、上記の一般的方法とは異なって具現化される。
【0018】
セキュリティ入力窓でのキー入力セキュリティ作業の原理は、キーボードハードウェア101から発生する電気的信号はマザーボードの8255に接続され、これはスキャンコードで表現されてキーボードデバイスドライバ102に入力される。スキャンコードがキーボードデバイスドライバVKDに入力された後、キーボードデバイスドライバVKDはユーザ定義キーの運用のためにフッキング関数(ユーザ再定義関数)のVKD_Filter_Keyboard_Inputを呼び出す。仮りにキーボードデバイスドライバで呼び出したフッキング関数からキャリー(CARRY)をセットさせてかえせば、キーボードデバイスドライバはキーボードメッセージを無視し以後のキーボードメッセージ処理を中断する。セキュリティキーボードドライバにあるフッキング関数は、キーボードデータを自体待機列(Queue)に格納した後、キャリーをセットしてかえす。これはキーボードメッセージがシステムメッセージ待機列またはスレッドメッセージ待機列、ウェブブラウザに伝達されないため、メッセージフッキングによるキーボードデータの流出を防ぐ効果を持つ。ここでフッキング関数は、セキュリティキーボードドライバで作成されて運用される。
【0019】
セキュリティキーボードドライバは、上記の方法でVKD_Filter_Keyboard_Inputを再定義してメッセージフッキングを防止する。しかし上記の作業後にもマザーボードの8255にスキャンコードは残っているようになる。8255の特性上一般的な方法でスキャンコード痕跡データを消去することはできない。それで本発明は8255に残っているスキャンコード痕跡データを消去するために、キーボードハードウェアをコントロールする。
【0020】
痕跡データを消去する方法は、セキュリティキーボードドライバのフッキング関数であるVKD_Filter_keyboard_Inputが呼び出されると、port 60Hを介してキーボードハードウェアの一般的に定義された制御命令(Enable keyboard[F4H])をキーボードハードウェアに送出させる。制御命令を受けたキーボードハードウェアは、キーボードをイネーブルさせ(本来イネーブル状態であるが)、自体に格納されたキーボードデータを削除した後、8255にAcknowledgment(FAh)を送出する。この過程でキーボードハードウェアに格納されたキーボードデータが削除され、port 60Hの痕跡データは他の値(FAh)に変更されてスキャンコード痕跡データが消される効果を持つ。このような効果を利用してキーボードポートスキャンを利用したキーボードデータハッキングを防止する。
【0021】
セキュリティキーボードドライバのキーボードデータ待機列に格納されたキーボードデータをActiveX形式を持つセキュリティ入力窓110に伝達する方法は、セキュリティ入力窓により周期的にセキュリティキーボードドライバの待機列の状態を確認して、格納されたキーボードデータを伝達される形態である。キーボードデータを伝達されたセキュリティ入力窓は、スキャンコード形態のキーボードデータを文字形態に変換して格納し、ユーザの入力確認のために画面に出力する。
【0022】
ユーザがセキュリティ入力窓に入力を終了した後、伝送または確認ボタンを押して、次の業務に移ると、ウェブブラウザ112は、スクリプトを通してセキュリティ入力窓のデータプロパティを参照111してスクリプトが指定した業務を継続するようになる。
【0023】
図2は、キーボードデバイスドライバとセキュリティキーボードドライバとの間のインターフェスと運用流れを示すフローチャートである。まずユーザがキーボードを押すと、8255はキーボードからキーボードデータを受け取り、キーボード割込みが発生されてキーボードデバイスドライバを呼び出す(201)。呼び出されたキーボードデバイスドライバは、キーボードデータが格納されているポート60Hの値を読み出して特定レジスタに格納したあと、VKD_Filter_keyboard_inputのフッキング関数210を呼び出す。フッキング関数210は、セキュリティキーボードドライバが持っている一つの関数であって、セキュリティキーボードドライバがアクティブになったか否かを判断してアクティブになっていない場合は終了し、アクティブになっている場合はキーボードポート06hのキーボードデータ痕跡を上記の方法で削除したあと、自体待機列(Queue)にキーボードデータを格納する。そしてキーボードデバイスドライバでキーボードデータの使用を不可能にするため、キャリー(Carry)を指定したあと終了する。
【0024】
キーボードデバイスドライバは、フッキング関数を呼び出した後キャリーを確認して、既存のキーボードデバイスドライバを行なったり受け取ったキーボードデータを無視する。
【0025】
図3は、セキュリティ入力窓とセキュリティキーボードドライバとのインターフェスでキーボードデータを処理するフローチャートを示す。セキュリティ入力窓は、タイマーを利用して周期的301にセキュリティキーボードドライバと通信(function DeviceIoControl)してセキュリティキーボードデータを伝送303される。セキュリティキーボードデータを受信した後、セキュリティ入力窓は画面に出力したりキーボードデータを格納したりする業務を行う。
【0026】
図4は、セキュリティ入力窓404が適用されたウェブブラウザ405の例を示したことであって、HTMLコードは図5を参照する。図4のウェブページは、ユーザがキーボード401を利用してブラウザー405のセキュリティ入力窓404にウェブアドレスを入力した後ボタン406を押すと、該当ウェブページに移動する機能を持つ。
【0027】
図5は、HTMLコード形式で表現されるセキュリティ入力窓501とHTML形式で表現されるセキュリティ入力窓に入力されたキーボードデータの処理502を示している。
【0028】
HTML上でセキュリティ入力窓の記述は、ActiveX形式によって作成され、セキュリティ入力窓のデータ参照もActiveX属性(Property)様式に従う。
【0029】
次の例文502のようにセキュリティ入力窓は、HTMLコードでOBJECTとして表現される。
<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)

【0030】
次の例文501は、HTMLコード上でセキュリティ入力窓に入力されたキーボードデータを参照する方法を記述する。

<script language="javascript">
function geturl()
var ak = "http://" + akl1.value;
window.open(ak)

</script>
【0031】
上記のコードを呼び出すことによって、セキュリティ入力窓のデータを参照するようになる。
【産業上の利用可能性】
【0032】
1.本発明は、インターネット上ユーザが入力するキーボードデータを保護して、インターネット関連産業の信頼度向上と活性化に寄与する。
【0033】
インターネットバンキング、インターネット証券、インターネットゲーム、ウェブメール、ウェブコンテンツ、セキュリティ文書の作成などのようなインターネット関連業務において、キーボードによる業務は必須である。流出されたキーボードデータは、インターネット業務を行うのに多くの混乱と大きな被害を与えることができる。
【0034】
これにセキュリティキー入力窓を使用する場合、キーボードデータの流出が防止されて、上記のインターネット事業の信頼性の確保につながり、インターネット事業の活性化に多大な影響を及ぼすはずである。またキーボードデータの流出による直接的な被害も減るはずである。
【0035】
2.本発明は、ワクチンのような知られた悪性プログラムに対応して措置する方式でないハッキング技法に対して措置を行なうため、新しいプログラムや予め発見できなかったハッキングプログラムに対してもユーザのキーボードデータを保護することができる。
【0036】
3.本発明は、既存のハッキング方法ではキーボードデータを盗むことができないため、新しいハッキング方法を開発しなければならない。これはハッカーの活動領域を縮小する間接効果がある。
【0037】
4.本発明は、ソフトウェア基盤のセキュリティシステムであって、システムのセキュリティ性が低下する場合、即刻改善作業をすることによりセキュリティ性を回復できるため、キーボードデータセキュリティに対する信頼を高めてインターネット関連産業の信頼性を確保する効果がある。


【特許請求の範囲】
【請求項1】
コンピュータのキーボードデータ保護方法において、
(a) CPUがキーボードハードウェアのポートを介してキーボードデータを受信するステップと、
(b) 前記(a)ステップで受信されたキーボードデータをセキュリティキーボードドライバに格納するステップと、
(c) 前記キーボードデータが前記キーボードハードウェアから前記コンピュータのシステムメッセージ待機列またはスレッドメッセージ待機列に伝達されないように、キーボードドライバを非アクティブにするステップと、
(d) セキュリティ入力手段が前記(b)ステップで格納されたキーボードデータを読み出すステップと、
(e) 前記セキュリティ入力手段が前記(d)ステップで読み出されたキーボードデータを現在アクティブになっているアプリケーションプログラムに伝送するステップと、
を含むことを特徴とするコンピュータのキーボードデータ保護方法。
【請求項2】
前記セキュリティ入力手段は、
Active X形式から構成されることを特徴とする請求項1に記載のコンピュータのキーボードデータ保護方法。
【請求項3】
コンピュータのキーボードデータを保護するために、コンピュータに、
(a) CPUがキーボードハードウェアのポートを介してキーボードデータを受信する過程と、
(b) 前記(a)過程で受信されたキーボードデータをセキュリティキーボードドライバに格納する過程と、
(c) 前記キーボードデータが前記キーボードハードウェアから前記コンピュータのシステムメッセージ待機列またはスレッドメッセージ待機列に伝達されないように、キーボードドライバを非アクティブにする過程と、
(d) セキュリティ入力手段が前記(b)過程で格納されたキーボードデータを読み出す過程と、
(e) 前記セキュリティ入力手段が前記(d)過程で読み出されたキーボードデータを現在アクティブになっているアプリケーションプログラムに伝送する過程と、
を実現させるためのプログラムを記録したコンピュータで読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate


【公開番号】特開2013−47977(P2013−47977A)
【公開日】平成25年3月7日(2013.3.7)
【国際特許分類】
【出願番号】特願2012−241850(P2012−241850)
【出願日】平成24年11月1日(2012.11.1)
【分割の表示】特願2003−523342(P2003−523342)の分割
【原出願日】平成14年6月20日(2002.6.20)
【公序良俗違反の表示】
(特許庁注:以下のものは登録商標)
1.JAVA
【出願人】(504072967)テクオス カンパニー リミテッド (1)
【氏名又は名称原語表記】TECHOUS CO., LTD.
【住所又は居所原語表記】828−53,Baek−ak Bldg. 5F, Yuksam−dong, Kangnam−gu, Seoul 135−080 (KR)
【出願人】(504072989)
【氏名又は名称原語表記】NAM, Choong−Hee
【住所又は居所原語表記】828−53,Baek ak Bldg 5F, Yuksam−dong, Kangnam−gu, Seoul 135−080 (KR)
【Fターム(参考)】