(57)【特許請求の範囲】
【請求項１】
カーネル領域で駆動する保安ドライバとユーザー領域で駆動する保安コントローラとを備え、
前記保安ドライバは、
キーボードポートに入力されるスキャンコードから文字／数字キーのキーダウンまたはキーアップ情報を抽出する文字／数字キー入力抽出部と、
前記スキャンコードから特殊制御キーのキーダウンおよびキーアップ情報を抽出する特殊制御キー入力抽出部と、
前記文字／数字キー入力抽出部で抽出された前記文字／数字キーのキーダウン値またはキーアップ値と前記特殊制御キーのキーダウン値およびキーアップ値を順次暗号化する暗号化部とを含み、
前記保安コントローラは、
前記保安ドライバの暗号化部で暗号化されて入力された前記文字／数字キーのキーダウン値またはキーアップ値と前記特殊制御キーのキーダウン値およびキーアップ値を復号化する復号化部と、
前記復号化部で復号化された前記特殊制御キーのキーダウン値およびキーアップ値に応じて特殊制御キー状態をオンまたはオフに設定して格納する特殊制御キー状態格納部と、
前記復号化部で復号化された前記文字／数字キーのキーダウン値またはキーアップ値と前記特殊制御キー状態格納部に格納された特殊制御キー状態のオンまたはオフ情報を組み合わせて文字、数字または特殊文字を認識する入力データ認識部とを含み、
前記暗号化部で暗号化された前記文字／数字キーのキーダウン値またはキーアップ値と前記特殊制御キーのキーダウン値およびキーアップ値を格納し、前記復号化部に提供する共有メモリをさらに含むことを特徴とするキーボード入力データの保安システム。
【請求項２】
前記特殊制御キー状態格納部は、前記復号化部で復号化されたスキャンコードが、特殊制御キーのキーダウンであれば、前記キーダウンされた特殊制御キー状態をオンに設定し、特殊制御キーのキーアップであれば、前記キーアップされた特殊制御キー状態をオフに設定することを特徴とする、請求項１に記載のキーボード入力データの保安システム。
【請求項３】
カーネル領域の保安ドライバがキーボードポートに入力されるスキャンコードから文字／数字キーのキーダウンまたはキーアップ情報を抽出する文字／数字キー入力抽出ステップと、
前記保安ドライバが前記スキャンコードから特殊制御キーのキーダウンおよびキーアップ情報を抽出する特殊制御キー入力抽出ステップと、
前記保安ドライバが前記文字／数字キー入力抽出ステップで抽出された前記文字／数字キーのキーダウン値またはキーアップ値と前記特殊制御キー入力抽出ステップで抽出された前記特殊制御キーのキーダウン値およびキーアップ値を順次暗号化する暗号化ステップと、
ユーザー領域の保安コントローラが前記暗号化ステップで暗号化された前記文字／数字キーのキーダウン値またはキーアップ値と前記特殊制御キーのキーダウン値およびキーアップ値を復号化する復号化ステップと、
前記保安コントローラが前記復号化ステップで復号化された前記特殊制御キーのキーダウン値およびキーアップ値に応じて特殊制御キー状態をオンまたはオフに設定して格納する特殊制御キー状態格納ステップと、
前記復号化ステップで復号化された前記文字／数字キーのキーダウン値またはキーアップ値と前記特殊制御キー状態格納ステップで格納された特殊制御キー状態のオンまたはオフ情報を組み合わせて文字、数字または特殊文字を認識する入力データ認識ステップとを含み、
前記保安ドライバは、前記暗号化ステップで暗号化された前記文字／数字キーのキーダウンまたはキーアップ値と前記特殊制御キーのキーダウンおよびキーアップ値を共有メモリに格納することを特徴とするキーボード入力データの保安方法。
【請求項４】
前記特殊制御キー状態格納ステップは、前記復号化ステップで復号化されたスキャンコードが特殊制御キーのキーダウンであれば、前記キーダウンされた特殊制御キー状態をオンに設定し、特殊制御キーのキーアップであれば、前記キーアップされた特殊制御キー状態をオフに設定することを特徴とする、請求項３に記載のキーボード入力データの保安方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、キーボード入力データの保安システムおよび方法に関し、より詳しくは、キーボード入力データが高速で入力されても特殊キー処理を正確に行うことができる保安システムおよび方法に関する。
【背景技術】
【０００２】
コンピュータの入力手段としてキーボードが最も普遍的に使われる。このようなキーボードは実行する命令を直接入力させるのに便利なものであり、英文およびハングルまたはその他の自国文字に設定される複数の文字キーと、空欄を入力するスペースキー、０〜９までの数字キー、各プログラムで指定した機能を遂行できるファンクションキー（Ｆ１〜Ｆ１２）、特殊制御キー（例えば、シフト（ｓｈｉｆｔ）キー、コントロール（Ｃｔｒｌ）キー、オルト（Ａｌｔ）キー、キャプスロック（Ｃａｐｓ  Ｌｏｃｋ）キーなど）、カーソル移動キーを備えている。キーボードのキーを操作すれば、そのキーコードがコンピュータのカーネル領域とユーザー領域において順次処理される。
【０００３】
一方、インターネットが広く普及されることにより、ユーザはインターネットバンキング、オンラインショッピングなどのサービスを利用する。このようなインターネットバンキングやオンラインショッピング時、ユーザは該当ウェブサイトに各種の個人情報（ウェブサイト接続のためのパスワード、カード番号、住民番号など）を入力する。この個人情報は、通常、文字キーと数字キーを入力するように設定されており、特殊制御キーを押しながら文字キーと数字キーを入力することが許容される。また、特殊制御キーを押しながら入力する文字キーおよび数字キーと、特殊制御キーを押さないまま入力する文字キーおよび数字キーとを区別している。例えば、数字キー「２」だけを押せば数字「２」と認識するが、シフト（ｓｈｉｆｔ）キーと数字キー「２」を同時に押せば特殊文字「＠」と認識する。また、文字キー「ａ」だけを押せば小文字「ａ」と認識するが、シフト（ｓｈｉｆｔ）キーと文字キー「ａ」を同時に押せば大文字「ａ」と認識する。
【０００４】
クライアントシステムには、サービス提供ウェブサイトとの通信時、ユーザが入力した個人情報が情報侵害道具によってハッキングされないようにする保安プログラムが設置される。ユーザクライアントに設置された保安プログラムがキーボード入力データを処理する過程を説明すれば次の通りである。保安プログラムは、通常、コンピュータのカーネル領域において動作するキーボード保安ドライバと、ユーザー領域において動作する保安コントローラとからなる。
【０００５】
図１は、従来の保安プログラムのキーボード入力データの保安方法を示す動作フローチャートである。
キーボード保安ドライバは、キーボードのキー入力があれば（Ｓ１１）、該当入力されたキーが一般文字／数字キーであるか特殊制御キーであるかを判断する（Ｓ１２）。ステップＳ１２において、入力されたキーが特殊制御キーであれば、その入力を無視し、ステップＳ１１に戻って次のキー入力を待機する。ステップＳ１２において、入力されたキーが特殊制御キーではなく、一般文字／数字キーであれば、その文字／数字キーデータを暗号化して共有メモリに格納する（Ｓ１３）。
【０００６】
ユーザー領域の保安コントローラは共有メモリに格納された文字／数字キーデータを読み取り（Ｓ１４）、ウィンドウオペレーティング・システム（ＯＳ）でサポートするＡＰＩ関数を利用して特殊制御キーの状態を確認するが（Ｓ１５）、特殊制御キーが押された状態であれば（ＯＮ）、特殊制御キーと文字／数字キーデータを組み合わせ（Ｓ１６）、その組み合わせに応じた文字または特殊文字を認識する（Ｓ１７）。一方、ステップＳ１５において、特殊制御キーが押された状態でなければ（ＯＦＦ）、文字／数字キーデータに該当する数字または文字を認識する（Ｓ１７）。応用プログラムは認識された文字や数字をそのまま画面に表示することもでき、ユーザが入力したデータと関係ない特定の特殊文字（例えば、＊）を表示することもできる。
【０００７】
ユーザが「１２３４！＠＃＄」を順次入力する場合、カーネル領域である保安ドライバにおいては、数字キー入力値である「１２３４１２３４」が処理され、保安コントローラにおいて、本来データに復元して応用プログラムに伝達する過程で、シフト（ｓｈｉｆｔ）キーの押された状態（ＯＮ／ＯＦＦ）に応じて「１２３４！＠＃＄」として処理するようになる。シフト（ｓｈｉｆｔ）キーが押されたか否かはＧｅｔＫｅｙＳｔａｔｅ  ＡＰＩ関数を利用して得られる。このような従来のキー入力データ保安方法は、ユーザが直接キーボードを入力する場合には、ユーザが入力した文字または数字または特殊文字を正確に処理して認識することができる。
【０００８】
一方、最近、コンピュータにＲＦカードリーダー、指紋認識機、磁気ストライプリーダー（ＭＳＲ）などのようなハードウェア基盤の高速データ入力装置またはマクロ機能のようなソフトウェア基盤の高速データ入力装置を利用して、パスワードなどのような保安が要求されるデータを入力している。このような高速データ入力装置は、キーボードと一体型で構成されたり分離型で構成されたりもするが、通常、キーボードインターフェースを利用してコンピュータのキーボードポートにスキャンコードを入力する。通常、キーボード入力はキーダウン（↓）とキーアップ（↑）とからなり、キーダウンまたはキーアップ時に該当キーデータに対する処理が行われる。通常のキーボード入力と同じように高速データ入力装置においてもキーダウン（↓）とキーアップ（↑）とからなるデータが入力される。
【０００９】
例えば、上記の「１２３４！＠＃＄」の場合、「１↓、１↑、２↓、２↑、３↓、３↑、４↓、４↑、ＳＨＩＦＴ↓、１↓、１↑、ＳＨＩＦＴ↑、ＳＨＩＦＴ↓、２↓、２↑、ＳＨＩＦＴ↑、ＳＨＩＦＴ↓、３↓、３↑、ＳＨＩＦＴ↑、ＳＨＩＦＴ↓、４↓、４↑、ＳＨＩＦＴ↑」で入力されるか、あるいは「１↓、１↑、２↓、２↑、３↓、３↑、４↓、４↑、ＳＨＩＦＴ↓、１↓、１↑、２↓、２↑、３↓、３↑、４↓、４↑、ＳＨＩＦＴ↑」で入力される。
【００１０】
このような高速データ入力装置を介して入力されるデータはその速度が非常に速いため、この高速の入力データを従来の保安プログラムで保安する場合にはエラーが発生する。
すなわち、従来の保安プログラムは、文字／数字キー入力データに対しては、保安ドライバを介して暗号化して保安処理し、本来データに復号化する過程でウィンドウオペレーティング・システム（ＯＳ）でサポートするＡＰＩ関数を利用して特殊制御キーが設定されているか否かを確認する。このように、従来には文字／数字キーを処理する過程と特殊文字キーを処理する過程が相異なり、文字／数字キーが処理される時間に比べて、保安コントローラがＡＰＩ関数の状態読み込む時間が多少遅れる。このため、既に特殊制御キーの押され状態が変更（キーアップからキーダウンにまたはキーダウンからキーアップに）されたのにＡＰＩ関数の状態は変更されない時間偏差が発生する。例えば、上記例のように、ユーザが「１２３４！＠＃＄」を順次入力する場合、保安プログラムにおいて「！＠」を処理する時までもシフト（ｓｈｉｆｔ）キーの状態を示すＧｅｔＫｅｙＳｔａｔｅ  ＡＰＩ関数は依然としてキーダウンされないものに設定され、最終的に応用プログラムに「１２３４１２＃＄」が入力される。
【００１１】
このように、従来の保安プログラムは、高速データ入力装置から特殊文字が入力される場合、これを正常に処理できずにエラーが発生するため、現在市販中の全ての保安プログラムは、高速データ入力装置を介して入力されるデータを保安しない。すなわち、従来には、高速データ入力装置から入力されるデータを保安できない問題点がある。
【発明の概要】
【発明が解決しようとする課題】
【００１２】
上述した従来技術の問題点を解決するために導き出された本発明の目的は、高速データ入力装置から高速で入力されるデータの保安に適用することができるキーボード入力データの保安システムおよび方法を提供することにある。
【課題を解決するための手段】
【００１３】
本発明に係るキーボード入力データの保安システムは、キーボードポートに入力されるスキャンコードから文字／数字キーのキーダウンおよびキーアップ情報を抽出する文字／数字キー入力抽出部と、前記スキャンコードから特殊制御キーのキーダウンおよびキーアップ情報を抽出する特殊制御キー入力抽出部と、前記文字／数字キーのキーダウンまたはキーアップ情報と前記特殊制御キーのキーダウンおよびキーアップ情報を組み合わせて文字、数字または特殊文字を認識する入力データ認識手段とを含むことを特徴とする。
【００１４】
また、本発明に係るキーボード入力データの保安方法は、保安ドライバがキーボードポートに入力される文字／数字キーおよび特殊制御キーのキーダウンおよびキーアップ情報を抽出する第１ステップと、保安コントローラが前記抽出された特殊制御キーのキーダウンおよびキーアップ情報に応じてＡＰＩ関数の状態をオン／オフに設定する第２ステップと、前記保安コントローラが前記抽出された文字／数字キーのキーダウンまたはキーアップ情報と前記第２ステップで設定された前記ＡＰＩ関数のオン／オフ状態を利用して文字、数字または特殊文字を認識する第３ステップとを含むことを特徴とする。
【発明の効果】
【００１５】
本発明によれば、一般のキーボード入力データをはじめとし、機械的に速く入力される高速入力データの保安に適用することができるため、インターネットを利用した各種産業の活性化に寄与できる効果がある。
【図面の簡単な説明】
【００１６】
【図１】従来の保安プログラムのキーボード入力データの保安方法を示す動作フローチャートである。
【図２】本発明の一実施形態によるキーボード入力データ保安システムを示す機能ブロック図である。
【図３】本発明の一実施形態によるキーボード入力データ保安方法を示す動作フローチャートである。
【発明を実施するための形態】
【００１７】
本発明に係るキーボード入力データの保安システムは、カーネル領域で駆動する保安ドライバとユーザー領域で駆動する保安コントローラとを備える。
前記保安ドライバは、キーボードポートに入力されるスキャンコードから文字／数字キーのキーダウンまたはキーアップ情報を抽出する文字／数字キー入力抽出部と、前記スキャンコードから特殊制御キーのキーダウンおよびキーアップ情報を抽出する特殊制御キー入力抽出部と、前記文字／数字キー入力抽出部で抽出された前記文字／数字キーのキーダウン値またはキーアップ値と前記特殊制御キーのキーダウン値およびキーアップ値を順次暗号化する暗号化部とを含む。
【００１８】
前記保安コントローラは、前記保安ドライバの暗号化部で暗号化して入力された前記文字／数字キーのキーダウン値またはキーアップ値と前記特殊制御キーのキーダウン値およびキーアップ値を復号化する復号化部と、前記復号化部で復号化された前記特殊制御キーのキーダウン値およびキーアップ値に応じて特殊制御キー状態をオンまたはオフに設定して格納する特殊制御キー状態格納部と、前記復号化部で復号化された前記文字／数字キーのキーダウン値またはキーアップ値と前記特殊制御キー状態格納部に格納された特殊制御キー状態のオンまたはオフ情報を組み合わせて文字、数字または特殊文字を認識する入力データ認識部とを含む。
【００１９】
以下、添付した図面を参照し、本発明の一実施形態によるキーボード入力データの保安システムおよび方法をより詳細に説明する。
図２は、本発明の一実施形態によるキーボード入力データ保安システムを示す機能ブロック図である。
【００２０】
本発明のキーボード入力データ保安システムは、カーネル領域で動作する保安ドライバ２２０と、ユーザー領域で動作する保安コントローラ２４０とからなる。保安ドライバは、キーボード入力に対して暗号化した後に共有メモリに格納し、保安コントローラは、共有メモリから暗号化されたデータを復号化した後にキーボード入力値を認識する。
【００２１】
保安ドライバ２２０は、キーボードポート２１０に入力されるスキャンコードから文字／数字キーのキーダウンおよびキーアップ情報を抽出する文字／数字キー入力抽出部２２１と、前記スキャンコードから特殊制御キーのキーダウンおよびキーアップ情報を抽出する特殊制御キー入力抽出部２２２と、前記文字／数字キーのキーダウンおよびキーアップ情報と前記特殊制御キーのキーダウンおよびキーアップ情報を順次暗号化して共有メモリ２４０に格納する暗号化部２２３と、前記共有メモリ２４０に格納された暗号化された情報を復号化する復号化部２４１と、前記復号化部２４１で復号化された特殊制御キーのキーダウンおよびキーアップ情報に応じてＡＰＩ関数の状態を設定する特殊制御キー状態格納部２４２と、前記特殊制御キー状態格納部２４２で設定されたＡＰＩ関数と前記復号化部で復号化された文字／数字キーのキーダウンまたはキーアップ情報を利用して文字および／または数字を認識する入力データ認識部２４３とを含む。
【００２２】
本発明は、カーネル領域において、キーボードポートに入力される全てのキー（文字キー／数字キー／特殊制御キー）のキーダウンおよびキーアップ情報を全て暗号化して順次ユーザー領域に伝達し、ユーザー領域において、特殊制御キーのキーダウンおよびキーアップ情報を利用してＡＰＩ関数の状態を設定した後、その設定されたＡＰＩ関数を利用して文字および／または数字を認識する。
【００２３】
図３は、本発明の一実施形態によるキーボード入力データ保安方法を示す動作フローチャートである。
キーボードポートにスキャンコードが入力されれば（Ｓ３１）、カーネル領域の保安ドライバは、入力キー情報と入力キーのキーアップ／キーダウン情報を含むスキャンコードを暗号化して共有メモリに格納する（Ｓ３２）。
【００２４】
ユーザー領域の保安コントローラは、共有メモリから暗号化されたスキャンコードを読み取って復号化し（Ｓ３３）、復号化されたスキャンコードが特殊制御キーのキーダウンであるか否かを判断する（Ｓ３４）。ステップＳ３４の判断結果、特殊制御キーのキーダウンであれば、該当特殊制御キーのキーダウンを表示するＡＰＩ関数をオン（ＯＮ）に設定し（Ｓ３５）、ステップＳ３４の判断結果、特殊制御キーのキーダウンでなければ、特殊制御キーのキーアップであるか否かを判断する（Ｓ３５）。ステップＳ３５の判断結果、特殊制御キーのキーアップであれば、ＡＰＩ関数をオフ（ＯＦＦ）に設定し（Ｓ３７）、ステップＳ３５の判断結果、特殊制御キーのキーアップでなければ、ＡＰＩ関数のオン／オフ状態と入力された文字／数字キー情報を利用して数字、文字、または特殊文字を認識する。全ての入力キーを認識する時までステップＳ３３〜ステップＳ３９を繰り返し実行する（Ｓ３９）。
【００２５】
カーネル領域の保安ドライバとユーザー領域の保安コントローラ間の通信は通常のオペレーティングシステムに従う。
以上、本発明に対する技術思想を添付図面と共に記述したが、これは、本発明の最も良好な実施形態を例示的に説明したものであって、本発明を限定するものではない。また、本技術分野の通常の知識を有した者であれば、誰もが本発明の技術思想の範疇から離脱しない範囲内で多様な変形および模倣が可能であるということは明らかである。
【図１】
0005587401.tif 000002
【図２】
0005587401.tif 000003
【図３】
0005587401.tif 000004