(57)【要約】  ソフトウェアアプリケーションを携帯電話のようなデバイスのユーザに検証させる方法である。デバイスは、ソフトウェアアプリケーション、例えばＪａｖａ（登録商標）  ＭＩＤｌｅｔ、を受信し（１０２）、該ソフトウェアアプリケーションと関連する署名を検査する（１０４）。署名が確認されると、携帯電話はこのステータスを、例えばよく知られている南京錠アイコンを表示することにより、ユーザに提示する（１０８）。携帯電話は、次に、ユーザと信頼できる主体にのみ知られているセキュアコードを設定する（１１０）。信頼できる主体は、例えばＪａｖａ（登録商標）  ＭＥ環境の管理者である。デバイスはソフトウェアアプリケーションを信頼できる主体に識別させ（１１４）、信頼できる主体はソフトウェアアプリケーションのステータスを検査する（１１６）。ステータスが検証されると、信頼できる主体はステータスをデバイスに送り（１１８）、デバイスはセキュアコードを例えば追加の番号表示、絵文字などとしてユーザに提示する（１２０）。
2009505208.tif 000002
【特許請求の範囲】
【請求項１】
ソフトウェアアプリケーションをデバイスのユーザに検証させる方法であって、
前記ソフトウェアアプリケーションを受信するステップと、
前記ソフトウェアアプリケーションと関連する署名を検査するステップと、
前記署名が公認の認証局により発行されたものである場合には、このステータスを前記ユーザに提示するステップと、
ユーザと信頼できる主体にのみ知られているセキュアコードを設定するステップと、
前記ソフトウェアアプリケーションを前記信頼できる主体に認識さあせるステップと、
前記ソフトウェアアプリケーションのステータスを前記信頼できる主体で検査するステップと、
前記ソフトウェアアプリケーションステータスが検証された場合には、
前記ステータスを前記デバイスに送り、且つ
前記セキュアコードを前記ユーザに提示するステップと、
を具えることを特徴とするソフトウェアアプリケーションの検証方法。
【請求項２】
前記セキュアコードを設定するステップは、
前記デバイスでＰＩＮコードを入力し、
前記ＰＩＮコードを前記信頼できる主体に送り、
前記ＰＩＮコードに基づいて、前記信頼できる主体の制御の下でセキュアアルゴリズムを用いて前記セキュアコードを計算し、
前記セキュアコードを前記デバイスに送る、
ことを特徴とする請求項１記載の方法。
【請求項３】
前記デバイスは携帯電話であり、前記セキュアコードを前記デバイスへ送るステップはＳＭＳメッセージを用いて行うことを特徴とする請求項２記載の方法。
【請求項４】
前記信頼できる主体は前記デバイスのソフトウェア動作環境の管理者であることを特徴とする請求項１−３の何れかに記載の方法。
【請求項５】
ソフトウェアアプリケーションを検証するシステムであって、該システムは、
ユーザデバイスと、
ソフトウェアアプリケーションサーバと、
信頼できる主体サーバと、
前記ソフトウェアアプリケーションサーバと通信することができる第１の通信リンクと、
前記信頼できる主体サーバと通信できる第２の通信リンクとを具え、
前記ユーザデバイスは、プロセッサと、ディスプレイと、ユーザインターフェースと、プログラムメモリと、データメモリと、前記第１および第２の通信リンクにそれぞれ接続するためのインターフェースとを具え、
前記プロセッサは、
・前記ソフトウェアアプリケーションサーバから前記ソフトウェアアプリケーションを前記第１の通信リンクを用いて受信し、
・前記ソフトウェアアプリケーションと関連する署名を検査し、
・前記署名が公認の認証局により発行されたものである場合には、このステータスを前記ユーザインターフェースまたは前記ディスプレイを用いて前記ユーザに提示し、
・前記第２の通信リンクを用いて、
ユーザと信頼できる主体にのみ知られているセキュアコードを設定するとともに、
前記ソフトウェアアプリケーションを前記信頼できる主体に認識させ、
・前記ソフトウェアアプリケーションのステータスが検証された場合に前記セキュアコードを前記ユーザインターフェースまたは前記ディスプレイを用いてユーザに提示するように動作し、
前記信頼できる主体サーバは、
・ 前記ソフトウェアアプリケーションのステータスを検査し、
・ 前記ソフトウェアアプリケーションのステータスが検証された場合に、前記ステータスを前記デバイスへ送るように動作する、
ことを特徴とするソフトウェアアプリケーション検証システム。
【請求項６】
請求項５に記載のシステムで使用するユーザデバイスであって、前記ユーザデバイスは携帯電話であることを特徴とするユーザデバイス。
【請求項７】
請求項５に記載のシステムで使用されるユーザデバイスであって、前記ユーザデバイスはＪａｖａ（登録商標）  ＭＥの制御の下で動作することを特徴とするユーザデバイス。
【請求項８】
請求項６に記載のユーザデバイスであって、前記ユーザデバイスはＪａｖａ（登録商標）  ＭＥの制御の下で動作することを特徴とするユーザデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ソフトウェアイネーブルドデバイス、特に該デバイス上で動作するソフトウェアアプリケーションの安全性を検証する技術に関する。
【背景技術】
【０００２】
ソフトウェアおよびマクロ署名は、ウェブサイトおよびパーソナルディジタル証明書で使用されるものと同一の公開鍵暗号化システムに基づいている。一例では、ベリサイン社のコード署名プロセス（非特許文献１参照）を用い、最初に秘密鍵／公開鍵ペアを生成する。次に、あなた本人であることを証明するために、認証用の鍵の公開部分を文書と一緒に提示してコード署名ディジタルＩＤをベリサインに申請する。ベリサインがあなたの身元を確認すると、あなたにディジタルＩＤを発行する。次に、アプレット、プラグインまたはマクロにあなたのディジタルＩＤで署名する。あなたの署名が付されたオブジェクトおよびファイルがダウンロードされるとき、それらのオブジェクトおよびファイルはあなたの証明書のコピーを含むため、受取人はあなたを著作者として確認することができる。あなたの署名付コードまたはソフトウェアをあなたのサイトに掲載することにより、顧客は通常の如くそれらのソフトウェアを購入しダウンロードすることができる。それらのブラウザがコード上の署名を検証する。顧客はコードを書いたデベロッパを識別するために証明書を見ることができる。
【非特許文献１】ベリサインホームページ、２００５年８月３日検索、インターネット＜ＵＲＬ：http://www.verisign.com/products-services/security-services/code-signing/digital-ids-code-signing/how-it-works.html＞
【０００３】
上記のプロセスと類似のプロセスが、ジャバマイクロエディション（Ｊａｖａ（登録商標） ME、 J2MEとしても以前から知られている）で動作する組み込みプロダクツ向けのMIDletアプリケーションとして存在する。Ｊａｖａ（登録商標）ME用のセキュリティモデル（MIDP2.0）は、「信頼できる」 MIDlet（即ち、認証局により署名されたMIDlet）をプロダクトユーザのみに視覚的に提示することを推奨している。MIDletアプリケーションの性質のために、このような視覚的提示は信頼できないMIDletにより与えることもでき、これにより既存のセキュリティモデルを回避することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
本発明の目的は、上述した従来技術を改善することにある。
【課題を解決するための手段】
【０００５】
本発明の第１の態様によれば、ソフトウェアアプリケーションをデバイスのユーザに検証させる方法が提供され、この方法は、
前記ソフトウェアアプリケーションを受信するステップと、
前記ソフトウェアアプリケーションと関連する署名を検査するステップと、
前記署名が公認の認証局により発行されたものである場合には、このステータスを前記ユーザに提示するステップと、
ユーザと信頼できる主体（エンティティ）にのみ知られているセキュアコードを設定するステップと、
前記ソフトウェアアプリケーションを前記信頼できる主体に認識させるステップと、
前記ソフトウェアアプリケーションのステータスを前記信頼できる主体で検査するステップと、
前記ソフトウェアアプリケーションステータスが検証された場合には、
前記ステータスを前記デバイスに送り、且つ
前記セキュアコードを前記ユーザに提示するステップと、
を具えることを特徴とする。
【０００６】
本発明の利点は、検証されないアプリケーションをエンドユーザに信頼できるように見せることができるという恐れを認識してなされたものである点にある。この恐れを低減するために、本発明は、アプリケーションの動作環境を管理する主体のような信頼できる主体と連携して追加の独立の検証を使用する。
【０００７】
本発明の他の利点は、前記独立の検証プロセスは信頼できる主体により、特にユーザ固有のセキュアコードを生成するセキュアアルゴリズムを用いて実行され、ユーザデバイスに追加のリソースが通常必要とされない点にある。携帯電話に対しては、セキュアコードをエンドユーザに送るにはＳＭＳが好適な通信リンクである。
【０００８】
本発明の他の利点は、オリジナルアルゴリズムが漏洩した場合にセキュアアルゴリズムを時々変更するまたは周期的更新処理の一部として変更することにより、セキュリティをさらに向上させることができる点にある。その結果更新されたセキュアコードはその後ユーザデバイスに送られる。この更新処理はユーザからの任意の入力と無関係に、例えば最初に供給されたＰＩＮを用いて行うことができる。
【０００９】
本発明の第２の態様によれば、ソフトウェアアプリケーションを検証するシステムが提供され、該システムは、
ユーザデバイスと、
ソフトウェアアプリケーションサーバと、
信頼できる主体サーバと、
前記ソフトウェアアプリケーションサーバと通信することができる第１の通信リンクと、
前記信頼できる主体サーバと通信できる第２の通信リンクとを具え、
前記ユーザデバイスは、さらに、プロセッサと、ディスプレイと、ユーザインターフェースと、プログラムメモリと、データメモリと、前記第１および第２の通信リンクにそれぞれするためのインターフェースとを具え、
前記プロセッサは、
・前記ソフトウェアアプリケーションサーバから前記ソフトウェアアプリケーションを前記第１の通信リンクを用いて受信し、
・前記ソフトウェアアプリケーションと関連する署名を検査し、
・前記署名が公認の認証局により発行されたものである場合には、このステータスを前記ユーザインターフェースまたは前記ディスプレイを用いて前記ユーザに提示し、
・前記第２の通信リンクを用いて、
ユーザと信頼できる主体にのみ知られているセキュアコードを設定するとともに、
前記ソフトウェアアプリケーションを前記信頼できる主体に認識させ、
・前記ソフトウェアアプリケーションのステータスが検証された場合に前記セキュアコードを前記ユーザインターフェースまたは前記ディスプレイを用いてユーザに提示するように動作し、
前記信頼できる主体サーバは、
・ 前記ソフトウェアアプリケーションのステータスを検査し、
・ 前記ソフトウェアアプリケーションのステータスが検証された場合に、前記ステータスを前記デバイスへ送るように動作する、
ことを特徴とする。
【発明を実施するための最良の形態】
【００１０】
本発明の実施例を図面を参照しながら説明するが、これは一例にすぎない。
以下において、本発明の模範的実施例を携帯電話上のＪａｖａ（登録商標）  ＭＥ環境動作向けのＭＩＤｌｅｔソフトウェアアプリケーションについて説明する。
【００１１】
図１は、ソフトウェアアプリケーションをデバイスのユーザに検証させる方法のフローチャートを示す。この方法はステップ１００で始まり、ステップ１０２でソフトウェアアプリケーションがデバイスにより受信される。代表的なアプリケーションは、ＭＩＤｌｅｔ、アプレット、プラグイン、マクロなどである。デバイスは、ステップ１０４において、当業者に既知の慣例の手段を用いて、ソフトウェアアプリケーションと関連する署名を検査する。ステップ１０６において、この署名が公認の認証局により発行されたものであることが確認されると、ステップ１０８において、このステータスが、例えば南京錠のような広く認められているアイコンを表示することによって、ユーザに提示される。しかし、所定の組み込み製品は全ディスプレイ領域をアプリケーションのために利用可能であるため、ディスプレイ上に南京錠のような広く認められているアイコンを表示させることによって、証明書を持たないアプリケーションまたは非公認の認証局からの証明書を持つアプリケーションを信頼できるものであるとユーザに示すこともできること明らかである。
【００１２】
本発明の方法は、以下に記載するような信頼できるアプリケーションの独立検証を更に付加することによってこの欠点を克服するものである。ユーザと信頼できる主体（エンティティ）のみが知るセキュアコード１１２がステップ１１０において設定される。信頼できるエンティティは、例えばデバイスのソフトウェア動作環境、例えばサンマイクロシステム社のＪａｖａ（登録商標）  ＭＥベースデバイスに対する管理権限を有するエンティティまたはその認定エージェントの一つである。セキュアコードは、アプリケーションを検証する必要があるたびに設定でき、ユーザの便宜向上のために、セキュアコードはデバイスの最初のインストール時に設定される。セキュアコードを設定する代表的な方法をここでは携帯電話デバイスについて説明する。ユーザは任意のＰＩＮ番号（例えば携帯電話のPＩＮ番号）を入力する。すると携帯電話が入力されたＰＩＮを信頼できるエンティティに転送し、信頼できるエンティティがＰＩＮに基づいてセキュアコードを計算する。この計算は、信頼できるエンティティの制御下でセキュアアルゴリズムを用いて実行される。有利なことに、もしセキュアアルゴリズムが漏洩し、例えば信頼できるエンティティの外部に知られたとしても、新しいセキュアアルゴリズムを展開でき、必ずしもユーザが別のＰＩＮを入力する必要はなく、新しいセキュアアルゴリズムが既に供給されているＰＩＮに基づいて新しいセキュアコードを計算することができる。これは、本発明の解決方法をユーザの観点から極めて便利なものとする。セキュアコードが計算されたら、このセキュアコードはデバイスに送られ、携帯電話の場合には、ＳＭＳで送るのが好ましい。その理由は、ＳＭＳは上述のソフトウェアアプリケーションのデベロッパによりアクセス保護されているためである。
【００１３】
この方法は、次にステップ１１４において信頼できるエンティティがソフトウェアアプリケーションを識別する。例えば、ユーザデバイス（例えば携帯電話）がソフトウェアアプリケーションのＩＤを例えばＳＭＳメッセージで信頼できるエンティティに転送する。ソフトウェアアプリケーションのＩＤを知っている信頼できるエンティティは、ステップ１１６において、このソフトウェアアプリケーションのステータスを検査する。このソフトウェアアプリケーションが信頼できるものであれば、信頼できるエンティティはステップ１１８において信頼できるステータスを、例えばＳＭＳメッセージを用いて、エンドユーザデバイスに送る。代替方法では、検査の（良／否）結果をエンドユーザデバイスに転送するが、このような結果はデバイスで悪意の変更を受ける恐れがある。デバイスで受信された信頼できるステータスは次にステップ１２０においてセキュアコードを、例えばユーザに認識可能な表示項目または可聴報告などとしてエンドユーザに提示するのに使用される。この方法はステップ１２２で終了する。
【００１４】
図２は携帯電話を備えるソフトウェアアプリケーションを検証するシステムの概略図を示す。このシステムは、携帯電話２００と、ソフトウェアアプリケーションサーバ２１８と、信頼できるエンティティサーバ２２２と、携帯電話とソフトウェアアプリケーションサーバとの間の通信用のＧＰＲＳ（General Packet Radio Service）リンク２２０と、携帯電話と信頼できるエンティティサーバとの間の通信用のＳＭＳ（ショートメッセージサービス）リンク２２４とを具える。これらのリンクは、共通の物理媒体、例えばＧＳＭ無線インターフェースにアクセスできる論理リンクである。一般に、組み込みデバイス対しては、代わりに、設計優先度または使用領域に応じて、任意の適当な有線または無線リンクを使用することもでき、例を挙げると、イーサネット（登録商標）、ＩｒＤＡ、ＲＳ２３２、ブルーツース、Ｗｉ−ＦｉおよびＺｉｇＢｅｅがある。信頼できるエンティティは先に述べたとおりであり、本例では、携帯電話のプログラムメモリ２０８に含まれるＪａｖａ（登録商標）  ＭＥ環境を管理する責任を持つエンティティである。プログラムメモリ２０８は携帯電話のＣＰＵの動作を命令する。プログラムメモリ２０８およびＣＰＵ２０２に加えて、携帯電話２００は、ディスプレイ２０４と、ユーザインターフェース２０６と、データメモリ２１０と、それぞれＳＭＳリンク２２４およびＧＰＲＳリンク２２０のためのインターフェース２１２、２１４を更に具え、これらはすべて従来既知のようにデータバス２１６により相互接続されている。
【００１５】
動作中、携帯電話２００はＧＰＲＳ通信リンクを用いてソフトウェアアプリケーションサーバ２１８からソフトウェアアプリケーションを受信する。Ｊａｖａ（登録商標）  ＭＥ環境の制御の下で、ソフトウェアアプリケーションはＣＰＵ２０２によりバス２１６を介してデータメモリ２１０に送られ格納される。ＣＰＵ２０２は次にソフトウェアアプリケーションと関連する署名を検査する。署名が公認の認証局、例えばベリサインにより発行されたものである場合には、ＣＰＵはこの事実をユーザにディスプレイによって、例えば南京錠アイコンを示すことにより表示する。これで検証の第１段階が完了する。
【００１６】
次に、ＣＰＵ２０２は、Ｊａｖａ（登録商標）  ＭＥ環境の制御の下で、（まだ設定されていない場合）セキュアコードを信頼できるエンティティと連携して設定する。ＰＩＮをユーザから得る。このＰＩＮは、プロンプト時にユーザがユーザインターフェース２０６（例えばキーボード）を用いて入力するものでも、既に存在するＰＩＮ（例えば携帯電話のメインＰＩＮ）でもよい。得られたＰＩＮは次にＳＭＳインターフェース２１２およびリンク２１４を介して信頼できる主体サーバ２２２に送られる。次に、信頼できる主体サーバ２２２は（セキュアアルゴリズムおよびＰＩＮを用いて）セキュアコードを計算し、このコードをＳＭＳリンク２１４を介して携帯電話に返送する。セキュアコードは、番号コードまたは他の任意のユーザ認識可能なコード、例えばアイコン、絵文字などにすることができる。セキュアコードはユーザに一意にするのが好ましく、例えば入力したＰＩＮとデバイスＩＤ（例えばＧＭＳ  ＩＤ、電話番号など）の両方から導出される。
【００１７】
次に、ＣＰＵは、再びリンク２２４を用いて、信頼できる主体に、受信ソフトウェアアプリケーションから得られたＩＤデータを送る。信頼できる主体は識別したソフトウェアアプリケーションのステータスを検査し、ソフトウェアアプリケーションのステータスが検証された場合、再びリンク２２４を用いて、そのステータスを携帯電話２００に送る。
【００１８】
携帯電話が検証されたステータスを受信すると、ＣＰＵ２０２は、(例えばディスプレイ２０４上に)セキュアコードを表示して、ユーザにソフトウェアアプリケーションのステータスが検証されたことを知らせる。
【００１９】
図３ａおよび３ｂは、本発明の方法によりソフトウェアアプリケーションを検証するためのユーザ表示が組み込まれたデバイスディスプレイのスクリーンショットを示す。図３ａに示すディスプレイは、従来の代表的な実例を示し、ステータスバー３０２と、アプリケーション領域３０４と、コマンドバー３０６の３つの部分を具える。ステータスバー３０２に題名で示されている「インスタントメッセンジャー（Ｉｎｓｔａｎｔ  Ｍｓｇｒ）」の受信ソフトウェアアプリケーションは、デバイスで現在実行中である。さらに、南京錠のアイコン３１２もステータスバー３０２に示され、このアイコンは、ユーザに題名が「インスタントメッセンジャー」のソフトウェアアプリケーションは信頼できるアプリケーションであることを示す。上述したように、これは必ずしも真実ではないことがある。アプリケーションはプロンプト３０８でユーザにＪａｖａ（登録商標）  ＭＥ環境の安全なＡＰＩ（本例ではＧＰＲＳネットワーク）にアクセスするように指示する。ユーザがコマンドバー３０６上のＯＫ３１２を選択してアクセスを確認する場合、この選択は実際には信頼できないアプリケーションに対して行われる恐れがある。
【００２０】
これに対して、ディスプレイＢは、ディスプレイＡに関して述べたものと同じ受信ソフトウェアアプリケーションに対して、ステータスバーに、南京錠３１４に加えて、セキュアコード３１８を示している。このディスプレイはプロンプト３１６でユーザにセキュアコード３１８を検査するように指示する。この検査を行うと、ユーザは、このアプリケーションは正しいことを確信して、コマンドバー上のＯＫ３２０を選択してアクセスを確認することができる。
【００２１】
ユーザは、コマンドバー内の「ニューコード？」３２２を選択することにより新しいセキュアコードを生成するオプション機能も有し、選択した場合、新しいセキュアコードが信頼できる主体により計算され、この際、既に述べたように、ユーザがＰＩＮを入力してもしなくてもよい。
【００２２】
上述の方法および実施例は単なる例示であって、本発明の利点を利用することが当業者に容易に認識できる範囲の方法および実施例の一つの選択にすぎない。
【００２３】
以上の詳細の説明および図１を参照すると、ソフトウェアアプリケーションを携帯電話のようなデバイスのユーザに検証させる方法が提供される。デバイスは、ソフトウェアアプリケーション、例えばＪａｖａ（登録商標）  ＭＩＤｌｅｔ、を受信し（１０２）、該ソフトウェアアプリケーションと関連する署名を検査する（１０４）。署名が確認されると、携帯電話はこのステータスを、例えばよく知られている南京錠アイコンを表示することにより、ユーザに提示する（１０８）。携帯電話は、次に、ユーザと信頼できる主体にのみ知られているセキュアコードを設定する（１１０）。信頼できる主体は、例えばＪａｖａ（登録商標）  ＭＥ環境の管理者である。デバイスはソフトウェアアプリケーションを信頼できる主体に識別させ（１１４）、信頼できる主体はソフトウェアアプリケーションのステータスを検査する（１１６）。ステータスが検証されると、信頼できる主体はステータスをデバイスに送り（１１８）、デバイスはセキュアコードを例えば追加の番号表示、絵文字などとしてユーザに示す（１２０）。
【図面の簡単な説明】
【００２４】
【図１】図１は、ソフトウェアアプリケーションをデバイスのユーザに対して検証する方法のフローチャートである。
【図２】図２は、携帯電話を備えるソフトウェアアプリケーションを検証するシステムの概略図である。
【図３】図３ａおよび図３ｂは、図１の方法に従ってソフトウェアアプリケーションを検証するための、ユーザ表示を含むデバイスディスプレイのスクリーンショットを示す。
【図１】
2009505208.tif 000003
【図２】
2009505208.tif 000004
【図３】
2009505208.tif 000005
【国際調査報告】
2009505208.tif 000006
2009505208.tif 000007