(57)【要約】コンピュータ・システムは、周辺機器（２１５）と処理ユニット（１１０）とを有する。処理ユニット（１１０）は、標準動作モードにおいて周辺機器（２１５）と、特権動作モードにおいて認証エージェント（９０）とインタフェースするためのドライバ（２４０）を実行するために適し、認証エージェント（９０）はドライバ（２４０）を認証するために適したプログラム命令を含む。周辺機器（２１５）は、ソフトウエア・モデムなどの通信装置（５０）を備える。コンピュータ・システムにおいてセキュリティ侵害を検出するための方法（１００）は、処理ユニット（１１０）の標準処理モードにおいてドライバ（２４０）を実行するステップと、処理ユニット（１１０）を特権処理モードに移行させるステップと、特権処理モードにおいてドライバ（２４０）を認証するステップとを有する。ドライバは（２４０）、ソフトウエア・モデムなどの通信周辺機器とインタフェースするために適する。
2004535641.tif 000002
【特許請求の範囲】
【請求項１】
周辺機器（２１５）と、
標準動作モードにおいて前記周辺機器（２１５）との間の、特権動作モードにおいて認証エージェント（９０）との間の、インタフェースを行うためのドライバを実行する処理ユニット（１１０）と、を有しており、
前記認証エージェント（９０）は、前記ドライバ（２４０）を認証するためのプログラム命令を含んでいる、
コンピュータ・システム（１００）。
【請求項２】
前記周辺機器（２１５）は、割り当てられた伝送パラメータに従い、通信チャネル（４０）を介してデータ通信を行うための物理層ハードウエア・ユニット（２２０）をさらに備え、
この物理層ハードウエア・ユニット（２２０）は、前記通信チャネル（４０）を介して着信信号を受信し、この着信信号をサンプリングしてデジタル形式の受信信号を生成するように構成されており、
前記ドライバ（２４０）は、前記デジタル形式の受信信号から制御コードを抽出して、この制御コードに基づいて前記物理層ハードウエア・ユニット（２２０）に割り当てられた伝送パラメータを設定するためのプログラム命令を含み、
前記認証エージェント（９０）は前記ドライバ（２４０）を認証するためのプログラム命令を含んでいる、
請求項１に記載のコンピュータ・システム。
【請求項３】
前記認証エージェント（９０）は、前記ドライバ（２４０）の少なくとも一部のハッシュを生成し、前記ドライバ（２４０）に関連付けられたダイジェストを解読して、前記ドライバ（２４０）を認証するために前記ハッシュと前記ダイジェストとを比較するためのプログラム命令を含む、
請求項１に記載のシステム（１０）。
【請求項４】
前記認証エージェント（９０）は、前記ドライバ（２４０）および前記処理ユニット（１１０）のいずれか一方によって定期的に起動される、
請求項１に記載のシステム（１０）。
【請求項５】
前記認証エージェント（９０）は、モデム・ドライバ（２４０）の少なくとも一部のハッシュを生成し、前記モデム・ドライバ（２４０）に関連付けられたダイジェストを公開鍵を使用して解読し、前記ドライバ（２４０）を認証するために前記ハッシュと前記ダイジェストとを比較するためのプログラム命令を含む、
請求項１に記載のシステム（１０）。
【請求項６】
前記認証エージェント（９０）は、ドライバ（２４０）の認証の失敗に応じて、前記ドライバ（２４０）および前記処理ユニット（１１０）の少なくとも一方の、これ以上の動作を禁止する、ためのプログラム命令を含む、
請求項２に記載のシステム（１０）。
【請求項７】
処理ユニット（１１０）の標準処理モードにおいてドライバ（２４０）を実行するステップと、
前記処理ユニット（１１０）を特権処理モードに移行させるステップと、
前記特権処理モードにおいて前記ドライバ（２４０）を認証するステップと、を含む、
コンピュータ・システム（１００）においてセキュリティ侵害を検出するための方法。
【請求項８】
前記ドライバ（２４０）を認証するステップは、
前記ドライバ（２４０）の少なくとも一部のハッシュを生成するステップと、
前記ドライバ（２４０）に関連付けられたダイジェストを解読するステップと、
前記ドライバ（２４０）を認証するために前記ハッシュと前記ダイジェストとを比較するステップと、を含む、
請求項７に記載の方法。
【請求項９】
所定の期間の後に、前記特権処理モードにおいて前記ドライバ（２４０）を認証するために割込み信号を生成させるステップをさらに含む、
請求項７に記載の方法。
【請求項１０】
ドライバ（２４０）の認証の失敗に応じて、前記ドライバ（２４０）および前記処理ユニット（１１０）の少なくとも一方のこれ以上の動作を禁止するステップをさらに含む、
請求項７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にモデム通信に関し、特に、特権モードのドライバ認証を備えたソフトウエア・モデムに関する。
【背景技術】
【０００２】
近年、携帯電話がますます普及している。携帯電話は、「移動局」または「携帯端末」と呼ばれるものの一例である。移動局には、携帯電話以外にも、移動通信機能を備えたコンピュータ（例えばノート型コンピュータ）など様々なものがある。
【０００３】
電波などのエア・インタフェースを介して、移動通信ネットワークと移動局とを接続する電気通信サービスが提供されている。通常、移動局を所有する各加入者に対して、固有の国際移動電話加入者識別番号（ＩＭＳＩ）が割り当てられている。ある瞬間に、稼動中（active）の移動局が、エア・インタフェースを介して１以上の基地局と通信することが可能である。基地局は、基地局制御装置（無線ネットワーク制御装置とも呼ばれる）によって管理されている。基地局制御装置、およびこれにより管理される基地局は、基地局システムを構成している。基地局システムの基地局制御装置は、制御ノードを介して、公衆交換電話網（ＰＳＴＮ）などの基幹通信ネットワークに接続されている。標準化されている移動通信方式の一形態に、移動体通信用グローバルシステム（ＧＳＭ）がある。ＧＳＭには、様々なサービス向けの機能およびインタフェースを規定している各種標準がある。ＧＳＭシステムでは、音声信号とデータ信号との両方を伝送することができる。
【０００４】
１つの基地局が、複数の移動局によって共有される。無線周波帯域は限られた資源であるため、時分割多重接続方式および周波数分割多重接続方式（ＴＤＭＡ／ＦＤＭＡ）を併用することにより、帯域幅が分割されている。ＦＤＭＡでは、最大周波数帯域（例えば２５ＭＨｚ）を、２００ｋＨｚ間隔で１２４個の搬送周波数に分割している。１つの基地局に、搬送周波数が１以上割り当てられる。さらに、各搬送周波数が複数のタイムスロットに分割される。基地局と移動局との間のセッションが稼働中に、基地局は、移動局から基地局への上り伝送に使用する周波数、電力レベルおよびタイムスロットを移動局に割り当てる。また、基地局は、基地局から移動局に向かう下り伝送に使用する周波数およびタイムスロットも伝達する。
【０００５】
ＧＳＭに規定されている時間の基本単位はバースト周期と呼ばれており、この長さは１５／２６ｍｓ（約０．５７７ｍｓ）である。８つのバースト周期をグループ化したものがＴＤＭＡフレーム（長さ１２０／２６ｍｓ、すなわち約４．６１５ｍｓ）であり、これが論理チャネルを定義する基本単位となっている。１つの物理チャネルは、各フレームにつき１つのバースト周期として定義されている。個々のチャネルは、対応するバースト周期の数および位置によって定義されている。
【０００６】
各々が８つのバースト周期からなるＧＳＭフレームをグループ化したもの（例えば５１フレームからなるグループ）がスーパーフレームであり、トラフィック情報（すなわち、音声信号またはデータ信号）と制御情報との両方を含んでいる。制御情報は、スーパーフレーム構造内に定義された共通チャネルを介して伝送される。共通チャネルは、アイドルモードの移動局と専用モードの移動局との両方によってアクセスされる。共通チャネルは、アイドルモードの移動局が、着信呼および発信呼を受けると、シグナリング情報を交換して専用モードに移行するために使用される。既に専用モードにある移動局は、ハンドオーバー情報やその他の情報を求めて、周囲の基地局を監視する。
【０００７】
共通チャネルには以下のものがある。
基地局識別子、周波数割り当て、および周波数ホッピング・シーケンスなどの情報を連続的にブロードキャストするためのブロードキャスト制御チャネル（ＢＣＣＨ）。
バースト周期の境界およびタイムスロットの番号付与方法を定義することによって、移動局をセルのタイムスロット番号に同期させる（すなわち、ＧＳＭネットワーク内の全セルが、１つのＦＣＣＨと１つのＳＣＨとを正確にブロードキャストするようにし、これらは、定義上、ＴＤＭＡフレーム内の番号０のタイムスロットに送信される）ための周波数訂正チャネル（ＦＣＣＨ）および同期チャネル（ＳＣＨ）。
ネットワークへのアクセスを要求するために移動局によって使用されるランダムアクセスチャネル（ＲＡＣＨ）。
着信呼を移動局に通知するためのページングチャネル（ＰＣＨ）。
ＲＡＣＨの要求の後に、通信する（すなわち専用チャネルを取得する）ため、スタンド・アロン専用制御チャネル（ＳＤＣＣＨ）を移動局に割り当てるためのアクセス許可チャネル（ＡＧＣＨ）。
【０００８】
ＧＳＭデータは、セキュリティ上の理由により暗号化された形式で伝送される。無線媒体には誰もがアクセスできるため、認証は、モバイルネットワークにおいて非常に重要な要素である。認証には、移動局と基地局との双方が関与する。各移動局には、加入者ＩＤモジュール（ＳＩＭ）カードが備えられている。各加入者には秘密鍵が割り当てられている。この秘密鍵のコピーの１つがＳＩＭカードに記憶されており、別のコピーが、基地局からのアクセスが可能で、通信ネットワーク上にある保護されたデータベースに記憶されている。認証時に、基地局は乱数を生成して、これを移動局に送信する。移動局は、乱数を、秘密鍵と暗号化アルゴリズム（例えばＡ３）とを併用して、サイン済みの応答文を生成し、これを基地局に返送する。移動局が送信したサイン済みの応答と、ネットワークの算出結果とが一致する場合、加入者が認証される。基地局は、移動局に送信するデータを、秘密鍵を用いて暗号化する。同様に、移動局は、基地局に送信するデータを、秘密鍵を用いて暗号化する。移動局が受信した伝送文を解読すると、特定の移動局に対して割り当てられた電力レベル、周波数、タイムスロットなどの種々の制御情報が移動局によって決定される。
【０００９】
一般に、通信システムは、層を用いて説明される。第１の層は、伝送媒体を介して信号を搬送するデータを実際に伝送している層であり、物理層（ＰＨＹ）と呼ばれる。物理層は、デジタルデータをグループ化して、特定の伝送方式に従って、このデータを基に被変調波形を生成する。ＧＳＭにおいて物理層は、伝送波形を生成して、移動局に割り当てられた送信タイムスロット内にこれを伝送する。同様に、物理層の受信部（receiving portion）が、割り当てられた受信タイムスロット内に、移動局宛てのデータを識別する。
【００１０】
第２の層は、プロトコル層と呼ばれ、物理層によって受信されたデジタルデータを処理して、このデータ中に含まれる情報を識別する。例えば、ＧＳＭシステムにおいては、データの解読はプロトコル層の機能である。物理層の動作パラメータが変更された場合、この変更は、プロトコル層によって解読および処理されて初めて検出されるというという点に留意されたい。この相互依存関係は、プロトコル層をハードウェアのみによって実装している場合には通常問題にならないが、プロトコル層の少なくとも一部をソフトウェアによって実装している場合には問題を引き起こす可能性がある。
【００１１】
コンピュータ・システム、特に携帯式のノート型コンピュータの一部には、無線モデムが搭載されていることがある。モデム技術の一つの動向に、ソフトウェアルーチンを用いて、従来のハードウエア・モデムのリアルタイム機能の一部に、実装するソフトウエア・モデムを使用することがある。ソフトウエア・モデムのハードウェアは、ハードウエア・モデムよりも一般に単純であるため、ソフトウエア・モデムのハードウェアのほうが概して低価格で、柔軟性も高い。例えば、プロトコル層での解読および処理の一部またはすべてを、ソフトウェアによって実装することが可能である。
【００１２】
ＰＣシステムなどのソフトウェアシステムは、オペレーティング・システム環境において、インタフェース制御ソフトウェアをソフトウエア・ドライバとして実行する。この種のドライバは、ハードウェアデバイスとの通信を担っており、オペレーティング・システムの特権レベルで動作する。他のソフトウェアアプリケーションは、このドライバに作用することを禁止されている。しかし、ドライバが他のドライバから保護されているわけではないため、ドライバの動作が損なわれるなどにより、ドライバの動作に悪影響を与える問題が様々に発生する可能性がある。このような現象は偶発的に発生することもあれば、意図的なハッキングによって発生することもある。破損した（または無断使用（co-opted）された）ドライバは、電話回線または無線チャネルの使用、外部周辺機器の操作、重要なデータの削除、などコンピュータの外でさらなる問題を発生させる可能性がある。
【００１３】
移動局の送信機の動作を制御する物理層の動作パラメータは、プロトコル層によりソフトウェアを使用して制御されているため、コンピュータプログラムもしくはウィルスが、移動局の制御を掌握して、偶発的、もしくは意図的に、移動局に割り当てられたタイムスロットの外で送信を行う可能性がある。セルラー方式ネットワークなどの無線通信ネットワークでは、共有インフラストラクチャが使用される。移動局は「インフラストラクチャでの規則（rules on the road）」を守る必要があり、これを行わなければネットワークの妨害が発生する。
【００１４】
移動局の特定の機能をソフトウェア内で制御する場合、プログラマは、ＧＳＭ制御フレームの復号方法、ならびに送信機モジュールのトリガ方法を決定することができる。その後、ウィルスが作成されて、ネットワークを介して蔓延し、ソフトウェアベースの移動局に感染が広がり得る。このような場合、ある時点で、ウィルスがこの移動局の制御権を直接掌握して、連続的もしくは断続的にランダムな周波数で最大出力の送信を行い、基地局や他の移動局を大量の通信で溢れさせる可能性がある。ウィルスのこのような意図（design）は、検出されないように、無作為な時間で有効・無効が切り替わる。ウィルスは、無線通信事業者が使用できる帯域の少なくとも一部を奪い、ときにはネットワークの完全な停止を引き起こしかねない。１つのセルにつき、このような攻撃が数台の機器（最も少なくて１台）によって行われるだけで、１つのセルが完全に使用不能に陥る可能性がある。
【００１５】
共有インフラストラクチャで動作する移動局に関連するセキュリティ面の問題は、重大度に応じて、改竄防止（tamper-proof）、非改竄防止（non-tamperproof）、およびクラス・ブレイク（class-break）の３つに分けることができる。第一に、ハードウェア／ファームウェアによる実装（携帯電話など）は、個々の機器を入手して変更しなければならないため、最も改竄が困難である（すなわち改竄防止が施されている）。これに対して、ソフトウェアによる解決策は、ハッカーがソフトウェアのみのデバッガ環境に注力できるため、最も改竄し易い（すなわち、非改竄防止である）。最後に、改竄を受ける機能が全てのシステムで類似し、改竄を同種のシステムに広く配布することが可能なシステムは、「クラス・ブレイク」を受けやすい。
【００１６】
ソフトウェア無線モデムはクラス・ブレイクを受けやすいだけではなく、機器のコードが、ＩＰ（インターネット・プロトコル）と同じ層または他の携帯式コード・アクセス機構からアクセスされる可能性がある機器でもある。ソフトウェア無線モデムの多くが、ネットワークまたはインターネットに接続されるコンピュータに組み込まれる。このような構成のために、より一層ソフトウェアが改竄を受け、制御されやすくなる。
【００１７】
また、ソフトウェアを使用してその他の通信プロトコルを実装している通信装置も、上記の問題の一部による影響を受ける可能性があるが、影響の程度およびレベルが異なる。例えば、音声帯域モデム（Ｖ．９０）、非対称デジタル加入者線（ＤＳＬ）モデム、宅内電話回線ネットワーク（HomePNA）などの有線加入者線（copper subscriber line）を使用する通信装置のソフトウエア・ドライバが攻撃を受けて、加入者線が使用不能となるか、不正使用されることがある。例えば、ウィルスに感染したソフトウエア・モデムのグループが、サービス妨害攻撃に使用されて、所定の電話番号に常時電話をかけ、相手側を溢れさせる。ソフトウエア・モデムが使用され、加入者線での発信呼または着信呼が阻止されるか、あるいはＨｏｍｅＰＮＡトラフィックが妨害される可能性もある。また、無線ネットワーク機器など、ソフトウェア内で実装される他の無線通信装置が、無線ネットワークでのトラフィックの妨害に悪用されることもある。
【発明の開示】
【発明が解決しようとする課題】
【００１８】
本発明は、上記の問題のうちの１つ以上を克服するか、少なくとも軽減することを狙ったものである。
【課題を解決するための手段】
【００１９】
本発明の一態様は、周辺機器と処理ユニットとを備えたコンピュータ・システムに見て取れる。処理ユニットは、標準動作モードにおいて周辺機器との間の、特権動作モードにおいて認証エージェントとの間の、インタフェースを行うためのドライバを実行するものであり、認証エージェントはドライバを認証するためのプログラム命令を含む。周辺機器は、ソフトウエア・モデムなどの通信装置を備えてもよい。
【００２０】
本発明の他の態様は、コンピュータ・システムにおいてセキュリティ侵害を検出するための方法に見て取れる。この方法は、処理ユニットの標準処理モードにおいてドライバを実行するステップと、処理ユニットを特権処理モードに移行させるステップと、特権処理モードにおいてドライバを認証するステップとを含む。このドライバは、ソフトウエア・モデムなどの通信周辺機器とインタフェースを行うのに適している。
【発明を実施するための最良の形態】
【００２１】
添付の図面と併せて下記の説明を読めば、本発明が理解されるであろう。添付の図面においては、同一の参照符号は同じ要素を指している。
【００２２】
本発明は、種々に変形および代替形態を取り得るが、その特定の実施形態が、図面に例として図示され、ここに詳細に記載されているに過ぎない。しかし、詳細な説明は、本発明を特定の実施形態に限定することを意図するものではなく、逆に、添付の特許請求の範囲によって規定される本発明の精神ならびに範囲に含まれる全ての変形例、均等物および代替例を含むことを理解すべきである。
【００２３】
本発明の例示的な実施形態を下記に記載する。簡潔を期すために、本明細書に実際の実装の特徴を全て記載することはしない。当然、実際の実施形態の開発においては、システム上の制約およびビジネス上の制約に適合させるなど、開発の具体的な目的を達するために、実装に固有の判断が数多く必要とされ、この判断は実装によって変わるということが理解される。さらに、この種の開発作業は複雑かつ時間がかかるものであるが、本開示による利益を受ける当業者にとって日常的な作業であるということが理解されよう。
【００２４】
図１に、通信システム１０のブロック図を示す。通信システム１０は、通信チャネル４０を介して中央局３０と通信を行う利用者局２０を備える。本図の実施形態においては、利用者局２０は、ソフトウエア・モデム５０を使用する携帯型コンピュータ装置であり、ＧＳＭなどの無線通信プロトコルに従って通信を行う。中央局３０は、複数の加入者にサービスを提供可能な共有の基地局である。本発明は、無線環境において実装されるものとして記載されるが、本発明の用途はこれだけに限定されない。本明細書による開示は、ソフトウェアによって実装される通信プロトコル（例えば、Ｖ．９０、ＡＤＳＬ、HomePNA、無線ＬＡＮ等）を使用する他の通信環境にも適用可能である。
【００２５】
利用者局２０は、デスクトップ型コンピュータ、ノート型コンピュータ、個人情報端末（ＰＤＡ）など、種々のコンピュータ装置を備え得る。説明のために、利用者局２０がノート型コンピュータを使用して実装されたものとする。ソフトウエア・モデム５０は、内部資源として組み込まれる。当業者によって理解されるように、ソフトウエア・モデム５０は、ハードウェア内で実装される物理層（ＰＨＹ）７０と、ソフトウェア内で実装されるプロトコル層８０とを有する。
説明のために、ソフトウエア・モデム５０の各種機能は、ＧＳＭ通信プロトコル向けに実装されているものとするが、他のプロトコルを使用することもできる。
【００２６】
本発明の一部とその詳細な説明は、ソフトウェア、すなわちコンピュータメモリ内部でのデータビットに対する操作の記号的表記およびアルゴリズムの形で提示される。このような記述および表現は、当業者が、自身の作業の内容を他の当業者に効率的に伝えるために用いられているものである。本明細書において使用する「アルゴリズム」との用語は、通常用いられているのと同義に用いられ、所望の結果に導くための自己矛盾のないシーケンスのことを指す。アルゴリズムのステップとは、物理量の物理的操作を必要とするステップである。この物理量は通常、記憶、転送、結合、比較などの操作が可能な光学信号、電気信号または磁気信号の形を取るが、必ずしもこれらに限定されない。主に公共の利用に供するという理由で、これらの信号を、ビット、値、要素、記号、文字、語（term）、数字などとして参照すれば、ときとして利便性が高いことがわかっている。
【００２７】
しかし、上記の全用語ならびに類似の用語は、適切な物理量に対応しており、この物理量を表す簡便な標識に過ぎないという点を留意すべきである。特段の断りのない限り、もしくは記載内容から明らかな場合、「処理」、「演算」、「計算」、「判定」、「表示」などの用語は、コンピュータ・システムのレジスタ内およびメモリ内で物理的電子的量として表されるデータを、コンピュータ・システムのメモリ、レジスタ等の情報の記憶装置、伝送装置または表示装置内で同様に物理量として表される他のデータへと操作および変換するコンピュータ・システムないし類似の電子演算装置の動作および処理を指す。
【００２８】
ＰＨＹ層７０は、デジタル送信信号をアナログ送信波形に変換すると共に、着信したアナログ受信波形をデジタル受信信号に変換する。送信信号については、プロトコル層８０の出力は、０Ｈｚキャリアを中心に変調された送信「オンエア（on-air）」情報（すなわち、キャリアレス信号）となる。ＰＨＹ層７０は、中央局３０から利用者局２０に送信された、割り当て済みのタイムスロット、周波数、および電力レベルの割り当てに従って、プロトコル層８０が生成したキャリアレス送信信号を混合（混合はアップコンバートとも呼ばれる）し、ＰＨＹ層７０から送信される実際のアナログ波形を生成する。
【００２９】
また、中央局３０は、着信データ用のタイムスロットおよび周波数の割り当ても利用者局２０に伝達する。着信したアナログ受信波形は、サンプリングされ、割り当てられたタイムスロットおよび周波数のパラメータに従ってダウンコンバートされて、キャリアレスの（すなわち０Ｈｚを中心に変調された）受信波形に再生成される。プロトコル層８０は、ＰＨＹ層７０からキャリアレス受信波形を受け取って、ベースバンド処理、解読および復号を実行して、受信データを再生成する。
【００３０】
タイムスロット、周波数、および電力レベル（すなわち送信データのみ）の割り当ては、総称して制御コードと呼ばれる。ソフトウエア・モデム５０の実装に使用される特定のアルゴリズムは、個別の業界標準（例えば、ＧＳＭ標準）に記載されており、当業者に公知である。このため、簡潔を期すと共に説明を簡単にするために、これら標準に関しては、本発明によって変更する場合を除いて詳述しない。
【００３１】
利用者局２０は、プロトコル層８０が本物であることを定期的に検証して、破損または改竄を検出するための認証エージェント９０も備える。図３，４に関連して下記に詳述するように、認証エージェント９０は、ソフトウェアによって実装されるプロトコル層８０の機能に対して特権コンテキストで動作する。認証エージェント９０は保護されているため、改竄されることなく、ソフトウェアによって実装されるプロトコル層８０の機能の改竄を検出することができる。
【００３２】
図２に、コンピュータ１００に具体化された利用者局２０のブロック図を示す。コンピュータ１００はプロセッサ複合体１１０を備える。簡潔を期すと共に理解しやすくするために、プロセッサ複合体１１０を構成する要素の全てを詳細に記載しない。このような詳細は当業者に公知であり、個々のコンピュータ供給業者およびマイクロプロセッサの種類によって変更され得る。
プロセッサ複合体１１０は、典型的にはマイクロプロセッサ、キャッシュメモリ、システムメモリ、システムバス、グラフィックコントローラなどのほか、特定の実装に応じて他の機器を備える。
【００３３】
プロセッサ複合体１１０には、標準モードと特権モードとの２つの動作モードがある。当業者に公知となっている特権動作モードの例として、システム管理モード（ＳＭＭ）がある。ＳＭＭへの移行は、システム管理割込み（ＳＭＩ）によって開始される。プロセッサ複合体１１０は、ＳＭＩに応じて、システムメモリの他のプロセス（例えば、アプリケーションまたはドライバ）からは隠された保護領域に、事前に（すなわち、コンピュータ１００の初期化およびＢＩＯＳコードの読み込み時に）読み込まれているＳＭＭコードを実行する。また、ＳＭＭイベント時に、プロセッサ複合体１１０の機能が使用するメモリ領域も、他のプロセスから隠されている。
特権モードとしてＳＭＭを使用する例により実施形態を説明するが、本発明はこれに限定されず、他の種類の特権モードを使用してもよい。一般に、特権モードとは、アプリケーションまたはドライバなどのコンピュータ１００で実行されている他のプロセスからは隠された動作モードとして定義される。ＳＭＭは、現在利用可能な特権モードの一例に過ぎない。
【００３４】
特権コンテキストには、このほか、システムの主マイクロプロセッサから独立した暗号プロセッサなど、別の処理要素（processing entity）を使用する場合がある。特権モードのソフトウェアの機能は、この暗号プロセッサによって実行され、システムの主マイクロプロセッサで実行されている他のソフトウェアアプリケーションによって改竄されないよう保護されている。さらに、特権コンテキストに、セキュアなアーキテクチャ拡張が施されたメインシステムマイクロプロセッサを使用してもよい。この実装においては、暗号プロセッサは、メインシステムマイクロプロセッサに組み込まれており、セキュアコマンドによって制御される。
【００３５】
プロセッサ複合体１１０は、ＰＣＩ（周辺機器インタフェース）バスなどの周辺機器バス１２０に結合されている。プロセッサ複合体１１０内のブリッジユニット（すなわちノースブリッジ）は、一般的に、システムバスと周辺機器バス１２０とを結合している。サウス・ブリッジ１５０は、周辺機器バス１２０に結合されている。サウス・ブリッジ１５０は、ＢＩＯＳ（システム基本入力・出力システム）メモリ１７０をホストするＬＰＣ（低ピンカウント）バス１６０、種々の周辺機器（キーボード、マウス、プリンタ、スキャナ、スキャナ等）（図示せず）とインタフェースするためのＵＳＢ（ユニバーサル・シリアル・バス）１８０、ハード・ディスク・ドライブ２００およびＣＤ-ＲＯＭドライブ（図示せず）とインタフェースするためのＥＩＤＥ（エンハンスド統合ドライブ機器）バス１９０、ならびにＩＰＢ（統合パケットバス）バス２１０とインタフェースしている。
【００３６】
ＩＰＢバス２１０は、ソフトウエア・モデム５０のハードウェア部分をホストする。本図の実施形態においては、ソフトウエア・モデム５０は、ＡＣＲ（アドバンスド通信ライザ）カード２１５によりホストされる。ＡＣＲカード２１５およびＩＰＢバス２１０の仕様は、ＡＣＲ分科会（ACR Special Interest Group）（ACRSIG.ORG）から入手することができる。ソフトウエア・モデム５０は、ＰＨＹハードウエア・ユニット２２０および無線装置２３０を備える。本図の実施形態においては、無線装置２３０は、ＧＳＭ信号を送受信するものである。ＰＨＹハードウエア・ユニット２２０および無線装置２３０により、ＰＨＹ層７０を構成している（図１参照）。
【００３７】
プロセッサ複合体１１０は、モデム・ドライバ２４０で符号化されたプログラム命令を実行する。プロセッサ複合体１１０とモデム・ドライバ２４０とにより、プロトコル層８０の機能を実施する（図１参照）。また、プロセッサ複合体１１０は、認証エージェント９０を実装するためのプログラム命令を実行する。
【００３８】
モデム・ドライバ２４０および／または認証エージェント９０は、システムＢＩＯＳ１７０、ＡＣＲカード２１５のセキュアなメモリデバイス、コンピュータ１００のセキュアなメモリデバイスなどの安全な場所に記憶される。セキュアなドライバを記憶するための方法の例が、米国特許出願第０９／９０１，１７６号（代理人事件番号２０００．０５３４００／ＤＩＲ、依頼人事件番号ＴＴ４０４０）、テリー  Ｌ  コール（Terry L. Cole）、デビット  Ｗ  スミス（David W. Smith）、ロドニー  シュミット（Rodney Schmidt）、ジェフリー  Ｓ  ストロンジン（Geoffrey S. Strongin）、ブライアン  Ｃ  バーンズ（Brian C. Barnes）、およびマイケル  バークレイ（Michael Barclay）による「セキュア・ドライバを備えた周辺機器（PERIPHERAL DEVICE WITH SECURE DRIVER）」に記載されている。
【００３９】
ソフトウエア・モデム５０が着信データを受信する場合、モデム・ドライバ２４０は、キャリアレス波形を復調して、暗号化データを再構成し、これをＰＨＹハードウェア２２０が受け取る。暗号化データを再構成するための処理は、当業者に公知となっており、ＧＳＭ標準に規定されている。簡潔を期すと共に説明を簡単にするために、この再構成処理はここに記載しない。
【００４０】
モデム・ドライバ２４０は、暗号化データを再構築すると、ＧＳＭ標準に規定されている標準の解読方法を用いて暗号化データを解読し、解読済みデータを生成する。モデム・ドライバ２４０は、解読済みデータを復号化して、制御コードおよび／または利用者データを抽出する。モデム・ドライバ２４０は、制御コードをＰＨＹハードウェア２２０に送信する。これにより、ＰＨＹハードウェア２２０は、制御コードに格納されている、割り当て済みのタイムスロット、周波数、および電力レベルの情報に基づいて、無線装置２３０を設定する。
【００４１】
ソフトウエア・モデム５０がデータを送信する場合、モデム・ドライバ２４０は、符号化、インターリービング、バースト組み立て、暗号化、ベースバンド処理などのデータ処理機能をすべて実行して、キャリアレス送信波形を生成する。モデム・ドライバ２４０は、ＰＨＹハードウェア２２０および無線装置２３０にこの送信波形を渡し、制御コードにて事前に定義されている割り当てられたタイムスロット、周波数、および電力レベルに従ってこの波形がアップコンバートされる。
【００４２】
認証エージェント９０は定期的に起動されて、モデム・ドライバ２４０が本物であることを認証する。例えば、認証エージェント９０は、認証エージェント９０をＳＭＭで実行するか、暗号プロセッサによって認証エージェント９０を実行するか、メインシステムマイクロプロセッサのセキュアな拡張によって認証エージェント９０を実行することにより、特権コンテキストにおいて起動される。
【００４３】
図３を簡単に参照すると、ＳＭＭまたはセキュアなアーキテクチャ拡張の実装を使用して認証エージェント９０を実行する、図２のプロセッサ複合体１１０の略式ブロック図が示される。図３においてプロセッサ複合体１１０は、メモリデバイス３１０とインタフェースするマイクロプロセッサ３００を備える。マイクロプロセッサ３００は、標準動作モードにおいてモデム・ドライバ２４０の機能を、特権動作モードにおいて認証エージェント９０の機能を、実行する。
例えば、認証エージェント９０は、システム管理割込み（ＳＭＩ）により起動される。プロセッサ複合体１１０は、ＳＭＩを受けて特権モード（すなわちＳＭＭ）に移行し、認証エージェント９０を実行する。認証エージェント９０は、下記に詳述する方法によってモデム・ドライバ２４０を認証する。システムメモリ３１０の一部が、特権モード中に使用する共有メールボックスとして割り当てられる。モデム・ドライバ２４０などの標準モードで動作しているアプリケーションは、共有記憶空間に指定された受信ボックスにデータを格納し、認証エージェント９０など、特権モードで実行しているアプリケーションは、共有記憶空間に指定された送信ボックスにデータを格納する。送信ボックスは、読み取り専用として標準モードのアプリケーションに割り当ててもよい。標準モードのアプリケーションと特権モードのアプリケーションとの間でデータの受け渡しを行うための共有メールボックスを備えたコンピュータ・システムの例が、米国特許出願第０９／８５３，４４７号（代理人事件番号２０００．０３８７００／ＬＨＩ、依頼人事件番号ＴＴ３７６０）、デール  Ｅ  グリック（Dale E. Gulick）およびジェフリー  Ｓ  ストロンジン（Geoffrey S. Strongin）による「セキュリティおよび管理性のための集積回路（INTEGRATED CIRCUIT FOR SECURITY AND MANAGEABILITY）」に記載されている。
【００４４】
認証エージェント９０の具体的な起動方法およびその起動周期は変更できる。例えば、モデム・ドライバ２４０が、認証エージェント９０を所定の周期（Ｎフレーム毎など）で起動してもよい。別の実施形態においては、認証エージェント９０が、モデム・ドライバ２４０とは独立した別のプロセスによって定期的に起動され得る。例えば、コンピュータ１００を動作させるオペレーティング・システムが、ＳＭＩを定期的に開始するタイマーを備えており、これによって認証エージェント９０が起動されてもよい。別の実施形態においては、認証エージェント９０を定期的に起動するために、セキュア・タイマなどのセキュリティハードウェアがコンピュータ１００に設けられてもよい。例えば、サウス・ブリッジ１５０に常駐する再起動タイマー１５５（図２参照）を使用して、所定の時間が経過したら定期的に認証エージェント９０を起動してもよい。再起動タイマー１５５の具体的な動作は、上で援用した米国特許出願第０９／８５３，４４７号に記載されている。
【００４５】
次に図４に、暗号プロセッサの実装を使用して認証エージェント９０を実行する、図２のプロセッサ複合体１１０の略式ブロック図を示す。図４の実施形態においては、プロセッサ複合体１１０は、マイクロプロセッサ３００およびメモリ３１０のほか、暗号プロセッサ３２０も備える。マイクロプロセッサ３００は、標準動作モードにおいてモデム・ドライバ２４０の機能を実行し、暗号プロセッサ３２０は、マイクロプロセッサ３００とは独立した特権動作モードにおいて認証エージェント９０の機能を実行する。暗号プロセッサは、独自のメモリ資源を有していてもよく、またメモリ３１０の保護領域または非上書き領域（non-overlapping portion）を使用してもよい。
ここで、認証エージェント９０の動作を詳細に記載する。認証エージェント９０は、定期的にモデム・ドライバ２４０を認証して、破損または改竄を検出する。モデム・ドライバ２４０の認証には、当業界で公知となっている種々のセキュリティ技術を用いることができる。この例では、公開鍵および秘密鍵とハッシュとを使用してデジタル署名を検証する。公開鍵暗号化方式においては、各ユーザーが、公開鍵と秘密鍵との２つの相補的な鍵を所有する。各鍵は、もう一方の鍵が暗号化したコードを復号化することができる。公開鍵を知っていても、この公開鍵から対応する秘密鍵を導出することはできない。公開鍵は、公開して通信ネットワークを介して広く配布することができる。本用途の場面（context）においては、製造業者または供給業者（すなわちサプライヤ）によって、ソフトウエア・ドライバ２４０用の公開鍵が提供される。公開鍵は、システムＢＩＯＳ１７０またはＡＣＲカード２１５に記憶されるなどして、コンピュータ１００に記憶される。
【００４６】
モデム・ドライバ２５０は、秘密鍵を使用してサプライヤによってデジタル署名することで、メッセージの「ハッシュ」が暗号化される。ダイジェストとは、暗号的に強力な一方向ハッシュ関数である。これは、モデム・ドライバ２４０の要約（compactly represents）であり、その変更点の検出に使用できるという点で「チェックサム」または巡回冗長検査（ＣＲＣ）誤り訂正コードに若干似ている。しかし、ダイジェストは、ＣＲＣとは異なり、攻撃者が、同一のダイジェストを生成する代替のプログラムイメージを作り出すのは、ほぼ不可能ではないにせよ計算上不可能である。ダイジェストは、秘密鍵によって暗号化され、モデム・ドライバ２４０のデジタル署名が作成される。セキュア・ハッシュ・アルゴリズム（ＳＨＡ）やメッセージ・ダイジェスト５（ＭＤ５）などの種々のダイジェスト標準が提唱されている。
【００４７】
認証エージェント９０は、メモリに常駐しているモデム・ドライバ２４０のハッシュを生成すると共に、モデム・ドライバ２４０に関連付けられているデジタル署名中に含まれるダイジェストを、公開鍵を使用して再生成する。モデム・ドライバ２４０のイメージ全体がハッシュに含められていてもよいし、イメージの特定の部分が選択されてもよい。認証に使用するデジタル署名は、ドライバのイメージ全体またはイメージの選択された部分に対応している必要がある。モデム・ドライバ２４０が変更されている場合は、認証エージェントが計算して求めたハッシュも相応して変更される。この変更されたハッシュは、公開鍵に基づいてデジタル署名から再生成されたダイジェストと一致しなくなる。認証エージェント９０がモデム・ドライバ２４０の変更を検出した場合、種々の保護動作がとられる。例えば、認証エージェント９０は、モデム・ドライバ２４０を使用不能にするか、あるいは復旧不可能なエラー状態を開始してコンピュータ１００を完全に使用不能にすることによって、ソフトウエア・モデム５０の動作を禁止する。
【００４８】
認証エージェント９０は、モデム・ドライバ２４０を認証することによって、モデム５０を不正に制御しようとする試みを比較的迅速に検出し、これを阻止することができる。これによって、通信ネットワークの大規模な中断が発生する可能性を低減できる。ソフトウェアによってモデムを実装することの柔軟性および融通性を犠牲にすることなく、ソフトウエア・モデム５０のセキュリティが向上する。
【００４９】
上記に記載した特定の実施形態は例に過ぎず、本発明は、本開示の教示から利益を得る当業者にとって自明の、同等の別法によって変更および実施されてもよい。さらに、ここに記載した構成または設計の詳細が、添付の特許請求の範囲以外によって制限を受けることはない。このため、上記に記載した特定の実施形態を変形または変更することが可能であり、この種の変形例の全てが本発明の範囲ならびに趣旨に含まれることが意図されることが明らかである。したがって、ここに保護を請求する対象は、添付の特許請求の範囲に記載したとおりである。
【図面の簡単な説明】
【００５０】
【図１】本発明の例示的な一実施形態による認証エージェントを備えた利用者局を含む通信システムの略式ブロック図である。
【図２】図１の通信システムにおいて利用者局を具体化する例示的なコンピュータの略式ブロック図である。
【図３】ＳＭＭまたはセキュアなアーキテクチャ拡張の実装を使用して認証エージェントを実行している、図２のプロセッサ複合体の略式ブロック図である。
【図４】暗号プロセッサの実装を使用して認証エージェントを実行している、図２のプロセッサ複合体の略式ブロック図である。
【図１】
2004535641.tif 000003
【図２】
2004535641.tif 000004
【図３】
2004535641.tif 000005
【図４】
2004535641.tif 000006
【国際公開パンフレット】
2004535641.tif 000007
2004535641.tif 000008
2004535641.tif 000009
2004535641.tif 000010
2004535641.tif 000011
2004535641.tif 000012
2004535641.tif 000013
2004535641.tif 000014
2004535641.tif 000015
2004535641.tif 000016
2004535641.tif 000017
2004535641.tif 000018
2004535641.tif 000019
2004535641.tif 000020
2004535641.tif 000021
2004535641.tif 000022
2004535641.tif 000023
2004535641.tif 000024
【国際公開パンフレット（コレクトバージョン）】
2004535641.tif 000025
2004535641.tif 000026
【国際調査報告】
2004535641.tif 000027
2004535641.tif 000028
2004535641.tif 000029