(57)【要約】【課題】空間及び時間的検疫所拡張を利用してウイルス及びハッキングのような攻撃から重要情報が流出されることを防止するための装置及び方法を提供する。【解決手段】本発明によるハッキング防止装置は、コンピュータシステムのメモリ、レジスタ、ポートのうち少なくとも１つの状態を変更する状態変更手段と、変更されたコンピュータシステムの状態情報を計算する状態計算手段と、コンピュータシステムの保安性危害要素を除去する保安性危害要素除去手段と、検疫所に状態計算手段によって計算された状態情報を送信し、状態情報に基づいてコンピュータシステムを制御するための制御情報を検疫所から受信するための通信手段と、コンピュータシステムの状態が完全な状態の場合、検疫所から保安情報を受信し、特定プログラムを行う保安目的手段とを備え、状態情報と制御情報とは、コンピュータシステムが完全になるまで繰り返して送信または受信される。【選択図】図２
2010152898.tif 000002
【特許請求の範囲】
【請求項１】
プロセッサを備えたコンピュータシステムのハッキング防止装置であって、
前記装置は、安全性が確保された検疫所と、
前記検疫所から前記プロセッサに攻撃が不可能な状態を具現する検疫所拡張手段と
を備えたことを特徴とするハッキング防止装置。
【請求項２】
前記検疫所拡張手段は、
前記コンピュータシステムのメモリ、レジスタ、ポートのうち少なくとも１つの状態を変更する状態変更手段と、
前記変更されたコンピュータシステムの状態情報を計算する状態計算手段と、
前記コンピュータシステムの保安性危害要素を除去する保安性危害要素除去手段と、
前記検疫所に前記状態計算手段によって計算された状態情報を送信し、前記状態情報に基づいて前記コンピュータシステムを制御する制御情報を前記検疫所から受信する通信手段と、
前記コンピュータシステムの状態が完全な状態の場合、前記検疫所から保安情報を受信し、特定プログラムを実行する保安実行手段と
を備え、前記状態情報及び前記制御情報は、前記コンピュータシステムが完全になるまで繰り返して送信され、受信されることを特徴とする請求項１に記載のハッキング防止装置。
【請求項３】
前記状態計算手段は、完全性チェック関数値を利用して状態情報を計算することを特徴とする請求項２に記載のハッキング防止装置。
【請求項４】
前記制御情報は、前記コンピュータシステムのメモリ、レジスタ、ポートのうち少なくとも１つを変化させる値であることを特徴とする請求項２に記載のハッキング防止装置。
【請求項５】
前記保安情報は、コンテンツまたは前記プログラムを実行するためのキー情報のうち少なくとも１つを含むことを特徴とする請求項２に記載のハッキング防止装置。
【請求項６】
コンピュータシステムのメモリ、レジスタ、ポートのうち少なくとも１つの状態を変更するステップと、
前記変更されたコンピュータシステムの状態情報を計算するステップと、
前記コンピュータシステムの保安性危害要素を除去するステップと、
あらゆる時点で前記コンピュータシステムの安全性が確保された検疫所に状態情報を伝送するステップと、
前記検疫所が前記状態情報に基づいて計算された制御情報を前記コンピュータシステムに伝送するステップと、
前記検疫所が、あらゆる時点で前記コンピュータシステムの状態情報が完全な状態である場合、前記コンピュータシステムに特定プログラムの実行に必要な保安情報を伝送するステップと
を備え、前記状態情報及び前記制御情報は、前記コンピュータシステムが完全になるまで繰り返して送受信されるコンピュータシステムのハッキング防止方法。
【請求項７】
前記状態情報は、完全性チェック関数値を含むことを特徴とする請求項６に記載のコンピュータシステムのハッキング防止方法。
【請求項８】
前記制御情報は、前記コンピュータシステムのメモリ、レジスタ、ポートのうち少なくとも１つの状態を変化させる値であることを特徴とする請求項６に記載のコンピュータシステムのハッキング防止方法。
【請求項９】
前記保安情報は、コンテンツまたは前記プログラムを実行するためのキー情報のうち少なくとも１つを含むことを特徴とする請求項６に記載のコンピュータシステムのハッキング防止方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンピュータシステムにおいてウイルス、ハッキングのような外部攻撃から重要情報が流出されないようにするためのハッキング防止装置及び方法に関し、より詳細には、コンピュータシステムにおいて安全性が検証された外部または内部の検疫所を利用してコンピュータシステムの内部に安全な検疫所を拡張し、及びハッキングを防止するハッキング防止装置及び方法に関する。
【背景技術】
【０００２】
コンピュータの使用が増加するにつれて、インターネットの使用が幾何級数的に増加し、これにより、コンピュータのデータやプログラムを破壊するウイルス、ワーム及びその他の悪性コードなどと、商用プログラムの複製などとが増加する傾向にある。また、インターネットバンキングが活性化されることによって、ハッキングによる金融事故も増加しているのが実情である。また、携帯電話又はゲーム機のコンテンツを不法で複製及び実行するなどの知的財産権の侵害も頻繁に起きている。
【０００３】
これにより、上記のような外部の攻撃からソフトウェアの複製及びハッキングを防止する技術も発展している。
【０００４】
従来のソフトウェアの複製及びハッキング防止技術は、難読化、コード暗号化、レキシカル変換など様々な方法が提案されてきた。
【０００５】
ところが、このような方法は、コンパイラーによって生成された簡単なパターンのコードを変換して難しく作成するか、又は、既存の解釈ツールが容易に使用されないようにするかによって、ソフトウェア自体及び重要情報のハッキング自体を困難にする方法であった。
【０００６】
しかしながら、このようなハッキング防止技術は、ハッキング自体が不可能なことではない。なぜならば、根本的にすべての重要情報は、ホストにおいてハンドリングされるしかできないからである。詳しく説明すれば、すべてのプロセスが動作するためには、中央処理装置（ＣＰＵ）を経由するようになる。これにより、ハッキングプログラムは、ＣＰＵの占有権を獲得するようになる場合、核心情報が流出される可能性が大きくなる。
【０００７】
したがって、コンピュータ装置において根本的に外部攻撃からのハッキングを防止することができる技術が要求されている。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】大韓民国特許第１０−０５７１６９５号明細書
【非特許文献】
【０００９】
【非特許文献１】「Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｃｕｒｉｔｙ  ｉｎ  Ｍｕｌｔｉｐｒｏｃｅｓｓｏｒ  Ｓｙｓｔｅｍｓ  Ｂａｓｅｄ  ｏｎ  ｔｈｅ  Ｘ８６  Ａｒｃｈｉｔｅｃｔｕｒｅ」、Ｃｏｍｐｕｔｅｒｓ  ＆  Ｓｅｃｕｒｉｔｙ  Ｖｏｌ．１９、  Ｎｏ．６、２０００年、ｐ．５５９−５６３
【発明の概要】
【発明が解決しようとする課題】
【００１０】
したがって、本発明は、前述のような問題点を解決するためになされたもので、その目的は、ウイルス及びハッキングのような攻撃から安全に重要情報を保護することができるハッキング防止装置及び方法を提供することにある。
【００１１】
本発明の他の目的は、外部または内部の安全な検疫所を利用してプロセスの内部に安全な検疫領域を生成することによって、重要情報を保護することができるハッキング防止装置及び方法を提供することにある。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明の一態様に係るハッキング防止装置は、プロセッサを備えたコンピュータシステムのハッキングを防止するための装置において、装置は、安全性が確保された検疫所と、検疫所からプロセッサに攻撃が不可能な状態を実現する検疫所拡張手段とを備える。
【００１３】
検疫所拡張手段は、コンピュータシステムのメモリ、レジスタ、ポートのうち少なくとも１つの状態を変更する状態変更手段と、変更されたコンピュータシステムの状態情報を計算する状態計算手段と、コンピュータシステムの保安性危害要素を除去する保安性危害要素除去手段と、検疫所に状態計算手段によって計算された状態情報を送信し、状態情報に基づいてコンピュータシステムを制御するための制御情報を検疫所から受信するための通信手段と、コンピュータシステムの状態が完全な状態の場合、検疫所から保安情報を受信し、センシティブコードを実行する保安実行手段とを備え、状態情報及び制御情報は、コンピュータシステムが完全になるまで繰り返して送受信される。
【００１４】
また、本発明の他の態様に係るコンピュータシステムのハッキング防止方法は、コンピュータシステムのメモリ、レジスタ、ポートのうち少なくとも１つの状態を変更するステップと、変更されたコンピュータシステムの状態情報を計算するステップと、コンピュータシステムの保安性危害要素を除去するステップと、あらゆる時点でコンピュータシステムの安全性が確保された検疫所に状態情報を伝送するステップと、検疫所が状態情報に基づいて計算された制御情報をコンピュータシステムに伝送するステップと、検疫所が、あらゆる時点でコンピュータシステムの状態情報が完全な状態である場合、コンピュータシステムにセンシティブコードの実行に必要な保安情報を伝送するステップとを備え、状態情報及び制御情報は、コンピュータシステムが完全になるまで繰り返して送受信される。
【発明の効果】
【００１５】
以上説明したように、本発明は、外部からの攻撃を遮断するために、安全な検疫所を利用してホストの内部に時間的・空間的に完全な状態を生成した後、重要情報を受信することによって、重要情報が流出されなくなる。これにより、秘密情報の保護だけでなく、アルゴリズム又はコンテンツのような資産を悪性コードから根本的に保護することができるという効果がある。
【図面の簡単な説明】
【００１６】
【図１】本発明の一実施形態に係るハッキング防止システムを示すブロック図である。
【図２】本発明の一実施形態に係る検疫所拡張コードの動作原理を示す図である。
【図３】本発明の一実施形態に係る検疫所拡張コードが動作する一例を示す図である。
【発明を実施するための形態】
【００１７】
以下、本発明の望ましい実施例の詳細な説明を添付の図面を参照して説明する。図面において、同一の参照符号は、同一の構成を示す。下記の説明において、具体的な特定事項が開示されているが、これは、本発明の更なる全般的な理解を助けるために提供されるものである。なお、本発明を説明するにあたって、関連された公知機能あるいは構成に対する具体的な説明が本発明の要旨を不明にすることができると判断される場合、その詳細な説明を省略する。
【００１８】
本発明は、安全な検疫所を生成し、攻撃を阻止し、重要情報があらゆる手段によって流出されることを防止するためのハッキング防止装置及び方法を提案する。
【００１９】
以下、本発明の理解を図るために、本発明が適用されるシステムを説明した後、本発明のハッキング防止装置及び方法について説明する。
【００２０】
本発明は、あらかじめ備えられた安全な検疫所からプロセッサの内部に時間的、空間的に分離した領域を誘導し、根本的に攻撃を遮断することができる状態を実現する。本発明において、時間的分離は、後述する検疫所拡張コードの実行が中断されないことを意味し、空間的分離は、検疫所拡張コードの完全性（integrity）が実行の開始と終了との間に維持されることを意味する。また、検疫所は、安全性が確保されている装置であり、スマートカード、ＰＣＩカード、内部メモリに安全性が検証されたコードなどが使用可能である。
【００２１】
図１は、本発明に適用されるコンピュータシステム１００を示す図であり、検疫所が接続された構造を示す。図１を参照すれば、コンピュータシステム１００は、運営体制（ＯＳ）のスケジューリングによってプロセスを処理するホスト１１０と、あらかじめ安全性が確保された検疫所１２０とを備える。ここで、ホスト１１０は、所定時点で計算された状態情報を伝送し、その後、検疫所１２０は、状態情報に基づいて生成した制御情報をホスト１１０に伝送する。
【００２２】
このような動作を繰り返して行った後、検疫所１２０が悪性コードの影響がないと判断すれば、保安情報をホスト１１０に伝送し、マイクロプロセッサ１１１の内部に確保された時間的、空間的検疫所内で高速な処理をするようになる。
【００２３】
ここで、検疫所１２０は、ホスト１１０の外部に示したが、ホスト１１０の内部に設けられてもよい。
【００２４】
各ブロックを見れば、ホスト１１０は、運営体制のスケジューリングによって実行されるプロセスを処理するマイクロプロセッサ１１１と、実行プログラムが常住するメモリ１１３とを備える。検疫所１２０は、ホスト１１０から伝送された状態情報に基づいて制御情報を生成し、マイクロプロセッサ１１１の内部に安全な検疫所の確保時に必要な制御情報をホスト１１０に伝送する。ここで、プログラムのパスワード、プログラムの実行のための復号化キー、及び特定のアルゴリズムなどにより多様に、保安情報を、実現することができる。
【００２５】
入力部１３０は、キーボード、マウスなどのような入力手段で構成することができる。
【００２６】
表示部１４０は、モニタなどのようにホストの動作を表示する装置である。
【００２７】
本発明は、安全な検疫所１２０からコンピュータシステム１００に安全な領域を確保するために検疫所拡張コードを使用するようになる。
【００２８】
検疫所拡張コードは、大きく、状態変更コード断片（state change code snippets）、状態計算コード断片（state calculation code snippets）、保安危害要素除去及び保安性増大コード断片（security acquisition code snippets)、検証された検疫所との通信コード断片（communication code snippets)、及び保安目的コード断片（security objective code snippets）を含む。
【００２９】
状態変更コード断片は、コード、システムのメモリ及びレジスタ、ポートにおいて選択した部分を変化させる。状態変更コード断片は、一例として、メモリ１１３上の一部コードを変更し、その後、マイクロプロセッサ１１１が実行する命令を変化させるものがあり得る。
【００３０】
状態計算コード断片は、検疫所拡張コード全体及び保安に高速なメモリ及び保安に高速なレジスタ及びポートにおいて選択した部分に対して状態値を計算する。状態値は、所望のシステム状態の完全性を保証するチェックサム（Ｃｈｅｃｋｓｕｍ）、ハッシュ（Ｈａｓｈ）、ＭＡＣ値などが使用されることができる。本発明では、このような状態値を総称して、状態情報と呼ぶ。
【００３１】
保安危害要素除去及び保安性増大コード断片は、プロセッサのレジスタを安全に設定し、ハードウェアレジスタを変更する。また、危害要素として作用することができるメモリ及びポートの内容を変更し、内容を追加し、保安性増大のためのコードを実行するなどの役目を果たすことによって、攻撃による脅威を除去する。
【００３２】
通信コード断片は、システム内部または外部の信頼された検疫所１２０と通信を行い、現在コード状態値、すなわち、状態情報を伝送するか、又は、検疫所１２０から検疫所拡張コードの動作に影響を及ぼす値を受信する。本発明では、検疫所拡張コードの動作に影響を及ぼす値を総称して、制御情報と呼ぶ。
【００３３】
保安目的コード断片は、結果的に生成された検疫所内で実際実行を希望するコードであって、検疫所からその自体が攻撃を受けていないことを確認された状態で受けた重要情報を使用して所望の動作を行う。重要情報は、コード自体またはキー情報のように、コードの正常な実行に必要な情報を意味するもので、本発明では、総称して保安情報と呼ぶことにする。
【００３４】
すなわち、本発明では、マイクロプロセッサ１１１に攻撃のない領域を確保するために、検疫所拡張コードを使用するようになる。
【００３５】
図２は、本発明の検疫所拡張コードの動作を示す図であり、初期時点、すなわちｔ＝０（２２０−０）からマイクロプロセッサ１１１に検疫所が確保される時点、すなわちｔ＝ｎ（２２０−ｎ）までの各検疫所拡張コード断片ＣＳ０、ＣＳ１、…の実行及び変化される形態を示した。ここで、各ブロック２１０、２１１、２１３は、検疫所拡張コードＣＳ０、ＣＳ１、…を示すもので、検疫所拡張コードＣＳ０、ＣＳ１、…は、メモリ１１３に常住している。
【００３６】
図２を参照して説明すれば、ｔ＝０である時（２２０−０）、検疫所拡張コードＣＳ０、ＣＳ１、…は、初期化される。ここで、検疫所拡張コードＣＳ０、ＣＳ１、…は、状態変更コード断片、状態計算コード断片、保安危害要素除去及び保安性増大コード断片、検疫所との通信コード断片、及び保安目的コード断片で構成することができる。
【００３７】
このような検疫所拡張コードＣＳ０、ＣＳ１、…は、時間が経過するにつれて実行及び変化される。状態変更コード断片が実行される場合、マイクロプロセッサ１１１が実行する命令に変化が生ずるように動作することによって、新しいコード断片が生成されたり、以前のコード断片の一部が変形されたり、削除される動作が行われる。これにより、検疫所拡張コードＣＳ０、ＣＳ１、…は、実行されると同時に変化される。
【００３８】
状態計算コード断片は、現在状態保安に高速な部分の状態情報を計算するが、状態情報は、チェックサム、ハッシュ、ＭＡＣ、完全性チェック関数値などの様々な状態値のうち１つが使用可能である。高速な部分には、検疫所拡張コードのためのメモリ、デバッグレジスタ及びインターラプト関連レジストが含まれる。
【００３９】
保安危害要素除去及び保安性増大コード断片は、攻撃を遮断するために、システム制御権を獲得し、インターラプト中止などの動作を行うことができるようにする。
【００４０】
このようなコード断片の実行中に所定時点で通信コード断片が実行されれば、検疫所拡張コードが安全性の確保された検疫所１２０と通信する。すなわち、通信コード断片が実行されれば、現在全体コードまたは一部コード、レジスタ及びポートに対する状態情報を検疫所１２０に伝送する。ｔ＝０（２２０−０）乃至ｔ＝ｎ（２２０−ｎ）において所定時点にて、状態情報を、ランダムに伝送することができる。
【００４１】
受信された状態情報が正常なのか否かを検査し、状態情報が適切なタイミングに受信され、正常と判断されれば、検疫所１２０は、状態情報に基づいて計算された制御情報を検疫所拡張コードに伝送する。制御情報は、検疫所拡張コードの動作に影響を及ぼす値であって、検疫所拡張コードの分岐ポイント、一部のコードまたは以後状態情報の伝送時点など様々な情報を含むことができる。
【００４２】
さらに、検疫所１２０は、状態情報が正確であるか、あるいは適切なタイミングに受信されるのかを検査する。
【００４３】
このようなプロセスが繰り返されるうちに、ｔ＝ｎ（２２０−ｎ）に到達した時点に検疫所１２０が現在まで受信された状態情報が正確であると判断されれば、マイクロプロセッサ１１１が完全であると判断し、保安が必要な処理を開始することができるように保安情報を検疫所拡張コードに伝送する。保安情報は、保安目的コードが正常に実行されるようにする情報であって、保安目的コードの復号化キー、特定プログラムのアルゴリズム、パスワードなど重要情報を含むことができる。
【００４４】
前述したように、本発明は、攻撃を遮断するために、安全な検疫所を利用してホストの内部に時間的・空間的に完全な状態を生成した後、重要情報を受信することによって、重要情報が流出されないようにする。
【００４５】
図３は、本発明の検疫所拡張コードが動作する一例を示す図である。
【００４６】
図３を参照すれば、ステップ３０１において、変数を初期化する動作を行う。ステップ３０３において、状態変更コード断片から新しいあらゆる分岐コード断片を生成し、次のコード断片で実行する。ステップ３０５において実行されるあらゆる分岐コード断片は、今まで累算的に更新されたハッシュ値に現在全体コードの状態で導出されたハッシュ値を更新し、検疫所１２０に移し、検疫所から受けた値に基づいて選択された地点に分岐する。
【００４７】
続いで、このようなプロセスが進行されると共に、システムの制御権を自然に獲得（インターラプトの中止などの作業）し、可能性のある保安危害要素を除去（デバッガーレジスタを不活性化するなどの作業）する。最後に、ステップ３１３において、検疫所１２０から保安目的コード断片に必要な重要情報を受けて、保安目的コード断片を行う。保安目的コード断片では、保安が必要なアルゴリズムを実行またはユーザからのキー入力獲得、及び入力値のハッシュを用いたユーザパスワード保護などの保安目的を達成する。
【００４８】
保安目的が達成され、実行が完了すれば、ステップ３１５においてメモリまたはレジスタなどに残っていることができる情報を高速に除去し、制御権をＯＳに渡す。
【００４９】
攻撃者は、保安目的コードに対する攻撃のために、検疫所から重要情報が来るようにしなければならない。重要情報である保安情報は、最も単純な例として、保安目的コードに対する復号化キーを使用することができる。攻撃者は、検疫所がシステムに侵入がなく、正常な実行が維持されていると信じるようにしなければならない。そのため、ハッシュ値が何時も正常に維持されるようにしなければならない。同時に、攻撃者は、保安危害要素除去のためのコードの実行に継続的に介入しなければならない。このコードの正常な実行は、攻撃者自分の攻撃が成立されないようにするからである。
【００５０】
保安危害要素除去コードは、一例として、システムの占有権を先占するコードを使用することができるが、占有権が先占された状態で（インターラプトや中断点設定関連レジスタなどは安全な状態に設定されることを仮定）、攻撃者は、攻撃が不可能になる。ところが、このような介入は、検疫所拡張コード又はシステム全体の状態変更を伴い、検疫所に伝達する状態値に変更をもたらし、検疫所は正常な重要情報の伝送を中断するようになる。介入によるハッシュ値の変化を防止するために、結果的に攻撃者は、検疫所拡張コードの実行始終続いて介入しなければならない。
【００５１】
このように自分の介入による影響を補償し、状態計算コード断片が介入以前と同様の状態値を出すように維持する。攻撃者の介入による影響を補償するプロセスは、追加的コスト（時間）を発生させ、検疫所１２０は、このようなコストを認知し、重要情報提供を中断する。
【００５２】
全プロセスのうち、検疫所１２０は、検疫所拡張コード又はシステム内の保安関連要素（中断点関連レジスタ、インターラプト関連レジスタ、メモリ、ポートなど）に対して生じる状態変更に影響を及ぼすことができる値を常に検疫所拡張コードに伝送することができる。このようなプロセスは、攻撃者が検疫所拡張コードの実行以前に行う静的な分析及びこれを用いた攻撃を困難にする。
【００５３】
前述した方法は、簡単な例として、キーボードハッキングの源泉的な防止に応用することができ、システム管理モードまたは多重−プロセッサ（ハイパースレッディング又はマルチコアシステムなど）構造などに適用され、さらに安全な保安目的コードの実行が可能になる。
【００５４】
本発明のハッキング防止方法は、システム管理モードまたは他のＯＳへの転換を支援するプロセッサに効果的に応用することができる。
【００５５】
また、本発明の方法を使用する場合、既存に難しく思われて来た秘密情報の保護だけでなく、アルゴリズムまたはコンテンツのような資産を悪性コードから根本的に保護することができ、具体的には、基本的なキーボードハッキング防止技術を実現することができるなど様々な応用が可能である。
【００５６】
一方、本発明の詳細な説明において、１つの実施例について説明したが、本発明の範囲から脱しない範囲内に様々な範囲での変形が可能であることは勿論である。したがって、本発明の範囲は、説明された実施例に限定されて定められてはならず、後述する特許請求の範囲だけでなく、この特許請求の範囲と均等なものなどによって定められなければならない。
【符号の説明】
【００５７】
１１０  ホスト
１１１  マイクロプロセッサ
１１３  メモリ
１２０  検疫所
１３０  入力部
１４０  表示部
【図１】
2010152898.tif 000003
【図２】
2010152898.tif 000004
【図３】
2010152898.tif 000005