特許第6235722号(P6235722)IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ テレフオンアクチーボラゲット エル エム エリクソン(パブル)の特許一覧

<>
  • 特許6235722-集積回路のセキュアなデバッグの可能化 図000002
  • 特許6235722-集積回路のセキュアなデバッグの可能化 図000003
  • 特許6235722-集積回路のセキュアなデバッグの可能化 図000004
  • 特許6235722-集積回路のセキュアなデバッグの可能化 図000005
  • 特許6235722-集積回路のセキュアなデバッグの可能化 図000006
  • 特許6235722-集積回路のセキュアなデバッグの可能化 図000007
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6235722
(24)【登録日】2017年11月2日
(45)【発行日】2017年11月22日
(54)【発明の名称】集積回路のセキュアなデバッグの可能化
(51)【国際特許分類】
   G06F 21/62 20130101AFI20171113BHJP
   G01R 31/28 20060101ALI20171113BHJP
   G01R 31/3185 20060101ALI20171113BHJP
   G06F 11/22 20060101ALI20171113BHJP
   H01L 21/822 20060101ALI20171113BHJP
   H01L 27/04 20060101ALI20171113BHJP
【FI】
   G06F21/62 318
   G01R31/28 W
   G06F11/22 605B
   H01L27/04 U
   H01L27/04 T
