(57)【要約】【課題】  モバイル・デバイスにおけるメッセージ処理法を提供する。【解決手段】  モバイル・デバイス上で動作する第１アプリケーションを介してモバイル・デバイスからメッセージを送信する方法が提案される。この方法は、第１アプリケーションにチャレンジを供給するチャレンジ・ステップと、チャレンジに対する応答を受信する応答ステップと、受信された応答が期待応答に対応するかどうかを判断する等価性チェック・ステップと、暗号鍵及び等価性チェック・ステップの結果を使用して、メッセージに署名を付加する署名ステップと、署名が付加されたメッセージを第１アプリケーションを介してモバイル・デバイスからバックエンド・システムに送信する送信ステップとを含む。【選択図】      図１
2009543414.tif 000002
【特許請求の範囲】
【請求項１】
メッセージ（μ）をモバイル・デバイス（２００）から、該モバイル・デバイス（２００）上で動作する第１アプリケーション（１）を介して送信する方法であって、
前記第１アプリケーション（１）にチャレンジ（１８）を供給するチャレンジ・ステップ（２５）と、
前記チャレンジ（１８）に対する応答（１９´）を受信する応答ステップ（２６）と、
受信された応答（１９´）が期待応答（１９）に対応するかどうかを判断する等価性チェック・ステップ（３２）と、
暗号鍵及び前記等価性チェック・ステップ（３２）の結果（Ｓ）を使用して、メッセージ（μ）に署名（Ω）を付加する署名ステップ（４９）と、
前記第１アプリケーション（１）を介して、前記署名が付加されたメッセージ（μ＋Ω）を前記モバイル・デバイス（２００）からバックエンド・システム（３００）に送信する送信ステップ（３１）と
を含む方法。
【請求項２】
前記メッセージ（μ）は、前記署名ステップ（４９）の前に、前記等価性チェック・ステップ（３２）の結果（Ｓ）によりメッセージ修正ステップ（４８）において変更される、請求項１に記載の方法。
【請求項３】
前記メッセージ（μ）は、前記等価性チェック・ステップ（３２）の前記結果（Ｓ）を前記メッセージ（μ）に付加することによって変更される、請求項２に記載の方法。
【請求項４】
前記署名が付加されたメッセージ（μ＋Ω）は、前記送信ステップ（３１）において、前記モバイル・デバイス（２００）の第１通信モジュール（６０）を介して送信される、請求項１乃至請求項３のいずれかに記載の方法。
【請求項５】
前記メッセージ（μ）は、スマート・カード（１０）上にストアされた秘密／公開鍵対（１２）の秘密鍵を使用して暗号化される、請求項１乃至請求項４のいずれかに記載の方法。
【請求項６】
前記暗号鍵はスマート・カード（１０）上に保持される、請求項１乃至請求項５のいずれかに記載の方法。
【請求項７】
前記暗号鍵は、スマート・カード（１０）上にストアされた前記秘密／公開鍵対（１２）の前記秘密鍵を含むように選択される、請求項１乃至請求項６のいずれかに記載の方法。
【請求項８】
メッセージ（μ）をモバイル・デバイス（２００）で、該モバイル・デバイス（２００）上で動作する第１アプリケーション（１）を介して受信する方法であって、
前記メッセージ（μ）を暗号化形式で受信するメッセージ受信ステップ（３３）と、
前記第１アプリケーション（１）にチャレンジ（１８）を供給するチャレンジ・ステップ（２５）と、
前記チャレンジ（１８）に対する応答（１９´）を受信する応答ステップ（２６）と、
前記受信された応答（１９´）が期待応答（１９）に対応するかどうかを判断する等価性チェック・ステップ（３２）と、
前記等価性チェック・ステップ（３２）の結果（Ｓ）が肯定である場合、前記メッセージ（μ）を復号するメッセージ復号ステップ（３８）と、
前記等価性チェック・ステップ（３２）の前記結果（Ｓ）が否定である場合、エラー生成ステップ（５１）と
を含む方法。
【請求項９】
前記暗号化形式は、スマート・カード（１０）上にストアされた秘密／公開鍵対（１２）の公開鍵の使用のもとで作成される、請求項８に記載の方法。
【請求項１０】
前記暗号化形式は、前記メッセージ（μ）と共に受信される対称暗号鍵（Σ）の使用のもとで作成され、
前記対称暗号鍵（Σ）は暗号化形式で受信され、
前記暗号化形式は、スマート・カード（１０）上にストアされた秘密／公開鍵対（１２）の公開鍵の使用のもとで作成される、
請求項８に記載の方法。
【請求項１１】
前記チャレンジ（１８）及び前記期待応答（１９）は、一組の所定のチャレンジ／期待応答（１８、１９）から選択される、請求項１乃至請求項１０のいずれかに記載の方法。
【請求項１２】
前記チャレンジ・ステップ（２５）及び前記応答ステップ（２６）は、スマート・カード（１０）上の保全性アプレット（１１）によって実行される、請求項１乃至請求項１１のいずれかに記載の方法。
【請求項１３】
前記チャレンジ・ステップ（２５）は、前記モバイル・デバイス（２００）のメモリ（４０）内の所定のメモリ領域のハッシュ値（Ｈ）を計算することの要求を含む、請求項１乃至請求項１２のいずれかに記載の方法。
【請求項１４】
前記メモリ領域は、前記第１アプリケーション（１）の第１アプリケーション・イメージ（４１）の少なくとも一部分を含むように選択される、請求項１３に記載の方法。
【請求項１５】
前記メモリ領域は開始アドレス（ｓ）及び終了アドレス（ｅ）によって決定され、
前記メモリ領域は、前記一組の所定のチャレンジ／期待応答（１８、１９）の異なるチャレンジ（１８）の間で異なる、
請求項１３又は請求項１４に記載の方法。
【請求項１６】
前記等価性チェック・ステップ（３２）の前記結果（Ｓ）は、否定である場合、否定保全性フラグ（ａｐｐ＿ｉｎｔｅｇｅｒ）として維持される、請求項１乃至請求項１５のいずれかに記載の方法。
【請求項１７】
前記第１アプリケーション（１）は、前記モバイル・デバイス（２００）の前記第１通信モジュール（６０）を介して更新可能である、請求項１乃至請求項１６のいずれかに記載の方法。
【請求項１８】
前記更新された第１アプリケーション（１）は第２アプリケーション・イメージ（４３）内にストアされる、請求項１７に記載の方法。
【請求項１９】
前記更新された第１アプリケーション（１）は、一組の更新されたチャレンジ／期待応答（１８、１９）と共に受信される、請求項１７又は請求項１８に記載の方法。
【請求項２０】
前記等価性チェック・ステップ（３２）の後、前記等価性チェック・ステップ（３２）の前記結果（Ｓ）を通信せずに、前記応答（１９´）の受信を通知する受信通知ステップ（２７）をさらに含む、請求項１乃至請求項１９のいずれかに記載の方法。
【請求項２１】
データ処理システムのプロセッサにロードされたとき、請求項１乃至請求項２０のうちの１項に記載の方法を実行するように、前記プロセッサを構成するコンピュータ・プログラム・コード手段を含むコンピュータ・プログラム要素。
【請求項２２】
第１アプリケーション（１）の第１アプリケーション・イメージ（４１）を内部にストアするためのメモリ（４０）と、
受信されたチャレンジ（１８）に対する応答（１９´）を計算するように適合された第１プロセッサ（２０）と、
スマート・カード（１０）から前記チャレンジ（１８）を受信し、前記応答（１９´）を送信し、そして署名が付加されたメッセージ（μ＋Ω）を受信するためのカード・リーダ（１００）と、
前記署名が付加されたメッセージ（μ＋Ω）をバックエンド・システム（３００）に送信するための第１通信モジュール（６０）と
を含む、モバイル・デバイス（２００）。
【請求項２３】
第１アプリケーション（１）にチャレンジ（１８）を供給するチャレンジ・ステップ（２５）と、
前記チャレンジ（１８）に対する応答（１９´）を受信する応答ステップ（２６）と、
前記受信された応答（１９´）が期待応答（１９）に対応するかどうかを判断する等価性チェック・ステップ（３２）と
を実行するための保全性アプレット（１１）と、
暗号鍵及び前記等価性チェック・ステップ（３２）の結果（Ｓ）を使用して、メッセージ（μ）に署名する署名ステップ（４９）と、
前記メッセージ（μ）に対する前記署名（Ω）を第１通信モジュール（６０）に転送する署名転送ステップ（２９）と
を実行するための電子署名アプレット（１３）と
を内部にストアして含むスマート・カード（１０）。
【請求項２４】
前記保全性アプレット（１１）は、前記等価性チェック・ステップ（３２）の後、前記等価性チェック・ステップ（３２）の前記結果（Ｓ）を通知せずに、前記応答（１９´）の受信を通知する受信通知ステップ（２７）を実行するようにさらに適合される、請求項２３に記載のスマート・カード（１０）。
【請求項２５】
秘密／公開鍵対（１２）をさらに含み、そのうちの公開鍵が前記暗号鍵として使用可能である、請求項２３又は請求項２４に記載のスマート・カード（１０）。
【請求項２６】
一組の所定のチャレンジ／期待応答（１８、１９）をさらに含み、その中から前記チャレンジ（１８）及びその期待応答（１９）を選択できる、請求項２３乃至請求項２５のいずれかに記載のスマート・カード（１０）。
【請求項２７】
前記等価性チェック・ステップ（３２）の前記結果（Ｓ）が、否定である場合に、その中に維持される保全性フラグ（１４）をさらに含む、請求項２３乃至請求項２６のいずれかに記載のスマート・カード（１０）。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モバイル・デバイスからメッセージを、このモバイル・デバイス上で動作するアプリケーションを介して送信する方法に関する。本発明はまた、モバイル・デバイスでメッセージを受信する方法に関する。本発明はさらにモバイル・デバイス及びスマート・カードに関する。
【背景技術】
【０００２】
バックエンド／インフラストラクチャ・コンポーネント、並びに、埋め込みシステム・コンポーネントの両方を含む統合システムを構築することは、特に、エンド・ツー・エンド・システムの保全性を保証する問題を提起する。このような統合システムにおいて、バックエンド・システムは、埋め込みセンサ・コンポーネントから発するデータは正しく且つ改ざんされていないものとして信頼する。
【０００３】
バックエンド・システムの保全性を保証することは既知の問題であり、典型的には適切にシステムを保護しシステム保全性を保証するために、種々の機構及び措置が使用可能である。また、バックエンド・システムは、通常は、物理的に保護することもできる固定された物理的位置にインストールされ、そしてシステムへの物理的アクセスをモニタすることができる。対照的に、埋め込みコンポーネントは移動性であることが多く、限定されたリソースを有し、保護することはより難しい。これらの埋め込みコンポーネントへの物理的アクセスは、殆どの場合制御又は制限することができない。例えば、埋め込みシステムは、車に取り付けることができるので、その車に近づくことができる誰もが埋め込みシステム自体にアクセスすることができる。
【０００４】
それゆえに、問題はシステム保全性を保証すること、即ち、一端にバックエンド・システム及び他端にモバイル・デバイスを含む環境において、アプリケーション・イメージが改ざんされていないことを確認することである。保全性は、バックエンド・システムとモバイル・デバイスの間で送信されるメッセージが完全体ソースからくるものとして信頼できることを保証するのに有用である。
【０００５】
統合された暗号コンポーネントを有する専用ロセッサを使用すること、又は、Ｔｒｕｓｔｅｄ  Ｃｏｍｐｕｔｉｎｇ  Ｇｒｏｕｐ（ＴＣＧ）のＴｒｕｓｔｅｄ  Ｐｌａｔｆｏｒｍ  Ｍｏｄｕｌｅ（ＴＰＭ）機構のような統合されたスマート・カードを使用することが知られており、その場合セキュリティ・コンポーネントが、例えばＣＰＵの状態にアクセスしてメモリアクセスを受動的にモニタすることができ、又は、アプリケーション・イメージにわたるチェックサムを信頼して、これらのチェックサムをアプリケーション・イメージ内にストアされている事前に計算したチェックサムと比較する。第１のアプローチは、ハードウェアの観点から比較的費用がかかるので大ボリュームに関してのみ実行可能であり、後者のアプローチはアプリケーション・イメージのリバース・エンジニアリングによって無効化される。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
従って、本発明の課題は、モバイル・デバイスからバックエンド・システムにメッセージを送信するための、上述の欠点を克服する方法を提供することである。
【課題を解決するための手段】
【０００７】
本発明の１つの態様により、モバイル・デバイスからメッセージをそのモバイル・デバイス上で動作する第１のアプリケーションを介して送信する方法が提供されるが、この方法は、第１アプリケーションにチャレンジを供給するチャレンジ・ステップと、チャレンジに対する応答を受信する応答ステップと、受信された応答が期待応答に対応するかどうかを判断する等価性チェック・ステップと、暗号鍵及び等価性チェック・ステップの結果を使用して、メッセージに署名を付加する署名ステップと、第１アプリケーションを介してモバイル・デバイスからバックエンド・システムに署名が付加されたメッセージを送信する送信ステップとを含む。上記のプロセスにより、第１アプリケーションがその保全性に関してテストされ、このテスト結果がバックエンド・システムに送信されるメッセージの署名に影響を与える。バックエンド・システムは、本明細書においては、モバイル・デバイスから物理的に分離され、且つ、モバイル・デバイスに対する通信接続を有するシステムとして理解される。好ましい実施形態において、このようなバックエンド・システムは、モバイル・デバイスを制御し、モバイル・デバイスからのデータ又はそれに送信されるデータをストアし、モバイル・デバイスを追跡し、モバイル・デバイスに関するチェックを実行し、モバイル・デバイス上のソフトウェアを更新し、モバイル・デバイスからのデータ又はそれに送信されるデータを処理し、モバイル・デバイスからのデータを他のシステムに送信するなどの任意の機能性を備えることができる。
【０００８】
好ましい実施形態において、メッセージは、署名ステップの前に、等価性チェック・ステップの結果によりメッセージ修正ステップにおいて修正される。このステップは、特にメッセージが送信する前に修正されるだけでなく暗号化される場合には、第１アプリケーションに対して透過的に実行することができる利点を有する。従って、第１アプリケーションは、その非保全性が検出される場合でも、その非保全性をバックエンドに信号伝達するメッセージ修正をそれ自体は検出することができないので、全てが正常に、即ち、それが完全体であるかのように動作するとの想定に基づいて、バックエンド・システムにメッセージを配信することになる。
【０００９】
好ましい実施形態において、メッセージは、等価性チェック・ステップの結果をメッセージに加えることによって修正される。これは、配信されるメッセージの元のコンテンツが変更されず、依然として受信側が送信側第１アプリケーションの非保全性を判断できることになるという利点を有する。また、この種類のメッセージ修正を実現することは技術的に容易である。
【００１０】
好ましい実施形態において、メッセージ自体はあらゆる種類の情報を伝えるものであるが、その情報は、第１アプリケーションの安全性、信頼性又は保全性に関する何らの情報も含まない。上の方法は、それゆえに、それ自体は完全体の第１アプリケーションの場合には変更されないメッセージを変更するのに適している。それゆえに、完全体の第１アプリケーションに関して、モバイル・デバイスへ及びそれからメッセージを転送する機構は、保全性チェックにより起こりうる遅延を除いて、何らの保全性チェックもなく実行される機構と異ならないという利点が生じる。一方、非完全体の第１アプリケーションの場合には、メッセージの受信側が保全性の問題を、メッセージ上にピギーバックされるその問題に関する情報によって知ることができるという利点が生じる。モバイル・デバイス自体は、それ自体の非保全性に関する情報の運搬装置として機能することができる。これを有益な様式で可能にするために、この方法は、第１アプリケーションがその保全性の欠如が検出されたことを認識しないように、実施することができる。このように、保全性の情報は、透過的な様式で第１アプリケーションを通過させることができる。
【００１１】
好ましい実施形態において、メッセージは、スマート・カード上にストアされた秘密／公開鍵対の秘密鍵を使用して暗号化される。これにより、非対称鍵を使用する周知の機構を利用してセキュリティを強化することができる利点が達成される。ストアされた秘密／公開鍵対を有するスマート・カードは最新技術であり、それゆえに、強化されたレベルの改ざん耐性をもたらす機構が存在し、アタッカーが秘密鍵にアクセスするのをより困難にする。それゆえに、スマート・カード技術はモバイル・デバイスのセキュリティを強化するのに使用することができる。同時に、スマート・カードは、センサ・データの処理、又は、バックエンド・システムとのメッセージの送受信のようなサービスを実行するために装備する必要はない。
【００１２】
好ましい実施形態において、暗号鍵はスマート・カード上に保持される。さらに好ましい実施形態において、暗号鍵はスマート・カード上にストアされた秘密／公開鍵対の秘密鍵を含むように選択される。秘密／公開鍵対に関する上と同じ理由で、署名に関する暗号鍵もまたスマート・カード上にストアして、その向上したセキュリティ・レベルを利用することができる。秘密／公開鍵対の秘密鍵を暗号鍵として使用して、ストアされるデータ量及び鍵の数を減少させることも可能である。一方、秘密鍵と異なる暗号鍵を用いることは、アタッカーがメッセージにアクセスし又はそれを変更するのに２つのキーを破ることが必要となるので、セキュリティを強化する。
【００１３】
本発明の第２の態様により、モバイル・デバイス上で動作する第１アプリケーションを介してモバイル・デバイスでメッセージを受信する方法が提供されるが、その方法は、暗号化形式のメッセージを受信するメッセージ受信ステップと、第１アプリケーションにチャレンジを供給するチャレンジ・ステップと、チャレンジへの応答を受信する応答ステップと、受信された応答が期待応答に対応するかどうかを判断する等価性チェック・ステップと、等価性チェック・ステップの結果が肯定である場合に、メッセージを復号するメッセージ復号ステップと、等価性チェック・ステップの結果が否定である場合に、エラー生成ステップとを含む。第１の態様に関して説明された利点はまた、この第２の態様にも当てはまる。また、第１アプリケーションは、その保全性が確認された場合にだけその動作を続けることができる。その他の場合には、メッセージにアクセスしない。保全性チェックは第１アプリケーションの外部で実施されるので、第１アプリケーションはそれ自体でこのセキュリティ動作を回避することはできない。
【００１４】
好ましい実施形態において、暗号化形式は、スマート・カード上にストアされた秘密／公開鍵対の公開鍵を用いて作成される。このステップにより、秘密／公開鍵対を有する既知のスマート・カードにより提供される強化されたセキュリティを利用することができる。このようなセキュリティ・レベルは、既知のハッキング法を用いてスマート・カード上の秘密鍵にアクセスしようとするアタッカーが、モバイル・デバイスの耐用期間内にはこのキーにアクセスできない様式に設定することができる。
【００１５】
好ましい実施形態において、暗号化形式は、メッセージと一緒に受信される対称暗号鍵を用いて作成されるが、その際、対称暗号鍵は暗号化形式で受信され、暗号化形式はスマート・カード上にストアされた秘密／公開鍵対の公開鍵の使用のもとで作成される。対称暗号鍵は、ここではセッション鍵として機能するが、このセッション鍵は、スマート・カードによって一旦アンパックされると、第１アプリケーションによってのみアクセス可能となる。また、スマート・カード上の秘密／公開鍵暗号化による強化されたセキュリティは、第１アプリケーションの保全性が確認されるまで、メッセージのコンテンツを保護する。セッション鍵の使用は、スマート・カードによって実行される仕事量を減少させる。保全性を確認した後、メッセージの復号は、アンパックされたセッション鍵を使用して第１アプリケーション自体によって行うことができる。このステップは、セッション鍵のアンパック即ち復号よりもコンピュータ的により集中的であるので、より多くの時間及びそれなりにより多くのエネルギーを使用する。電力消費を削減するために、セッション鍵の復号後、スマート・カードの電力を切断又は削減して、動作中の第１アプリケーションを有するモバイル・デバイスのみがエネルギーを使用してその動作を続けるようにすることができる。
【００１６】
好ましい実施形態において、チャレンジ及び期待応答は一組の所定のチャレンジ／期待応答から選択される。これにより、期待ハッシュ値を予め計算することによって保全性チェックを回避しようとする第１アプリケーションのリスクが減少する。所定のチャレンジ／期待応答の組が大きくなればなるほど、第１アプリケーション・イメージが完全体ではないにもかかわらず、第１アプリケーションが期待応答に対応する応答を作成するのに成功する可能性は低くなる。
【００１７】
好ましい実施形態において、チャレンジ・ステップ及び応答ステップはスマート・カード上の保全性アプレットによって実行される。このことは、これらのステップが、第１アプリケーションがこれらのステップに影響を及ぼす第１ＣＰＵ２０上でこれを実行することと比較して、より安全なコンピュータ環境で実行されるので有益である。
【００１８】
好ましい実施形態において、チャレンジ・ステップは、モバイル・デバイスのメモリ内の所定のメモリ領域のハッシュ値を計算する要求を含む。これの利点は、ハッシュ値の計算が技術的にはむしろ単純であり、同時にそれが完全体のメモリ領域からの単一ビットのずれをも識別する方法を提供することである。
【００１９】
好ましい実施形態において、メモリ領域は第１アプリケーションの第１アプリケーション・イメージの少なくとも一部分を含むように選択される。この選択によって、目標とする第１アプリケーションが不揮発性メモリ内で正しくチェックされ、それゆえに、有益な仕方で、保全性の変更を検出する可能性が増加する。
【００２０】
好ましい実施形態において、メモリ領域は開始アドレス及び終了アドレスによって決定され、メモリ領域は所定のチャレンジ／期待応答の組の異なるチャレンジの間で異なる。この選択は異なるチャレンジを考案する際に、開始アドレス及び終了アドレスが比較的多くの選択変形物を提供する第１アプリケーション・イメージのパラメータを提供するので、有益で簡単な手段を提供する。
【００２１】
好ましい実施形態において、等価性チェック・ステップの結果は、否定の場合には否定の保全性フラグとして維持される。そうすることは、以前に非完全体であった第１アプリケーションが完全体状態に戻ることを防ぎ、非完全体の第１アプリケーションが、完全体の第１アプリケーション・イメージを回復することによって永続的な非保全性を隠そうとする措置を企てることを禁ずるゆえに有益である。
【００２２】
別の好ましい実施形態において、等価性チェックの否定の結果は、ぞれぞれのチャレンジと一緒にストアされる。そうすることの利点は、アプリケーションのどの部分が改ざんされたかを推定することが可能になることである。
【００２３】
好ましい実施形態において、第１アプリケーションはモバイル・デバイスの第１通信モジュールを介して更新可能であり、それゆえモバイル・デバイスは第１アプリケーションの更新を実行するのに、所定の位置に存在する必要はないという利点が生じる。
【００２４】
好ましい実施形態において、更新された第１アプリケーションは第２アプリケーション・イメージ内にストアされる。これは、第１アプリケーション・イメージから第２アプリケーション・イメージに切り替えることによって第１アプリケーションを更新する有益な特徴を可能にする。これは勿論、第１アプリケーション・イメージの記憶スペース内にさらに次の更新をストアし、そして再びその更新に切り替えることによって継続することができる。この切り替えは、バージョン番号を維持し、ＣＰＵにそれらの数のより高次のものを、最新の更新がストアされる場所のインジケータとして使用させることによって達成することができる。
【００２５】
好ましい実施形態において、更新された第１アプリケーションは、更新されたチャレンジ／期待応答の組と一緒に受信される。このように、アプリケーションの更新だけでなく、同時に保全性チェックのための対応するチャレンジ／期待応答をロードすることができ、これは時間的な利点をもたらす。更新が通信モジュールを介して送信される場合には、通信モジュールの到達範囲内の任意の場所にモバイル・デバイスを保持しながら、完全な形態での遠隔更新が可能となる。
【００２６】
好ましい実施形態において、本方法はさらに受信通知ステップを含み、その場合、等価性チェック・ステップの後、等価性チェック・ステップの結果を通信せずに応答の受信が通知される。このような受信通知ステップは、第１アプリケーションが、保全性チェックの結果を明らかにしない情報状態に保持されるという利点を有する。それによって、保全性ステップ及び如何なる最終的な結果も第１アプリケーションから見えないように保持される。それゆえに、受信通知ステップは、全てがＯＫであってチャレンジ応答手続きが肯定結果で成功した、と見せかける保全性アプレットの要素である。第１アプリケーションは、従って通知されないままに置かれ、モバイル・デバイス、メッセージ、或いは、バックエンド・システム又は取り付けられた任意の他のシステムを害する可能性のある何らかの動作を実行する理由、或いは、メッセージの送信を遅らせて検出を遅らせる理由をもたない。
【００２７】
本発明の第３の態様により、データ処理システムのプロセッサ内にロードされるとき、本明細書で説明される方法を実行するようにプロセッサを構成するコンピュータ・プログラム・コード手段を含むコンピュータ・プログラム要素が提供される。有利なことに本方法はそのようなデータ処理システム内にプログラムすることができ、その場合、モバイル・デバイスからのメッセージをモバイル・デバイス上で動作する第１アプリケーションを介して送信する方法は、スマート・カードのデータ処理システム内にプロブラムされることになる。モバイル・デバイス上で動作する第１アプリケーションを介してモバイル・デバイスでメッセージを受信する方法もまた、スマート・カードのデータ処理システム内にプロブラムされる。
【００２８】
コンピュータ・プログラム要素はまた、説明される方法を実行するためのプロセッサにより実行可能なプログラム命令を具体化したコンピュータ可読媒体を含むコンピュータ・プログラムの形態で提供することもできる。
【００２９】
本発明の第３の態様により、第１アプリケーションの第１アプリケーション・イメージを内部にストアするためのメモリと、受信されたチャレンジに対する応答を計算するように適合された第１プロセッサと、スマート・カードからチャレンジを受信し、応答を送信し、及び、署名が付加されたメッセージを受信するためのカード・リーダと、署名が付加されたメッセージをバックエンド・システムに送信するための第１通信モジュールとを含むモバイル・デバイスが提供される。
【００３０】
本発明の第４の態様により、第１アプリケーションにチャンレンジを供給するチャレンジ・ステップ、チャレンジに対する応答を受信する応答ステップ、及び、受信された応答が期待応答に対応するかどうかを判断する等価性チェック・ステップを実行するための保全性アプレットと、暗号鍵及び等価性チェック・ステップの結果を使用して、メッセージに署名するための署名ステップ、及び、第１通信モジュールにメッセージの署名を転送する署名転送ステップを実行するための電子署名アプレットとを内部にストアして含むスマート・カードが提供される。
【００３１】
好ましい実施形態において、保全性アプレットはさらに、等価性チェック・ステップの後、等価性チェック・ステップの結果を通信することなく応答の受信を通知する受信通知ステップを実行するように適合される。
【００３２】
さらに好ましい実施形態において、スマート・カードは、その公開鍵が暗号鍵として使用可能である秘密／公開鍵対をさらに含む。
【００３３】
さらに別の好ましい実施形態において、スマート・カードは一組の所定のチャレンジ／期待応答をさらに含み、それからチャレンジ及びその期待応答が選択可能となる。
【００３４】
さらに別の好ましい実施形態において、スマート・カードは、等価性チェック・ステップの結果が否定の場合にその結果を維持する保全性フラグをさらに含む。
【００３５】
本発明及びその実施形態は、本発明による現在の好ましい、しかし例証的な実施形態の以下の詳細な説明を、添付の図面と併せて参照することにより、さらに十分に理解されるであろう。
【発明を実施するための最良の形態】
【００３６】
図１は、以下で不揮発性メモリ４０と呼ぶメモリ４０、第１通信モジュール６０、第１ＲＡＭ３０とも呼ぶ第１主メモリ３０、及び、第１ＣＰＵ２０とも呼ぶ第１プロセッサ２０を含み、それら全てが第１データ／アドレス・バス５０に接続された、コンピュータ環境を含むモバイル・デバイス２００を示す。第１ＣＰＵ２０はまた、スマート・カード１０が挿入されたときそれを読み取るためのカード・リーダ１００に接続される。
【００３７】
スマート・カード、チップ・カード又は集積回路カードは、本明細書では、埋め込み集積回路を有するポケット・サイズのカードと理解されたい。スマート・カード１０はまた、カード・メモリ及びマイクロプロセッサ・コンポーネントを含む、マイクロプロセッサ・カードとも呼ぶ。特に、スマート・カード１０は、クレジット・カードの寸法又はそれより小さなマイクロプロセッサ・カード、例えば、安全な暗号化プロセッサ、安全なファイル・システム、人間が読み取れる特徴のような、改ざん防止の特性を有する、例えば、ＧＳＭ  ＳＩＭカードとして使用することができ、例えば、そのカード・メモリ内の情報の機密性のようなセキュリティ・サービスを提供することができる。
【００３８】
モバイル・デバイス２００は、好ましい実施形態においては埋め込みプラットフォームとすることができ、その場合第１アプリケーション・イメージ４１は、ＦＬＡＳＨ  ＲＡＭ、ＥＥＰＲＯＭ、ＲＯＭ、ＰＲＯＭ、ＲＡＭ、ＤＲＡＭ、ＳＲＡＭ、フラッシュ、ファームウェア又はプログラマブル論理のような不揮発性メモリ４０内にストアされる。不揮発性メモリ４０は、内部記憶デバイス、外付け記憶デバイス及び／又はネットワーク・アクセス可能記憶デバイスを含むことができる。埋め込みプラットフォームは、説明したコンピュータ環境に加えて、その信号がモバイル・デバイス２００内で処理可能な１つ又は複数のセンサを含むことができる。
【００３９】
モバイル・デバイス２００は、第２通信モジュール７０、第２ＲＡＭ９０とも呼ぶ第２主メモリ９０、及び、第２ＣＰＵ８０とも呼ぶ第２プロセッサ８０を含み、それら全てが第２データ／アドレス・バス１１０に接続される、コンピュータ環境を含むバックエンド・システム３００に接続することができる。
【００４０】
第１通信モジュール６０及び第２通信モジュール７０は、互いに通信するように適合される。
【００４１】
第１ＣＰＵ２０は、第１アプリケーション１を、対応する第１アプリケーション・イメージ４１がストアされている不揮発性メモリ４０からロードする。この第１アプリケーション１は、例えば、センサのセンサ信号の処理を含むことができる。第１主メモリ３０は、第１ＣＰＵ２０によって処理されるデータがストアされる場所である。好ましい実施形態において、モバイル・デバイス２００は、メッセージμをバックエンド・システム３００に送信し、ここでメッセージμは、例えばセンサ信号を処理した結果を含む。バックエンド・システム３００に関しては、受信されたメッセージμの保全性を信頼できることが望ましい。モバイル・デバイス２００は、典型的には遠隔に位置しており、それゆえに、バックエンド・システム３００の制御の範囲外にあるので、バックエンド・システム３００は、モバイル・デバイス２００が、第１アプリケーション・イメージ４１を変更し、それによって第１アプリケーション１を変更し、それゆえに、センサ信号の処理を変更する可能性がある無権限の個人によってアクセスされなかったことを確認する可能性を全く又は僅かしか有しない。結果として、メッセージμは、元の未修正の第１アプリケーション１が生成したデータではもはやないデータを含む可能性がある。以下において、このような第１アプリケーション１への無権限の侵入は改ざんと呼ばれ、その際第１アプリケーション１の保全性は破壊される。このような侵入を実行するエンティティは、侵入者と呼ばれる。そのような改ざんを検出し、その検出された改ざんをバックエンド・システム３００に通知してバックエンド・システム３００がその改ざんに反応するのを可能にすることが望ましい。通知は、第１通信モジュール６０と第２通信モジュール７０の間の通信リンクを介して行うことができる。そのような通知を第１通信モジュール６０を介して送信することが課題となるが、なぜなら侵入者がその改ざん行為を隠してバックエンド・システム３００に改ざんが行われたことを認識させないように、その通信に干渉する可能性があるからである。スマート・カード１０は、第１アプリケーション１の一部分である保全性モジュール２１と協働する保全性アプレット１１を含む。
【００４２】
保全性アプレット１１及び保全性モジュール２１は一緒に、スマート・カード１０が第１アプリケーション・イメージ４１の保全性をテストするのを可能にするプロセスを実行する。このテストの結果は、次に、バックエンド・システム３００に送信されるメッセージμの内部に埋め込まれる。
【００４３】
通知された改ざんに対するバックエンド・システム３００による可能な反応は、モバイル・デバイス２００からのメッセージμ及びあらゆる将来のメッセージを無視すること、又は、モバイル・デバイス２００を無効にすること、又は、更新されたアプリケーションを送信して改ざんされていない第１アプリケーション・イメージ４１を回復すること、又は、他の機能を実行することである。
【００４４】
図２には、不揮発性メモリ４０内に存在するパーティションを概略的に示す。不揮発性メモリ４０内には種々のパーティションが存在し、起動モニタ４２、第１アプリケーション・イメージ４１、第２アプリケーション・イメージ４３、構成データ４４、ファイル・システム４５、及び、フラッシュ情報システム４６のパーティションを含む。
【００４５】
起動モニタ４２は、モバイル・デバイス２００を起動するように動作可能である。これは第１ＣＰＵ２０が、第１アプリケーション・イメージ４１内にストアされている第１アプリケーション１、又はその替りに、第２アプリケーション・イメージ４３内にストアされている第２アプリケーションをロードするのを可能にする。２つのアプリケーション・イメージ４１、４３の共存は、通信モジュール６０、７０を介した更新動作を可能にする。第２アプリケーション・イメージ４３は、それゆえ、第１アプリケーション１の第１更新を受け取るのに使用され、そして更新された第１アプリケーション１はより上位のシリアル番号を受け取る。次の更新では、第１アプリケーション・イメージ４１が、更新された第１アプリケーション１を受け取り、この第１アプリケーションが再びより上位のシリアル番号を受け取る。このアプリケーション・イメージ４１、４３の使用は交互に継続する。起動モニタ４２は、最上位のシリアル番号を有するアプリケーションを探し、従って次の起動プロセスに対する最新の更新された第１アプリケーション１を自動的に選択する。
【００４６】
構成データ及びファイル・システムは、第１アプリケーションに入力を供給する。構成データは、どのセンサを使用するか、それらのセンサをどのくらいの頻度でチェックするか、しかし又いつメッセージを送信して警告するかを判断するパラメータ設定値を含むことができる。さらに、パラメータは、モバイル・デバイスの現在の地理的位置に依存させることができる。構成データは通常、不揮発性メモリ内のファイル・システム内にストアされるが、また、不揮発性メモリの専用予約領域内に直接ストアすることもできる。
【００４７】
フラッシュ情報システム４６は、起動モニタ４２が不揮発性メモリ４０のメモリ領域内の記号アドレスで動作することを可能にする。この特徴は、アプリケーションの展開のために、即ち、第１アプリケーション１のアドレス範囲がまだ確定されていないときに有用である。そのようなものであるので、市販のモバイル・デバイス２００では、フラッシュ情報システム４６は破棄することができる。
【００４８】
図３には、スマート・カード１０のコンテンツを概略的に示す。これは、所定のレベルのセキュリティをもたらす場所に保持された秘密／公開鍵対１２を備えて、侵入者をその秘密鍵にアクセスさせないようにする。秘密／公開鍵対１２は、電子署名アプレット１３によりアクセス可能である。さらに、スマート・カード１０は、一組のチャレンジ応答対へのアクセスを有する保全性アプレット１１を含み、そこで各チャレンジ１８に対して、対応する期待応答１９がストアされる。保全性アプレット１１によって配信される結果は、状態インジケータ１４内に維持され、それは電子署名アプレット１３及びエンコーダ／デコーダ・アプレット１６によりアクセス可能である。さらに、スマート・カードは、例えば、ＩＳＯ標準７８１６ＡＰＤＵを介して、第１ＣＰＵ２０と通信するためのシリアル・インタフェース１７を有する。
【００４９】
以下で、スマート・カード１０のアプレット１３、１６、１１を利用して、モバイル・デバイス２００とバックエンド・システム３００の間でメッセージμを交換する方法を説明する。これら全ての方法は、本明細書では監視プロセスと呼ぶ共通のプロセスを有する。このプロセスは、図４乃至図７の方法をより詳細に説明する前に、ここで前もって説明する。以後、保全性アプレット１１はまた監視アプレット１１とも呼び、保全性モジュール２１はまた監視モジュール２１とも呼ぶ。
【００５０】
監視プロセスは、以下のように機能する。スマート・カード１０上の監視アプレット１１が、第１ＣＰＵ２０上で実行中の第１アプリケーション１の監視モジュール２１と通信する。監視アプレット１１は、保全性チャレンジＣ＿ｉｎｔを監視モジュール２１に送信する。保全性チャレンジＣ＿ｉｎｔは、不揮発性メモリ４０の一領域にわたってハッシュ値Ｈ、ここでは特に暗号ハッシュＨ（ｓ、ｅ）を計算するように監視モジュール２１への要求を伴い、ここでｓは不揮発性メモリ４０内部の開始アドレスを示し、ｅは不揮発性メモリ４０内部の領域の終了アドレスを示す。開始アドレスｓ及び終了アドレスｅは、それゆえに、暗号ハッシュＨ（ｓ、ｅ）がそれにわたって計算される領域を定める。各々の保全性チャレンジＣ＿ｉｎｔに対して、監視アプレット１１は期待応答値Ｒ＿ｅｘｐを有する。監視モジュール２１は、不揮発性メモリ４０の指示された領域（ｓ、ｅ）にわたって暗号ハッシュＨ（ｓ、ｅ）を計算し、その結果のＲ＿ａｐｐ＝Ｈ（ｓ、ｅ）を監視アプレット１１に戻す。保全性チャレンジＣ＿ｉｎｔは、Ｒ＿ｅｘｐ＝Ｒ＿ａｐｐである場合に満たされる。この式は、その結果Ｓに関して保全性アプレット１１によってチェックされる。
【００５１】
監視アプレット１１は、以下のように、（Ｒ＿ｅｘｐ＝Ｒ＿ａｐｐ）等価性チェックの結果Ｓを追跡する。それは、ａｐｐ＿ｉｎｔｅｇｅｒが真である状態から開始して、ブール変数ａｐｐ＿ｉｎｔｅｇｅｒ＝ａｐｐ＿ｉｎｔｅｇｅｒ＆（Ｒ＿ｅｘｐ＝Ｒ＿ａｐｐ）の状態を更新する。それによって、ブール変数ａｐｐ＿ｉｎｔｅｇｅｒは、保全性フラグとして機能する。一旦、それが偽の値に設定されると、真の値に戻ることはできない。監視アプレット１１は、（Ｒ＿ｅｘｐ＝Ｒ＿ａｐｐ）等価性チェックの結果Ｓを監視モジュール２１に通信しない。
【００５２】
上のプロセスは、好ましくは第１アプリケーション・イメージ４１の保全性をモニタするのに使用される。第１アプリケーション・イメージ４１は、Ｒ＿ｅｘｐ＝Ｒ＿ａｐｐとなるように監視モジュール２１が結果Ｒ＿ａｐｐを監視アプレット１１に戻すことができる限りは、完全体と見なされる。第２アプリケーション・イメージ４３、又は、第１アプリケーション・イメージ４１と第２アプリケーション・イメージ４３の任意の組合せの保全性を、このプロセスによってモニタすることも可能である。好ましい実施形態は、アプリケーション・イメージ４１、４３の両方を一緒にチェックする。
【００５３】
各スマート・カード１０は、その上にストアされる多数の保全性チャレンジＣ＿ｉｎｔを有することができる。また、発行された各スマート・カード１０は、保全性チャレンジＣ＿ｉｎｔの独自の組みを有し、その結果どの２つのスマート・カード１０も保全性チャレンジＣ＿ｉｎｔの同じ組みを有しないようにすることができる。２つのスマート・カードが同じ保全性チャレンジＣ＿ｉｎｔを有する確率は、第１アプリケーション・イメージ４１のサイズに依存する。さらに保全性チェックに関して、第１アプリケーション・イメージ４１を引き延ばして、そのサイズを常に不揮発性メモリ４０内の空きメモリのサイズよりも大きくすることが有益である。ここで「引き延ばす」は、第１アプリケーション・イメージ４１の正確なサイズよりも大きな領域に開始アドレスｓ及び終了アドレスｅを設定することを意味する。好ましい実施形態において、この領域は使用可能な不揮発性メモリ４０のサイズの半分よりも大きい。これらの措置の両方は、侵入者が予め計算された値を戻すこと、又は、不揮発性メモリ４０の空き部分に第１アプリケーション・イメージ４１のコピーを単にストアすること、及び、ストアされたコピーにより保全性チャレンジＣ＿ｉｎｔを満たすことによって保全性アプレット１１をだますことを防ぐ。この上述のプロセスは、第１アプリケーション１が依然として完全体かどうかを判断するのを可能にする。
【００５４】
第２のプロセスは、保全性フラグ、即ち、スマート・カード１０上のａｐｐ＿ｉｎｔｅｒｇｅｒ変数を利用して、署名、エンコード及びデコード動作の結果に影響を与える。保全性フラグａｐｐ＿ｉｎｔｅｇｅｒが偽であるとき、即ち、保全性チャレンジＣ＿ｉｎｔのうちの１つが第１アプリケーション１によって失敗するときには、暗号化動作の結果は偽造されたものである。例えば、第１アプリケーション１がスマート・カード１０に署名Ωを生成するように求めるとき、スマート・カード１０は保全性フラグａｐｐ＿ｉｎｔｅｇｅｒの状態をチェックせずには署名Ωを生成しないことになる。保全性フラグａｐｐ＿ｉｎｔｅｇｅｒが偽である場合には、スマート・カード１０は偽の署名Ω´を生成し、その署名の中に失敗した保全性チャレンジＣ＿ｉｎｔに関する情報を含める。従って、署名Ωは、第１アプリケーション・イメージ４１が改ざんされたことをバックエンド・システム３００に信号で通信するための隠されたチャネルとして使用される。署名Ωは、例えばスマート・カード１０の秘密鍵とすることができる暗号鍵を使用して作成される。送信する前に、メッセージμを暗号化することができる。このためにスマート・カード１０の秘密鍵を使用することができる。それゆえに、署名Ωの作成及びメッセージμの暗号化は、両方とも同じ鍵を使用して実行することができ、両方ともスマート・カード１０によって実行することができる。この場合、第１アプリケーション１はメッセージμのコンテンツについてチェックすることができないので、等価性チェック・ステップ３２の結果Ｓを使用する好ましい実施形態において、メッセージμは送信前に修正することができる。代替的に、バックエンド・システム３００の公開鍵を使用して、メッセージμをスマート・カード１０上で暗号化することができる。この結果Ｓは、例えば、暗号化及び送信の前に元のメッセージμに加えることができる。また、スマート・カード１０の側の電力消費を削減するために、結果Ｓのみの暗号化をスマート・カード１０によって実行することができ、この暗号化された結果Ｓを元のメッセージμに付加することができ、これが次に第１アプリケーション１により、バックエンド・システム３００の公開鍵のような別の暗号鍵を使用して暗号化される。
【００５５】
図４に、モバイル・デバイス２００からバックエンド・システム３００に、改ざんされた第１アプリケーション１によってメッセージを送信する方法のフローチャートを示す。
【００５６】
送信要求ステップにおいて、第１アプリケーション１は、バックエンド・システム３００に伝送されるべきメッセージμを第１通信モジュール６０に送信する。第１通信モジュール６０は、署名要求ステップ２３において、このメッセージμが電子署名アプレット１３により署名Ωで署名されることを要求する。そこで、電子署名アプレット１３は、状態チェック・ステップ２４において、第１アプリケーション・イメージ４１の保全性状態Ｓに関する要求を保全性アプレット１１に送信する。チャレンジ・ステップ２５において、保全性アプレット１１は保全性チャレンジ１８を保全性モジュール２１に送信する。次に保全性モジュール２１は、応答計算ステップ４７において応答１９´を計算する。応答ステップ２６において、応答１９´が保全性モジュール２１から保全性アプレット１１に返信され、そこで、等価性チェック・ステップ３２において、受信された応答１９´が期待応答１９と比較される。受信通知ステップ２７において、保全性アプレット１１は、等価性チェック・ステップ３２の結果Ｓを保全性モジュール２１に通知せずに、受信通知を保全性モジュール２１に返信する。それゆえに、保全性モジュール２１は、それが正しい期待応答１９で応答したかどうかの指示は有しない。状態報告ステップ２８において、保全性アプレット１１は、等価性チェック・ステップ３２の結果Ｓを署名アプレット１３に通信する。この結果Ｓに基づいて、署名アプレット１３は、メッセージ修正ステップ４８を用いて又は用いずに署名ステップ４９を実行する。肯定結果Ｓの場合、即ち、期待応答１９が受信された応答１９´と同一であった場合、メッセージμは修正なしに署名される。否定結果Ｓの場合、即ち、期待応答１９が受信された応答１９´と同一ではなかった場合、メッセージμは署名ステップ４９の前に変更される。このような変更又は修正は、種々の方式に設計することができる。例えば、署名アプレット１３は、サブメッセージをメッセージμに付加することができ、その場合サブメッセージは期待応答１９が受信された応答１９´と同一ではなかったことを伝える。また、メッセージμは、例えば、その情報にスクランブルをかけることによって変更することができる。他の修正もまた実行可能である。最後に、メッセージμは、いずれの場合にも署名ステップ４９において署名される。ここで理解を容易にするために、変更された第１アプリケーション・イメージ４１の場合のメッセージμに対する署名ΩはΩ´と明示されたが、署名されたメッセージμの第１の受信側である第１通信モジュール２１にとっては、改ざんされていない第１アプリケーション・イメージ４１の場合の署名Ωとの目に見える相違はない。その後、署名Ω´を有するメッセージμが、署名転送ステップ３１において第１通信モジュール６０に転送される。最後に、第１通信モジュール６０は送信ステップ３１において、署名が付加されたメッセージμ＋Ω´を第２通信モジュール７０に送信する。バックエンド・システムにおいては、メッセージμは可読であり、修正もまた検出可能である。モバイル・デバイス２００は、それゆえに、認識された改変第１アプリケーション・イメージ４１によるモバイル・デバイス２００の信頼性の欠如を通信するメッセージμのための管路として機能する。
【００５７】
それゆえに、このプロセスを要約すると、第１アプリケーション１がメッセージをバックエンド・システム３００に送信しようとするとき、そのメッセージを第１通信モジュール６０に送信する。第１通信モジュール６０は、次に、スマート・カード１０に電子署名Ωを求めるが、この署名用にスマート・カード１０は公開／秘密鍵対１２を保持する。データに署名をする前に、スマート・カード１０は第１アプリケーション１の保全性をチェックする。それは監視アプレット１１をアクティブにし、このアプレットは既述のチャレンジ応答プロセスを用いて最新の保全性フラグａｐｐ＿ｉｎｔｅｇｅｒを取得する。保全性フラグａｐｐ＿ｉｎｔｅｇｅｒが真のままである場合、電子署名アプレット１３はそのことを通知され、次いでそのデータに署名してそれをバックエンド・システム３００に送信することになる。保全性フラグａｐｐ＿ｉｎｔｅｇｅｒが偽である場合には、監視モジュール２１はやはり受信通知を受信するが、電子署名アプレット１３は第１アプリケーション１が完全体ではないことを通知されることになる。署名者は、次に、メッセージμに警戒情報を導入し、次いでそれに署名し、それをバックエンド・システム３００に送信するために供給する。メッセージは、それ自体と一緒に警戒メッセージをバックエンド・システム３００に伝達する。モバイル・デバイス２００は、それが悪意のあるものとして追跡されたことを認識する可能性はなく、それ自体の悪意に関する情報の管路として機能することになる。
【００５８】
その代りにモバイル・デバイス２００が、それ自体の悪意を隠すために、バックエンド・システム３００に如何なるデータをも返信しないと決める場合には、バックエンド・システム３００は何もデータを受信しないことになる。バックエンド・システム３００が一定の時間間隔内で、ハートビート・メッセージ又はアライブ・メッセージとも呼ばれる特定のメッセージを期待する方式で、バックエンド・システム３００とモバイル・デバイス２００の間のメッセージプロトコルを設計することが有益である。そのようなハートビート・メッセージの欠如は、次に、システム障害又は悪意のあるモバイル・デバイス２００によるものと解釈され、その両方の場合に、バックエンド・システム３００はもはやモバイル・デバイス２００に情報を送信しないことになる。
【００５９】
図５には、モバイル・デバイスからバックエンド・システムに、改ざんされていないアプリケーションによりメッセージを送信する方法のフローチャートを示す。
【００６０】
送信要求ステップにおいて、第１アプリケーション１は、バックエンド・システム３００に伝送されるべきメッセージμを第１通信モジュール６０に送信する。第１通信モジュール６０は、このメッセージμが署名要求ステップ２３において電子署名アプレット１３によって署名Ωで署名されることを要求する。そこで、署名電子アプレット１３は、状態チェック・ステップ２４において、第１アプリケーション・イメージ４１の保全性状態Ｓに関する要求を保全性アプレット１１に送信する。チャレンジ・ステップ２５において、保全性アプレット１１は保全性チャレンジ１８を保全性モジュール２１に送信する。次に、保全性モジュール２１は、応答計算ステップ４７において応答１９´を計算する。応答ステップ２６において、応答１９´が保全性モジュール２１から保全性アプレット１１に返信され、そこで、等価性チェック・ステップ３２において、受信された応答１９´が期待応答１９と比較される。受信通知ステップ２７において、保全性アプレット１１は、等価性チェック・ステップ３２の結果Ｓを保全性モジュール２１に通知せずに、受信通知を保全性モジュール２１に返信する。それゆえに、保全性モジュール２１は、それが正しい期待応答１９で応答したかどうかの指示は有しない。状態報告ステップ２８において、保全性アプレット１１は、等価性チェック・ステップ３２の結果Ｓを署名アプレット１３に通信する。この結果Ｓに基づいて、署名アプレット１３は、メッセージ修正ステップ４８を用いて又は用いずに署名ステップ４９を実行する。肯定結果Ｓの場合、即ち、期待応答１９が受信された応答１９´と同一であった場合、メッセージμは修正なしに署名される。肯定結果Ｓの場合、即ち、期待応答１９が受信された応答１９´と同一であった場合、メッセージμは署名ステップ４９の前に変更されない。最後に、メッセージμは、いずれの場合にも、署名ステップ４９において署名される。その後、メッセージμがその署名Ωと共に、署名転送ステップ３１において第１通信モジュール６０に転送される。最後に、第１通信モジュール６０は送信ステップ３１において、署名が付加されたメッセージμ＋Ωを第２通信モジュール７０に送信する。バックエンド・システムにおいて、メッセージμは可読である。
【００６１】
別のイベントは入力情報の処理である。
【００６２】
図６には、バックエンド・システム３００からのメッセージμを、モバイル・デバイス２００において、改ざんされていないアプリケーション１により受信する方法のフローチャートを示す。
【００６３】
メッセージ受信ステップ３３において、セッション鍵Σで暗号化されたメッセージμが、第１通信デバイス６０で受信される。メッセージμには、秘密／公開鍵対１２の公開鍵Πによりそれ自体が暗号化されたセッション鍵Σが付随する。セッション鍵Σは、ここでは、対称暗号鍵である。このような暗号化はまた、ハイブリッド暗号化とも呼ばれる。メッセージμを読むために、第１アプリケーション１は、アンパックされた、即ち復号されたセッション鍵Σを必要とする。第１通信デバイス６０は、メッセージ転送ステップ３４において、暗号化されたメッセージμを第１アプリケーション１に転送し、そしてセッション鍵アンパック要求ステップ３５において、暗号化されたセッション鍵Σをエンコーダ／デコーダ・アプレット１６に転送する。あらゆるデコーディングを実行する前に、エンコーダ／デコーダ・アプレット１６はチャレンジ／応答プロセスを実行する。
【００６４】
エンコーダ／デコーダ・アプレット１６は、状態チェック・ステップ２４において、保全性アプレット１１に第１アプリケーション・イメージ４１の保全性状態Ｓに関する要求を送信する。チャレンジ・ステップ２５において、保全性アプレット１１は保全性チャレンジ１８を保全性モジュール２１に送信する。次に、保全性モジュール２１は、応答計算ステップ４７において応答１９´を計算する。応答ステップ２６において、応答１９´は、保全性モジュール２１から保全性アプレット１１に返信され、そこで、等価性チェック・ステップ３２において、受信された応答１９´が期待応答１９と比較される。受信通知ステップ２７において、保全性アプレット１１は、等価性チェック・ステップ３２の結果Ｓを保全性モジュール２１に通知せずに、受信通知を保全性モジュール２１に返信する。それゆえに、保全性モジュール２１は、それが正しい期待応答１９で応答したかどうかの指示は有しない。状態報告ステップ２８において、保全性アプレット１１は、等価性チェック・ステップ３２の結果Ｓをエンコーダ／デコーダ・アプレット１６に通信する。
【００６５】
この実施例において、状態チェックは肯定結果を配信した、即ち、第１アプリケーション・イメージ４１が完全体であることが見出された。それゆえに、エンコーダ／デコーダ・アプレット１６はセッション鍵アンパック・ステップ３６を実行し、その際セッション鍵Σがアンパックされる、即ち、秘密／公開鍵対１２の秘密鍵を使用して復号される。その結果は復号されたセッション鍵Σとなる。セッション鍵転送ステップ３７において、セッション鍵Σは、次に、第１アプリケーション１に転送される。そこで受信されたセッション鍵Σがメッセージμを復号するのに使用される。最後に、復号されたメッセージμは、メッセージ使用ステップ３９において第１アプリケーション１によって利用される。このようなメッセージμの使用の実施例は、第１アプリケーションを更新し、その機能性を強化し、新しいドライバ・ソフトウェアをインストールし、コード・バグを修正し、特定の情報を再設定し、情報を削除し、データ演算を実行することなどとすることができる。
【００６６】
図７には、バックエンド・システム３００からのメッセージμを、モバイル・デバイス２００において、改ざんされた第１アプリケーション１により受信する方法のフローチャートを示す。
【００６７】
メッセージ受信ステップ３３において、セッション鍵Σで暗号化されたメッセージμが第１通信デバイス６０で受信される。その後、プロセスは、図６に関して説明したプロセスと状態報告ステップ２８に至るまで同一であり、再び状態報告ステップ２８において、保全性アプレット１１が等価性チェック・ステップ３２の結果Ｓをエンコーダ／デコーダ・アプレット１６に通信する。
【００６８】
この実施例において、状態チェックは否定結果を配信した、即ち、第１アプリケーション・イメージ４１が完全体ではないことが見出された。それゆえに、エンコーダ／デコーダ・アプレット１６は、エラー生成ステップ５１を実行し、そこでセッション鍵Σをアンパックする代わりに、擬似メッセージ５４とも呼ばれるエラー・メッセージが生成される。この擬似メッセージ５４は、エラー転送ステップ５２において第１アプリケーション１に送信され、受信されたメッセージμが破損していることを第１アプリケーションに見せかける。従って、第１アプリケーション１は再び、メッセージμが第１アプリケーション１に漏れるのを実際には防いだことにより、改ざんが認識されたことが事実であることを知らない。それゆえに、第１アプリケーション１は、その失われた保全性が検出されたので、その行為を変更する動機はもたない。それゆえに、非完全体の第１アプリケーション１がメッセージμのコンテンツを受信することが防止される。
【００６９】
受信機構を要約すると、モバイル・デバイス２００がセッション鍵Σでエンコードされたメッセージμを受信し、且つ、セッション鍵Σ自体がスマート・カード１０の公開鍵によってエンコードされている場合、スマート・カード１０において、その秘密鍵がセッション鍵Σをアンパックするのに使用される。次に、セッション鍵Σを第１ＣＰＵ２０に転送してエンコードされたメッセージμをデコードすることができる。それを行う前に、スマート・カード１０は保全性フラグａｐｐ＿ｉｎｔｅｇｅｒの状態をチェックする。保全性フラグａｐｐ＿ｉｎｔｅｇｅｒが偽である場合、セッション鍵Σを第１ＣＰＵ２０に転送してメッセージμをデコードする代わりに、スマート・カード１０はエラーを第１ＣＰＵ２０に戻し、解読不能メッセージμを受信したと見せかける。従って、第１ＣＰＵ２０は、第１アプリケーション１が悪意のあるものとして識別されたので、メッセージμを介して情報を受け取ることを禁止される。非完全体の検出をＣＰＵ２０から隠すことによって、ＣＰＵ２０は、そのサービス、特に、バックエンド・システム３００へのメッセージング・サービスを続ける可能性があり、その結果バックエンド・システム３００は、ＣＰＵ２０が改ざんされたことの情報を受けることができる。このプロセスは、それゆえに、入力データを、意図されない受信者即ちアタッカーに漏れることから守ること、及び、第１アプリケーション・イメージ４１が改ざんされたことの信号をバックエンド・システム３００に戻すことの両方を可能にする。
【００７０】
上述の方法はまた、メッセージμ全体の純粋な公開／秘密鍵による暗号化によって機能する。しかしながら、これは、スマート・カード１０を用いてメッセージμ全体を復号することを意味し、このことは全復号動作中にスマート・カード１０に電力を提供することを意味し、またこのことは、第１ＣＰＵ２０と比較してスマート・カード１０のより限定された容量によって、より長時間費やすことになる。セッション鍵Σは、それゆえに、第１ＣＰＵ２０がスマート・カード１０の関与なしにセッション鍵Σを用いたデコーディングを行うことを可能にする点で有用である。しかしながら、セッション鍵Σをパックするための公開／秘密鍵対１２の使用は、スマート・カード１０がセッション鍵Σを制御すること、及び、一旦第１ＣＰＵ２０がその保全性に関して検証された場合にだけその鍵を第１ＣＰＵ２０に明らかにすることを可能にする。
【００７１】
それゆえに、この提案された方法は、スマート・カード１０にストアされている一連の保全性チャレンジ１８を使用する。メッセージμを送信又は受信するときにチャレンジ／応答プロセスを実行するプロセスとは独立に、スマート・カード１０上で実行する監視アプレット１１は、種々の時点で、好ましくはランダムに選択された保全性チャレンジ１８を第１アプリケーションに対して発行するように設計することができる。第１アプリケーション１は保全性チャレンジ１８を満たすことが期待され、それが保全性チャレンジ１８に対する正しい応答１９を与えることができる限り、完全体と見なされる。さらに、スマート・カード１０は、スマート・カード１０自体の上の公開／秘密鍵による暗号化を使用して、モバイル・デバイス２００、例えば埋め込みシステムから、バックエンド・システム３００へのメッセージμに署名し、復号し及び暗号化するのに使用できる。
【００７２】
この解決方法の利点は、変更されたＣＰＵ２０に対する必要性がなく、また、第１アプリケーション・イメージ４１自体の内部にストアされるチェックサムの結果も存在しないことである。その代わりに、スマート・カード１０がより高い改ざん防止性のコンポーネントとして用いられ、監視者として機能する。さらに、外部通信がスマート・カード１０によって入念に検査されるようにすることによって、通信はスマート・カード１０自体によって行われることが保証される。従って、アタッカーは単にスマート・カード１０を無視することを選択できない。既知のスマート・カード技術を用いて、スマート・カード１０及びそれゆえにその上にストアされたデータを、向上したレベルのセキュリティを示すように設計することができる。スマート・カード１０のセキュリティ・レベルは、スマート・カード１０をもたないモバイル・デバイス２００のセキュリティ・レベルよりも高い。
【００７３】
本明細書で説明された技術は、ソフトウェア、ファームウェア、マイクロコード、ハードウェア及び／又はそれらの任意の組合せを含む方法、装置又は製品として実施することができる。ここで用いられる「製品」という用語は、媒体内に実現されるコード又は論理を指し、その媒体は、例えば、集積回路チップ、プログラマブル・ゲート・アレイ（ＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）などのハードウェア論理、又はコンピュータ可読媒体、例えば、磁気記憶媒体（例えば、ハードディスク・ドライブ、フロッピーディスク、テープなど）、光学記憶媒体（ＣＤ−ＲＯＭ、光ディスクなど）、揮発性及び不揮発性メモリ・デバイス、例えば、電気的消去可能プログラマブル読取り専用メモリ（ＥＥＰＲＯＭ）、読取り専用メモリ（ＲＯＭ）、プログラマブル読取り専用メモリ（ＰＲＯＭ）、ランダム・アクセス・メモリ（ＲＡＭ）、ダイナミック・ランダム・アクセス・メモリ（ＤＲＡＭ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、フラッシュ、ファームウェア、プログラマブル論理などを含むことができる。コンピュータ可読媒体内のコードはプロセッサによってアクセスされ実行される。コード又は論理がエンコードされる媒体はまた、空間又は伝送媒体、例えば光ファイバ、銅線など、を通して伝搬する伝送信号を含むことができる。コード又は論理がエンコードされる伝送信号は、さらに、無線信号、衛星信号、電波、赤外線信号、ブルートゥース（Bluetooth）などを含むことができる。コード又は論理がエンコードされる伝送信号は、伝送ステーションによって伝送され、受信ステーションによって受信することができ、その場合伝送信号内にエンコードされたコード又は論理は、受信及び伝送ステーション又はデバイスのハードウェア又はコンピュータ可読媒体内でデコードしストアすることができる。さらに、「製品」は、コードが具体化され、処理され、及び実行されるハードウェア及びソフトウェアコンポーネントの組合せを含むことができる。勿論、当業者であれば、実施形態の範囲から逸脱することなく多くの修正を加えることができること、及び製品は任意の情報伝達媒体を含むことができることを認識するであろう。例えば、製品は、機械によって実行されるとき実行される動作を生じる命令を内部にストアする記憶媒体を含む。
【００７４】
ある特定の実施形態は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態、又は、ハードウェア及びソフトウェア要素の両方を含む実施形態の形態を取ることができる。好ましい実施形態において、本発明は、ファームウェア、常駐ソフトウェア、マイクロコードなどを含むがそれらに限定されないソフトウェアにおいて実施される。
【００７５】
さらに、特定の実施形態は、コンピュータ又は任意の命令実行システムにより又はそれらと関連させて使用するためのプログラム・コードを与える、コンピュータ使用可能又はコンピュータ可読媒体からアクセス可能なコンピュータ・プログラムの形態をとることができる。この説明のために、コンピュータ使用可能又はコンピュータ可読媒体は、命令実行システム、装置又はデバイスにより又はそれらと関連させて使用するためのプログラムを含み、ストアし、伝達し、伝搬し、又は、転送することができる任意の装置とすることができる。この媒体は、電子的、磁気的、光学的、電磁的、赤外線又は半導体システム（又は装置若しくはデバイス）又は伝搬媒体とすることができる。コンピュータ可読媒体の例には、半導体又は固体メモリ、磁気テープ、取り外し可能コンピュータ・ディスケット、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、リジッド磁気ディスク及び光ディスクが含まれる。最新の光ディスクの例には、コンパクト・ディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、コンパクト・ディスク読取り／書込みメモリ（ＣＤ−Ｒ／Ｗ）及びＤＶＤが含まれる。
【００７６】
「特定の実施形態」、「一実施形態」、「実施形態」、「複数の実施形態」、「この実施形態」、「これらの実施形態」、「１つ又は複数の実施形態」、「幾つかの実施形態」及び「１つの実施形態」と言う用語は、特に別様に明記されない限り、１つ又は複数の（しかし全てではない）実施形態を意味する。「含む」、「備える」、「有する」とう用語及びこれらの変形は、特に別様に明記されない限り、「含むがそれらに限定されない」を意味する。項目の列挙リストは、特に別様に明記されない限り、項目のいずれか又は全てが相互排他的であることを意味しない。不定冠詞（「ａ」、「ａｎ」）及び定冠詞（「ｔｈｅ」）は、特に別様に明記されない限り、「１つ又は複数の」を意味する。
【００７７】
相互に通信するデバイスは、特に別様に明記されない限り、相互に連続的に通信する必要はない。さらに、相互に通信するデバイスは、直接に、或いは１つ又は複数の中継を介して間接に、通信することができる。さらに、相互に通信する幾つかのコンポーネントを有する実施形態の説明は、全てのそれらコンポーネントが必要であることを意味しない。そうではなく、多種多様な可能な実施形態を示すために種々の随意的なコンポーネントを説明している。
【００７８】
さらに、プロセス・ステップ、方法ステップ、アルゴリズムなどは逐次的な順番で説明することができるが、このようなプロセス、方法及びアルゴリズムを代替の順番で機能するように構成することができる。言い換えると、説明することのできるステップの任意の順序又は順番は、これらのステップをその順番で実行する必要性を必ずしも示さない。ここで説明したプロセスのステップは、任意の実際的な順番で実行することができる。さらに、幾つかのステップは、同時に、並行して、又は共に実行することができる。
【００７９】
単一のデバイス又は物品が本明細書で説明されるとき、単一のデバイス／物品の代わりに、１つより多くのデバイス／物品（それらが協働してもしなくとも）を使用できることは明らかであろう。同様に、１つより多くのデバイス又は物品が本明細書で説明される場合には（それらが協働してもしなくとも）、１つより多くのデバイス又は物品の代わりに、単一のデバイス／物品を使用できることは明らかであろう。デバイスの機能性及び／又は特徴は、このような機能性／特徴を有するとは明記されていない１つ又は複数の他のデバイスによって代替的に具体化することができる。従って、他の実施形態はそのデバイス自体を含む必要はない。
【００８０】
特定の実施形態は、個人により、又はコンピュータ可読コードをコンピュータ・システムに組み込む自動化処理によって、コンピュータ命令を配備する方法に向けることができ、その際、コンピュータ・システムと組み合わせたコードが、ここで説明された実施形態の動作を実行するように有効化される。
【００８１】
さらに、多数のソフトウェア及びハードウェア・コンポーネントが例証のために別個のモジュールとして説明された。このようなコンポーネントは、より少数のコンポーネントに統合するか又はより多数のコンポーネントに分割することができる。さらに、特定のコンポーネントによって実行するように説明された特定の動作は、他のコンポーネントによって実行することができる。
【００８２】
それゆえに、実施形態の前述の説明は、例証及び説明のために示されたものである。それは網羅的であること、又は開示された通りの形態に限定することを意図したものではない。上の教示を考慮すれば多くの修正及び変形が可能である。
【図面の簡単な説明】
【００８３】
【図１】モバイル・デバイスと通信するバックエンド・システムを示す概略図である。
【図２】不揮発性メモリのパーティションの実施例である。
【図３】モバイル・デバイスの機能性コンポーネントを示す概略図である。
【図４】モバイル・デバイスからバックエンド・システムにメッセージを、改ざんされた第１アプリケーションによって送信する方法のフローチャートである。
【図５】モバイル・デバイスからバックエンド・システムにメッセージを、改ざんされていない第１アプリケーションによって送信する方法のフローチャートである。
【図６】モバイル・デバイスにおいて、バックエンド・システムからのメッセージを改ざんされていない第１アプリケーションによって受信する方法のフローチャートである。
【図７】モバイル・デバイスにおいて、バックエンド・システムからのメッセージを改ざんされた第１アプリケーションによって受信する方法のフローチャートである。
【符号の説明】
【００８４】
１：第１アプリケーション
１０：スマート・カード
１１：保全性アプレット（監視アプレット）
１２：秘密／公開鍵対
１３：電子署名アプレット
１４：状態インジケータ（保全性フラグ）
１６：エンコーダ／デコーダ・アプレット
１７：シリアル・インタフェース
１８：チャレンジ（保全性チャレンジ）
１９：期待応答
１９’：応答（受信された応答）
２０：第１プロセッサ（第１ＣＰＵ）
２１：保全性モジュール（監視モジュール）
３０：第１主メモリ（第１ＲＡＭ）
４０：不揮発性メモリ
４１：第１アプリケーション・イメージ
４２：起動モニタ
４３：第２アプリケーション・イメージ
４４：構成データ
４５：ファイル・システム
４６：フラッシュ情報システム
５０：第１データ／アドレス・バス
５４：偽メッセージ
６０：第１通信モジュール
７０：第２通信モジュール
８０：第２プロセッサ
９０：第２主メモリ（第２ＲＡＭ）
１００：カード・リーダ
１１０：第２データ／アドレス・バス
２００：モバイル・デバイス
３００：バックエンド・システム
２３：署名要求ステップ
２４：状態チェック・ステップ
２５：チャレンジ・ステップ
２６：応答ステップ
２７：受信通知ステップ
２８：状態報告ステップ
３１：署名転送ステップ
３２：等価性チェック・ステップ
３３：メッセージ受信ステップ
３４：メッセージ転送ステップ
３５：アンパック要求ステップ
３６：セッション鍵アンパック・ステップ
３７：セッション鍵転送ステップ
４７：応答計算ステップ
４８：メッセージ修正ステップ
４９：署名ステップ
５１：エラー生成ステップ
５２：エラー転送ステップ
【図１】
2009543414.tif 000003
【図２】
2009543414.tif 000004
【図３】
2009543414.tif 000005
【図４】
2009543414.tif 000006
【図５】
2009543414.tif 000007
【図６】
2009543414.tif 000008
【図７】
2009543414.tif 000009
【国際調査報告】
2009543414.tif 000010
2009543414.tif 000011
2009543414.tif 000012