(57)【要約】  SIM装置（１８０）及び信用できるプラットフォーム（１１０，１２０，１４０）で実行されるアプリケーション間でデータがやり取りされ、やり取りされるデータは不正アクセスから保護される。一実施例では、データのやり取りは、信用のある経路でコンピュータシステム（１００）内で暗号キーをやり取りすること、及び暗号キーで暗号化されたデータを、信用のない経路でコンピュータシステム内でやり取りすることを含む。【特許請求の範囲】
【請求項１】
SIM装置及び信用できるプラットフォームで実行されるアプリケーション間でデータをやり取りするステップを有する方法であって、やり取りされるデータは不正アクセスから保護される
ことを特徴とする方法。
【請求項２】
前記データをやり取りするステップは：
信用のある経路でコンピュータシステム内で暗号キーをやり取りするステップと、
前記暗号キーで暗号化されたデータを、信用のない経路でコンピュータシステム内でやり取りするステップと、
を有することを特徴とする請求項１記載の方法。
【請求項３】
前記暗号キーをやり取りするステップは、前記コンピュータシステム内でメモリの保護された部分に前記暗号キーを前記アプリケーションが送信するステップと、
メモリの保護された部分で前記暗号キーにSIM装置がアクセスするステップと、
を有することを特徴とする請求項２記載の方法。
【請求項４】
前記暗号キーをやり取りするステップは、前記アプリケーションが前記SIM装置から前記暗号キーにアクセスするステップを含み、前記アプリケーションはチップセットの信用のあるポートで該暗号キーにアクセスする
ことを特徴とする請求項２記載の方法。
【請求項５】
前記暗号キーをやり取りするステップは、複数の暗号キーをやり取りするステップを含み、データをやり取りするステップは、個々のデータユニットをやり取りするステップを含み、データユニットの各々は、前記複数の暗号キーの中から選択された暗号キーで別々に暗号化される
ことを特徴とする請求項２記載の方法。
【請求項６】
前記データをやり取りするステップは、前記SIM装置からメモリの保護されていない部分にホストコントローラがデータを送信するステップを含む
ことを特徴とする請求項２記載の方法。
【請求項７】
前記データをやり取りするステップは、メモリの保護されていない部分から前記アプリケーションにドライバがデータを伝送するステップを含む
ことを特徴とする請求項６記載の方法。
【請求項８】
前記ホストコントローラがユニバーサルシリアルバス（USB）ホストコントローラであり、前記ドライバがUSBドライバである
ことを特徴とする請求項７記載の方法。
【請求項９】
前記暗号キーをやり取りするステップは、チップセットの信用のあるポートを通じてメモリの保護された部分からSIM装置が暗号キーを読み取るステップを含む
ことを特徴とする請求項６記載の方法。
【請求項１０】
前記アプリケーションが、暗号化されたデータを前記暗号キーを用いて解読するステップを更に含む
ことを特徴とする請求項６記載の方法。
【請求項１１】
前記暗号キーをやり取りする前に、前記アプリケーションが前記SIM装置を認証するステップを更に含む
ことを特徴とする請求項７記載の方法。
【請求項１２】
新たなトランザクションの各々、所定期間の経過、及び所定のデータ量のやりとりを有する群から選択された所定のイベントに基づいて、新たな暗号キーをやり取りするステップを更に含む
ことを特徴とする請求項６記載の方法。
【請求項１３】
プロセッサと、
保護された部分及び保護されていない部分を有するメモリと、
SIM装置と、
SIM装置及び信用できるプラットフォーム間でデータをやり取りするチップセットと、
を有し、やり取りされるデータは不正アクセスから保護される
ことを特徴とするシステム。
【請求項１４】
前記データのやり取りは：
信用のある経路でコンピュータシステム内で暗号キーをやり取りすること、及び前記暗号キーで暗号化されたデータを、信用のない経路でコンピュータシステム内でやり取りすることを含む請求項１３記載のシステム。
【請求項１５】
前記暗号キーのやり取りは、メモリの保護された部分に前記暗号キーを前記アプリケーションが送信すること、及びメモリの保護された部分で前記暗号キーにSIM装置がアクセスすることを含む請求項１４記載のシステム。
【請求項１６】
前記暗号キーのやり取りは、前記アプリケーションが前記SIM装置から前記暗号キーにアクセスすることを含み、前記アプリケーションはチップセットの信用のあるポートで該暗号キーにアクセスする
ことを特徴とする請求項１３記載のシステム。
【請求項１７】
前記暗号キーのやり取りは、複数の暗号キーのやり取りを含み、データのやり取りは、個々のデータユニットのやり取りを含み、データユニットの各々は、前記複数の暗号キーの中から選択された暗号キーで別々に暗号化される
ことを特徴とする請求項１３記載のシステム。
【請求項１８】
前記SIM装置からメモリの保護されていない部分にデータを送信するホストコントローラを更に含む
ことを特徴とする請求項１２記載のシステム。
【請求項１９】
メモリの保護されていない部分から前記アプリケーションにデータを伝送するドライバを更に含む
ことを特徴とする請求項１６記載のシステム。
【請求項２０】
前記ホストコントローラがユニバーサルシリアルバス（USB）ホストコントローラであり、前記ドライバがUSBドライバである
ことを特徴とする請求項１７記載のシステム。
【請求項２１】
前記SIM装置は、チップセットの信用のあるポートを通じてメモリの保護された部分から暗号キーを読み取る
ことを特徴とする請求項１４記載のシステム。
【請求項２２】
前記アプリケーションが、暗号化されたデータを前記暗号キーを用いて解読する
ことを特徴とする請求項１４記載のシステム。
【請求項２３】
前記暗号キーをやり取りする前に、前記アプリケーションが前記SIM装置を認証する
ことを特徴とする請求項１７記載のシステム。
【請求項２４】
新たなトランザクションの各々、所定期間の経過、及び所定のデータ量のやりとりを有する群から選択された所定のイベントに基づいて、新たな暗号キーがやり取りされる
ことを特徴とする請求項１４記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般に信頼できるコンピュータプラットフォームの技術分野に関し、特にSIM装置用コンピュータシステムの中で信頼できるチャネルを与えるための装置及び方法に関する。
【背景技術】
【０００２】
信頼できるオペレーティングシステム（OS）及びプラットフォームは比較的新しい概念である。第1世代のプラットフォームでは、アプリケーションが安心して動作可能であり且つ自由に改変できる信頼できる環境が形成された。他のアプリケーションから見ることができず（メモリ領域が保護され）且つ改変できない（コード実行フローは変更できない）環境を形成するために、プロセッサ、チップセット及びハードウエアでの変更によってセキュリティがもたらされた。その結果、コンピュータシステムは誰からも不正にアクセスされず或いはウイルスによっても汚染されない。
【０００３】
今日のコンピュータ世代では、しばしばスマートカードと呼ばれる加入者識別モジュール（SIM）が普及しつつある。SIMはクレジットカードサイズのカードであり、典型的には汎移動通信電話（GSM）システムで電話アカウント情報を格納するため及び認証認可課金管理(AAA:  Authentication  Authorization  and  Accounting)を行うために使用される。SIMカードはGMS電話機があたかも自身のものであるかのようにユーザがGMS電話機を借りる又は借用できるようにする。SIMカードは電話機の読み出し部でカスタムメニューを表示するようプログラムできる。場合によってはSIMカードは組み込まれたマイクロプロセッサ及びメモリを含み、それらは身元確認又は財務処理に使用される場合があるかもしれない。（SIMカードが）リーダに挿入されると、SIMにデータを転送するために又はSIMからデータを転送するためにSIMにアクセス可能になる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
コンピュータシステムでSIMカードを利用する場合には、認可されていないソフトウエアアプリケーションによるSIMへのアクセスを防ぐために、SIMカード中の情報に安全にアクセスする必要がある。そのような不正アクセスはSIMの機密事項を学習し或いはGSM認証機構を突破し、提供されるサービスを盗むように意図されているかもしれない。
【課題を解決するための手段】
【０００５】
上記の問題の少なくとも一部は、特許請求の範囲に記載の方法及び／又は方法により解決される。
【発明を実施するための最良の形態】
【０００６】
添付図面を参照しながら非限定的な１以上の実施例が以下に説明される。
【実施例１】
【０００７】
SIM装置用コンピュータシステム内で信用できるチャネルを用意する方法及びシステムが説明される。一実施例では、信用できるプラットフォームで実行されるアプリケーションとSIM装置との間でデータがやりとりされ、通信されるデータは不正アクセスから保護される。一実施例では信用できるチャネルを通じて暗号鍵がコンピュータシステム内で交換される。暗号鍵で暗号化されたデータはコンピュータシステム内で信用のないチャネルを通じて通信される。
【０００８】
以下、様々な具体例が詳細に説明される。しかしながら、これらの具体的詳細によらずに本発明が実現されてよいことは理解されるであろう。実施例では、説明を混乱させないようにするため、周知の回路、構造及び技術は示されていない。
【０００９】
本明細書を通じて「一実施例」や「実施例」に関するものは、その実施例に関して説明される特質、構造又は特徴が少なくとも１つの実施例に含まれることを示す。従って本明細書中の様々な場所で「一実施例では」や「実施例では」等で登場する語句は、全て同じ実施例を指すとは限らない。更に特定の特徴、構造又は特質は１以上の実施例で適切な如何なる方法で結合されてもよい。更にここで記述されるように、信用できるプラットフォーム、要素、ユニット又はそのサブユニット等は、保護される又は保全されるものとして可換に言及される。
【００１０】
［信用できるプラットフォーム］
図１は選択されたアプリケーション及びデータを不正アクセスから保護するように信頼できるプラットフォームを提供する本発明の一実施例によるコンピュータシステムを示す。図示の実施例のシステム１００はプロセッサ１１０と、プロセッサ１１０にプロセッサバス１３０で接続されたチップセット１２０と、メモリ１４０と、SIMカード１８２上でデータにアクセスするSIM装置１８０とを含む。代替実施例では追加的なプロセッサ及びユニットが含まれてもよい。
【００１１】
プロセッサ１１０は様々な要素を有し、限定ではないが、内蔵キー１１６、ページテーブル（PT）レジスタ１１４及びキャッシュメモリ（キャッシュ）１１２を含んでよい。キャッシュ１１２の全部又は一部は、プライベートメモリ（PM）１６０を含んでもよいし、プライベートメモリに転換可能でもよい。プライベートメモリは、プライベートメモリとして起動されると、どの不正装置からでも（例えば、関連するプロセッサ１１０以外の如何なる装置でも）そこへのアクセスを防ぐのに充分なプロテクション機能を備えたメモリである。
【００１２】
キー１１６は暗号化のため、データ／コードの様々なブロックの確認のため、解読のため及び／又は暗号化のために使用されてよい。或いはキー１１６はシステム１００内の代替的な別装置に用意されてもよい。PTレジスタ１１４は、どのメモリページが信用されるコードによってのみアクセス可能であるか及びどのメモリページがそのように保護されていないかを確認するためのレジスタ形式のテーブルである。
【００１３】
一実施例ではメモリ１４０はシステム１００のシステムメモリを含んでよく、一実施例ではランダムアクセスメモリ（RAM）のように一般に言及される揮発性メモリとして実現されてよい。一実施例ではメモリ１４０は保護されたメモリテーブル１４２を含んでよく、そのメモリテーブルは、メモリ１４０中のどのメモリブロックが、ダイレクトメモリアクセス（DMA）転送にアクセスできないかを定める（メモリブロックは連続的にアドレス指定可能なメモリロケーションの或る範囲である）。
【００１４】
メモリ１４０への全てのアクセスはチップセット１２０を通じて行われるので、チップセット１２０は如何なるDMA転送でもそれが許可される前に、保護されるメモリテーブル１４２を検査してよい。特定の動作例では、保護されたメモリテーブル１４２によりDMA転送から保護されるメモリブロックは、プロセッサ１１０の中でPTレジスタ１４４による保護された処理に制限される同一メモリブロックでもよい。保護されたメモリテーブル１４２は代替的にシステム１００内の別ユニットのメモリ装置内に格納されてもよい。
【００１５】
一実施例ではメモリ１４０は信用できるソフトウエア（S/W）モニタ１４４をも含み、信用される動作環境が構築されるとその信用される動作環境全体を監視及び制御する。一実施例では、信用できるS/Wモニタ１４４はメモリブロック中に用意され、保護されたメモリテーブル１４２によりDMA転送から保護される。
【００１６】
チップセット１２０は、プロセッサ１１０、メモリ１４０、SIM装置１８０及び不図示の他の装置の間でのインターフェースをもたらす論理回路でもよい。一実施例ではチップセット１２０は１以上の個々の集積回路として実現されてよいが、別の実施例では、チップセット１２０はより大規模な集積回路の一部として実現されてもよい。チップセット１２０はメモリ１４０へのアクセスを制御するメモリコントローラ１２２を含んでよい。更に、一実施例では、チップセット１２０はそのチップセット１２０に結合されるSIM装置のSIMリーダを備えてもよい。
【００１７】
一実施例では、保護レジスタ１２６は、プロセッサ１１０中の信用のあるマイクロコードによってのみ開始される命令によってのみ書き込み可能になる。信用のあるマイクロコードは或るマイクロコードであり、そのマイクロコードの実行は、認証された命令によってのみ及び／又は不正装置によっては制御できないハードウエアによってのみ開始されてよい。一実施例では、信用のあるレジスタ１２６は、信用できるメモリテーブル１４２及び信用できるS/Wモニタ１４４の場所を識別し、及び／又はそれらへのアクセスを制御するデータを保持する。一実施例では、信用できるレジスタ１２６は信用のあるメモリテーブル１４２の利用をイネーブルに又はディセーブルにするレジスタを含み、DMAプロテクション機能が、信用できる動作環境に入る前に活性化され及び信用できる動作環境を出た後に非活性化されるようにする。
【００１８】
［SIMカードでの信用チャネル］
図２はSIM装置用コンピュータシステム内で信用できるチャネルを用意する本発明の一実施例によるプロセスを記述するフローチャートである。ここで説明されるように、SIM装置に関するものはスマートカード以外のタイプに関連するものも含む。図２のフローチャートで説明されるプロセッサは、上述の図１のシステムに関連して説明されたものである。
【００１９】
一実施例ではプロセス２０２で、システム１００の信用できる環境で実行されるアプリケーション１５０は、そのシステム１００のSIM装置１８０中のどの情報がアクセスされるべきかを確認する。信用される環境で実行されるアプリケーション１５０は、キャッシュ１１２の保護されたメモリ１６０やメモリ１４０の保護された部分のような保護されたメモリ中に用意されてもよい。一実施例では、SIM装置１８０は、アクセスが、信用される環境のアプリケーションから到来しているものであることを確認する手段を含み、その環境はSIM装置が物理的に取り付けられているのと同じプラットフォームで動作し且つ遠隔的に動作する何らかのアプリケーションからのものではない。
【００２０】
プロセス２０４では、アプリケーション及びSIM装置は、そのSIM装置が、そこからアプリケーションがデータを受信する正当なSIM装置であることや、そのアプリケーションが、SIM装置がデータを送信する適切なアプリケーションであることを確認するように相互認証を実行する。相互認証は当該技術分野で周知の様々なプロセスで行われてよい。
【００２１】
プロセス２０６では、相互認証の完了後に、一実施例ではアプリケーション１５０は、メモリ装置に備わる信用されるチャネルを通じてメモリ１４０の保護された部分に及びCPUに保持される関連するPTエントリに暗号キーを送信する。一実施例では暗号キーを格納するメモリの保護部分は、保護されたメモリテーブル１４２により識別可能である。
【００２２】
メモリ１４０の保護された部分に対する（アプリケーション１５０により与えられる）暗号キーは、アプリケーション１５０により生成され、（データ暗号スタンダード（DAS）又はアドバンスト暗号化スタンダード（AES）のような）いくつもの利用可能な暗号プロセスの１つに利用可能である。一実施例では暗号キーはプロセッサ１１０のキー１１６により生成される。
【００２３】
プロセス２０８では、SIM装置１８０はメモリ１４０の保護部分中の暗号キーにアクセスする。一実施例ではSIM装置はチップセット１２０の信用できるポート１１２を通じて暗号キーにアクセスし、そのポートはメモリ１４０の保護された部分に対応付けられる。一実施例ではその信用できるポートはUSBを含むいくつものプラットフォームバスプロトコルの１つをサポートしてもよい。代替実施例では暗号キーはSIM装置によって提供され、そのアプリケーションはチップセットの信用できるポートを通じてSIM装置から暗号キーにアクセスする。
【００２４】
プロセス２１０ではSIM装置１８０は暗号キーを利用して、アプリケーション１５０に送付されるデータを暗号化する。プロセス２１２では、暗号化されたパケットが、チップセットのホストコントローラ１２８によって（例えば、USBホストコントローラによって）SIM装置１８０からメモリの普通の領域（即ち、メモリ１４０の非保護領域）に転送される。例えば、USBデータパケットのようなデータパケットを格納するのに使用されるメモリの領域である。
【００２５】
一実施例では、チップセットの普通のポート１２０（即ち、保護されていないポート）を通じて、暗号化されたパケットがホストコントローラによってメモリに伝送され、そのポートはメモリ１４８の保護されていない領域に対応付けられる。一実施例では、SIM装置からの暗号化されたパケットは、或る程度のプロテクションの完全性をもたらすためにメッセージ認証コード（MAC:  Message  Authentication  Code）を含む。
【００２６】
プロセス２１４では、ドライバ（例えば、保護されていないUSBドライバ）は、メモリ１４８の非保護部分から暗号化パケットにアクセスし、信用できる環境で実行されるアプリケーション１５０に暗号化されたパケットを与える。プロセス２１６では、アプリケーション１５０はSIMカード中のデータにアクセスするために暗号化されたパケットを解読（暗号解除）し、その暗号化されたパケットは、システム１００内の信用のない経路でそのアプリケーションに安全に伝送されてきたものである。
【００２７】
一実施例では新たな暗号キーは所定のイベントに基づいてやりとりされてよい。例えば、（実現時の選択肢に基づいて規定されるような）新たなトランザクション（処理）の各々、所定期間の経過、又は所定量のデータ伝送の何れかに又はそれらの組み合わせに従って、新たな暗号キーがやり取りされてもよい。
【００２８】
代替実施例では、SIM装置１８０及びアプリケーション１５０間で暗号化されたデータをやり取りするための複数の暗号キーが、アプリケーション１５０及びSIM装置１８０の間でやり取りされる。例えばSIM装置は複数のデータパイプ（例えば、バルクイン(bulk−in)、バルクアウト(bulk−out)及びデフォルト制御パイプ）を含んでもよい。SIM装置のデータパイプの各々に関し、別個の暗号キーがデータのやり取りを保護するために使用されてよい。或いは別個のデータパイプ全てが同じ暗号キーを利用してもよい。
【００２９】
代替実施例では、データパケットは暗号化せずにSIM装置からアプリケーションに伝送されてもよい。例えばホストコントローラ１２８は、チップセット１２０の信用のあるポート１１２を通じてSIM装置からメモリ１４０の保護された部分へデータを送信する。信用できるドライバは、メモリ１４０の保護された部分のデータにアクセスし、及びSIMデータを暗号化せずに信用できるパスを通じてデータをアプリケーション１５０に提供する。
【００３０】
上述のプロセスは、実行される命令群としてコンピュータシステムのメモリに格納可能である。更に、上述のプロセスを実行する命令は、代替的に、磁気ディスク及び光ディスクを含むマシン読み取り可能な媒体中に他の形式で格納されてもよい。例えば、上述のプロセスは、磁気ディスク又は光ディスクのようなマシン読み取り可能な媒体に格納されてよく、ディスクドライバ（又はコンピュータ読み取り可能な媒体ドライバ）によりアクセスされる。更に命令はコンパイルされリンクされた形式でデータネットワークを介してコンピュータ装置にダウンロード可能である。
【００３１】
或いは、上述したようなプロセスを実行する論理装置（ロジック）は、追加的なコンピュータ及び／又はマシン読み取り可能な媒体で実現されてよく、そのコンピュータ等は例えば大規模集積回路（LSI）のような個別的なハードウエア素子、特定用途向け集積回路（ASIC）、電気的に消去可能でプログラム可能なリードオンリメモリ（EEPROM）；並びに電気的に、光学的に、音響的に及び他の形式で伝搬する信号（例えば、搬送波、赤外線信号、ディジタル信号等）等でもよい。
【００３２】
上記の説明では、本発明がその具体的な実施例を参照しながら説明されてきた。しかしながら添付の特許請求の範囲に記載された本発明の広い精神及び範囲から逸脱せずに様々な修正及び変更がなされてよいことは明白であろう。特にここで説明されるようにSIM装置は、USBチップ／スマートカードインターフェースデバイス（CCID）を含むスマートカード装置を含む。更に、ここで説明されたシステムアーキテクチャは、使用されるどの特定のキー交換プロトコルにも依存しない。従って明細書及び図面は限定的な意味ではなく例示として解釈されるべきである。
【図面の簡単な説明】
【００３３】
【図１】選択されたアプリケーション及びデータを不正アクセスから保護するように信頼できるプラットフォームを提供する本発明の一実施例によるコンピュータシステムを示す図である。
【図２】SIM装置用コンピュータシステム内で信用できるチャネルを用意する本発明の一実施例によるプロセスを記述するフローチャートである。
【図１】
2007515704.tif 000002
【図２】
2007515704.tif 000003
【国際調査報告】
2007515704.tif 000004
2007515704.tif 000005
2007515704.tif 000006