(57)【要約】  本開示の発明は、テスト動作モード及びセキュアミッション動作モードを有する集積回路（３００）のセキュアなデバッグを可能にする。当該集積回路は、処理ユニット（３４０）と、テスト動作モードを制御可能にするテストインタフェース（３１２）と、テスト動作モードにおいて及びセキュアミッション動作モードにおいてアクセス可能なオンチップメモリ（３５０）と、テスト動作モードにおいてアクセス不能な１つ以上の保護されるリソース（３６０、３６４、３７０）とを有する。処理ユニットは、テスト動作モードにおいて、テストインタフェースを通じて認証オブジェクト（４０１）を受信し（４０１）、受信される認証オブジェクトをオンチップメモリ内に記憶する（４０１）ように構成される。処理ユニットは、セキュアミッション動作モードへのリセット後に、ブート手続（３６２）を実行して、認証オブジェクトがオンチップメモリ内で利用可能であることを判定（５０１）し、認証オブジェクトを認証（５０２）し、成功裏の認証の後に、より多くの保護されるリソースを、集積回路の外部のデバッグホスト（３１０）にとってアクセス可能にする（５０３ａ、５０３ｂ）ように、さらに構成される。【選択図】図５
2016535906.tif 000002
【特許請求の範囲】
【請求項１】
テスト動作モード及びセキュアミッション動作モードを有する集積回路（１００，３００）であって、
処理ユニット（３４０）と、
前記テスト動作モードを制御可能にするテストインタフェース（３１２）と、
前記テスト動作モードにおいて及び前記セキュアミッション動作モードにおいてアクセス可能なオンチップメモリ（３５０）と、
前記テスト動作モードにおいてアクセス不能な１つ以上の保護されるリソース（３６０，３６４，３７０）と、
を備え、
前記処理ユニットは、前記テスト動作モードにおいて、
前記テストインタフェースを通じて認証オブジェクト（４０１）を受信（４０１）し、
受信される前記認証オブジェクトを前記オンチップメモリ内に記憶（４０１）する、
ように構成され、
前記処理ユニットは、前記セキュアミッション動作モードへのリセット後に、ブート手続（３６２）を実行して、
前記認証オブジェクトが前記オンチップメモリ内で利用可能であることを判定（５０１）し、
前記認証オブジェクトを認証（５０２）し、
成功裏の認証の後に、前記１つ以上の保護されるリソースを、前記集積回路の外部のデバッグホスト（３１０）にとってアクセス可能にする（５０３ａ，５０３ｂ）、
ように構成される、
集積回路。
【請求項２】
前記テストインタフェース（３１２）は、ＪＴＡＧ（Joint  Test  Action  Group）準拠である、請求項１に記載の集積回路。
【請求項３】
前記テスト動作モードは、機能的テストベクタ（ＦＴＶ：Functional  Test  Vectors）モードである、請求項２に記載の集積回路。
【請求項４】
前記認証オブジェクト（４５２）が前記オンチップメモリ（３５０）内に記憶されていることを示す特定のデータの、オンチップレジスタ（３１６）内への書き込み（４０２）を受け入れる、ようにさらに構成され、
前記ブート手続（３６２）は、前記オンチップレジスタの内容をチェックし、その中の前記特定のデータの発見後に、前記認証オブジェクトが前記オンチップメモリ内で利用可能であると判定する、請求項１〜３のいずれかに記載の集積回路。
【請求項５】
前記オンチップレジスタ（３１６）は、ＪＴＡＧ  ＴＡＰ（Test  Access  Point）であり、前記特定のデータはフラグである、請求項２及び４に記載の集積回路。
【請求項６】
不揮発性ブートメモリ（３６０）をさらに有し、前記ブートメモリは、前記テスト動作モードにおいてアクセス不能であり、前記セキュアミッション動作モードにおいてアクセス可能であり、前記ブートメモリは、前記ブート手続（３６２）の少なくとも一部を定義するプログラムコード（３６２）を備える、請求項１〜５のいずれかに記載の集積回路。
【請求項７】
前記認証オブジェクト（３５２）は、前記デバッグホスト（３１０）からの制御下で前記処理ユニット（３４０）によって実行されるデバッグ手続を定義する、署名済みのコンピュータプログラムコードを含む、請求項１〜６のいずれかに記載の集積回路。
【請求項８】
前記認証オブジェクト（３５２）は、前記デバッグホスト（３１０）を信頼されるものとして識別する認証データを含む、請求項１〜７のいずれかに記載の集積回路。
【請求項９】
前記認証オブジェクト（３５２）は、前記１つ以上の保護されるリソース（３６０，３６４，３７０）を前記デバッグホスト（３１０）にとってアクセス可能にする許可を定義する権限データを含む、請求項１〜８のいずれかに記載の集積回路。
【請求項１０】
前記１つ以上の保護されるリソース（３７０）は、
前記集積回路のセキュアなメモリ領域、
デバッグ機能、
ＤＲＭ（Digital  Rights  Management）鍵、
ＳＩＭ（Subscriber  Identity  Module）機能、
ＩＭＥＩ（International  Mobile  Equipment  Identity）ストレージ、
無線周波数コンポーネント、
暗号鍵（３６４）、
復号鍵（３６４）、
クロック信号発生器、及び
リセット機構、
のうち１つ以上を含む、請求項１〜９のいずれかに記載の集積回路。
【請求項１１】
モバイル通信についての１つ以上の標準に準拠した通信のための無線通信回路（２３０，３８０）をさらに備える、請求項１〜１０のいずれかに記載の集積回路。
【請求項１２】
デジタルＳＯＣ（System  On  Chip）である、請求項１〜１１のいずれかに記載の集積回路。
【請求項１３】
請求項１〜１２のいずれかに記載の集積回路（１００，３００）を備える、電子装置（２００）。
【請求項１４】
請求項１１に記載の集積回路（１００，３００）を備える、モバイル端末（２００）。
【請求項１５】
集積回路（１００，３００）のセキュアなデバッグを可能にする方法であって、
前記集積回路の１つ以上の保護されるリソース（３６０，３６４，３７０）へアクセス不能なテスト動作モードで動作させるために、前記集積回路をリセット（６１０）することと、
前記集積回路のテストインタフェース（３１２）を通じて認証オブジェクト（４５２）を受信（６２０，４０１）することと、
受信される前記認証オブジェクトを前記集積回路のオンチップメモリ（３５０）内に記憶（６３０，４０１）することと、
セキュアミッション動作モードで動作させるために、ブート手続（３６２）を実行することにより、前記集積回路をリセット（６４０）することと、
を含み、
前記ブート手続は、
前記認証オブジェクトが前記オンチップメモリ内で利用可能であることを判定すること（６５０，５０１）と、
前記認証オブジェクトを認証すること（６６０，５０２）と、
成功裏の認証の後に、前記１つ以上の保護されるリソースを、前記集積回路の外部のデバッグホスト（３１０）にとってアクセス可能にすること（６７０，５０３ａ，５０３ｂ）と、を含む、
方法。
【請求項１６】
前記認証オブジェクト（３５２）は、前記デバッグホスト（３１０）から前記テストインタフェース（３１２）を介して受信される、請求項１５に記載の方法。
【請求項１７】
前記認証オブジェクト（４５２）が前記オンチップメモリ（３５０）内に記憶されていることを示す特定のデータの、オンチップレジスタ（３１６）内への書き込みを受け入れることと、
前記セキュアミッション動作モードにおいて、前記オンチップレジスタの内容をチェックして、前記認証オブジェクトが前記オンチップメモリ内で利用可能であることを判定（６５０，５０１）することと、
をさらに含む、請求項１５又は１６に記載の方法。
【請求項１８】
前記テスト動作モードで動作させるために前記集積回路をリセットする前記ステップ（６１０）、及び前記セキュアミッション動作モードで動作させるために前記集積回路をリセットする前記ステップ（６４０）は、前記デバッグホスト（３１０）から前記テストインタフェース（３１２）を介してそれぞれの制御信号（３１４）を受信することに応じて実行される、請求項１５〜１７のいずれかに記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、集積回路の分野に関し、より詳細には、外部のデバッグホストからセキュアなデバッグを可能にするために構成されている集積回路に関する。本開示はまた、そのような集積回路のセキュアなデバッグを可能にするための関連する方法に関する。
【背景技術】
【０００２】
集積回路は、今日では実質的に全ての種類の電子装置において使用されている。より高度な形式では、集積回路は、プログラム可能な論理回路（即ち、処理ユニット）、関連付けられる揮発性メモリ及び不揮発性メモリ、及び特定機能回路（例えば、無線通信回路）を含む。そのような集積回路は、デジタルＳＯＣ（System  On  Chip）と称されることもある。
【０００３】
デジタルＳＯＣなどの集積回路が用いられる１つの一般的な種類の電子装置は、例えば、ＧＳＭ、ＵＭＴＳ、ＬＴＥ、Ｄ−ＡＭＰＳ、ＣＤＭＡ２０００、ＦＯＭＡ又はＴＤ−ＳＣＤＭＡなどのうち１つ以上のモバイル通信についての１つ以上の標準に準拠する無線通信のためのモバイル端末である。モバイル端末は、本開示による集積回路を含む、電子装置の非限定的な例として用いられる。
【０００４】
モバイル端末は、典型的には以下に起因して、多くの場合、明確に定義されたやり方で動作することを要する：
１．標準要件（無線インタフェースの要件など）
２．サードパーティ要件（ＤＲＭ（Digital  Rights  Management）など）
３．セキュリティ要件（例えばトロイやウイルスに感染したソフトウェアの形による悪意あるソフトウェアが稼動し又は少なくとも保護されるリソースにアクセスすることを防止することなど）
【０００５】
モバイル端末内に含まれる集積回路（例えば、ＳＯＣ）は、当然ながら、あてはまる状況ではそのような要件の対象である。これは、外部のデバイスが集積回路にアップロードしようとしている新たな又は修正されたプログラムコードを、集積回路が認証する必要があることを意味する。集積回路は、外部のデバイスが集積回路上の保護されるリソースにアクセスしようとしているときに、それを行う権限を実際に有することを検証する必要もある。
【０００６】
上記の考察が問題となる１つの状況が、集積回路のテストである。いかなる半導体デバイスでもそうであるように、集積回路の量産においては、エラーが完全になくなることはない。したがって、テストの方法及びデバイスが必要である。このために、ＪＴＡＧ（Joint  Test  Action  Group）として知られる業界標準が利用可能である。テストを容易にするために、集積回路は、ＩＥＥＥ１１４９．１又はＩＥＥＥ１１４９．７などの、ＪＴＡＧ準拠のインタフェースとともに提供されることが多い。
【０００７】
概して、集積回路のテストは、生産ラインテスト（production-line  testing）及び現場回帰テスト（field  return  testing）の、主な２種類に分けられる。
【０００８】
生産ラインテストは、生産工場において大量の集積回路に対し一斉に行われる。外部のデバイスが、集積回路のＪＴＡＧインタフェースに接続されており、バウンダリスキャンテストなどの下位レベルのテストアクティビティを実行する。また、集積回路は、機能的テストベクタ（ＦＴＶ：Functional  Test  Vectors）と呼ばれるテスト動作モードを有するように設計されることが多い。ＦＴＶモードでは、外部のデバイスからの制御下で、あるプログラムコードを集積回路上で実行することにより、集積回路をさらに検査することが可能となる。外部のデバイスは、しばしばデバッグホスト（又はデバッグツール）と称される。生産ラインテストは、タイムクリティカルである（生産時間が遅延するとコストがかかる）ため、ＦＴＶモードテストは、通常、数秒程度という短いテスト時間に制限される。
【０００９】
他方、ＦＴＶモードの生産ラインテストは、生産工場において行われるため、特段のセキュリティの問題を引き起こすことはない。性能の理由から、デバッグホストの認証は、ＦＴＶモードでは用いられない。しかしながら、一旦現場にリリースされると、第三者が集積回路上でＦＴＶモードテストを実行できる可能性があるため、集積回路は、通常ＦＴＶモードでの実行時に、あるセンシティブな機能を無効化するように設計される。そのようなセンシティブな機能の複数の例が、詳細な説明の項において後述されており、本開示中では、「保護されるリソース」と総称される。
【００１０】
集積回路（及び／又は集積回路をその一部とする電子装置）の不完全なサンプルの現場回帰テストは、報告された問題を手作業で調査することを要することが多い。そういった調査では、全てのオンチップの機能のデバッグ及びチェックを要する。集積回路は、典型的には生産ラインでの完成後はロックダウンされるため、現場回帰テストを受ける集積回路は、デバッグホストが真正であること、及び／又はデバッグ動作、特に集積回路上の保護されるリソースに関連するデバッグ動作を命令する権限を実際に有すること、を検証する必要がある。そうしなければ、深刻なセキュリティのリスクが生じる。
【００１１】
上述のセキュリティの考察が問題となる別の状況は、開発中にセキュアなデバッグを可能にすることである。デバッグ動作が、新たな又は更新されたプログラムコードを集積回路上にアップロードすることを含む場合、集積回路は、アップロードされるプログラムコードを、記憶する前又は少なくとも実行する前に認証する必要がある。
【００１２】
プログラムコードのそのような認証、権限付与又はアップロードを可能にするために、認証データ、権限データ又はプログラムコードは、外部から集積回路上に移送されなければならない。しかしながら、そのようなアップロードには問題がある恐れがある。集積回路が、典型的にＵＡＲＴ又はＵＳＢのような標準機能インタフェースを有するとしても、それらのインタフェースは、電子装置内の（アプリケーションプロセッサなどの）ホストデバイスに既に接続されていることが多い。必要なデータのアップロードを提供するホストデバイスサポートは、存在しないかもしれない。
【００１３】
１つのアプローチは、余計なコンポーネントを追加して、集積回路とホストデバイスとの間の、例えばＵＡＲＴリンクを、デバッグホストが遮断できるようにすることであろう。しかしながら、余計なコンポーネントを追加することは、空間／回路の面積及びコストの制約の理由から困難である。そのようなアプローチは、インタフェース（例えば、ＵＡＲＴ）をある時点でデバッグホストからＰＣＢ上のホストに切り替えることを要する可能性もあり、それは、デバッグホストと電子装置内のホストデバイスとの間の同期を要する。
【００１４】
実際には、スモールフォームファクタで最小化されたある集積回路については、ＵＡＲＴ又はＵＳＢインタフェースのための余計なコネクタを追加することさえもできないかもしれない。
【００１５】
さらなる複雑化の要因は、いくつかのオンチップインタフェースが、機能的な理由のために永続的に無効化されている可能性があるということである。例えば、集積回路生産者のある顧客が、ＵＡＲＴ上でのブートを無効化することを選択するかもしれない。これは、そうしなければ、その顧客が考えている対応するインタフェースピンの特定の使用に干渉することになるからである。
【００１６】
上述のことから明らかなように、これらの問題について改善の必要と改善の余地の両方がある。
【発明の概要】
【発明が解決しようとする課題】
【００１７】
本開示の目的は、背景技術において認定されている１つ以上の問題を解決し、又は少なくとも軽減することである。
【課題を解決するための手段】
【００１８】
本発明は、新規な２段階のやり方で、集積回路のテストインタフェース（ＪＴＡＧなど）を用いることにより、集積回路のセキュアなデバッグを得ることを実現した。まず、メインブートの前に、集積回路が要する、デバッグホストを信頼されるものとして検証するためのデータが、集積回路のオンチップメモリ内にアップロードされる。次いで、オンチップメモリ内にデータが予めロードされたことがメインブートへ通知される。メインブートは、次いでデータを評価し、オンチップメモリ内に予めロードされたデータの観点から信頼できると見なされれば、保護されるオンチップリソースを、デバッグホストにとって利用可能にするための適切なアクションをとる。これらのトランザクションの全てを、ＪＴＡＧインタフェースを介して実行することができ、他の従来のインタフェースの存在又は関与は必要ない。
【００１９】
本発明者によるこの理解は、少なくとも後述する本発明の態様及び実施形態に従った実践へと還元されている。
【００２０】
したがって、本開示の１つの態様は、テスト動作モード及びセキュアミッション動作モードを有する集積回路である。集積回路は、処理ユニットと、テスト動作モードを制御可能にするテストインタフェースと、テスト動作モードにおいて及びセキュアミッション動作モードにおいてアクセス可能なオンチップメモリと、テスト動作モードにおいてアクセス不能な１つ以上の保護されるリソースと、を備える。処理ユニットは、テスト動作モードにおいて、当該テストインタフェースを通じて認証オブジェクトを受信し、受信される認証オブジェクトをオンチップメモリ内に記憶するように構成される。処理ユニットは、セキュアミッション動作モードへのリセット後に、ブート手続を実行して、認証オブジェクトがオンチップメモリ内で利用可能であることを判定し、認証オブジェクトを認証し、成功裏の認証の後に、１つ以上の保護されるリソースを、集積回路の外部のデバッグホストにとってアクセス可能にするように構成される。
【００２１】
テストインタフェースは、有利にはＪＴＡＧ（Joint  Test  Action  Group）準拠であり、テスト動作モードは、有利には機能的テストベクタ（ＦＴＶ：Functional  Test  Vectors）モードである。したがって、全てではないが多くの集積回路上に既に存在するテストインタフェースで、有効な利用がなされる。
【００２２】
集積回路は、認証オブジェクトがオンチップメモリ内に記憶されていることを示す特定のデータの、オンチップレジスタ内への書き込みを受け入れるようにさらに構成されてもよい。したがって、ブート手続は、オンチップレジスタの内容をチェックし、その中の特定のデータの発見後に、認証オブジェクトがオンチップメモリ内で利用可能であると判定してもよい。
【００２３】
オンチップレジスタは、好都合には、ＪＴＡＧ  ＴＡＰ（Test  Access  Point）であってもよく、特定のデータは、フラグであってもよい。
【００２４】
ブート手続の少なくとも一部は、（ＲＯＭなどの）不揮発性ブートメモリ内に含まれるプログラムコードにより定義されてもよく、当該不揮発性ブートメモリは、テスト動作モードにおいてアクセス不能であり、セキュアミッション動作モードにおいてアクセス可能である。
【００２５】
認証オブジェクトは、例えば、デバッグホストからの制御下で処理ユニットによって実行されるデバッグ手続を定義する、署名済みのコンピュータプログラムコードを含んでもよい。
【００２６】
認証オブジェクトは、デバッグホストを信頼されるものとして識別する認証データもまた含んでもよく、又は認証データを代わりに含んでもよい。
【００２７】
認証オブジェクトは、１つ以上の保護されるリソースをデバッグホストにとってアクセス可能にする許可を定義する権限データもまた含んでもよく、又は権限データを代わりに含んでもよい。
【００２８】
１つ以上の実施形態において、保護されるリソースは、上述したブートメモリの全て又は一部などの集積回路のセキュアなメモリ領域、例えば、上述したデバッグ手続の一部などのデバッグ機能、ＤＲＭ（Digital  Rights  Management）鍵、ＳＩＭ（Subscriber  Identity  Module）機能、ＩＭＥＩ（International  Mobile  Equipment  Identity）ストレージ、無線周波数コンポーネント、暗号鍵、復号鍵、クロック信号発生器、及びリセット機構のうちの１つ以上を含んでもよい。
【００２９】
有利には、集積回路は、モバイル通信についての１つ以上の標準に準拠した通信のための無線通信回路をさらに含む。
【００３０】
有利には、集積回路は、デジタルＳＯＣ（System  On  Chip）である。
【００３１】
本開示の第２の態様は、第１の態様による集積回路を含む電子装置である。
【００３２】
本開示の第３の態様は、第１の態様による集積回路を含むモバイル端末である。
【００３３】
本開示の第４の態様は、集積回路（１００，３００）のセキュアなデバッグを可能にする方法である。当該方法は、集積回路の１つ以上の保護されるリソースへアクセス不能なテスト動作モードで動作させるために、集積回路をリセットすることと、集積回路のテストインタフェースを通じて認証オブジェクトを受信することと、集積回路のオンチップメモリ内に受信される認証オブジェクトを記憶することと、ブート手続を実行してセキュアミッション動作モードで動作させるために、集積回路をリセットすることと、を含む。当該ブート手続は、認証オブジェクトがオンチップメモリ内で利用可能であることを判定することと、認証オブジェクトを認証することと、成功裏の認証の後に、１つ以上の保護されるリソースを集積回路の外部のデバッグホストにとってアクセス可能にすることと、を含む。
【００３４】
第４の態様による方法は、第１の態様による集積回路の構造的な特徴に、直接、機能的に対応するものであるステップのいずれか又は全てをさらに含んでもよい。
【００３５】
本開示の他の特徴及び利点は、以下の詳細な開示から、添付の従属項から、及び図面から明らかになるであろう。
【００３６】
概して、請求項の中で用いられる全ての用語は、明細書中に明示的に定義されない限り、当該技術分野における通常の意味にしたがって解釈されるべきものである。
【００３７】
“（a／an／the）要素、デバイス、コンポーネント、手段、ステップなど”への全ての言及は、明示的に宣言されない限り、要素、デバイス、コンポーネント、手段、ステップなどの少なくとも１つのインスタンスへ言及するものとして、オープンに解釈されるべきものである。本明細書中で開示されるいかなる方法の動作も、明示的に宣言されない限り、開示される厳密な順序で実行される必要はない。
【００３８】
“備える／含む（comprises／comprising）”の用語は、本明細書で使用される場合、述べられた特徴、整数、ステップ、又はコンポーネントが存在することを明示するものと解釈され、１つ以上の他の特徴、整数、ステップ、コンポーネント、又はそれらの集合の存在又は追加を排除するものではないことが、強調されるべきである。
【図面の簡単な説明】
【００３９】
本開示の目的、特徴及び利点は、以下の詳細な説明、添付図面に対して行われる参照から明らかとなるであろう。
【００４０】
【図１】プリント回路基板上に配置される集積回路の概略図である。
【図２】図１の集積回路が使用され得るモバイル端末のコンポーネントの概略図である。
【図３】図１の集積回路の実施形態の概略図である。
【図４】テスト動作モードにおける図３の集積回路を示す。
【図５】セキュアミッション動作モードにおいてブートするときの図３の集積回路を示す。
【図６】集積回路のセキュアブートを可能にするための方法についてのフローチャートを示す。
【発明を実施するための形態】
【００４１】
ここで、本発明の実施形態を、添付図面を参照して説明する。しかしながら、本発明は多くの様々な形態で具現化されることができ、本明細書に記載の実施形態に限定されると解釈されるべきではない。むしろ、本開示を徹底的かつ完全にし、当業者に本発明の範囲を十分に伝達するように、これらの実施形態を提供する。添付の図面に示される特定の実施形態の詳細な説明において使用される用語は、本発明を限定することを意図するものではない。図面において、同様の番号は同様の要素を参照する。
【００４２】
図１は、概してプリント回路基板（ＰＣＢ：Printed  Circuit  Board）１１０上に配置される集積回路（ＩＣ）１００を示す。プリント回路基板１１０は、バッテリ、切替え型電力供給器などの電源１２０をも含み、電源１２０は、セット供給電圧で電源供給ライン１３０ａ、１３０ｂを介して集積回路１００に電力を供給する働きをする。本開示の実施形態では、集積回路１００は、デジタルＡＳＩＣ（Application-Specific  Integrated  Circuit）である。ＡＳＩＣは、スタンダードセル設計、ゲートアレイ設計、フルカスタム設計、又はストラクチャード設計のうちのものであってよい。本発明は、具体的にはＡＳＩＣにおける実装及びＡＳＩＣを用いる実装について有利であると現在考えられるが、集積回路１００は、代替的には、ＦＰＧＡ（Field-Programmable  Gate  Array）又は他の種類のＩＣであってもよいと思われる。
【００４３】
集積回路１００は、任意の種類の電子装置において用いられてよい。そのような電子装置の１つの実施形態が、図２において概略的にモバイル端末２００の形式で示されている。モバイル端末２００は、モバイル端末２００の動作を制御することについての全体的な責任を負うメインコントローラ２１０を有する。本開示の実施形態では、メインコントローラ２１０は、ＣＰＵ（central  processing  unit）であるが、代替的にはＤＳＰ（digital  signal  processor）、又はＡＳＩＣ（application-specific  integrated  circuit）若しくはＦＰＧＡ（field-programmable  gate  array）などの他のプログラム可能な電子論理デバイスであり得る。
【００４４】
１つの実施形態では、図１の集積回路１００は、メインコントローラ２１０を実装する。他の実施形態では、図１の集積回路１００及び図２のメインコントローラ２１０は、分離して実装される。
【００４５】
メインコントローラ２１０は、作業メモリ及び記憶メモリを含み得るメモリ２２０に連結される。メモリ２２０は、例えば、ＲＡＭ、ＥＥＰＲＯＭ、フラッシュメモリ（例えば、メモリカード）、磁気ハードディスク、又はそれらのうち任意の組み合わせの形式で実装されてもよい。メモリ２２０は、モバイル端末２００の様々な機能性を実行させるように、メインコントローラ２１０によって実行可能なプログラムコードを記憶する能力を有する。
【００４６】
モバイル端末２００は、基地局２４４への無線周波数（ＲＦ：radio-frequency）リンク２４２を介してモバイル端末２００がモバイル通信ネットワーク２４０と通信できるようにする、モバイルネットワークインタフェース２３０を有する。モバイルネットワークインタフェース２３０は、例えば、ＧＳＭ、ＵＭＴＳ、ＬＴＥ、Ｄ−ＡＭＰＳ、ＣＤＭＡ２０００、ＦＯＭＡ又はＴＤ−ＳＣＤＭＡのうち１つ以上のモバイル通信についての１つ以上の標準に準拠した通信のための無線通信回路を含む。したがって、モバイルネットワークインタフェース２３０は、内部アンテナ又は外部アンテナとともに、帯域通過フィルタ、増幅器、ミキサ、局部発振器、ローパスフィルタ、ＡＤ／ＤＡコンバータなどにより形成される無線受信器及び送信器を含む。
【００４７】
１つの実施形態では、図１の集積回路１００は、モバイルネットワークインタフェース２３０を実装する。したがって、この実施形態では、集積回路１００は、モバイル通信のための１つ以上の標準に準拠した通信のための前述の無線通信回路を含む。このことは、無線通信回路が３８０と表されている図３〜図５において示される実施形態において、より明確に示される。
【００４８】
さらに、モバイル端末２００の本開示の実施形態は、無線インタフェース２３２を有し、無線インタフェース２３２は、Bluetooth、ＷｉＦｉ（例えば、ＩＥＥＥ８０２．１１、無線ＬＡＮ）、ＮＦＣ（Near  Field  Communication）、又はＩｒＤＡ（Infrared  Data  Association）などの１つ以上の近距離無線通信の標準に従う通信に適合され得る。無線インタフェース２３２は、いくつかの実施形態では、モバイルネットワークインタフェース２３０と部分的に又は完全に統合され得る。モバイル端末２００の本開示の実施形態は、ＵＳＢ（Universal  Serial  Bus）などの有線インタフェース２３４をも有し、有線インタフェース２３４は、モバイル端末２００が、例えばパーソナルコンピュータとシリアルケーブルを介して通信できるようにする。他の実施形態では、そのようなインタフェースはない可能性がある。
【００４９】
ユーザインタフェース２５０は、ユーザ２６０がモバイル端末２００とのインタラクションを行うことを可能とする。ユーザインタフェース２５０は、少なくとも１つのＬＣＤディスプレイなどの表示手段とともに、ユーザのための入力手段を含む。入力手段は、例えば、英数字キー及び／若しくは矢印キー（ナビゲーションキー）及びファンクションキー（ソフトキー）などの他のキーを有するキーパッド、並びに／又はジョイスティック、タッチパッド、ローテータ、ジョグダイアルなどを含み得る。いくつかの実施形態では、表示手段及び入力手段は、タッチ感知ディスプレイにより一体化して実現され得る。ユーザインタフェース２５０は、典型的には、スピーカ及びマイクロフォンをも含む。
【００５０】
モバイル端末２００は、電源スイッチ、カメラ、バッテリ、充電器インタフェース、アクセサリインタフェース、及び音量調節などの、他の周知のコンポーネントとともに提供されてもよいが、簡潔のため図２ではそのような要素は示さない。
【００５１】
図３は、図１に示す集積回路１００の実施形態３００のより詳細な図を示す。図３に示すように、集積回路３００は、処理ユニット３４０を有し、処理ユニット３４０は、集積回路３００の他の機能ユニットのコントローラの役割を担う。処理ユニット３４０は、オンチップメモリ３５０と関連付けられる。オンチップメモリ３５０は、ＲＡＭ（random  access  memory）であってもよい。オンチップメモリ３５０は、集積回路３００が提供する様々な機能性を実行するときに、処理ユニット３４０のための作業メモリとして用いられ得る。集積回路３００は、外部メモリインタフェース３３２をも有し、外部メモリインタフェース３３２を介してＳＤ−ＲＡＭなどの外部メモリ３３０への読み出し及び書き込みが行われ得る。
【００５２】
図２の説明と併せて既に述べたように、図３に示すような集積回路３００の実施形態は、モバイル通信についての１つ以上の標準に準拠した通信のための無線通信回路３８０を含む。したがって、集積回路３００は、有利には図２のモバイル端末２００のようなモバイル端末に含まれ得る。集積回路の本開示の実施形態３００は、デジタルＳＯＣ（System  On  Chip）である。
【００５３】
集積回路３００は、テストインタフェース３１２をも有し、集積回路３００のテスト動作モードは、テストインタフェース３１２を通じて制御可能である。この目的を達成するために、集積回路３００が提供する様々な機能性のデバッグを実行する目的で、外部のデバッグホスト３１０（パーソナルコンピュータ、ワークステーションなど）は、集積回路３００に接続され得る。
【００５４】
本開示の実施形態では、テストインタフェース３１２は、ＪＴＡＧ（Joint  Test  Action  Group）準拠である。この目的を達成するために、テストインタフェース３１２は、例えば、ＩＥＥＥ１１４９．１インタフェース、又は代替的にはコンパクトＩＥＥＥ１１４９．７インタフェース（しばしばｃＪＴＡＧ又はコンパクトＪＴＡＧと称される）であり得る。概してそれ自体は周知であるが、テスト動作モードは、レジスタスキャンテスト、バウンダリスキャンテスト、又は機能的テストベクタ（ＦＴＶ：Functional  Test  Vectors）モードを含み得る。既に背景技術の項で説明したように、セキュリティの理由から、集積回路上のある保護されるリソースは、テスト動作モードにおいてアクセス不能である。したがって、オンチップメモリ３５０は、テスト動作モードにおいても、セキュアミッション動作モードにおいてもアクセス可能であるが、保護されるリソース（概して図３で３７０と称される）は、テスト動作モードにおいてアクセス不能である。これは、保護されるリソース３７０が、テスト動作モードにおいて外部のデバッグホスト３１０からアクセスできないということを意味する。
【００５５】
保護されるリソース３７０は、ハードウェア要素、ソフトウェア要素若しくはデータ要素、又はそれらのいかなる組み合わせをも含んでもよい。
【００５６】
保護されるハードウェア要素３７０は、例えば、集積回路３００のセキュアなメモリ領域（例えば、不揮発性ブートメモリ３６０の全ての又はいくつかの部分など）、無線周波数コンポーネント（無線通信回路３８０に含まれる可能性がある)、クロック信号発生器、ＩＭＥＩ（International  Mobile  Equipment  Identity）ストレージ又はリセット機構であってもよい。図３〜図５に例示する実施形態では、不揮発性ブートメモリ３６０は、図４によるテスト動作モードではバツ印で消されて図示されることにより、保護されるハードウェア要素として示される。
【００５７】
保護されるソフトウェア要素３７０は、例えば、デバッグ機能（例えば、不揮発性ブートメモリ３６０に記憶されるプログラムコード３６２により定義されるデバッグ手続３６２の一部）又はＳＩＭ（Subscriber  Identity  Module）機能であってもよい。
【００５８】
保護されるデータ要素３７０は、例えば、ＤＲＭ（Digital  Rights  Management）鍵、ＩＭＥＩ、暗号鍵（３６４）又は復号鍵（３６４）であってもよい。図３〜図５に例示する実施形態では、暗号鍵／復号鍵のペア３６４の形式での秘密データが、図４によるテスト動作モードではバツ印で消されて図示されることにより、保護されるデータ要素として示される。
【００５９】
集積回路３００のセキュアなデバッグを可能にするための第１フェーズとして、テスト動作モードの新規な使用について図４を参照してより詳細に説明する。
【００６０】
追加的に、集積回路３００は、セキュアミッション動作モードで動作し得る。セキュアミッション動作モードにおいて、集積回路３００は、ホストデバイスインタフェース３２２を介して外部のホストデバイス３２０とやりとりし得る。概してそれ自体は周知であるが、セキュアミッション動作モードは、テスト動作モードとは異なり、電子装置内の通常の環境及び意図した環境における、集積回路３００の通常の使用及び意図した使用を表す。本開示の実施形態では、電子装置は、図２のモバイル端末２００であり、外部のホストデバイス３２０は、メインコントローラ２１０及び関連付けられるメモリ２２０を含み、Ａｎｄｒｏｉｄ、ｉＯＳ又はＷｉｎｄｏｗｓ８のようなオペレーティングシステムを提供する、アプリケーションエンジンである。図５を参照してより詳細に説明するように、セキュアなデバッグの第２フェーズは、セキュアミッション動作モードへとブートすることに関与する。
【００６１】
ここで図６を参照すると、図６は、集積回路のセキュアなデバッグを可能にするための方法を示す。当該方法の説明は、図３について上述した集積回路３００の実施形態を例示的に及び非限定的に参照してなされる。この説明を容易にするために、図４及び図５は、テスト動作モード及びセキュアミッション動作モードそれぞれにおける集積回路３００を示すために提供される。
【００６２】
セキュアなデバッグを可能にするための方法の第１のステップ６１０において、デバッグホスト３１０は、テスト動作モードで動作させるために、集積回路３００をリセットする。本開示の実施形態では、テスト動作モードは、ＦＴＶモードである。既に述べたように、集積回路３００の保護されるリソース３７０は、テスト動作モードにおいてアクセス不能である。リセットは、特定の制御信号３１４をテストインタフェース３１２上で発することを含み得る。例えば、可能な方法の１つは、まず集積回路３００の電源をオンにし、そしてＪＴＡＧ制御信号をアクティブにし、次いでそれを解放することである。ＦＴＶモード及びＰＯＲ（Power  On  Reset；ＪＴＡＧ  ＴＡＰ（Test  Access  Port）で利用可能な機能的リセット)（又は代替的にＳＲＳＴ（System  Reset；ＩＥＥＥ１１４９．１／７による、ハードウェアに組み込まれている機能的リセット））についての標識が、オンチップレジスタ３１６内にセットされ得る。オンチップレジスタ３１６は、一般にＴｏｐ  ＴＡＰと称される、ＪＴＡＧの最上位レジスタであってもよい。続くＰＯＲ（又は代替的にＳＲＳＴ）の解放の後、集積回路３００は、図４に示されるテスト動作モードに入ることとなる。
【００６３】
第２のステップ６２０において、認証オブジェクト４５２が、テストインタフェース３１２を通じてデバッグホスト３１０から受信される。第３のステップ６３０において、処理ユニット３４０は、受信された認証オブジェクト４５２をオンチップメモリ３５０内に記憶する。これらの動作は、図４中の４０１において一体化しているように見える。認証オブジェクト４５２の目的は、デバッグホスト３１０が、セキュアミッション動作モードにおいて、保護されるリソース３７０へのアクセスを含むブート手続３６２のセキュアなデバッグを実行するために信頼できるデバイスであることを、処理ユニット３４０が検証できるようにすることである。
【００６４】
認証オブジェクト３５２は、例えば、デバッグホスト３１０を信頼されるものとして識別する認証データを含み得る。認証データは、例えば、デジタル署名又は証明書の形式をとってもよく、その信頼性は、処理ユニット３４０により評価され得る。
【００６５】
代替的に又は追加的に、認証オブジェクト３５２は、保護されるリソース３６０、３６４、３７０のうちいずれか又は全てをデバッグホスト３１０にとってアクセス可能にするための許可を定義する、権限データを含み得る。したがって、権限データは、保護されるリソース３６０、３６４、３７０のうちのどれをデバッグホスト３１０にとってアクセス可能にすべきかを特定する情報を含み得る。
【００６６】
代替的に又は追加的に、認証オブジェクト３５２は、デバッグホスト３１０からの制御下で処理ユニット３４０により実行されるべき、デバッグ手続又はその一部である関数を定義する署名済みのプログラムコードを含み得る。この目的を達成するために、署名済みのプログラムコードは、デジタル署名又は証明書を含むことができ、その信頼性は、処理ユニット３４０により評価され得る。
【００６７】
認証オブジェクト４５２がオンチップメモリ３５０内に記憶されていることを示すために、フラグなどの特定のデータがオンチップレジスタ３１６内に書き込まれ得る。好都合には、ＪＴＡＧ  ＴＡＰレジスタが、オンチップレジスタ３１６として用いられる。このアクティビティは、図４中の４０２において示され、集積回路３００がまだテスト動作モードで動作中に、又は代替的にはテスト動作モードから出た後に行われ得る。特定のデータは、処理ユニット３４０によって、又はテストインタフェース３１２を介して直接デバッグホスト３１０によってのいずれかにより、書き込まれ得る。
【００６８】
第４のステップ６４０では、集積回路３００をセキュアミッション動作モードで動作させるために、集積回路３００の機能的リセットが実行される。機能的リセットは、認証オブジェクト４５２を今や含むオンチップメモリ３５０の内容、及びオンチップレジスタ３１６内に保持されているフラグ又は類似のものを（少なくとも）考慮しない。可能な方法の１つは、オンチップレジスタ３１６（ＪＴＡＧ  Ｔｏｐ  ＴＡＰ）（又は代替的にはＳＲＳＴ）内にＰＯＲをセットしながらＦＴＶモードの標識を除去することにより、集積回路３００に機能的リセットを行わせることである。続いてＰＯＲ（又は代替的にはＳＲＳＴ）を解放すると、集積回路３００は、図５に示すセキュアミッション動作モードに入ることとなる。これにより、集積回路３００のセキュアなデバッグを可能にするための方法の第１フェーズが完了する。
【００６９】
セキュアなデバッグを可能にするための方法の第２フェーズについて、ここで図５及び図６を参照して説明する。
【００７０】
セキュアミッション動作モードへのリセット後、処理ユニット３４０は、前述のブート手続３６２を実行するように構成される。ブート手続３６２は、図６のステップ６５０〜６７０を含む。第５のステップ６５０は、認証オブジェクト４５２がオンチップメモリ３５０内で利用可能であることを判定する働きをする。本開示の実施形態では、これは、処理ユニット３４０がオンチップＪＴＡＧ  ＴＡＰレジスタ３１６内の特定のデータの存在をチェックすることにより行われる。このチェックアクティビティは、図５の５０１に示される。処理ユニット３４０は、図４の４０２において、オンチップＪＴＡＧ  ＴＡＰ内にあらかじめ書き込まれた特定のデータを発見することとなり、認証オブジェクト４５２が、オンチップメモリ３５０内で実際に利用可能であるとの結論を下すこととなる。処理ユニット３４０は、オンチップメモリ３５０から認証オブジェクト４５２を取得し（図５のアクティビティ５０２を参照）、図６の第６のステップ６６０における認証オブジェクト４５２の認証へと進む。
【００７１】
認証処理の詳細は、認証オブジェクト４５２に含まれるデータの種類に基づき得る。認証オブジェクト３５２が、デバッグホスト３１０を信頼されるものとして識別する認証データを含む場合、認証処理は、デジタル署名又は証明書を評価することを含み得る。デジタル署名又は証明書の信頼性は、デバッグホスト３１０が信頼できることを処理ユニット３４０に示している。
【００７２】
認証オブジェクト３５２が、保護されるリソース３６０、３６４、３７０のうちのいずれか又は全てをデバッグホスト３１０にとってアクセス可能にするための許可を定義する権限データを含む場合、認証処理は、保護されるリソース３６０、３６４、３７０のうちどれがデバッグホスト３１０にとってアクセス可能にすべきであるかを特定する情報の分析を含む。
【００７３】
認証オブジェクト３５２が、デバッグ手続，又はその一部である関数を定義する署名済みのプログラムコードを含む場合、認証処理は、プログラムコードとともに含まれるデジタル署名又は証明書を評価することを含み得る。デジタル署名又は証明書が真正であると分かる場合、処理ユニット３４０は、認証オブジェクト３５２に含まれるプログラムコードを信頼することができ、次いでデバッグホスト３１０により制御されるデバッグ手続（の一部）としてそれを実行し得る。
【００７４】
ステップ６６０における認証オブジェクト４５２の成功裏の認証後、第７のステップ６７０は、保護されるリソース３７０のうちのいずれか又は全てをデバッグホスト３１０にとってアクセス可能にすることを含む。本開示の実施形態では、これは、図５の動作５０３ａ及び５０３ｂにより示される、不揮発性ブートメモリ３６０及び秘密データ３６４のロックを解放することを含む。
【００７５】
デバッグホスト３１０は、ここで、ブートの残りの部分とさらなる部分について、保護されるリソース３７０を含む集積回路３００のデバッグを制約なしに実行することができることとなる。認証オブジェクト３５２のダウンロード及びそれに続く認証を伴う２段階の手続のおかげで、セキュリティが保全される。
【００７６】
本発明は、主に若干の実施形態を参照して上述された。しかしながら、当業者により容易に理解されるように、上記で開示したもの以外の他の実施形態も、添付の特許請求の範囲により定義される本発明の範囲内で同様に可能である。
【図１】
2016535906.tif 000003
【図２】
2016535906.tif 000004
【図３】
2016535906.tif 000005
【図４】
2016535906.tif 000006
【図５】
2016535906.tif 000007
【図６】
2016535906.tif 000008
【国際調査報告】
2016535906.tif 000009
2016535906.tif 000010
2016535906.tif 000011