(57)【要約】【課題】移動通信装置に起動画像をダウンロードして装置結合証明書（「DBC」）を発生させ当該装置のクローン作成を防止する方法を開示する。【解決手段】DBCは、改ざん検出用メッセージ認証コード・アルゴリズムと装置に特化したキーを用いて発生した認証コードを含む。この方法は、起動画像にDBCを格納するので、移動通信装置に起動画像を結合する。フラッシュローダーは、起動画像をダウンロードして（204）保護アプリケーションを呼び出す（206）。保護アプリケーションは、DBCを計算し（208）、オプションとしてランダムキーを用いてDBCを暗号化し（210）、それをフラッシュローダーに転送する（212）。フラッシュローダーは、DBCフィールドの中にDBCを入れ（214）、移動通信装置のフラッシュメモリに、その起動画像をロードする（216）。【選択図】図２
2005122733.tif 000002
【特許請求の範囲】
【請求項１】
移動通信装置に起動画像をダウンロードするステップと、
改ざん検出用メッセージ認証コードと前記装置に特化されたキーとを使用して発生した認証コードを含む装置結合証明書（DBC）を発生させるステップと、
前記起動画像の中に前記DBCを格納するステップと、
を含む方法。
【請求項２】
フラッシュメモリと、
改ざん検出用メッセージ認証コード・アルゴリズムと前記装置に特化されたキーとを介して発生した認証コードを使用して前記フラッシュメモリに結合された起動画像と、
前記認証コードの信憑性と完全性を検証するようになっているROMコードを含むとともに、前記フラッシュメモリに結合されたプロセッサと、
を含む移動通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、装置に結合されたフラッシュ動作／起動動作によるクローン作成防止方法に関する。
【背景技術】
【０００２】
一般に移動電話機は、移動電話機を動作させるために実行されるアプリケーション・ソフトウエアを含む。これらのアプリケーション・ソフトウエアは、電話機の音声通信機能を可能にするだけでなく、テキストメッセージの送受、デジタル写真の撮影や転送のような各種の他の機能を可能にすることができる。移動電話機の起動画像（boot image）にはオペレーティングシステムと、その移動電話機で実行されうる各種アプリケーション・ソフトウエアとのいずれかが含まれる。移動電話機の価格は、電話機のフラッシュメモリに組み込まれた起動画像の品質に基づいていろいろに変わる。特定の電話機の起動画像が高品質の場合、その電話機の価格は、起動画像の品質がそれよりも劣る移動電話機よりも高価である。
【０００３】
テキサス・インスツルメンツ（登録商標）のオープン・マルチメディア・アプリケーション・プラットフォーム（「OMAP」）は、通信デバイスがデータとアプリケーション・ソフトウエアを処理する一方、電池の寿命を長くすることを可能にするマイクロプロセッサエンジンを含む。現在のOMAP装置（つまり、モデル161x、171x、73x）内の機構は、複数の装置の間で共用されるキーを使用して、起動画像のフラッシュと起動を支援している。このキーは起動画像の信憑性（authenticity）を検証するが、別の電話機における起動画像の無許可なコピーと再使用を防止していないため、侵入されやすいセキュリティギャップが生じる可能性がある。このようなセキュリティギャップは、無許可なエンティティが、高価な電話機から起動画像をコピーして、廉価な電話機上でその起動画像を再生することを可能にする。このように、無許可なエンティティは、１台の高価な電話機から、数に制限のない廉価なクローンをつくり、その廉価な電話機を販売して利益を得ることが可能になる。
【０００４】
起動画像を不法にコピーするだけでなく、無許可エンティティは、盗まれた移動電話機の使用を防ぐ既存の予防手段を回避するように、起動画像の内容を改ざんすることもできる。たとえば、各移動電話機の起動画像は、移動通信用グローバルシステム（GSM：Global System for Mobile Communication）と第３世代（3G）通信網における電話機の識別コードの役割をする国際移動機器識別子（IMEI：International Mobile Equipment Identifier）番号を含む。IMEI番号は、セルラー通信網と通信網サービスに対するアクセスを許可したり不許可にしたりするために使用される。一般に、電話機が盗まれた場合、所有者は、自分のセルラーサービスプロバイダ（たとえば、Sprint（登録商標）、Verizon（登録商標）、AT&T（登録商標）など）と連絡して、その電話機をGMS/3Gのブラックリストに加えさせることができる。このブラックリストで発見される移動電話機は、セルラー通信網に対するアクセスが許可されない。したがって、電話機を盗む不許可エンティティは、その電話機を使用して通信網にアクセスすることができない。何故ならば、その電話機のIMEI番号がブラックリストに加えられているからである。しかし、知識のある不許可エンティティは、盗んだ電話機のIMEI番号をブラックリストで発見されない番号に容易に改ざんして、盗んだ電話機を使ってセルラー通信網にアクセスすることができる。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
電話機のクローン作成と改ざんに起因して、移動電話機の製造業者は年ごとにかなりの額の年間利益を失っている。したがって、電話機のクローン作成と改ざんを防止することが望ましい。
【課題を解決するための手段】
【０００６】
上に注意した問題点は、起動画像と起動画像の各種コンテンツを移動通信装置に結合する方法と装置によって大部分が解決されている。１つの例示的実施例は、記号画像を移動通信装置にダウンロードして、装置結合証明書（device-bound certificate：「DBC」）を発生することを含む。DBCは、改ざん検出用メッセージ認証コード（hashed message authentication code：「HMAC」）アルゴリズムと装置に特化されたキーを使用して発生した認証コードを含むことが望ましい。この方法は、起動画像にDBCを格納することを更に含むことができるので、起動画像を移動通信装置に結合することになる。
【０００７】
本発明の模範的な実施例を詳細に説明するために添付の図面を参照する。
【０００８】
（表記方法と術語）
特定のシステム構成要素に言及するために、以下の説明と特許請求の範囲全体を通じて若干の用語が使用されている。当業者ならば理解できるように、各種会社は構成要素を異なる名前で呼んでいる。この文書は、名前は異なるが機能が同じ構成要素の間を区別することを意図していない。以下の考察と特許請求の範囲の中で、「含む（including）」と「・・・・から成る（含む）（comprising）」は自由に使用されているので、これらの用語は、「含んでいるが、それに限定されない（including, but not limited to）」ことを意味すると解釈しなくてはならない。また、「結合する（"couple" or "couples"）」は、間接または直接の電気接続のいずれかを意味するものと意図されている。したがって、第１の装置が第２の装置に結合する場合、その結合は、直接的電気接続を介して、または他の装置と接続を介した間接的電気接続を介して結合されることを意味する。
【０００９】
（詳細な説明）
以下の考察は、本発明の各種実施例に向けられている。これらの実施例のうち、１つまたは複数の実施例は好適であるとは言え、開示されている実施例が、特許請求の範囲を含む開示の範囲を限定するものと解釈あるいは使用されるべきではない。それだけでなく、以下の説明は広範囲に適用され、いかなる実施例の考察もその実施例の例示となるべきことだけを意味していて、特許請求の範囲を含む開示範囲が、その実施例に限定されることを暗に示すものではない。
【００１０】
好適実施例によれば、起動画像と起動画像のコンテンツの装置ごとの「結合」（binding）が移動通信装置に提供される。移動電話機にダウンロード済みの起動画像は、起動画像がコピーされず、改ざんされず、または他の移動電話機に転送されないように処理される。このように、起動画像は移動電話機に「結合」される。移動電話機に結合された起動画像は、特定のその移動電話機だけに有効である。同様に起動画像のコンテンツも、移動電話機に結合される。
【００１１】
起動画像の装置ごとの結合は、装置結合証明書（DBC：device-bound certificate）を介して達成される。好適実施例によれば、DBCは特定の移動電話機に起動画像を結合するために使用されるので、起動画像は転送されず、改ざんされず、他の移動電話機にコピーされることもない。結合する処理で、改ざん検出用メッセージ認証コード（HMAC）を含む秘密のデータがDBCの中に格納されると、それ以降、DBCは秘密キーで暗号化される。好適実施例における移動電話機は、DBCの中に含まれるHMACを最初に取得せずに起動画像を使用することは許可されない。したがって、HMACは移動電話機に起動画像を結合するように機能する。更に電話機は、秘密キーがなければDBCの中のHMACにアクセスできず、起動画像が結合されている電話機のみが秘密キーを持っている。したがって、正しい秘密キーを持っている電話機だけが、起動画像のコンテンツに自由にアクセスすることができる。このように、起動画像と起動画像の全コンテンツの電話機ごとの結合は、DBCを介して達成される。
【００１２】
次に図１、２、３ａを参照すると、図１は、UART/USBポート174に結合されたOMAPプロセッサ172、フラッシュメモリ178およびROMコード（つまり、オンチップ・ファームウエア）176を含む移動電話機の好適実施例を示している。図２は、移動電話機170に起動画像を結合する処理を説明する流れ図を示している。図３ａは、起動画像300のコンテンツを説明するTOCフィールド302、以下に説明する暗号化のために使用されるキーを含むキーヘッダー304、更に保護アプリケーション（protected application：PA）312を含むフラッシュローダー308のヘッダーとして動作する共通ヘッダー306を含む起動画像300を示している。起動画像300は、その他フィールド310、PA 312および空きの装置結合証明書（DBC）フィールド314を含むことができる。保護アプリケーションは名前が付けられている。何故ならば、保護アプリケーションは、一般に対改ざん性であるハードウエアをベースとした安全な実行環境として定義される安全（secure）モード環境で動作するからである。
【００１３】
結合処理は、電話機の製造中、電話機が顧客の販売された後、またはその他の時点で実行されうる。一般に結合処理は、フラッシュ処理中のDBCの生成から始まり、このDBCで空きDBCフィールド314を埋め、それに続いて移動電話機170に起動画像300を格納する。より明確に説明すると、結合処理は、ROMコード176によるフラッシュローダー308の認証から始まり、フラッシュローダー308の有効性を保証することができる（ブロック202）。いったん認証されるとフラッシュローダー308は、UART/USBポート174または何らかの適切な装置を介して起動画像300をダウンロードする（ブロック204）。起動画像300と他の情報は、製造業者または何らかの適切なエンティティが、製造業者のコンピュータシステムのような何らかの適切な発信源からダウンロードされる。特定の項目（たとえば、IMEI番号を含むIMEI証明書、SIMlockファイルなど）が移動電話機170に結合される場合、これらの項目は起動画像300をダウンロードするために使用される方法と同様な方法でダウンロードされる。ダウンロードされる前に、IMEI証明書がOEMインタフェース（Original Equipment Manufacturer Interface：「OEMI」）の秘密キーを持っている製造会社によって署名されることが望ましい。OEMI秘密キーとIMEI証明書は移動電話機170にダウンロードされるので、移動電話機170は後刻OEMI秘密キーを使用してIMEI証明書を検証することができる。
【００１４】
これ以降フラッシュローダー308は、PA 312をロードして呼び出すことができる（ブロック206）。PA 312を呼び出す場合、フラッシュローダー308は共通ヘッダー306の中にある各種のクリエータIDとアプリケーションIDの値とともに起動画像300の各種成分に対し（たとえば共通ヘッダー306）を含む各種パラメータを送る。クリエータIDは、DBCの所有者またはクリエータを説明し、アプリケーションIDは、DBCを生成するアプリケーションの識別子の役目をする。PA 312は必要に応じてこれらのポインタと値を使用することができる。
【００１５】
PA 312の少なくとも１つの目的は、DBCを計算し（ブロック208）、オプションとしてランダムなキーによってDBCを暗号化して（ブロック210）そのDBCをフラッシュローダー308に転送し、さらなる処理を実行することである（ブロック212）。前に考察したように、PA 312は安全モードの環境で動作する。PA 312は、以下のようにDBCの発生を開始することができる。
HMAC＝HMACKEY（SHA-1（共通ヘッダー306＋起動ローダー）‖
公開チップID‖クリエータID‖アプリケーションID‖予約フィール
ド）
ここで「HMAC」は改ざん検出用メッセージ認証コードのことであり、記号「‖」は連接（concatenation）を表し、公開チップIDは、OMAPプロセッサ172の公開識別子の役目をし、予約フィールドは、（たとえばIMEI証明書など）何らかの情報を含み、起動ローダーは図３ｂの中で説明するように、起動画像300の中に含まれる。とくに共通ヘッダー306と起動ローダーは、最初に、以下に説明する周知のSHA-1アルゴリズムを使用してハッシュ化される。その結果は、上に示した各種データ（たとえば公開ID、クリエータIDなど）と連接される。得られた連接は、周知のHMAC暗号化アルゴリズムによるキー（つまりKEY）を使用してハッシュ化される。ここでKEYは、
KEY＝SHA-1（特定チップID‖クリエータID‖アプリケーションID）
として発生する。ここで特定チップ（Chip Specific）IDは、ROMコード176などのシステム・ファームウエアによって生成される秘密の識別子であり安全モードの中だけで（つまり、PAの実行中にのみ）使用可能である。セキュア・ハッシュ・アルゴリズムSHA-1は、メッセージまたはデータファイルの凝縮表現（condensed representation）を計算するために使用される。「凝縮表現」は「メッセージ・ダイジェスト（message digest）」または「フィンガープリント（fingerprint）」として周知されている。コンピュータでメッセージ・ダイジェストが同じ２つのメッセージを生成することは実行不可能である。この独自性により、メッセージ・ダイジェストがメッセージのフィンガープリントの機能を果たすことが可能になる。たとえば、ハッシュ化したオリジナルファイルとハッシュ化したそのファイルを比較することによって、ダウンロードまたは受信したファイルの同一性を保証するためにSHA-1を使用することができる。この方法で、同一性を要求するメッセージまたは同様な構造体を検証することができる。
【００１６】
図３ｂに示すようにPA 312によって計算された情報、またはフラッシュローダー308から受信した情報を使用してDBCを組み立てることによって、PA 312はDBCの計算を完了する。とくに完成されたDBCは、公開チップID 322、クリエータID 324、アプリケーションID 326、ハッシュ化された起動ローダー／共通ヘッダー328、予約フィールド330および上に説明したように発生するHMAC 332を含むことができる。予約フィールド330は、ブロック204でIMEI証明書がダウンロードされた場合はIMEI証明書330で埋められる。また予約フィールド330は、何らかの他の装置に特化された情報で埋められる。次にPA 312は、オプションとしてランダムな秘密キーKを使ってDBCを暗号化することができ、Kは、
K＝SHA-1（特定チップID‖クリエータID‖アプリケーションID）
として計算される。ランダムな秘密キーKを使ってDBCを暗号化すると、DBCのコンテンツのすべてが暗号化されるか、または暗号化ステップが回避され、PA 318がフラッシュローダー308にDBCを転送すると、さらなる処理が実行される。
【００１７】
フラッシュローダー308は、PA 312からDBCを受信し、そのDBCを空きDBCフィールド314の中に挿入して（ブロック214）、起動画像300の中のDBC 314を確定する。次にフラッシュローダー308は、移動電話機170のフラッシュメモリ178に起動画像300をフラッシュする（書き込む）ことによって結合処理を完了する（ブロック216）。
【００１８】
DBC 314を含み電話機170に結合された起動画像300は、図４に示すように、起動時に（つまり電話機の電源がオンになるたびに）DBC 314が認証されるまで使用できない。換言すると、起動画像300の中に含まれているオペレーティングシステムは、DBC 314が最初に認証されない限りロードできないので、エンドユーザが電話機170を使用することを抑止する。
【００１９】
次に図３ｂ、４を参照すると、図３ｂは、TOCフィールド302、キーヘッダーフィールド304、共通ヘッダー306、PA 320を含む起動ローダー308、その他フィールド310、PA 312およびDBC 314を含む起動時の起動画像300を示している。上に説明したように、DBC 314は、公開チップID 322、クリエータID 324、アプリケーションID 326、ハッシュ化された起動ローダー／共通ヘッダー328、IMEI証明書330を含むことができる予約フィールド330およびHMAC 332を含む。図４は、起動時の起動画像300を認証する処理の流れ図を示している。とくに起動時認証処理は、オンチップROMコード176によるキーヘッダー304と共通ヘッダー306の検証から始まる（ブロック402）。起動ローダー318は、DBC 314、共通ヘッダー306および起動画像300に対するポインタと、共通ヘッダー306からのクリエータID 324とアプリケーションID 326の値とを含む各種パラメータを使用してPA 320をロードして呼び出すことができるので（ブロック404）、PA 320は必要に応じてこれらのポインタと値を使用することができる。
【００２０】
PA 320は、最初にキーK1を使用してDBC 314を解錠（つまり、復号）するとともに、IMEI証明書330と同時に移動電話機170にダウンロードされたOEMI公開キーを使用してIMEI証明書330を検証することによってDBC 314とIMEI証明書330の完全性を検証することができる（ブロック406）。キーK1は、
K1＝SHA-1（特定チップID‖クリエータID‖アプリケーションID）
として計算される。別々に計算されているが、起動処理中にDBC 314を復号するために使用されるキーK1はフラッシュ処理中にDBC 314を暗号化するために使用されるキーKとまったく同じである。暗号化されたDBCが解錠（適切ならば）されると、PA 320は、
HMAC1＝HMACKEY1（SHA-1（共通ヘッダー306＋起動ローダー318）
‖公開チップID 322‖クリエータID 324‖アプリケーションID 326
‖予約  フィールド）
を計算する。ここでクリエータID 324とアプリケーションID 326は、DBC 314から取得され、KEY1は、
KEY1＝SHA-1（特定チップID‖クリエータID‖アプリケーションID）
と計算される。これ以降PA 320は、上に計算されたHMAC1とDBC 314に格納されたHMACを比較して一致しているかテストし、比較の結果を起動ローダー318に転送する（ブロック408）。一致していれば、起動画像300はコピーされたり改ざんされたりしていないので、起動画像300が置かれる移動電話機170によって使用されうることを表している。また一致していれば、起動画像300のコンテンツ（たとえば、IMEI証明書330）がコピーされたり改ざんされたりしていないので、本物であることを表している。このような場合、起動処理は正常に継続する。反対に、不一致であれば、起動画像300は盗まれたり、改ざんされたり、コピーされたりしていることを表している。したがって、起動画像300のコンテンツ（たとえば、IMEI証明書330）の同一性に調整の必要が残っていることを示している。このような場合、起動処理は中止する。起動ローダー318がPA 320からこの比較結果を受信すると、起動ローダー318は起動時認証処理を終了する（ブロック410）。
【００２１】
ここに開示した主題（subject matter）は、OMAP 161xプラットフォームについて説明されているが、OMAP 73xプラットフォーム、OMAP 171xプラットフォームまたは他の各種プラットフォームを使用することもできる。上記考察は、原理の例示とともに本発明の各種実施例を示すことを意味している。装置ごとに起動画像のコンテンツを結合する手法は、IMEI証明書の文脈で考察されているが、この手法は、装置に特化されるいかなるデータにも適用されうる。その上、開示の範囲は、上に説明した起動画像のコンテンツに限定されない。上に説明した起動画像は、諸目的をデバッグするために使用されるＲ&Ｄ証明書、起動後の安全なランダムアクセスメモリの中にある主要な保護アプリケーション（「PPA」）、PPA証明書および適切なその他の項目など、各種コンテンツの内の何かを含むことができる。また上記主要事項は、第１に移動電話機について考察されているが、この主要事項は、いかなる移動通信装置にも使用されうる。上記開示が完全に理解されると、当業者に対して多数の変形と修正が明らかになるであろう。添付の特許請求の範囲は、かかる変形と修正のすべてを含むと解釈される。
【００２２】
以上の説明に関して更に以下の項を開示する。
（１）移動通信装置に起動画像をダウンロードするステップと、
改ざん検出用メッセージ認証コードと前記装置に特化されたキーとを使用して発生した認証コードを含む装置結合証明書（DBC）を発生させるステップと、
前記起動画像の中に前記DBCを格納するステップと
を含む方法。
【００２３】
（２）（１）に記載の方法において、DBCの発生は、装置に特化された情報を前記DBCの中に格納することを含む前記方法。
【００２４】
（３）（２）に記載の方法であって、起動処理中の前記装置に特化された情報の信憑性、完全性および独自な関連を検証するとともに、前記検証が不成功な場合は前記起動処理を中断することを更に含む前記方法。
【００２５】
（４）フラッシュメモリと、
改ざん検出用メッセージ認証コード・アルゴリズムと前記装置に特化されたキーとを介して発生した認証コードを使用して前記フラッシュメモリに結合された起動画像と、
前記認証コードの信憑性と完全性を検証するようになっているROMコードを含むとともに、前記フラッシュメモリに結合されたプロセッサと、
を含む移動通信装置。
【００２６】
（５）（４）に記載の装置において、前記起動画像は、装置に特化された情報を含む前記装置。
【００２７】
（６）（４）に記載の装置において、前記ROMコードは、前記装置に特化された情報の信憑性と完全性を検証するとともに、前記検証が不成功な場合、起動処理の完了を抑止する前記装置。
【００２８】
（７）フラッシュメモリと、
ROMコードであって、
装置結合証明書（DBC）を発生し、
前記DBCを暗号化し、
起動画像に前記DBCを格納する、
ようになっている前記ROMコードと、
を含むとともに、前記フラッシュメモリに結合されたプロセッサと、
を含む移動通信装置において、
前記DBCは、改ざん検出用メッセージ認証コード・アルゴリズムと前記装置に特化されたキーとを使用して発生する認証コードを含む移動通信装置。
【００２９】
（８）コンピュータシステムによって実行可能であり、実行された場合一方法を実現する命令を含むコンピュータ可読媒体であって、
改ざん検出用メッセージ認証コード・アルゴリズムと前記媒体に特化されたキーとを使用して発生した装置結合証明書（DBC）を発生し、
前記起動画像に前記DBCを格納する、
ことを含む媒体。
【００３０】
（９）移動通信装置に起動画像をダウンロードして装置結合証明書（DBC）を発生する方法。DBCは、望ましくは改ざん検出用メッセージ認証コード・アルゴリズムと前記装置に特化されたキーとを使用して発生した認証コードを含む。この方法は、起動画像にDBCを格納することを更に含んでいるので、移動通信装置に起動画像を結合する。フラッシュローダーは、起動画像をダウンロードする（204）とともに、保護アプリケーションを呼び出す（206）。保護アプリケーションは、DBCを計算し（208）、オプションとしてランダムキーを使用してDBCを暗号化し（210）、それをフラッシュローダーに転送する（212）。フラッシュローダーは、DBCフィールドの中にDBCを入れ（214）、移動通信装置のフラッシュメモリに、その起動画像をロードする（216）。
【００３１】
（優先権の主張）
本願は、2003年9月10日出願の米国仮特許出願、シリアル番号、第60/510、695号、「装置に結合されたフラッシュ動作／起動動作によるクローン作成防止方法（Device Bound Flashing/Booting for Cloning Prevention）」に対して優先権を主張する。なお、ここでこの特許出願に言及することにより、この特許出願の開示内容を本願に明確に組み入れることにする。
【図面の簡単な説明】
【００３２】
【図１】本発明の実施例による移動通信装置のブロック図を示す図である。
【図２】図１の移動通信装置で実施される模範的な処理を示す流れ図を示す図である。
【図３】ａは、本発明の好適実施例に従って記号画像をフラッシュ処理するブロック図を示す図である。ｂは、本発明の好適実施例に従って記号画像を起動処理するブロック図を示す図である。
【図４】本発明の好適実施例に従って装置結合証明書（「DBC」）による認証処理の流れ図を示す図である。
【符号の説明】
【００３３】
１７０  移動通信装置
１７２  OMAPプロセッサ
１７４  UART/USBポート
１７６  ROMコード
１７８  フラッシュメモリ
３００  起動画像
３０２  TOC
３０４  キーヘッダー
３０６  共通ヘッダー
３０８  フラッシュローダー
３１０  その他フィールド
３１２、３１６、３２０  保護アプリケーション
３１４  空きの装置結合証明書フィールド
３１８  起動ローダー
３２２  公開チップID
３２４  クリエータID
３２６  アプリケーションID
３２８  ハッシュ化された共通ヘッダーと起動ローダー
３３０  予約フィールド／IMEI証明書
３３２  HMAC
【図１】
2005122733.tif 000003
【図２】
2005122733.tif 000004
【図３】
2005122733.tif 000005
【図４】
2005122733.tif 000006