(57)【要約】  本発明は，マイクロプロセッサと，複数のアプリケーションと，これらのアプリケーションを実行及び管理でき，各アプリケーションの識別子（３）をその実行に必要な識別情報に対応付けることができる汎用オペレーティングシステム（ＯＳ２）と，前記複数のアプリケーションにサービスを提供する信頼された環境（ＥＣ）とを含むコンピュータシステムのアプリケーションを認証する方法に関する。本発明によると，信頼された環境（ＥＣ）のサービスにアプリケーションがアクセスできる前に，前記アプリケーションの識別情報に対してハッシング操作が行われ，信頼された環境（ＥＣ）がこのハッシング操作の結果の真正性をチェックする。
2009521033.tif 000002
【特許請求の範囲】
【請求項１】
マイクロプロセッサと；複数のアプリケーションと；前記アプリケーションを実行及び管理できる，特に各アプリケーションの識別子（３）にその実行に必要な「識別情報」と呼ばれる情報を対応付けることができる，オープン汎用オペレーティングシステム（ＯＳ２）と；前記アプリケーションにサービスを提供する信頼された環境（ＥＣ）と；前記オペレーティングシステム（ＯＳ２）から前記信頼された環境（ＥＣ）へのアクセスを許可するドライバ（５）と呼ばれるソフトウェアコンポーネントと
を備えるコンピュータシステムのアプリケーションを認証する方法において，
この方法は，アプリケーションが前記信頼された環境の前記複数のサービスにアクセスする前に実行されるので，前記方法は，
−前記ドライバ（５）が前記アプリケーションの識別子を前記オペレーティングシステムに供給し，
−前記オペレーティングシステムが前記アプリケーションの実行に必要な，識別情報と呼ばれる特定の情報を前記ドライバに送り返し，
−前記「ハッシング」ドライバが暗号化ハッシング機能を用いて前記アプリケーションの識別情報に対して凝縮操作を実行し，凝縮結果が前記信頼された環境に送られ，
−前記凝縮された「ハッシング」操作の凝縮結果の真正性が前記信頼された環境によって検証される
操作フェーズを含み，
前記ＯＳ２オペレーティングシステムから前記信頼された環境への切り換えを制御し，
−非安全なアプリケーションから前記信頼された環境ＥＣにおいて実行される安全なサービスへの前記複数のアクセス要求をインターセプトする操作と，
−前記アクセス要求のインターセプトに引き続き，前記アプリケーションの識別子を前記オペレーティングシステムに送り，その実行コードに対応するファイルをこのシステムに要求する操作と，
−前記オペレーティングシステムから提供された前記ファイルに対してハッシング操作を実行する操作と，
−この「ハッシング」操作の凝縮結果を前記検証のために前記信頼された環境に送る操作と
を実行するように設計されたソフトウェアコンポーネント又はドライバ（５）を使用することを特徴とする方法。
【請求項２】
前記識別情報は，前記アプリケーションの実行コードを少なくとも含むことを特徴とする請求項１記載の方法。
【請求項３】
前記識別情報は前記アプリケーションによって使用される少なくとも特定のファイル名及び特定のファイルをさらに含むことを特徴とする請求項２記載の方法。
【請求項４】
前記信頼された環境（ＥＣ）による前記凝縮結果の真正性の検証は，許容可能な凝縮結果の一覧を検索することによって行われることを特徴とする請求項１記載の方法。
【請求項５】
前記認証の操作の検証は，前の「ログイン」（又は保存）フェーズで行われるため，前記信頼された環境（ＥＣ）の前記サービスへの何れのアクセス要求よりも前に前記アプリケーションの認証を可能にすることを特徴とする請求項１記載の方法。
【請求項６】
前記凝縮結果の前記検証の結果に応じて，前記信頼された環境（ＥＣ）は，そのサービスへの異なるアクセス権を前記アプリケーションに与えることを特徴とする請求項１〜５いずれか１項記載の方法。
【請求項７】
前記信頼された環境（ＥＣ）から提供される前記サービスは，前記コンピュータオペレーティングシステム（ＯＳ２）の特定リソースへのアクセスを少なくとも含むことを特徴とする請求項１〜６いずれか１項記載の方法。
【請求項８】
前記信頼された環境（ＥＣ）によってアクセスが制御される前記コンピュータオペレーティングシステムの前記複数のリソースは，暗号化手段を含むことを特徴とする請求項７記載の方法。
【請求項９】
前記信頼された環境（ＥＣ）によってアクセスが制御される前記コンピュータオペレーティングシステムの前記複数のリソースは，コンテンツ使用権（ＤＲＭ）を含むことを特徴とする請求項８記載の方法。
【請求項１０】
前記信頼された環境（ＥＣ）は安全なマイクロプロセッサモードで実行されることを特徴とする請求項１〜９いずれか１項記載の方法。
【請求項１１】
複数のアプリケーションと；前記アプリケーションを実行及び管理できる，特に各アプリケーションの識別子（３）にそれを実行するために必要な情報を対応付けることができる，オープン汎用オペレーティングシステム（ＯＳ２）と；サービスを前記アプリケーションに提供する信頼された環境（ＥＣ）と；前記オペレーティングシステム（ＯＳ２）から前記信頼された環境（ＥＣ）へのアクセスを管理するドライバ（５）と呼ばれるソフトウェアコンポーネントと
を備えるコンピュータシステムのアプリケーションを認証するシステムにおいて，
−前記ドライバ（５）が前記信頼された環境ＥＣにおいて実行される安全なサービスへの非安全なアプリケーションからのアクセス要求をインターセプトする手段と，
−前記ドライバ（５）が前記インターセプトされたアプリケーションの識別子を前記ＯＳ２オペレーティングシステムに供給する手段と，
−前記オペレーティングシステムが前記アプリケーションの実効に必要な，識別情報と呼ばれる特定の情報を前記ドライバに返す手段と，
−前記ドライバ（５）が暗号化ハッシング機能を用いて前記識別情報に対する「ハッシング」操作によって凝縮を実行し，「凝縮された」と呼ばれる前記結果を前記信頼された環境に送る手段と，
−前記信頼された環境により前記凝縮結果の真正性を検証する手段と
を含むことを特徴とするシステム。
【請求項１２】
携帯電話機，オーディオプレーヤ，ビデオプレーヤ，又はＰＤＡなどの携帯機器上で実行されることを特徴とする請求項１１記載のアプリケーションを認証するシステム。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
本発明は，コンピュータシステムのアプリケーションを認証する方法に関する。
【０００２】
コンピュータシステムは，一定数の「信頼された」サービスが安全なローカル環境（信頼された環境）で動作すると考えられる。これらのサービスは，この信頼された環境の外側からアクセスしうる機能を提供する。したがって，本発明の目的は，誰（及び，どのアプリケーション）が各機能へのアクセス権を有するかを制御することである。
【０００３】
例えば，信頼された環境において実行されるデジタル著作権管理（ＤＲＭ）エージェントのケースを使用してもよい。このＤＲＭエージェントは，ＤＲＭライセンスによって保護されたＭＰ３ファイルの読み出しのための承認を管理する。このライセンスは，例えば，ＭＰ３ファイルを限られた日付まで読み出す権利を含む。ＤＲＭエージェントは，ライセンス条件が遵守されていることを検証する責任がある。信頼された環境における操作は，この使命の遂行を助ける。例えば，ローカルシステムの日時に関して保証を得ている。条件が遵守されている場合，ＤＲＭエージェントはＭＰ３ファイルの読み出しを承認する。この目的のために，ＭＰ３ファイルを復号化するための鍵を標準ＭＰ３プレーヤアプリケーション（標準ゾーン，すなわち信頼された環境の外側で実行されるアプリケーション）に提供する必要がある。ＤＲＭエージェントがこの鍵を未知のＭＰ３プレーヤアプリケーション（例えば，この鍵をインターネットに公表しうるアプリケーションなど）に供給すべきではないことは明らかである。この例から明らかなように，安全なサービス（ＤＲＭエージェント）は，ＭＰ３ファイルの読み出しを求める標準アプリケーション（ＭＰ３プレーヤ）を認証する必要がある。
【０００４】
さらに，閉じられたオペレーティングシステム（すなわち，すべてのアプリケーションが管理者又は承認されたユーザの監視下で最初にインストールされているシステム）又は閉じられた実行環境である閉じた環境においては，ローカルサービスは，別のローカルアプリケーションを容易に認証できる。確かに，閉じたオペレーティングシステムである場合は，アプリケーション自体のインストールは，承認された人間のみがこの操作を実行できるので，その真正性の保証である。アプリケーションのフォーマットは，その真正性又は完全性を検証する手段を仮想マシンに提供するように設計されている（その構成により，仮想マシンは実行するアプリケーションのコードを操作する）ため，実行環境（仮想マシン）の場合は，問題が多少複雑になる。
【０００５】
この問題は，新しいアプリケーションを自由にダウンロードしてインストールしうるばかりでなく，アプリケーションの開発，変更，デバッグ，及びトレーシング用のツールが多数存在するオープンシステムではさらに複雑である。ただし，携帯電話機，携帯マルチメディアプレーヤ，又はＰＤＡ（携帯情報端末）などのためのオンボード（又は埋め込み）コンピューティングシステムの分野においても，オープンシステムの使用がますます増えているため，情報システムを見つける必要性はより一層重要である。
【０００６】
この結果，一部のシステムは，先進的なセキュリティ機構をオペレーティングシステムの内部に統合することを選択している。これは，具体的には，例えばＬｉｎｕｘ，ＳＥＬｉｎｕｘ（どちらも登録商標）など，承認の概念が統合されているオペレーティングシステムに見られる機能のケースである（承認の例：「真正のＭＰ３プレーヤアプリケーションは，ＤＲＭエージェントのサービスの使用を承認される」）。この情報システムには，いくつかの不具合がある。すなわち，
−侵入的である：オペレーティングシステム全体をこの概念に基づかせる必要があり，この概念を含めるためにオペレーティングシステム全体を書き換える必要がある。この概念向けにプログラムされていないオペレーティングシステムは，この概念を含めるために大幅な変更を要する。
−これらの承認の構成は，一般的なケースに対して例外を多数作る必要があるばかりか，時が経てばこれらの承認が変わりうるため，システム管理者にとって永久的な問題である。
−アプリケーションの認証はオペレーティングシステムに委ねられるが，オペレーティングシステムはその役割ではない。オペレーティングシステムの役割は，タスク相互間の管理であり，セキュリティ操作を実行することではない。セキュリティ処理を汎用エンティティに委託することが悪い慣習であることは知られている。反対に，セキュリティ操作は専用の限られた１つのモジュールにまとめるべきである。
【０００７】
他の情報システム，例えば「信頼されたコンピューティング」モデルなどは，特定のセキュリティハードウェア（トラステッドプラットフォームモジュール-ＴＰＭ）の存在及び暗号化証明機構に基づく。この場合，ＴＰＭは，ローカルシステムの真正性に関する保証を外部エンティティに与える責を負う。ただし，暗号化証明は，グローバルシステムに対する保証を与えるように設計されており，所与のアプリケーションに対する保証を与えるようには設計されていない（ローカルアプリケーションの認証にＴＰＭを用いるシステムは存在しない）。さらに，専用ハードウェアの追加は，（技術的及び／又は商業上の理由により）あらゆる状況において必ずしも可能であるとは限らない。
【０００８】
したがって，本発明の特定の目的は，信頼された環境の外側で実行される「標準」アプリケーションの真正性に対する保証を，オープンオペレーティングシステム上で，このオペレーティングシステムを変更せずに，信頼された環境の内部で動作する安全なサービスに対してローカルに提供するための方法によって，上記の不具合を排除することである。この方法は，次の３つの異なるレベルの信頼を得ることを可能にする。
−標準アプリケーション（非安全）
−オペレーティングシステム（一定レベルの特権を有する）及び
−信頼されたアプリケーション。
【０００９】
この方法は，以下を含む，オペレーティングシステムのアプリケーションの認証を可能にする。
−複数のアプリケーション，
−前記アプリケーションを実行及び管理でき，特に各アプリケーション識別子にその実行に必要な「識別情報」と称される情報を関連付けることができる汎用オペレーティングシステム，
−前記アプリケーションにサービスを提供する信頼された環境
【００１０】
本発明によると，信頼された環境の各サービスにアプリケーションがアクセスする前に，この方法は，
−前記アプリケーションの識別情報に対する「ハッシング」操作を実行し；
−信頼された環境による前記「ハッシング」操作によって凝縮された結果の真正性を検証する
操作フェーズを含む。
【００１１】
利点として，本プロセスは，オペレーティングシステムから信頼された環境へのアクセスを許可する「ドライバ」ソフトウェアコンポーネントをさらに備えることもでき，この場合は，各操作を以下のように実行することもできる。
−ドライバは，アプリケーションの識別子をオペレーティングシステムに与える；
−オペレーティングシステムは，識別情報をドライバに与える；
−ドライバは，この識別情報に対して「ハッシング」操作を実行し，凝縮された結果を信頼された環境に送る。
【００１２】
利点として，
−上記の識別情報は，アプリケーションの実行コードを含んでもよく，場合によっては，アプリケーションによって使用される特定のファイル名及びファイルをさらに含んでもよい。
−信頼された環境による凝縮結果の真正性の検証は，許容可能な凝縮結果の一覧を検索することによって実行しうる。
−各認証操作は，アプリケーションが信頼された環境のサービスへのアクセスを要求した際に行いうる。
−各認証操作は前の「ログイン」フェーズにおいて実行しうるので，信頼された環境のサービスへのアクセス要求の前に，当該アプリケーションを認証することができる。
−凝縮結果の結果に応じて，信頼された環境はそのサービスに対するさまざまなアクセス権を当該アプリケーションに与えうる。
−信頼された環境によって提供されるサービスは，コンピュータシステムの特定のリソースへのアクセスを少なくとも含みうる。
−信頼された環境によって制御されるコンピュータシステムのリソースは，暗号化手段（moyens de chiffrement cryptographique）を含みうる。
−信頼された環境によって制御されるコンピュータシステムのリソースは，特定のコンテンツの使用権（ＤＲＭ）を含みうる。
【００１３】
利点として，信頼された環境（ＥＣ）は，改良されたセキュリティ保証を提供する安全なマイクロプロセッサモードにおいて実行されうる。
【００１４】
本発明は，前記で定義した方法を使用する，携帯電話機，オーディオ又はビデオプレーヤ，ＰＤＡなどの携帯装置上で実行されうるアプリケーションのための認証システムにさらに関する。
【００１５】
本発明の１つの実施態様を，非限定的な例として付属の図面を参照し，以下に説明する。
【００１６】
一の図面は，本発明による認証システムのアーキテクチャの図式表現である。
【００１７】
この例において，端末１は，以下を使用する。
−オープンオペレーティングシステムＯＳ２（Ｌｉｎｕｘ，Ｗｉｎｄｏｗｓ，Ｓｏｌａｒｉｓなど（いずれも登録商標））。もちろん，このＯＳ２オペレーティングシステムは，認証対象のアプリケーションを管理できる必要がある。「標準」（非安全な）アプリケーションは，このオペレーティングシステム上で直接実行される。このオペレーティングシステムは，２つのグローバル特権レベル（ユーザモード／カーネルモード）を有する。
−セキュリティサービス４を実行するための信頼された環境ＥＣ。
【００１８】
ＯＳ２オペレーティングシステムから信頼された環境ＥＣへの切り換えは，ＯＳ２オペレーティングシステムのカーネルで実行される，言わば小型モジュール（又はプラグイン）であるドライバ５によって制御される。
【００１９】
このドライバは，非安全なアプリケーション（ＯＳ２オペレーティングシステムで実行されるアプリケーション）から安全なサービス４（信頼された環境ＥＣで実行されるサービス）へのアクセス要求をインターセプトするように設計される。
【００２０】
アクセス要求のインターセプトに引き続き，ドライバ５はアプリケーションの識別子をＯＳ２オペレーティングシステムに送り，その実行コードに対応するファイルを要求する。通常，オペレーティングシステムはこの情報をプロセス制御ブロック（ＰＣＢ）と呼ばれるデータ構造に保持する。
【００２１】
ドライバ５は，ＯＳ２オペレーティングシステムから提供されたファイルに対して「ハッシング」操作（ＳＨＡ−１など）を実行する。
【００２２】
ＯＳ２オペレーティングシステムは，アプリケーションが使用するすべての重要ファイル（例えば，構成ファイル，共有ライブラリなど）の絶対名を含む「マニフェスト」ファイルをファイルディレクトリ内でさらに検索してもよく，この情報をドライバ５に供給する。次に，ドライバ５は，実行マニフェストファイル及び該マニフェストファイル内で参照されているすべてのファイル（又はその一部）に対して「ハッシング」操作を実行する。
【００２３】
何れの場合も，凝縮結果は，（「ハッシング」機能がクラッシュの回避を可能にする場合，）非安全なアプリケーションの一意な識別を提供する。次に，これは，信頼された環境に送られて，その真正性が検証される。例えば，この凝縮結果を許容可能な凝縮結果の一覧と対比させてもよい。当該凝縮結果が見つかった場合，セキュリティサービス４から提供されるサービスへのアクセスが承認されうる。
【００２４】
前記の例において，ＯＳ２オペレーティングシステムは，信頼された環境ＥＣのサービスへのアクセス要求に対応するファイルの特定及び，関連情報の検索のためにのみ介入し，オペレーティングシステムの分野に完全に含まれる，凝縮結果の計算又は認証チェックは行わない。
【００２５】
さらに，信頼された環境ＥＣの証明書は，ＯＳ２オペレーティングシステムに基づかせる必要はなく，ＯＳ２オペレーティングシステムから独立させてもよい。一の図は，可能な１つの実施形態にすぎない。
【００２６】
Ｌｉｎｕｘ（登録商標）オペレーティングシステム上では，各プロセスはＬｉｎｕｘ（登録商標）カーネル内でタスク（「ｓｔｒｕｃｔ  ｔａｓｋ＿ｓｔｒｕｃｔ」）として見えるという観察に基づき，ドライバ５は以下の操作シーケンスに従って，接続要求に関連するファイルの一覧を入手する。
−プロセスに対応するタスクから，このタスクがメモリにマッピングしたページを取得する（「ｇｅｔ＿ｔａｓｋ＿ｍｍ（ｔａｓｋ）」）。こうして，「ｓｔｒｕｃｔ＿ｍｍ＿ｓｔｒｕｃｔ」を取得する。
−これらのページのそれぞれにおいて，実行可能とマークされたページを検索する（ｍｍ−＞ｍｍａｐ＆ＶＭ＿ＥＸＥＣＵＴＡＢＬＥ）。ここで，このページは当該プロセスに対応する実行ファイルに属するという（妥当な）仮定が行われる。
−このファイルは，このページに対応付けられていることが分かる（ｍｍ−＞ｍｍａｐ−＞ｖｍ＿ｆｉｌｅ）。Ｌｉｎｕｘ（登録商標）オペレーティングシステムにおいては，これは「ｓｔｒｕｃｔ＿ｆｉｌｅ」である。
−見つかったファイルの内容に対して「ハッシング」操作を行う。
マニフェストファイルの使用が導入される場合は，さらに以下の操作が必要である。
−このファイルのパスを取得する。このファイルに対応付けられているさまざまな「ｄｅｎｔｒｙ」（ｖｍ＿ｆｉｌｅ−＞ｆ＿ｄｅｎｔｒｙ）を
−このディレクトリにおいて当該マニフェストファイルを検出し，
−当該マニフェストファイル内で参照されている各ファイルを検出し，
−当該マニフェストファイルを含むすべてのファイルをハッシングするために
再帰的にブラウズする。
【図面の簡単な説明】
【００２７】
なし
【図１】
2009521033.tif 000003
【国際調査報告】
2009521033.tif 000004
2009521033.tif 000005
2009521033.tif 000006
2009521033.tif 000007
2009521033.tif 000008
2009521033.tif 000009