【請求項の数】18
【全頁数】16
(21)【出願番号】特願2016-539449(P2016-539449)
(86)(22)【出願日】2014年8月6日
(65)【公表番号】特表2016-535906(P2016-535906A)
(43)【公表日】2016年11月17日
(86)【国際出願番号】EP2014066918
(87)【国際公開番号】WO2015032571
(87)【国際公開日】20150312
【審査請求日】2016年4月12日
(31)【優先権主張番号】13182739.6
(32)【優先日】2013年9月3日
(33)【優先権主張国】EP
(73)【特許権者】
【識別番号】598036300
【氏名又は名称】テレフオンアクチーボラゲット エルエム エリクソン(パブル)
(74)【代理人】
【識別番号】100095957
【弁理士】
【氏名又は名称】亀谷 美明
(74)【代理人】
【識別番号】100096389
【弁理士】
【氏名又は名称】金本 哲男
(74)【代理人】
【識別番号】100101557
【弁理士】
【氏名又は名称】萩原 康司
(74)【代理人】
【識別番号】100128587
【弁理士】
【氏名又は名称】松本 一騎
(72)【発明者】
【氏名】スヴェンソン、ペータル
【審査官】 岸野 徹
(56)【参考文献】
【文献】 特表2011−511383(JP,A)
【文献】 特開2002−358137(JP,A)
【文献】 特開2008−152421(JP,A)
【文献】 特表2009−544069(JP,A)
【文献】 特表2009−521772(JP,A)
【文献】 特開2011−210037(JP,A)
【文献】 特表2007−502462(JP,A)
【文献】 米国特許出願公開第2009/0204823(US,A1)
【文献】 米国特許出願公開第2002/0174342(US,A1)
【文献】 米国特許出願公開第2012/0117433(US,A1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 21/62
G01R 31/28
G01R 31/3185
G06F 11/22
H01L 21/822
H01L 27/04
(57)【特許請求の範囲】
【請求項1】
テスト動作モード及びセキュアミッション動作モードを有する集積回路(100,300)であって、
処理ユニット(340)と、
前記テスト動作モードを制御可能にするテストインタフェース(312)と、
前記テスト動作モードにおいて及び前記セキュアミッション動作モードにおいてアクセス可能なオンチップメモリ(350)と、
前記テスト動作モードにおいてアクセス不能な1つ以上の保護されるリソース(360,364,370)と、
を備え、
前記処理ユニットは、前記テスト動作モードにおいて、
前記テストインタフェースを通じて認証オブジェクトを受信(401)し、
受信される前記認証オブジェクトを前記オンチップメモリ内に記憶(401)する、
ように構成され、
前記処理ユニットは、前記セキュアミッション動作モードへのリセット後に、ブート手続(362)を実行して、
前記認証オブジェクトが前記オンチップメモリ内で利用可能であることを判定(501)し、
前記認証オブジェクトを認証(502)し、
成功裏の認証の後に、前記1つ以上の保護されるリソースを、前記集積回路の外部のデバッグホスト(310)にとってアクセス可能にする(503a,503b)、
ように構成される、
集積回路。
【請求項2】
前記テストインタフェース(312)は、JTAG(Joint Test Action Group)準拠である、請求項1に記載の集積回路。
【請求項3】
前記テスト動作モードは、機能的テストベクタ(FTV:Functional Test Vectors)モードである、請求項2に記載の集積回路。
【請求項4】
前記認証オブジェクトが前記オンチップメモリ(350)内に記憶されていることを示す特定のデータの、オンチップレジスタ(316)内への書き込み(402)を受け入れる、ようにさらに構成され、
前記ブート手続(362)は、前記オンチップレジスタの内容をチェックし、その中の前記特定のデータの発見後に、前記認証オブジェクトが前記オンチップメモリ内で利用可能であると判定する、請求項1〜3のいずれかに記載の集積回路。
【請求項5】
前記オンチップレジスタ(316)は、JTAG TAP(Test Access Point)であり、前記特定のデータはフラグである、請求項4に記載の集積回路。
【請求項6】
不揮発性ブートメモリ(360)をさらに有し、前記不揮発性ブートメモリは、前記テスト動作モードにおいてアクセス不能であり、前記セキュアミッション動作モードにおいてアクセス可能であり、前記不揮発性ブートメモリは、前記ブート手続(362)の少なくとも一部を定義するプログラムコード(362)を備える、請求項1〜5のいずれかに記載の集積回路。
【請求項7】
前記認証オブジェクトは、前記デバッグホスト(310)からの制御下で前記処理ユニット(340)によって実行されるデバッグ手続を定義する、署名済みのコンピュータプログラムコードを含む、請求項1〜6のいずれかに記載の集積回路。
【請求項8】
前記認証オブジェクトは、前記デバッグホスト(310)を信頼されるものとして識別する認証データを含む、請求項1〜7のいずれかに記載の集積回路。
【請求項9】
前記認証オブジェクトは、前記1つ以上の保護されるリソース(360,364,370)を前記デバッグホスト(310)にとってアクセス可能にする許可を定義する権限データを含む、請求項1〜8のいずれかに記載の集積回路。
【請求項10】
前記1つ以上の保護されるリソース(370)は、
前記集積回路のセキュアなメモリ領域、
デバッグ機能、
DRM(Digital Rights Management)鍵、
SIM(Subscriber Identity Module)機能、
IMEI(International Mobile Equipment Identity)ストレージ、
無線周波数コンポーネント、
暗号鍵(364)、
復号鍵(364)、
クロック信号発生器、及び
リセット機構、
のうち1つ以上を含む、請求項1〜9のいずれかに記載の集積回路。
【請求項11】
モバイル通信についての1つ以上の標準に準拠した通信のための無線通信回路(230,380)をさらに備える、請求項1〜10のいずれかに記載の集積回路。
【請求項12】
デジタルSOC(System On Chip)である、請求項1〜11のいずれかに記載の集積回路。
【請求項13】
請求項1〜12のいずれかに記載の集積回路(100,300)を備える、電子装置(200)。
【請求項14】
請求項11に記載の集積回路(100,300)を備える、モバイル端末(200)。
【請求項15】
集積回路(100,300)の処理ユニットにより実行される、前記集積回路(100,300)のセキュアなデバッグを可能にする方法であって、
前記集積回路の1つ以上の保護されるリソース(360,364,370)へアクセス不能なテスト動作モードで動作させるために、前記集積回路をリセット(610)することと、
前記集積回路のテストインタフェース(312)を通じて認証オブジェクトを受信(620,401)することと、
受信される前記認証オブジェクトを前記集積回路のオンチップメモリ(350)内に記憶(630,401)することと、
セキュアミッション動作モードで動作させるために、ブート手続(362)を実行することにより、前記集積回路をリセット(640)することと、
を含み、
前記ブート手続は、
前記認証オブジェクトが前記オンチップメモリ内で利用可能であることを判定すること(650,501)と、
前記認証オブジェクトを認証すること(660,502)と、
成功裏の認証の後に、前記1つ以上の保護されるリソースを、前記集積回路の外部のデバッグホスト(310)にとってアクセス可能にすること(670,503a,503b)と、を含む、
方法。
【請求項16】
前記認証オブジェクトは、前記デバッグホスト(310)から前記テストインタフェース(312)を介して受信される、請求項15に記載の方法。
【請求項17】
前記認証オブジェクトが前記オンチップメモリ(350)内に記憶されていることを示す特定のデータの、オンチップレジスタ(316)内への書き込みを受け入れることと、
前記セキュアミッション動作モードにおいて、前記オンチップレジスタの内容をチェックして、前記認証オブジェクトが前記オンチップメモリ内で利用可能であることを判定(650,501)することと、
をさらに含む、請求項15又は16に記載の方法。
【請求項18】
前記テスト動作モードで動作させるために前記集積回路をリセットすること(610)、及び前記セキュアミッション動作モードで動作させるために前記集積回路をリセットすること(640)は、前記デバッグホスト(310)から前記テストインタフェース(312)を介してそれぞれの制御信号(314)を受信することに応じて実行される、請求項15〜17のいずれかに記載の方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、集積回路の分野に関し、より詳細には、外部のデバッグホストからセキュアなデバッグを可能にするために構成されている集積回路に関する。本開示はまた、そのような集積回路のセキュアなデバッグを可能にするための関連する方法に関する。
【背景技術】
【0002】
集積回路は、今日では実質的に全ての種類の電子装置において使用されている。より高度な形式では、集積回路は、プログラム可能な論理回路(即ち、処理ユニット)、関連付けられる揮発性メモリ及び不揮発性メモリ、及び特定機能回路(例えば、無線通信回路)を含む。そのような集積回路は、デジタルSOC(System On Chip)と称されることもある。
【0003】
デジタルSOCなどの集積回路が用いられる1つの一般的な種類の電子装置は、例えば、GSM、UMTS、LTE、D−AMPS、CDMA2000、FOMA又はTD−SCDMAなどのうち1つ以上のモバイル通信についての1つ以上の標準に準拠する無線通信のためのモバイル端末である。モバイル端末は、本開示による集積回路を含む、電子装置の非限定的な例として用いられる。
【0004】
モバイル端末は、典型的には以下に起因して、多くの場合、明確に定義されたやり方で動作することを要する:
1.標準要件(無線インタフェースの要件など)
2.サードパーティ要件(DRM(Digital Rights Management)など)
3.セキュリティ要件(例えばトロイやウイルスに感染したソフトウェアの形による悪意あるソフトウェアが稼動し又は少なくとも保護されるリソースにアクセスすることを防止することなど)
【0005】
モバイル端末内に含まれる集積回路(例えば、SOC)は、当然ながら、あてはまる状況ではそのような要件の対象である。これは、外部のデバイスが集積回路にアップロードしようとしている新たな又は修正されたプログラムコードを、集積回路が認証する必要があることを意味する。集積回路は、外部のデバイスが集積回路上の保護されるリソースにアクセスしようとしているときに、それを行う権限を実際に有することを検証する必要もある。
【0006】
上記の考察が問題となる1つの状況が、集積回路のテストである。いかなる半導体デバイスでもそうであるように、集積回路の量産においては、エラーが完全になくなることはない。したがって、テストの方法及びデバイスが必要である。このために、JTAG(Joint Test Action Group)として知られる業界標準が利用可能である。テストを容易にするために、集積回路は、IEEE1149.1又はIEEE1149.7などの、JTAG準拠のインタフェースとともに提供されることが多い。
【0007】
概して、集積回路のテストは、生産ラインテスト(production-line testing)及び現場回帰テスト(field return testing)の、主な2種類に分けられる。
【0008】
生産ラインテストは、生産工場において大量の集積回路に対し一斉に行われる。外部のデバイスが、集積回路のJTAGインタフェースに接続されており、バウンダリスキャンテストなどの下位レベルのテストアクティビティを実行する。また、集積回路は、機能的テストベクタ(FTV:Functional Test Vectors)と呼ばれるテスト動作モードを有するように設計されることが多い。FTVモードでは、外部のデバイスからの制御下で、あるプログラムコードを集積回路上で実行することにより、集積回路をさらに検査することが可能となる。外部のデバイスは、しばしばデバッグホスト(又はデバッグツール)と称される。生産ラインテストは、タイムクリティカルである(生産時間が遅延するとコストがかかる)ため、FTVモードテストは、通常、数秒程度という短いテスト時間に制限される。
【0009】
他方、FTVモードの生産ラインテストは、生産工場において行われるため、特段のセキュリティの問題を引き起こすことはない。性能の理由から、デバッグホストの認証は、FTVモードでは用いられない。しかしながら、一旦現場にリリースされると、第三者が集積回路上でFTVモードテストを実行できる可能性があるため、集積回路は、通常FTVモードでの実行時に、あるセンシティブな機能を無効化するように設計される。そのようなセンシティブな機能の複数の例が、詳細な説明の項において後述されており、本開示中では、「保護されるリソース」と総称される。
【0010】
集積回路(及び/又は集積回路をその一部とする電子装置)の不完全なサンプルの現場回帰テストは、報告された問題を手作業で調査することを要することが多い。そういった調査では、全てのオンチップの機能のデバッグ及びチェックを要する。集積回路は、典型的には生産ラインでの完成後はロックダウンされるため、現場回帰テストを受ける集積回路は、デバッグホストが真正であること、及び/又はデバッグ動作、特に集積回路上の保護されるリソースに関連するデバッグ動作を命令する権限を実際に有すること、を検証する必要がある。そうしなければ、深刻なセキュリティのリスクが生じる。
【0011】
上述のセキュリティの考察が問題となる別の状況は、開発中にセキュアなデバッグを可能にすることである。デバッグ動作が、新たな又は更新されたプログラムコードを集積回路上にアップロードすることを含む場合、集積回路は、アップロードされるプログラムコードを、記憶する前又は少なくとも実行する前に認証する必要がある。
【0012】
プログラムコードのそのような認証、権限付与又はアップロードを可能にするために、認証データ、権限データ又はプログラムコードは、外部から集積回路上に移送されなければならない。しかしながら、そのようなアップロードには問題がある恐れがある。集積回路が、典型的にUART又はUSBのような標準機能インタフェースを有するとしても、それらのインタフェースは、電子装置内の(アプリケーションプロセッサなどの)ホストデバイスに既に接続されていることが多い。必要なデータのアップロードを提供するホストデバイスサポートは、存在しないかもしれない。
【0013】
1つのアプローチは、余計なコンポーネントを追加して、集積回路とホストデバイスとの間の、例えばUARTリンクを、デバッグホストが遮断できるようにすることであろう。しかしながら、余計なコンポーネントを追加することは、空間/回路の面積及びコストの制約の理由から困難である。そのようなアプローチは、インタフェース(例えば、UART)をある時点でデバッグホストからPCB上のホストに切り替えることを要する可能性もあり、それは、デバッグホストと電子装置内のホストデバイスとの間の同期を要する。
【0014】
実際には、スモールフォームファクタで最小化されたある集積回路については、UART又はUSBインタフェースのための余計なコネクタを追加することさえもできないかもしれない。
【0015】
さらなる複雑化の要因は、いくつかのオンチップインタフェースが、機能的な理由のために永続的に無効化されている可能性があるということである。例えば、集積回路生産者のある顧客が、UART上でのブートを無効化することを選択するかもしれない。これは、そうしなければ、その顧客が考えている対応するインタフェースピンの特定の使用に干渉することになるからである。
【0016】
上述のことから明らかなように、これらの問題について改善の必要と改善の余地の両方がある。
【発明の概要】
【発明が解決しようとする課題】
【0017】
本開示の目的は、背景技術において認定されている1つ以上の問題を解決し、又は少なくとも軽減することである。
【課題を解決するための手段】
【0018】
本発明は、新規な2段階のやり方で、集積回路のテストインタフェース(JTAGなど)を用いることにより、集積回路のセキュアなデバッグを得ることを実現した。まず、メインブートの前に、集積回路が要する、デバッグホストを信頼されるものとして検証するためのデータが、集積回路のオンチップメモリ内にアップロードされる。次いで、オンチップメモリ内にデータが予めロードされたことがメインブートへ通知される。メインブートは、次いでデータを評価し、オンチップメモリ内に予めロードされたデータの観点から信頼できると見なされれば、保護されるオンチップリソースを、デバッグホストにとって利用可能にするための適切なアクションをとる。これらのトランザクションの全てを、JTAGインタフェースを介して実行することができ、他の従来のインタフェースの存在又は関与は必要ない。
【0019】
本発明者によるこの理解は、少なくとも後述する本発明の態様及び実施形態に従った実践へと還元されている。
【0020】
したがって、本開示の1つの態様は、テスト動作モード及びセキュアミッション動作モードを有する集積回路である。集積回路は、処理ユニットと、テスト動作モードを制御可能にするテストインタフェースと、テスト動作モードにおいて及びセキュアミッション動作モードにおいてアクセス可能なオンチップメモリと、テスト動作モードにおいてアクセス不能な1つ以上の保護されるリソースと、を備える。処理ユニットは、テスト動作モードにおいて、当該テストインタフェースを通じて認証オブジェクトを受信し、受信される認証オブジェクトをオンチップメモリ内に記憶するように構成される。処理ユニットは、セキュアミッション動作モードへのリセット後に、ブート手続を実行して、認証オブジェクトがオンチップメモリ内で利用可能であることを判定し、認証オブジェクトを認証し、成功裏の認証の後に、1つ以上の保護されるリソースを、集積回路の外部のデバッグホストにとってアクセス可能にするように構成される。
【0021】
テストインタフェースは、有利にはJTAG(Joint Test Action Group)準拠であり、テスト動作モードは、有利には機能的テストベクタ(FTV:Functional Test Vectors)モードである。したがって、全てではないが多くの集積回路上に既に存在するテストインタフェースで、有効な利用がなされる。
【0022】
集積回路は、認証オブジェクトがオンチップメモリ内に記憶されていることを示す特定のデータの、オンチップレジスタ内への書き込みを受け入れるようにさらに構成されてもよい。したがって、ブート手続は、オンチップレジスタの内容をチェックし、その中の特定のデータの発見後に、認証オブジェクトがオンチップメモリ内で利用可能であると判定してもよい。
【0023】
オンチップレジスタは、好都合には、JTAG TAP(Test Access Point)であってもよく、特定のデータは、フラグであってもよい。
【0024】
ブート手続の少なくとも一部は、(ROMなどの)不揮発性ブートメモリ内に含まれるプログラムコードにより定義されてもよく、当該不揮発性ブートメモリは、テスト動作モードにおいてアクセス不能であり、セキュアミッション動作モードにおいてアクセス可能である。
【0025】
認証オブジェクトは、例えば、デバッグホストからの制御下で処理ユニットによって実行されるデバッグ手続を定義する、署名済みのコンピュータプログラムコードを含んでもよい。
【0026】
認証オブジェクトは、デバッグホストを信頼されるものとして識別する認証データもまた含んでもよく、又は認証データを代わりに含んでもよい。
【0027】
認証オブジェクトは、1つ以上の保護されるリソースをデバッグホストにとってアクセス可能にする許可を定義する権限データもまた含んでもよく、又は権限データを代わりに含んでもよい。
【0028】
1つ以上の実施形態において、保護されるリソースは、上述したブートメモリの全て又は一部などの集積回路のセキュアなメモリ領域、例えば、上述したデバッグ手続の一部などのデバッグ機能、DRM(Digital Rights Management)鍵、SIM(Subscriber Identity Module)機能、IMEI(International Mobile Equipment Identity)ストレージ、無線周波数コンポーネント、暗号鍵、復号鍵、クロック信号発生器、及びリセット機構のうちの1つ以上を含んでもよい。
【0029】
有利には、集積回路は、モバイル通信についての1つ以上の標準に準拠した通信のための無線通信回路をさらに含む。
【0030】
有利には、集積回路は、デジタルSOC(System On Chip)である。
【0031】
本開示の第2の態様は、第1の態様による集積回路を含む電子装置である。
【0032】
本開示の第3の態様は、第1の態様による集積回路を含むモバイル端末である。
【0033】
本開示の第4の態様は、集積回路(100,300)のセキュアなデバッグを可能にする方法である。当該方法は、集積回路の1つ以上の保護されるリソースへアクセス不能なテスト動作モードで動作させるために、集積回路をリセットすることと、集積回路のテストインタフェースを通じて認証オブジェクトを受信することと、集積回路のオンチップメモリ内に受信される認証オブジェクトを記憶することと、ブート手続を実行してセキュアミッション動作モードで動作させるために、集積回路をリセットすることと、を含む。当該ブート手続は、認証オブジェクトがオンチップメモリ内で利用可能であることを判定することと、認証オブジェクトを認証することと、成功裏の認証の後に、1つ以上の保護されるリソースを集積回路の外部のデバッグホストにとってアクセス可能にすることと、を含む。
【0034】
第4の態様による方法は、第1の態様による集積回路の構造的な特徴に、直接、機能的に対応するものであるステップのいずれか又は全てをさらに含んでもよい。
【0035】
本開示の他の特徴及び利点は、以下の詳細な開示から、添付の従属項から、及び図面から明らかになるであろう。
【0036】
概して、請求項の中で用いられる全ての用語は、明細書中に明示的に定義されない限り、当該技術分野における通常の意味にしたがって解釈されるべきものである。
【0037】
“(a/an/the)要素、デバイス、コンポーネント、手段、ステップなど”への全ての言及は、明示的に宣言されない限り、要素、デバイス、コンポーネント、手段、ステップなどの少なくとも1つのインスタンスへ言及するものとして、オープンに解釈されるべきものである。本明細書中で開示されるいかなる方法の動作も、明示的に宣言されない限り、開示される厳密な順序で実行される必要はない。
【0038】
“備える/含む(comprises/comprising)”の用語は、本明細書で使用される場合、述べられた特徴、整数、ステップ、又はコンポーネントが存在することを明示するものと解釈され、1つ以上の他の特徴、整数、ステップ、コンポーネント、又はそれらの集合の存在又は追加を排除するものではないことが、強調されるべきである。
【図面の簡単な説明】
【0039】
本開示の目的、特徴及び利点は、以下の詳細な説明、添付図面に対して行われる参照から明らかとなるであろう。
【0040】
図1】プリント回路基板上に配置される集積回路の概略図である。
図2図1の集積回路が使用され得るモバイル端末のコンポーネントの概略図である。
図3図1の集積回路の実施形態の概略図である。
図4】テスト動作モードにおける図3の集積回路を示す。
図5】セキュアミッション動作モードにおいてブートするときの図3の集積回路を示す。
図6】集積回路のセキュアブートを可能にするための方法についてのフローチャートを示す。
【発明を実施するための形態】
【0041】
ここで、本発明の実施形態を、添付図面を参照して説明する。しかしながら、本発明は多くの様々な形態で具現化されることができ、本明細書に記載の実施形態に限定されると解釈されるべきではない。むしろ、本開示を徹底的かつ完全にし、当業者に本発明の範囲を十分に伝達するように、これらの実施形態を提供する。添付の図面に示される特定の実施形態の詳細な説明において使用される用語は、本発明を限定することを意図するものではない。図面において、同様の番号は同様の要素を参照する。
【0042】
図1は、概してプリント回路基板(PCB:Printed Circuit Board)110上に配置される集積回路(IC)100を示す。プリント回路基板110は、バッテリ、切替え型電力供給器などの電源120をも含み、電源120は、セット供給電圧で電源供給ライン130a、130bを介して集積回路100に電力を供給する働きをする。本開示の実施形態では、集積回路100は、デジタルASIC(Application-Specific Integrated Circuit)である。ASICは、スタンダードセル設計、ゲートアレイ設計、フルカスタム設計、又はストラクチャード設計のうちのものであってよい。本発明は、具体的にはASICにおける実装及びASICを用いる実装について有利であると現在考えられるが、集積回路100は、代替的には、FPGA(Field-Programmable Gate Array)又は他の種類のICであってもよいと思われる。
【0043】
集積回路100は、任意の種類の電子装置において用いられてよい。そのような電子装置の1つの実施形態が、図2において概略的にモバイル端末200の形式で示されている。モバイル端末200は、モバイル端末200の動作を制御することについての全体的な責任を負うメインコントローラ210を有する。本開示の実施形態では、メインコントローラ210は、CPU(central processing unit)であるが、代替的にはDSP(digital signal processor)、又はASIC(application-specific integrated circuit)若しくはFPGA(field-programmable gate array)などの他のプログラム可能な電子論理デバイスであり得る。
【0044】
1つの実施形態では、図1の集積回路100は、メインコントローラ210を実装する。他の実施形態では、図1の集積回路100及び図2のメインコントローラ210は、分離して実装される。
【0045】
メインコントローラ210は、作業メモリ及び記憶メモリを含み得るメモリ220に連結される。メモリ220は、例えば、RAM、EEPROM、フラッシュメモリ(例えば、メモリカード)、磁気ハードディスク、又はそれらのうち任意の組み合わせの形式で実装されてもよい。メモリ220は、モバイル端末200の様々な機能性を実行させるように、メインコントローラ210によって実行可能なプログラムコードを記憶する能力を有する。
【0046】
モバイル端末200は、基地局244への無線周波数(RF:radio-frequency)リンク242を介してモバイル端末200がモバイル通信ネットワーク240と通信できるようにする、モバイルネットワークインタフェース230を有する。モバイルネットワークインタフェース230は、例えば、GSM、UMTS、LTE、D−AMPS、CDMA2000、FOMA又はTD−SCDMAのうち1つ以上のモバイル通信についての1つ以上の標準に準拠した通信のための無線通信回路を含む。したがって、モバイルネットワークインタフェース230は、内部アンテナ又は外部アンテナとともに、帯域通過フィルタ、増幅器、ミキサ、局部発振器、ローパスフィルタ、AD/DAコンバータなどにより形成される無線受信器及び送信器を含む。
【0047】
1つの実施形態では、図1の集積回路100は、モバイルネットワークインタフェース230を実装する。したがって、この実施形態では、集積回路100は、モバイル通信のための1つ以上の標準に準拠した通信のための前述の無線通信回路を含む。このことは、無線通信回路が380と表されている図3図5において示される実施形態において、より明確に示される。
【0048】
さらに、モバイル端末200の本開示の実施形態は、無線インタフェース232を有し、無線インタフェース232は、Bluetooth、WiFi(例えば、IEEE802.11、無線LAN)、NFC(Near Field Communication)、又はIrDA(Infrared Data Association)などの1つ以上の近距離無線通信の標準に従う通信に適合され得る。無線インタフェース232は、いくつかの実施形態では、モバイルネットワークインタフェース230と部分的に又は完全に統合され得る。モバイル端末200の本開示の実施形態は、USB(Universal Serial Bus)などの有線インタフェース234をも有し、有線インタフェース234は、モバイル端末200が、例えばパーソナルコンピュータとシリアルケーブルを介して通信できるようにする。他の実施形態では、そのようなインタフェースはない可能性がある。
【0049】
ユーザインタフェース250は、ユーザ260がモバイル端末200とのインタラクションを行うことを可能とする。ユーザインタフェース250は、少なくとも1つのLCDディスプレイなどの表示手段とともに、ユーザのための入力手段を含む。入力手段は、例えば、英数字キー及び/若しくは矢印キー(ナビゲーションキー)及びファンクションキー(ソフトキー)などの他のキーを有するキーパッド、並びに/又はジョイスティック、タッチパッド、ローテータ、ジョグダイアルなどを含み得る。いくつかの実施形態では、表示手段及び入力手段は、タッチ感知ディスプレイにより一体化して実現され得る。ユーザインタフェース250は、典型的には、スピーカ及びマイクロフォンをも含む。
【0050】
モバイル端末200は、電源スイッチ、カメラ、バッテリ、充電器インタフェース、アクセサリインタフェース、及び音量調節などの、他の周知のコンポーネントとともに提供されてもよいが、簡潔のため図2ではそのような要素は示さない。
【0051】
図3は、図1に示す集積回路100の実施形態300のより詳細な図を示す。図3に示すように、集積回路300は、処理ユニット340を有し、処理ユニット340は、集積回路300の他の機能ユニットのコントローラの役割を担う。処理ユニット340は、オンチップメモリ350と関連付けられる。オンチップメモリ350は、RAM(random access memory)であってもよい。オンチップメモリ350は、集積回路300が提供する様々な機能性を実行するときに、処理ユニット340のための作業メモリとして用いられ得る。集積回路300は、外部メモリインタフェース332をも有し、外部メモリインタフェース332を介してSD−RAMなどの外部メモリ330への読み出し及び書き込みが行われ得る。
【0052】
図2の説明と併せて既に述べたように、図3に示すような集積回路300の実施形態は、モバイル通信についての1つ以上の標準に準拠した通信のための無線通信回路380を含む。したがって、集積回路300は、有利には図2のモバイル端末200のようなモバイル端末に含まれ得る。集積回路の本開示の実施形態300は、デジタルSOC(System On Chip)である。
【0053】
集積回路300は、テストインタフェース312をも有し、集積回路300のテスト動作モードは、テストインタフェース312を通じて制御可能である。この目的を達成するために、集積回路300が提供する様々な機能性のデバッグを実行する目的で、外部のデバッグホスト310(パーソナルコンピュータ、ワークステーションなど)は、集積回路300に接続され得る。
【0054】
本開示の実施形態では、テストインタフェース312は、JTAG(Joint Test Action Group)準拠である。この目的を達成するために、テストインタフェース312は、例えば、IEEE1149.1インタフェース、又は代替的にはコンパクトIEEE1149.7インタフェース(しばしばcJTAG又はコンパクトJTAGと称される)であり得る。概してそれ自体は周知であるが、テスト動作モードは、レジスタスキャンテスト、バウンダリスキャンテスト、又は機能的テストベクタ(FTV:Functional Test Vectors)モードを含み得る。既に背景技術の項で説明したように、セキュリティの理由から、集積回路上のある保護されるリソースは、テスト動作モードにおいてアクセス不能である。したがって、オンチップメモリ350は、テスト動作モードにおいても、セキュアミッション動作モードにおいてもアクセス可能であるが、保護されるリソース(概して図3で370と称される)は、テスト動作モードにおいてアクセス不能である。これは、保護されるリソース370が、テスト動作モードにおいて外部のデバッグホスト310からアクセスできないということを意味する。
【0055】
保護されるリソース370は、ハードウェア要素、ソフトウェア要素若しくはデータ要素、又はそれらのいかなる組み合わせをも含んでもよい。
【0056】
保護されるハードウェア要素370は、例えば、集積回路300のセキュアなメモリ領域(例えば、不揮発性ブートメモリ360の全ての又はいくつかの部分など)、無線周波数コンポーネント(無線通信回路380に含まれる可能性がある)、クロック信号発生器、IMEI(International Mobile Equipment Identity)ストレージ又はリセット機構であってもよい。図3図5に例示する実施形態では、不揮発性ブートメモリ360は、図4によるテスト動作モードではバツ印で消されて図示されることにより、保護されるハードウェア要素として示される。
【0057】
保護されるソフトウェア要素370は、例えば、デバッグ機能(例えば、不揮発性ブートメモリ360に記憶されるプログラムコード362により定義されるデバッグ手続362の一部)又はSIM(Subscriber Identity Module)機能であってもよい。
【0058】
保護されるデータ要素370は、例えば、DRM(Digital Rights Management)鍵、IMEI、暗号鍵(364)又は復号鍵(364)であってもよい。図3図5に例示する実施形態では、暗号鍵/復号鍵のペア364の形式での秘密データが、図4によるテスト動作モードではバツ印で消されて図示されることにより、保護されるデータ要素として示される。
【0059】
集積回路300のセキュアなデバッグを可能にするための第1フェーズとして、テスト動作モードの新規な使用について図4を参照してより詳細に説明する。
【0060】
追加的に、集積回路300は、セキュアミッション動作モードで動作し得る。セキュアミッション動作モードにおいて、集積回路300は、ホストデバイスインタフェース322を介して外部のホストデバイス320とやりとりし得る。概してそれ自体は周知であるが、セキュアミッション動作モードは、テスト動作モードとは異なり、電子装置内の通常の環境及び意図した環境における、集積回路300の通常の使用及び意図した使用を表す。本開示の実施形態では、電子装置は、図2のモバイル端末200であり、外部のホストデバイス320は、メインコントローラ210及び関連付けられるメモリ220を含み、Android、iOS又はWindows8のようなオペレーティングシステムを提供する、アプリケーションエンジンである。図5を参照してより詳細に説明するように、セキュアなデバッグの第2フェーズは、セキュアミッション動作モードへとブートすることに関与する。
【0061】
ここで図6を参照すると、図6は、集積回路のセキュアなデバッグを可能にするための方法を示す。当該方法の説明は、図3について上述した集積回路300の実施形態を例示的に及び非限定的に参照してなされる。この説明を容易にするために、図4及び図5は、テスト動作モード及びセキュアミッション動作モードそれぞれにおける集積回路300を示すために提供される。
【0062】
セキュアなデバッグを可能にするための方法の第1のステップ610において、デバッグホスト310は、テスト動作モードで動作させるために、集積回路300をリセットする。本開示の実施形態では、テスト動作モードは、FTVモードである。既に述べたように、集積回路300の保護されるリソース370は、テスト動作モードにおいてアクセス不能である。リセットは、特定の制御信号314をテストインタフェース312上で発することを含み得る。例えば、可能な方法の1つは、まず集積回路300の電源をオンにし、そしてJTAG制御信号をアクティブにし、次いでそれを解放することである。FTVモード及びPOR(Power On Reset;JTAG TAP(Test Access Port)で利用可能な機能的リセット)(又は代替的にSRST(System Reset;IEEE1149.1/7による、ハードウェアに組み込まれている機能的リセット))についての標識が、オンチップレジスタ316内にセットされ得る。オンチップレジスタ316は、一般にTop TAPと称される、JTAGの最上位レジスタであってもよい。続くPOR(又は代替的にSRST)の解放の後、集積回路300は、図4に示されるテスト動作モードに入ることとなる。
【0063】
第2のステップ620において、認証オブジェクト452が、テストインタフェース312を通じてデバッグホスト310から受信される。第3のステップ630において、処理ユニット340は、受信された認証オブジェクト452をオンチップメモリ350内に記憶する。これらの動作は、図4中の401において一体化しているように見える。認証オブジェクト452の目的は、デバッグホスト310が、セキュアミッション動作モードにおいて、保護されるリソース370へのアクセスを含むブート手続362のセキュアなデバッグを実行するために信頼できるデバイスであることを、処理ユニット340が検証できるようにすることである。
【0064】
認証オブジェクト352は、例えば、デバッグホスト310を信頼されるものとして識別する認証データを含み得る。認証データは、例えば、デジタル署名又は証明書の形式をとってもよく、その信頼性は、処理ユニット340により評価され得る。
【0065】
代替的に又は追加的に、認証オブジェクト352は、保護されるリソース360、364、370のうちいずれか又は全てをデバッグホスト310にとってアクセス可能にするための許可を定義する、権限データを含み得る。したがって、権限データは、保護されるリソース360、364、370のうちのどれをデバッグホスト310にとってアクセス可能にすべきかを特定する情報を含み得る。
【0066】
代替的に又は追加的に、認証オブジェクト352は、デバッグホスト310からの制御下で処理ユニット340により実行されるべき、デバッグ手続又はその一部である関数を定義する署名済みのプログラムコードを含み得る。この目的を達成するために、署名済みのプログラムコードは、デジタル署名又は証明書を含むことができ、その信頼性は、処理ユニット340により評価され得る。
【0067】
認証オブジェクト452がオンチップメモリ350内に記憶されていることを示すために、フラグなどの特定のデータがオンチップレジスタ316内に書き込まれ得る。好都合には、JTAG TAPレジスタが、オンチップレジスタ316として用いられる。このアクティビティは、図4中の402において示され、集積回路300がまだテスト動作モードで動作中に、又は代替的にはテスト動作モードから出た後に行われ得る。特定のデータは、処理ユニット340によって、又はテストインタフェース312を介して直接デバッグホスト310によってのいずれかにより、書き込まれ得る。
【0068】
第4のステップ640では、集積回路300をセキュアミッション動作モードで動作させるために、集積回路300の機能的リセットが実行される。機能的リセットは、認証オブジェクト452を今や含むオンチップメモリ350の内容、及びオンチップレジスタ316内に保持されているフラグ又は類似のものを(少なくとも)考慮しない。可能な方法の1つは、オンチップレジスタ316(JTAG Top TAP)(又は代替的にはSRST)内にPORをセットしながらFTVモードの標識を除去することにより、集積回路300に機能的リセットを行わせることである。続いてPOR(又は代替的にはSRST)を解放すると、集積回路300は、図5に示すセキュアミッション動作モードに入ることとなる。これにより、集積回路300のセキュアなデバッグを可能にするための方法の第1フェーズが完了する。
【0069】
セキュアなデバッグを可能にするための方法の第2フェーズについて、ここで図5及び図6を参照して説明する。
【0070】
セキュアミッション動作モードへのリセット後、処理ユニット340は、前述のブート手続362を実行するように構成される。ブート手続362は、図6のステップ650〜670を含む。第5のステップ650は、認証オブジェクト452がオンチップメモリ350内で利用可能であることを判定する働きをする。本開示の実施形態では、これは、処理ユニット340がオンチップJTAG TAPレジスタ316内の特定のデータの存在をチェックすることにより行われる。このチェックアクティビティは、図5の501に示される。処理ユニット340は、図4の402において、オンチップJTAG TAP内にあらかじめ書き込まれた特定のデータを発見することとなり、認証オブジェクト452が、オンチップメモリ350内で実際に利用可能であるとの結論を下すこととなる。処理ユニット340は、オンチップメモリ350から認証オブジェクト452を取得し(図5のアクティビティ502を参照)、図6の第6のステップ660における認証オブジェクト452の認証へと進む。
【0071】
認証処理の詳細は、認証オブジェクト452に含まれるデータの種類に基づき得る。認証オブジェクト352が、デバッグホスト310を信頼されるものとして識別する認証データを含む場合、認証処理は、デジタル署名又は証明書を評価することを含み得る。デジタル署名又は証明書の信頼性は、デバッグホスト310が信頼できることを処理ユニット340に示している。
【0072】
認証オブジェクト352が、保護されるリソース360、364、370のうちのいずれか又は全てをデバッグホスト310にとってアクセス可能にするための許可を定義する権限データを含む場合、認証処理は、保護されるリソース360、364、370のうちどれがデバッグホスト310にとってアクセス可能にすべきであるかを特定する情報の分析を含む。
【0073】
認証オブジェクト352が、デバッグ手続,又はその一部である関数を定義する署名済みのプログラムコードを含む場合、認証処理は、プログラムコードとともに含まれるデジタル署名又は証明書を評価することを含み得る。デジタル署名又は証明書が真正であると分かる場合、処理ユニット340は、認証オブジェクト352に含まれるプログラムコードを信頼することができ、次いでデバッグホスト310により制御されるデバッグ手続(の一部)としてそれを実行し得る。
【0074】
ステップ660における認証オブジェクト452の成功裏の認証後、第7のステップ670は、保護されるリソース370のうちのいずれか又は全てをデバッグホスト310にとってアクセス可能にすることを含む。本開示の実施形態では、これは、図5の動作503a及び503bにより示される、不揮発性ブートメモリ360及び秘密データ364のロックを解放することを含む。
【0075】
デバッグホスト310は、ここで、ブートの残りの部分とさらなる部分について、保護されるリソース370を含む集積回路300のデバッグを制約なしに実行することができることとなる。認証オブジェクト352のダウンロード及びそれに続く認証を伴う2段階の手続のおかげで、セキュリティが保全される。
【0076】
本発明は、主に若干の実施形態を参照して上述された。しかしながら、当業者により容易に理解されるように、上記で開示したもの以外の他の実施形態も、添付の特許請求の範囲により定義される本発明の範囲内で同様に可能である。
図1
図2
図3
図4
図5
図6