(57)【要約】  本発明はキーボードデータの流出を防ぐ保安プログラムとしてウェブブラウザや一般的な応用プログラムで用いられるActiveXの形態を持って追加的なH/Wを使用しないで既存のキーボードを利用してキーボードデータを流出させないソフトウェア基盤の保安入力窓である。本発明はインターネット上のウェブブラウザや一般応用プログラム上でキーボードデータを保護するのに目的がある。
2005509214.tif 000002
【特許請求の範囲】
【請求項１】
キーボードデータの流出防止のために痕跡データを消す機能を持つ保安キーボードドライバー。
【請求項２】
請求項１記載の保安キーボードドライバーと連動になって動作する保安機能を持つActiveXコントロール。
【請求項３】
キーボードドライバー(VKD)をHOOKして正規キーボードドライバー処理ルーチン(KERNEL)でない別途のキーボードメッセージ処理経路を持つ保安キーボードドライバー。
【請求項４】
請求項３記載の保安キーボードドライバーと連動になって動作する保安機能を持つActiveXコントロール。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はキーボードデータ流出を防ぐ保安プログラムとしてウェブブラウザや一般的な応用プログラムで用いられるActive X(マイクロソフト社が開発したPCプラットホームとインターネットを連結させる統合プラットホーム技術)の形態を持って追加的なH/Wを使用しないで既存のキーボードを利用してキーボードデータを流出させないソフトウェア基盤の保安入力窓である。
【背景技術】
【０００２】
インターネット上でのキーボードデータ保安関連の従来技術としては2001年 1月に発表したセーフテク(www.esafetek.com)の製品名"キス"とJAVAを利用した仮想キーボード(Virtual Keyboard)等と同じキーボードでない他の入力手段(方法)を利用してキーボード入力を代わりに遂行するようにした装置などがある。しかしこれら製品中で前者はH/W基盤でキーボードデータを保護するために特定装置が必要だという特性上インターネットと同じ大規模な汎用サービスを遂行するには難しさが多くて後者である他の入力手段を利用した保安はユーザの未熟と不便さによって積極的な使用を出来ず状況である。これにインターネットでのキーボードデータは個人の重要な情報を持っていて保安が至急さにもかかわらず汎用製品が市場に発表出来ないことが今の現実である。
【０００３】
本発明はユーザの基本入力方法であるキーボードを使用して入力データを安全で便利に使用することができるようにすることに重点をおいて考案するようになった。
【発明の開示】
【発明が解決しようとする課題及び課題を解決するための手段】
【０００４】
本発明はインターネット上での個人情報の入力及びメールの作成、書類の作成などの資料を入力する時キーボードデータがハッカーにより流出になることを防止することが目的である。
【０００５】
本発明をなすためには基本的にキーボードデータ保護機能、ウェブブラウザ支援機能を揃えなければならない。
【０００６】
まずキーボードデータ保安をなすための技術的課題は次の通りである。最初はキーボードハードウェアでキーボードデバイスドライバーでスキャンコードを伝送した後、I/Oポート60Hに残っているようになるキーボードデータの流出を防止するべきである。しかし、ウィンドウの特性とハードウェアの特性上一般的なアプリケーションでは正しく処理出来なくてRing 0に接近可能な仮想装置ドライバー(VxD)を使用して流出を防止するべきである。
【０００７】
二つ目はスキャンコードをキーボードデバイスドライバーがキーボードデータに変換してシステムメッセージキューへ伝達する過程でAPIフッキング、メッセージフッキングと同じ外部プログラムにより流出できる。この過程はウィンドウの基本運用体系(USER.EXE)として一般の方法では防止出来なくてウィンドウの基本体系を利用しないキーボード入力方法が支援にならなければならない。
【０００８】
三つ目はキーボードデータを入力受ける応用プログラに伝達する過程でのデータ流出を防止するべきである。ハッカーらはアプリケーションが使用するAPIやメッセージをフッキングしたりモニターしたりしてキーボードデータを流出させることができる。したがってキーボードデータを安全にアプリケーションに伝達するための技術が発明にならなければならない。
【０００９】
キーボードデータ入力後ウェブブラウザで使用するためには次の技術的課題を持つ。最初は保安入力窓はウェブブラウザが支援可能なHTML文書で記術が可能な方法を使用するべきである。保安入力窓はウィンドウの基本キーボード運用体系をしたがわないのでウェブブラウザと連動になって使用するための特別な方法で具現ならなければならない。
【００１０】
二つ目はウェブブラウザ上の仮想装置ドライバー(VxD)と通信、ハードウェアの制御のような低い水準の業務を遂行する方法を支援するべきである。本発明の保安入力窓は保安キーボードドライバーを使用してキーボードハードウェアを直接制御して保安入力窓を具現するべきなためである。
【発明を実施するための最良の形態】
【００１１】
本発明の基本動作原理はユーザが入力したキーボードデータをマイクロソフトウィンドウの正規キーボード処理を使用しないで保安キーボードドライバーと保安入力窓を使用してウェブブラウザにデータを安全に伝達するものである。
【００１２】
図1は本発明に係るキーボードデータ保安システムの全体構成としてウェブブラウザに適用される場合を作図した。
【００１３】
マイクロソフトウィンドウの正規キーボード処理は次の通りである。キーボードハードウェア(101)から発生する電気的信号はマザーボードの8255に連結してこれはスキャンコードで表現されてキーボードデバイスドライバー(102)に入っていくようになる。キーボードの種類ごとに他のスキャンコードはキーボードデバイスドライバー(VKD,Virtual  KeyboardDriver)によって運営体制で標準として使用するキーボードメッセージに変換になるようになる。このようなキーボードメッセージはシステムメッセージ待機列(103)に保存されて運営体制のRing 3の構成要素であるUSER.EXEによって現在活性化になっている仮想マシン(VM)に伝送されるようになるものである。仮想マシンに保存されたキーボードデータはスレッドメッセージ待機列(104)を通しウェブブラウザ(105)に伝えられてキー入力作業を進行するようになる。
【００１４】
そのような発明の保安入力窓のキー入力作業は上記の一般的方法とは違うように具現される。
【００１５】
保安入力窓でのキー入力保安作業の原理はキーボードハードウェア(101)から発生する電気的信号はマザーボードの8255に連結してこれはスキャンコードで表現されてキーボードデバイスドライバー(102)に入っていくようになる。スキャンコードがキーボードデバイスドライバー(VKD)に入力された後キーボードデバイスドライバー(VKD)はユーザ定義キーの運用のためにフッキング関数(ユーザ再定義関数)のVKD_Filter_Keyboard_Inputを呼び出しする。仮りにキーボードデバイスドライバーで呼び出ししたフッキング関数でキャリー(CARRY)をSETさせてかえせばキーボードデバイスドライバーはキーボードメッセージを無視して以後のキーボードメッセージ処理を中断するようになる。保安キーボードドライバーにあるフッキング関数はキーボードデータを自体待機列(Queue)に保存した後キャリーをSETしてかえす。これはキーボードメッセージがシステムメッセージ待機列またはスレッドメッセージ待機列、ウェブブラウザに伝えられなくてメッセージフッキングを通したキーボードデータの流出を防ぐ効果を持つ。ここでフッキング関数は保安キーボードドライバーで作成されて運用になる。
【００１６】
保安キーボードドライバーは上記の方法でVKD_Filter_Keyboard_Inputを再定義してメッセージフッキングを防止する。しかし上記の作業後にもマザーボードの8255にスキャンコードは残っているようになる。8255の特性上一般的な方法でスキャンコード痕跡データを消すことはできない。それで本発明は8255に残っているスキャンコード痕跡データを消すためにキーボードハードウェアをコントロールするようになる。
【００１７】
痕跡データを消す方法は保安キーボードドライバーのVKD_Filter_Keyboard_Inputをフッキング関数が呼び出しになればキーボードハードウェアの一般的に定義される制御命令(Enable keyboard[F4H])をPort 60hに送出させる。制御命令を受けたキーボードハードウェアはキーボードをEnabledさせて(元来Enabled状態であるが)自体に保存されたキーボードデータを削除した後8255に Acknowledgment(FAh)を送出する。この過程でキーボードハードウェアに保存されたキーボードデータが削除されて、Port 60hの痕跡データは他の値(FAh)に変更になってスキャンコード痕跡データが消されるようにする効果を持つ。このような効果を利用してキーボードポートスキャンを利用したキーボードデータハッキングを防止する。
【００１８】
保安キーボードドライバーのキーボードデータ待機列に保存されたキーボードデータをActiveX形態を持つ保安入力窓(110)に伝達する方法は保安入力窓から周期的に保安キーボードドライバーの待機列の状態を確認して保存されたキーボードデータを伝達受ける形態である。キーボードデータを伝達受けた保安入力ウィンドウはスキャンコード形態のキーボードデータを文字形態に変換して保存してユーザの入力確認のために画面に出力する。
【００１９】
ユーザが保安入力ウィンドウに入力を終了した後伝送または確認ボタンを押さえて、次に業務に移るようになればウェブブラウザ(112)はスクリプトを通して保安入力窓のデータプロパティを参照(111)してスクリプトが指定した業務を継続進行するようになる。
【００２０】
図2はキーボードデバイスドライバーと保安キーボードドライバー間のインターフェスと運用流れを表すフローチャートである。まずユーザがキーボードを押さえれば8255でキーボードデータを受けてキーボード割込みが発生になってキーボードデバイスドライバーを呼び出し(201)するようになる。呼び出しを受けたキーボードデバイスドライバーはキーボードデータが保存されているポート60Hの値を読んで来て特定レジスタに保存したあとVKD_Filter_Keyboard_inputのフッキング関数(210)を呼び出しする。フッキング関数(210)は保安キーボードドライバーが持っている一つの関数として保安キーボードドライバーがアクティブになったのかを判断して活性化にならない場合終了し、活性化になった場合キーボードポート(06h)のキーボードデータ痕跡を上記の方法で削除したあと自体待機列(Queue)にキーボードデータを保存する。そしてキーボードデバイスドライバーでキーボードデータが使用できなくキャリー(Carry)を指定したあと終了する。
【００２１】
キーボードデバイスドライバーはフッキング関数呼び出した後キャリーを確認して既存のキーボードデバイスドライバーを遂行したり入力受けたキーボードデータを無視するようになる。
【００２２】
図3は保安入力窓と保安キーボードドライバーとのインターフェスにキーボードデータを処理するフローチャートを示す。保安入力窓はタイマーを利用して周期的(301)に保安キーボードドライバーと通信(function DeviceIoControl)して保安キーボードデータを伝送(303)受ける。保安キーボードデータを受信した後保安入力窓は画面に出力したりキーボードデータを保存したりする業務を行う。
【００２３】
図4は保安入力窓(404)が適用されたウェブブラウザ(405)の例を表したこととしてHTMLコードは図5を参照する。図4のウェブページはユーザがキーボード(401)を利用してブラウザー(405)の保安入力窓(404)にウェブ住所を入力した後ボタン(406)を押さえれば該当のウェブページに移動する機能を持つ。
【００２４】
図5は例題ウェブページのHTMLコードとして保安入力窓がHTMLで技術方法(501)と保安入力窓に入力されたキーボードデータをHTML上で処理する方法(502)を記述している。
【００２５】
HTML上で保安入力窓の技術はActiveX様式によって作成されて保安入力窓のデータ参照やはりActiveX属性(Property)様式に従う。
【００２６】
次の例文(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)
【００２７】
次の例文(501)はHTMLコード上保安入力窓に入力されたキーボードデータを参照する方法を記述する。
<script language="javascript">
function geturl() 
var ak = "http://" + akl1.value;
window.open(ak)
</script> 
【００２８】
上記のコードでakl1.valueを呼び出しするため保安入力窓のデータを参照するようになる。
【産業上の利用可能性】
【００２９】
1.本発明はインターネット上ユーザが入力するキーボードデータを保護してインターネット関連産業の信頼度の向上と活性化に寄与する。
【００３０】
インターネットバンキングインターネット証券、インターネットゲーム、ウェブメール、ウェブコンテンツ、保安文書の作成などのようなインターネット関連業務においてキーボードを通した業務は必須である。流出になったキーボードデータは業者でインターネット業務を遂行するのに多くの混乱と大きい被害を与えることができる。
【００３１】
これに保安キー入力窓を使用する場合キーボードデータの流出が防止になって上記のインターネット事業の信頼性の確保につながりインターネット事業の活性化に多大な影響を及ぼすはずである。またキーボードデータの流出による直接的な避けても減るはずである。
【００３２】
2.本発明はワクチンと共に知らされた悪性プログラムに対応して措置を行なう方式でないハッキング技法に対して措置を行なうために新しいプログラムや予め発見できないハッキングプログラムに対してもユーザのキーボードデータを保護することができる。
【００３３】
3.本発明は既存のハッキング方法ではキーボードデータを盗むことができなくて新しいハッキング方法を開発するべきである。このというハッカーの活動領域を縮小させる間接効果がある。
【００３４】
4.本発明はソフトウェア基盤の保安システムとしてシステムの保安性が落ちる場合、即刻改善作業により保安性を回復できてキーボードデータ保安に対する信頼を高めてインターネット関連産業の信頼性を確保する効果がある。
【図面の簡単な説明】
【００３５】
【図１】本発明に係るキーボードデータ保安システムの全体構成図である。
【図２】本発明に係る保安入力窓のキーボードデータフローチャートである。
【図３】本発明に係る保安キーボードドライバーとActive  X間の資料フローチャートである。
【図４】本発明に係る保安入力窓を適用したウェブブラウザの例示図である。
【図５】本発明に係る保安入力窓を適用したHTML例題ソースである。
【図１】
2005509214.tif 000003
【図２】
2005509214.tif 000004
【図３】
2005509214.tif 000005
【図４】
2005509214.tif 000006
【図５】
2005509214.tif 000007
【国際調査報告】
2005509214.tif 000008