(57)【要約】ユーザによる組み込みデバイス（１０２）へのアクセスを制御するシステム及び方法。組み込みデバイスと一体化される保護アクセスポート（１１０）は、アクセスマネージャ（１１４）と、レベルコントローラ（１１２）とを含む。アクセスマネージャは、ユーザデバイスからのリクエストに応答して、チャレンジフレーズを組み込みデバイスの公開鍵を使用して発行することにより、組み込みデバイスにアクセスし、チャレンジフレーズに対するユーザによる応答の信憑性を判断する。保護サーバは、組み込みデバイスの公開暗号鍵に対応する秘密鍵を格納し、ユーザ信用証明情報を認証して、組み込みデバイスの秘密鍵に応じたチャレンジフレーズへの応答を発行するように動作可能である。
2009521772.tif 000002
【特許請求の範囲】
【請求項１】
ユーザデバイスによる組み込みデバイスへのアクセスを制御するための方法であって、前記組み込みデバイスにおいて、
認証リクエストを、リクエストした保護レベルでの前記組み込みデバイスへのアクセスの承認を受けようとするユーザデバイスから検出すること、
チャレンジフレーズ及びデバイス識別子を前記ユーザデバイスに対して認証リクエストに応答して発行すること、
前記チャレンジフレーズに対する前記ユーザデバイスによる応答を検証すること、
前記ユーザデバイスによる応答の認証に合格した場合に、前記ユーザデバイスの前記組み込みデバイスへのアクセスを許可すること、
前記組み込みデバイスの保護レベルを前記リクエストした保護レベルに下げること、
を備える方法。
【請求項２】
ランダム番号を生成すること、
前記ランダム番号とリクエストした保護レベル情報とを組み合わせてチャレンジフレーズを生成すること、
を備える請求項１に記載の方法。
【請求項３】
ユーザデバイスによる応答は、前記ランダム番号を含む検証トークンを含み、前記チャレンジフレーズに対する前記ユーザデバイスによる応答を検証することは、検証トークンを、前記チャレンジフレーズを生成するために使用されるランダム番号と比較することを含む、請求項２に記載の方法。
【請求項４】
前記リクエストした保護レベルでの前記組み込みデバイスへの前記ユーザデバイスによるアクセスを承認することは、保護ＪＴＡＧポートを前記リクエストした保護レベルで構成することを含む、請求項１に記載の方法。
【請求項５】
組み込みデバイスへのユーザデバイスによるアクセスを制御するための保護ポートであって、
前記ユーザデバイスと通信するように動作するポートコントローラと、
前記ユーザデバイスに対してリクエストした保護レベルでのアクセスを認証するかどうかについて判断するように動作するアクセスマネージャと、
アクセスポートと、
前記アクセスマネージャに応答し、かつ前記アクセスポートの保護レベルを前記リクエストした保護レベルに下げるように動作するレベルコントローラと、を備え、
前記アクセスポートはアーキテクチャ固有のハードウェアによってサポートされ、前記組み込みデバイスへのアクセスの制限を提供する、保護ポート。
【請求項６】
前記アクセスポートは通信アクセスポートを含む、請求項５に記載の保護ポート。
【請求項７】
前記アクセスマネージャは、
ランダム番号を、リクエストした保護レベルでの前記組み込みデバイスへのアクセスの認証を受けようとするユーザデバイスからのリクエストに応答して生成するように動作するランダム番号生成器と、
チャレンジフレーズに対するユーザデバイスによる応答の信憑性を判断するように動作する検証モジュールと、
を含む、請求項５に記載の保護ポート。
【請求項８】
前記検証モジュールは、前記ランダム番号及び前記レベルを、保護サーバに格納される前記組み込みデバイスの秘密鍵に対応する公開鍵を使用して前記チャレンジフレーズに暗号化するように動作する、請求項７に記載の保護ポート。
【請求項９】
前記レベルコントローラは、前記アクセスポートを、前記アクセスマネージャ及びフューズ機構によって決定される保護レベルで構成するように動作する、請求項５に記載の保護ポート。
【請求項１０】
前記リクエストした保護レベルは、非保護レベル、低保護レベル、高保護レベル、選択的高保護レベル、及び最高保護レベルから成るグループから選択される、請求項５に記載の保護ポート。
【請求項１１】
ユーザデバイスが保護レベルを、認証を受けることなく下げることを防止するように動作するフューズ機構を備える、請求項５に記載の保護ポート。
【請求項１２】
前記アクセスマネージャ、前記レベルコントローラ、及び前記アクセスポートの間の電気的接続は、前記組み込みデバイスの内部シリコン層の上に形成される、請求項５に記載の保護ポート。
【請求項１３】
組み込みデバイスへのユーザデバイスによるアクセスを制御するためのシステムであって、
前記組み込みデバイスと一体化され、かつアクセスマネージャを含む保護アクセスポートであって、前記アクセスマネージャは、チャレンジフレーズを前記ユーザデバイスからのリクエストシーケンスに従って発行して、前記組み込みデバイスにアクセスするように動作し、前記チャレンジフレーズに対する前記ユーザデバイスによる応答の信憑性を判断し、更に前記組み込みデバイスの保護レベルをリクエストした保護レベルに下げるように動作する、前記保護アクセスポートと、
前記組み込みデバイスの公開鍵に対応する前記組み込みデバイスの秘密鍵を格納するように動作する保護サーバと、
前記ユーザデバイスによって動作可能であり、前記チャレンジフレーズ及びユーザ信用証明情報を、前記保護サーバを用いて保護接続に渡すポートアクセス装置と、を備え、
前記保護サーバは、前記ユーザ信用証明情報を認証し、前記組み込みデバイスの秘密鍵に応じた前記チャレンジフレーズへの応答を発行するように動作し、前記チャレンジフレーズは、ランダム番号を前記リクエストシーケンスと組み合わせた暗号を含む、システム。
【請求項１４】
保護ポートを介した組み込みデバイスへのユーザによるアクセスを制御するための装置であって、
チャレンジフレーズをユーザデバイスに発行するチャレンジ手段と、
前記チャレンジフレーズに対する前記ユーザデバイスによる応答を検証して、ユーザを、リクエストした保護レベルでのアクセスに関して認証するかどうかを判断する認証手段と、
前記認証手段に応答して、前記保護ポートの保護レベルを前記リクエストした保護レベルに下げるレベル制御手段と、を備える装置。
【請求項１５】
前記チャレンジ手段は、チャレンジフレーズを形成するように動作し、前記チャレンジフレーズは、
ランダム番号を、公開鍵でエンコードされたリクエストシーケンスと組み合わせた暗号と、
前記組み込みデバイスの識別子とを含む、請求項１４に記載の装置。
【請求項１６】
前記認証手段は、前記ユーザデバイスによる応答を、前記チャレンジフレーズを構成するために使用されるランダム番号と比較するように動作する、請求項１４に記載の装置。
【請求項１７】
前記認証手段は、前記ユーザデバイスによる応答を、前記チャレンジフレーズを構成するために使用され、かつ数学的に調整されたランダム番号と比較するように動作する、請求項１６に記載の装置。
【発明の詳細な説明】
【背景技術】
【０００１】
集積回路処理装置のような組み込みデバイスは、外部エンティティとの複数のインターフェースを提供する。これらのインターフェースによって、テスティング、コード及びデータ転送、及びメモリへのアクセスのような種々の機能が利用可能になる。しかしながら、これらのインターフェースは、デバイス内に格納される情報への無許可アクセスを獲得するために利用することもできる。デバイスによって使用される情報を改ざんすることにより、ユーザは料金が支払われていないサービスへの、または情報を暗号化保護するために使用される鍵とともに機密保全されるサービスへのアクセスを獲得することができる。
【０００２】
無線及びインターネット接続機器の数が増えるにつれて、内蔵保護機能は機器の重要な機能となる。産業全体に渡って、信頼性の高いコンピューティングプラットフォームを定義する試みが継続的に行なわれている。信頼性の高いプラットフォームの複数の特徴のうちの一つの特徴が、外部環境とのやり取りにおける改ざんを防止する機能である。
【０００３】
集積回路と外界との間の複数の相互作用ポイントのうちの一つ相互作用ポイントが、システム設計者が通常、デバッグ目的に提供するＪＴＡＧポートである。ＪＴＡＧポートは、ジョイントテストアクショングループ（Ｊｏｉｎｔ  Ｔｅｓｔ  Ａｃｔｉｏｎ  Ｇｒｏｕｐ）が開発した規格に準拠し、かつ集積回路に対して外部からテストを行なうためのアクセスを可能にするポートである。ポートは４ピンまたは５ピン外部インターフェースを使用する。ＪＴＡＧ規格は標準のＩＥＥＥ  １１４９として採用されている。
【０００４】
ＪＴＡＧポートを使用して、デバイスのメモリを改ざんするか、または重要情報をデバイスから取り出すことができる。このことを防止するために、ポートを多くの場合、製造デバイスにおいて無効にする。しかしながら、ポートを無効にすることにより、許可ユーザがポートを使用して将来の時点で製品をテストする、変更する、またはフィールド試験するということができなくなる。
【０００５】
ＩＥＥＥ  １１４９規格は、強制セットのパブリックインストラクションを定義し、パブリックインストラクションはＪＴＡＧ対応部品に含める必要がある。この強制セットは、インストラクションＩＤＣＯＤＥ，ＢＹＰＡＳＳ，ＥＸＴＥＳＴ，及びＩＮＴＥＳＴを含む。このセットの内、ＩＮＴＥＳＴインストラクションによってのみ、集積回路の内部コアロジック信号に対する操作が明らかになるか、または許可される。例えば、フラッシュメモリを再プログラムするか、または適切なデータがこのインストラクションと共に供給される場合に無防備な保護情報を改ざんすることができる。ＩＤＣＯＤＥインストラクションを使用して、デバイスのハードワイヤード識別番号を取り出す。ＢＹＰＡＳＳインストラクション及びＥＸＴＥＳＴインストラクションはバウンダリ・スキャンに使用される。強制セットの他に、任意セットの、またはプライベートセットのインストラクションをデバイスに関して定義することができる。
【０００６】
ＪＴＡＧポートによってプロセッサの内部システムコンポーネントへのアクセスが付与されるので、ＪＴＡＧポートを保護することによって利点がもたらされる多数の状況が存在する。
【０００７】
組み込みデバイスとの他のゲートウェイ・インターフェースは、ハードウェア保護によって、ＪＴＡＧポートと同様の形で利点を享受することになる。
【発明を実施するための最良の形態】
【０００８】
画期的であると考えられる本発明の特徴が添付の請求項に示される。しかしながら、本発明自体だけでなく、本発明の好適な適用形態、及び更に別の目的及び利点は、以下に示す例示としての実施形態に関する詳細な説明を、添付の図（複数の図）を参照しながら一読することにより、最も深く理解することができるものと思われる。
【０００９】
本発明は、多くの異なる構成の実施形態として実現することができるが、一つ以上の特定の実施形態を図に示し、ここに詳細に説明しており、この場合、本開示は本発明の原理の例示として捉えられるべきであり、本発明を、ここに示し、かつ説明する特定の実施形態に制限する意図で行なわれるのではないことを理解されたい。以下の説明では、同様の参照番号は、図面に描かれる幾つかの図における同じ、同様の、または対応する構成要素を表わすために使用される。
【００１０】
図１は、一実施形態による保護ＪＴＡＧ（ｐｒｏｔｅｃｔｅｄ  ＪＴＡＧ）回路及び当該回路の外部構成の図である。図１を参照すると、デバイス１００はプロセッサ１０２と、ＪＴＡＧポート１０４と、ＪＴＡＧコントローラ１０６とを含む。ＪＴＡＧコントローラ１０６はＪＴＡＧ機器１０８と通信する。ＪＴＡＧポート１０４は、保護ＪＴＡＧ回路ブロック１１０の内、プロセッサ１０２へのアクセスを制御する部分である。保護ＪＴＡＧブロックによって、選択されたユーザグループのみが、プロセッサの内部を観察するか、または変更する機能にアクセスすることが許される。回路の連続性を検査するために使用されるＪＴＡＧデバッグ機能に課される制約は少ないか、または無い。その理由は、このタイプのＪＴＡＧアクセスによって、私的情報及び機密情報へのユーザアクセスが与えられることがないからである。保護ＪＴＡＧポートは、標準のＪＴＡＧ機能の他に、プロセッサへのアクセスの異なるレベルを設定する判別機構を提供する。
【００１１】
保護ＪＴＡＧブロック１１０はレベルコントローラ１１２及びアクセスマネージャ１１４を含む。アクセスマネージャ１１４はランダム番号発生器１１６及び検証モジュール１１８を含む。これらの要素の動作について以下に説明する。
【００１２】
必要なサポート・インフラストラクチャ及びツールとして、保護サーバ１２０及び保護ＪＴＡＧマネージャを挙げることができ、保護ＪＴＡＧマネージャはホストＪＴＡＧ機器１０８のデバッグツールと連携動作する。保護ＪＴＡＧブロック１１０（以後、単に保護ＪＴＡＧとも表記される）は、プロセッサ１０２に関して定義されるアクセスの各サポートレベルに対応する認証機能及びアクセスモード制御を実行する。更に、プロセッサは、高機能ＪＴＡＧシグナリングを受け入れるように構成される。アクセス制限は、保護ＪＴＡＧ１１０内の更に別のハードウェアブロック：レベルコントローラ１１２及びアクセスマネージャ１１４によって処理される。これらの要素が連動することにより、保護ＪＴＡＧのアクセスモードが設定される。
【００１３】
ＪＴＡＧアクセスモード
一実施形態では、保護ＪＴＡＧ１１０は、保護の異なるレベルに対応する多数の異なるアクセスモードを許可するように構成することができる。組み込みデバイスは種々のタイプのサービスを提供する。或る製品はセキュリティ対策を必要としないので、これらのデバイスへの全てのユーザによる非制限ＪＴＡＧアクセスを承認することが適切である。一例として、複雑な電子玩具または家電機器コントローラを挙げることができる。保護ＪＴＡＧに対する要求が、信頼性の高いコンピューティング要件を持つ製品において具体化される。製品例として、携帯電話機、ＰＤＡ、メディア機器、及び自動車コントローラを挙げることができる。
【００１４】
異なる保護要件を必要とする種々の製品の他に、製品ライフサイクルにおける異なる時点で、異なるアクセスレベルが必要になる。いかなる新規デバイスも、当該デバイスの寿命の間に異なるフェーズを経ることになる。デバイスが設計された後、デバイスを作製し、テストし、組み立て、製品に組み込む必要がある。製品が必要とする保護は、これらのフェーズの間に変化する。
【００１５】
保護ＪＴＡＧ１１０は保護の異なるレベルを提供する。完全保護レベルでは、ＪＴＡＧポートを通してのユーザアクセスが、チップ回路のテスト、及び基板レベルの相互接続のテストのような外部機能に制限される。任意であるが、違法ではない内部コンポーネントテストは許可することができる。この任意のコンポーネントテスト機能によって、私的情報が露見することがあってはならず、かつメモリへの、またはプロセッサのレジスタへの書き込みが許可されてはならない。この機能の形態は、特定アーキテクチャ向けとすることができる。中間保護レベルでは、保護領域内に対する操作を除く、フラッシュメモリへの書き込み、及びレジスタ及びメモリに対する読み出し、及び書き込みが許可される。最低セキュリティ保護レベルでは、保護が全く行なわれることがなく、かつ保護領域への無制限アクセスを含むフルアクセスが許可される。
【００１６】
保護ＪＴＡＧ１１０は、適切なアクセスを、改ざん防止状態選択機能を提供することにより承認する手段を提供する。ハードウェア構成によって決まる複数の状態はアクセスモード群に対応する。一旦、モードが設定されると、当該モードを、更に保護を強めた新規モードに変更することができるが、保護を弱めたモードには変更できない。一実施形態では、複数のアクセスモードは一組のフューズによって設定される。フューズ技術では、フューズの状態を不可逆的に変更する必要がある。一組のフューズを焼き切ることによって、セキュリティレベルが決まる。更に多くのフューズを焼き切ることによってレベルを高めることができる。従って、セキュリティレベルは高めることしかできない。
【００１７】
これらのアクセスモードの各モードは、デフォルト保護レベルを持つ。一旦、アクセスモードが設定されると、保護のレベルは許可ユーザによってのみ一時的に低くすることができるだけである。図１の図は、アクセスレベルを保護状態選択に基づいて生成するレベルコントローラブロック１１２、及び検証モジュール１１８を示している。
【００１８】
以下の表は、一実施形態による全てのユーザ及び許可ユーザに関する各アクセスモードにおける保護ＪＴＡＧの適用可能形態及びアクセスレベルを要約したものである。これらのアクセスモードは以下に更に詳細に説明される。
【００１９】
【表１】
2009521772.tif 000003
保護レベルを低保護アクセスモード及び非保護アクセスモードにおいて下げる。ＪＴＡＧポート１０４（図１）が非保護アクセスモードになることによって、保護された領域を閲覧すること、及び変更することを含むデバイスへのフルアクセスが可能になる。これらの機能は、製品の開発フェーズにおいて必要であると考えられる。更に、製品を開発段階において、または返品解析のためにデバッグする技術者は、このような機能を有利に利用することになる。しかしながら、これらの権限は非常に制限された態様で付与される（すなわち、信頼性の高いユーザにのみ）必要がある。
【００２０】
更に、セキュリティ機能を内蔵しない（すなわち、データが保護されない）製品は保護を全く必要としない。このような製品へのＪＴＡＧポートを通してのフルアクセスを付与することが適切である。
【００２１】
低保護アクセスモード。低保護アクセスモードでは、ユーザは依然として、保護データをＪＴＡＧポートを通して閲覧するだけでなく、フラッシュメモリへの書き込みを行なうことができる。しかしながら、このモードでは、秘密鍵または秘匿データのような保護情報は、改ざんに対して強い情報であるが、隠す必要はない。制限は、アーキテクチャ依存型セキュリティ機構によって課されることになる。ユーザが機密データまたはプライベートデータを組み立てる能力を持っているという理由により、このアクセスは信頼性の高いユーザにのみ付与される。このモードは、保護領域が確保されていることが検証された場合の開発フェーズにおいて使用することができる。更に、このモードは、返品を正常品に復元する、例えばメモリを再フラッシュするために適したモードとすることができる。
【００２２】
或る場合においては、セキュリティ機構をオープンにする必要がある。保護レベルを非保護レベルに一時的に下げることができる。この機能は、信頼レベルの最も高い信用証明情報を有する信頼性の高いユーザから構成される限定グループが使用することができる。
【００２３】
高保護アクセスモード。ユーザが保護メモリ（データが保護されるメモリ）にアクセスすることを防止するために、顧客に納入される製品によって、ＪＴＡＧポート１０４（図１）を通しての保護データへのアクセスが可能になるようなことが、決して起こることがないようにする必要がある。このような理由により、ユーザは、保護メモリの内容を漏洩させることがないＪＴＡＧインストラクションしか使用することができない。ユーザはバウンダリテストを、ＢＹＰＡＳＳ，ＰＲＥＬＯＡＤ，またはＥＸＴＥＳＴ標準インストラクションを使用して実行し、デバイスＩＤをＩＤＣＯＤＥインストラクションを実行して取り出し、コンポーネントテストをＲＵＮＢＩＳＴインストラクションで行なうことができる。
【００２４】
或るアプリケーションでは、バウンダリテストまたはコンポーネントテストは更に複雑になる可能性があり、更に違法性の高い方法が必要になる。ＩＮＴＥＳＴまたはＳＡＭＰＬＥ標準インストラクション、或いは他のプライベートインストラクションをこの目的に使用することができる。しかしながら、これらのインストラクションによって保護メモリの内容が漏洩することがあってはならず、かつプロセッサメモリに対する書き込みアクセスを許可することがあってはならない。
【００２５】
低保護アクセスモードまたは高保護アクセスモードで構成される製品では、信頼性の高いユーザによってリクエストされる場合には、保護レベルを一時的に下げることができる。低保護モードからは、レベルを非保護レベルに下げることができ、高保護モードからは、保護レベルを低保護レベルまたは非保護レベルに下げることができ、いずれの保護レベルに下げるかは、ユーザの信用証明情報によって変わる。保護ＪＴＡＧのこの機能は、返品時においてデバッグ機能を利用するために用いられる。
【００２６】
選択的高保護アクセスモード。このアクセスモードによって高保護アクセスモードの機能の全てが提供される。差異は、退出イベントが追加されることであり、退出イベントは保護レベルを下げたＪＴＡＧセッションを終了させるために受入れられる。このモードでは、保護を各ＪＴＡＧインストラクションの後にデバイスによってデフォルト保護に復旧させる。この機能を追加することにより、デバイスが、認証及びテストセッションに合格した後にヒューマンエラーが発生した場合に危険な状態に放置されることが絶対にないようにすることができる。しかしながら、このモードは選択的に実装される。この機能の実行は比較的複雑であり、この機能を使用しないデバイスは、当該機能を全く実装する必要はない。この複雑さは、各ＪＴＡＧインストラクションの終了を検出する必要があるという要件から生じる。これは、更に別のロジックがＪＴＡＧに含まれることを意味する。従って、条件はレベルコントローラブロックに渡されることになる。
【００２７】
最高保護アクセスモード。最高保護モードでのＪＴＡＧアクセスは、高保護アクセモードにおけるアクセスと同じである。２つのアクセスモードの差異は、高保護アクセスレベルモードにおける保護レベルを一時的に低下させるオプションにある。この機能は、最高保護レベルモードではサポートされない。
【００２８】
このモードは、顧客に納入され、かつ非常に重要な情報を含む製品に用いられる。この場合、保護データはいかなる条件下でも誰によってもＪＴＡＧを通してアクセスされることがないように設定される。
【００２９】
このタイプの保護を採用することができる他の製品は低コストデバイスとすることができ、デバイスを修理するよりも取り替える方がコストが安く付く。
保護ＪＴＡＧ認証
一実施形態では、保護ＪＴＡＧ認証プロセスはチャレンジ応答認証アルゴリズム（ｃｈａｌｌｅｎｇｅ−ｒｅｓｐｏｎｓｅ  ｉｄｅｎｔｉｆｉｃａｔｉｏｎ  ａｌｇｏｒｉｔｈｍ）を利用する。指定保護サーバ（図１の１２０）が認証プロセスを完了させるために使用される。保護サーバの役割は、所定のチャレンジに対する応答を生成することである。図２は、一実施形態による保護ＪＴＡＧ回路の認証方法を示す時系列図である。時系列では、宛先デバイスまたは製品の保護ＪＴＡＧ、保護ＪＴＡＧマネージャ、及びユーザコンピュータ１０８の他のソフトウェアツール、更に保護サーバの間の通信の様子が示される。
【００３０】
図２を参照すると、時系列の第１ステップ（２０２）では、保護ＪＴＡＧに対するＯＰＥＮリクエスト（オープンリクエスト）がユーザによって開始される。ユーザは、保護ＪＴＡＧ、ユーザ、ユーザコンピュータ１０８、及び保護サーバの間の通信を管理するツールを取得する必要がある。ＯＰＥＮコマンドはビット列によって表わされ、このビット列は、保護レベルを低下させるリクエストだけでなく目標保護レベルの両方を表示する。ＯＰＥＮリクエストによって認証プロセスが開始する。コマンドを受信すると、アクセスマネージャ（図１の１１４）はメッセージを、ランダム番号及びリクエストされる保護レベル情報に基づいて作成し、当該メッセージをチャレンジフレーズにエンコードする。従って、チャレンジフレーズは、ランダム番号をリクエストシーケンスと組み合わせた暗号を含む。
【００３１】
ランダム番号は、アクセスマネージャのランダム番号生成器部分（図１の１１６）によって生成される。要求される保護レベル情報は、ＯＰＥＮコマンドのビット列によって表わされる。ＯＰＥＮビット列をランダムチャレンジと組み合わせることにより、システムは認証レベルを区別し、同じ鍵を使用することができる。
【００３２】
再度、図２を参照すると、チャレンジフレーズはアクセスマネージャによって保持され、ＪＴＡＧマネージャに、次のステップ（２０４）において、ハンドシェークがＯＰＥＮリクエストに対して行なわれるときに渡される。チャレンジと共に、デバイスは、当該デバイスのＩＤを送信し、このＩＤによって、保護サーバは、どの鍵を使用して応答を生成すべきかについて判断する。一つの鍵は幾つかのデバイスに関連付けることができ、どのデバイスに関連付けるかは、鍵配布方式によって変わる。
【００３３】
ステップ（２０６）では、ＪＴＡＧマネージャは、保護サーバとの保護ソケットレイヤ接続のような接続を開放する。ステップ（２０８）では、ＪＴＡＧマネージャはチャレンジフレーズ、デバイスＩＤを、ホストコンピュータ及びユーザコンピュータの信用証明情報とともに保護サーバ（図１の１２０）に接続を経由して渡す。保護サーバはユーザの信用証明情報を検証する。ユーザが認証されて、リクエストする保護レベルを取得するときにのみ、サーバが当該ユーザを承認することができる。検証プロセスはチャレンジフレーズを解読し、リクエストされているレベルを取り出すことから始まる。ユーザの信用証明情報が、リクエストされるレベルと一致する場合、検証に合格し、ユーザが認証される。認証に合格すると、保護サーバはステップ（２１０）で、解読したチャレンジのランダム番号部分を取り出し、ランダム番号を含む検証トークンを返送する。応答を受信すると、ＪＴＡＧマネージャは応答を保護ＪＴＡＧにステップ（２１２）で渡す。
【００３４】
次に、応答フレーズをアクセスマネージャモジュール内の検証ブロックによって、応答を、チャレンジの一部分として生成された元のランダム情報と比較することにより検証する。検証に合格すると、応答フレーズをステップ（２１４）で承認し、リクエストされるアクセスレベルを、デバイスの電源が次にオフになるまで、またはＣＬＯＳＥビット列の検出まで有効にする。選択的高保護モードとなるように構成されるデバイスは更に、各ＪＴＡＧインストラクションの終了時にデフォルト保護レベルに戻る。一旦、アクセスが有効になると、ユーザツールはステップ（２１６）で保護ＪＴＡＧとの接続を行なうことができる。この接続はステップ（２１８）で承認され、テストコマンドをステップ（２２０）で発行して、デバイスの電源が次にオフになるまで、またはＣＬＯＳＥビット列がＪＴＡＧマネージャによってステップ（２２２）で出力されるまで、デバイスとのインターフェース接続を保護ＪＴＡＧを介して行なうことができる。
【００３５】
図３の状態遷移図（以下に説明する）は、保護ＪＴＡＧのアクセスマネージャモジュールの状態、イベント、及びアクションを示している。
ここに提示する認証方式では、各アクセスに関するチャレンジ及び応答ペアの生成を利用する。「アクセス毎に（ｐｅｒ  ａｃｃｅｓｓ）」認証するこの方式では、無許可ユーザが古いビット列を将来の時点で再生攻撃に使用する可能性を排除する。
【００３６】
保護ＪＴＡＧのアクセスマネージャモジュールは、ハードウェアとして実装することにより、認証プロセスをプロセッサとは独立して実行することができるようにする。ハードウェアソリューションでは、プロセッサのソフトウェアが改ざんされている場合でも、またはプロセッサのハードウェアが、分析されている問題の原因である場合でも、信頼性の高い認証を保証することができる。信頼性の高いプラットフォーム環境におけるハードウェアＪＴＡＧ形態の幾つかの利点を列挙することができる。利点の一つとして、信頼性の高いブートが失敗し、デバッグを返品に対して行なう必要がある場合に、ＪＴＡＧポートを許可ユーザが使用してメインプロセッサのブートシーケンスをデバッグすることができる。改ざん攻撃または他の障害が検出された場合に、ＪＴＡＧポートを使用して稼動中のシステムをデバッグすることもできる。ＪＴＡＧポートを有効にしてブートシーケンスをデバッグするために、ＪＴＡＧ公開鍵は、メインプロセッサとは別のＪＴＡＧハードウェアであって、改ざん防止メモリに内蔵されるＪＴＡＧハードウェアの一部分とする必要がある。
【００３７】
図１はハードウェアブロック群を示し、これらのハードウェアブロックはアクセスマネージャの主要コンポーネントである。ランダム番号生成モジュール（ＲＮＧ）１１６の役割は、認証リクエストとして認識される各ＯＰＥＮシーケンスのチャレンジフレーズに対応し、かつサーバへのメッセージを暗号化するために使用されるランダム番号を生成することである。一実施形態では、このモジュールはランダム番号を、現時点でデバイスから集めたエントロピーに基づいて生成する。更に複雑なのが検証モジュール１１８であり、このモジュールの機能には、多数のクロックサイクルが必要となる。クロック１３０は保護ＪＴＡＧ１１０内で利用するか、またはＪＴＡＧ接続によって着信信号１３２として供給することができる。この後者の設定では、検証モジュール１１８は、クロックサイクルの変動による影響を受けない必要がある。検証モジュール１１８はチャレンジ１２８を送信し、保護サーバからチャレンジ／開放リクエストに対する応答１３４（図２の要素２１２）を受信する。
【００３８】
ハードウェア要素
保護ＪＴＡＧ。図１に示すように、保護ＪＴＡＧ１１０はＪＴＡＧポート１０４の他に、レベルコントローラブロック１１２及びアクセスマネージャブロック１１４を含む。アクセスマネージャ内のランダム番号生成モジュール１１６及び検証モジュール１１８の構成は、最も重点的にサイズに関して、次に重点的にサイクル数に関して最適化する必要がある。更に、アクセスマネージャ１１４は、前の節で説明したように、ステートマシンを実行するためのロジックを含む。
【００３９】
レベルコントローラ１１２は、アクセスモードに対応する改ざん防止用の不可逆的状態選択ソリューション（ｉｒｒｅｖｅｒｓｉｂｌｅ  ｓｔａｔｅ  ｓｅｌｅｃｔｉｏｎ  ｓｏｌｕｔｉｏｎ）を提供するように構成される。図１，２に示す例では、溶融可能なリンクが溶断して開放になっている状態が示される。他の同等の不可逆性手段を使用することができる。当該不可逆性手段は、アクセスマネージャブロック１１４からの入力を受け入れるロジックを含む必要もある。
【００４０】
保護ＪＴＡＧブロック群自体の間で、プロセッサ１０２との間で授受される信号に対しても改ざん防止処置を施し、これらの信号を内部シリコン層に隠蔽する必要がある。保護レベルを示す信号は、内部ＪＴＡＧ及びプロセッサロジックのうちの少なくとも１方内で印加されることになる。信号をプロセッサの内部で印加するロジックは、特定アーキテクチャ向けとする必要がある。
【００４１】
保護サーバ。これまでに述べてきたように、保護サーバ１２０を設けて認証プロセス（図２を参照しながら上に説明した）を容易にし、認証プロセスによって、製品の保護のグレードを保護ＪＴＡＧを通して一時的に下げることができる。保護サーバ１２０に、デバイスＩＤ及びユーザ信用証明情報に関連付けられる秘密鍵を読み込む。サーバで実行される信用証明情報検証手順では、チャレンジに対してユーザが返す正しい応答を承認することにより、デバイスがリクエストされた保護レベルをこのレベルの取得を許可されたユーザに対して承認することになる。
【００４２】
一実施形態では、ユーザ１０８及び保護サーバ１２０は保護インターフェースを使用し、保護インターフェースによって、チャレンジ１２２、信用証明情報１２４、及び応答１２６のような情報をシリアルストリングとして授受することが可能になる。
【００４３】
暗号化検討項目
保護サーバ１２０（図１）は保護方式における重要な要素である。秘密鍵またはユーザデータベースの信頼性を損なう全てのイベントにおいて、デバイスの保護も不完全になる。
【００４４】
保護サーバによるユーザ信用証明情報の検証は、方式全体の重要な部分である。種々の検証方法がこの技術分野の当業者に公知になっている。
開発ツール及びテストツール
保護ＪＴＡＧ機能には開発ツールサポートが必要になる。これらのツールは、保護ＪＴＡＧアクセスマネージャモジュールと通信して、認証関連データを保護サーバに渡す機能を備える必要がある。図２に示す認証プロセスは、更に別のホストツールサポートを表わす相互作用を示し、これらの相互作用として、ＯＰＥＮリクエスト、チャレンジを収集する動作、保護サーバとの通信、及び応答を返す動作を挙げることができる。これらの機能はホストツールによって必要とされるが、ツール自体に組み込まれる必要はない。図２は保護ＪＴＡＧマネージャモジュールを示し、当該モジュールはこれらの機能をテストプロトコル部分とは別の部分として処理する。機能をホストツール内で分離することによって、テストプロトコルとの互換性が保たれる。
【００４５】
保護ＪＴＡＧの基本アーキテクチャ及び機能が上に開示されている。保護ＪＴＡＧは信頼性の高いプラットフォームを補完するように作用して、重要なデバッグ機能を提供し、更に保護情報を保護する。ここに提示するソリューションのコア属性はハードウェア形態、多様なレベルのアクセス、及び各アクセスに対応するチャレンジ／応答ペアの生成を利用する安全性の高い機構である。これらの属性によってツールは、多種多様なユーザ、及びセキュリティの観点に基づく安全確保にとって魅力的となる。開発者は、デバッグ及びテストを実行フェーズにおいて行なうことができる。デバイスが顧客に納入された後、全てのリペアショップで回路の正常性を検証することができるが、信用証明情報を提示するユーザのみが、このタイプの介入が必要な場合にデバイスを更に綿密にデバッグすることができる。
【００４６】
保護ＪＴＡＧの主目的は、デバイスを悪用する恐れのある全ての個人によるＪＴＡＧアクセスを阻止することにある。更に、これまでの経験に基づいて、ＪＴＡＧをデバイスへの重要なアクセスポイントとすることができる。ＪＴＡＧポートを経由しての保護及びアクセスを行なう際のフレキシビリティは、保護アクセスのレベルを認証により下げることにより得られる。利点は、デバイスが高保護アクセスモードになっているときに最も顕著になる。
【００４７】
図３は、一実施形態による保護ＪＴＡＧ回路のアクセスマネージャ１１４の動作を示す状態遷移図である。初期状態３０２はＯＦＦ（オフ）である。アクセスマネージャは、ＯＰＥＮビット列が検出される（３０４）までこの状態になったままである。ＯＰＥＮビット列を受信すると、アクセスマネージャはメッセージをランダム番号及びリクエストされた保護レベル情報に基づいて構成し、当該メッセージをチャレンジフレーズにエンコードする。ランダム番号はアクセスマネージャのランダム番号生成器部分によって生成される。ランダム番号及びＯＰＥＮシーケンスは、アクセスマネージャによってこの認証セッションのために保持される。チャレンジがユーザコンピュータ１０８にアクセスマネージャ１１４によって送信される。アクセスマネージャは状態３０６に移行し、この状態の間に、アクセスマネージャはチャレンジに対する応答を待機する。新規のＯＰＥＮシーケンスが検出される場合（３０８）、アクセスマネージャは古いチャレンジを放棄し、新規のチャレンジを生成し、新規のチャレンジをユーザに送信する。応答シーケンスが３１０で検出される場合、アクセスマネージャは検証状態３１２に移行し、この状態の間に、応答シーケンスをチェックする。検証に失敗する（不正な応答シーケンスを受信したことにより）場合（３１４）、アクセスマネージャはＯＦＦ状態に戻る（３０２）。検証に合格した場合（３１６）、アクセスマネージャは状態３１８に移行し、この状態の間に、ＪＴＡＧポートを経由してのプロセッサへのアクセスが有効になる。この状態は、デバイスの電源がオフになり、ＣＬＯＳＥビット列が検出され、新規のＯＰＥＮシーケンスが検出されるまで保持されるか、または保護ＪＴＡＧが選択的高保護モードにおいて開放され、ＪＴＡＧ命令が完了する場合（３２０）に保持される。これらのイベントのうちのいずれかのイベントの後に、アクセスマネージャは閉止状態３２２に移行し、この状態では、デフォルトアクセスが復旧し、全てのリソースが元の状態に戻り、レジスタが初期値に設定される。閉止状態へのエントリイベントが退出イベントになる。閉止状態にＯＰＥＮシーケンスによって移行した場合（３２４）、アクセスマネージャは、新規のチャレンジを生成し、発行し、更に状態３０６に戻ってチャレンジに対する応答を待機する。これとは異なり、閉止状態にＣＬＯＳＥビット列によって移行した場合、または保護ＪＴＡＧが選択的高保護モードにおいて開放され、ＪＴＡＧ命令が完了する場合（３２６）、ＪＴＡＧポートが閉じ、アクセスマネージャがＯＦＦ状態に戻る（３０２）。
【００４８】
使用の例
以下に、２つの使用例を検討して保護ＪＴＡＧの利点を示す。
低セキュリティアクセス（低保護）−フラッシュメモリの読み込み。携帯電話機の所有者ボブ（Ｂｏｂ）が、例えば面白いゲームをウェブで見付け出し、当該ゲームを彼の携帯電話機にダウンロードしたとする。ダウンロードの後、彼の電話機が正しく作動しなくなった。まずボブは、問題を自分で解決しようと試みた。彼は、「便利な」コードをインターネットで見付け出し、コードを彼の電話機のデバイスにＪＴＡＧポートを使用して読み込みたいと考えた。幾つかのベンダーがハードウェアツール及びソフトウェアツールを供給し、これらのツールを使用することにより、機器のメモリを再フラッシュすることができることに注目されたい。ボブはデバイスをＪＴＡＧポートを経由してホストＰＣに、ハードウェアＪＴＡＧツールを使用して接続し、ソフトウェアツールを彼のホストＰＣで実行してコードをダウンロードした。デバイスは高保護モードであったので、フラッシュメモリを変更することが許可されなかった。これらのツールから一般エラーメッセージが返ってきた。この例では、デバイスが、安全性が保証されていないコードを読み込む動作を行なわないように保護された。
【００４９】
デバイスを復旧するために、ボブは、デバイスをプロバイダの代理店に持ち込む必要があった。高い技術を持つマーベリック（Ｍａｖｅｒｉｃｋ）がボブのデバイスの修理を行なうことを許可されるとする。マーベリックはデバイスの保護レベルを低保護アクセスに認証プロセスにより下げる必要があった。マーベリックはデバイスをＪＴＡＧポートを経由してマーベリックのホストＰＣに、ＪＴＡＧハードウェアツールを使用して接続した。ホストＰＣのソフトウェアツールはＪＴＡＧマネージャモジュールを含む。マーベリックは認証手順を、ＯＰＥＮコマンドをＪＴＡＧマネージャから起動することにより開始した。この時点で、マーベリックは更に、ＯＰＥＮのタイプを低保護アクセスとして指定した。ＪＴＡＧマネージャはリクエストをデバイスの保護ＪＴＡＧに送信した。保護ＪＴＡＧはチャレンジフレーズで応答した。チャレンジフレーズを受信すると、ホストのＪＴＡＧマネージャツールは、マーベリックによるエントリを許可するようにリクエストした。マーベリックは彼の信用証明情報を入力した。ＪＴＡＧマネージャは、チャレンジフレーズ及びマーベリックの信用証明情報を、指定された保護サーバに渡した。保護サーバは信用証明情報を検証した。検証に合格した後、保護サーバは所定チャレンジに対する応答を生成し、当該応答をＪＴＡＧマネージャに返送した。ＪＴＡＧマネージャは応答を、デバイスの保護ＪＴＡＧに渡し、保護サーバとの接続を解除した。保護ＪＴＡＧは応答を検証した。検証に合格すると、保護ＪＴＡＧは、リクエストされているＪＴＡＧポートを経由してのデバイスへのアクセスを承認した。マーベリックは、ホストのハードウェアＪＴＡＧコネクタ及びソフトウェアツールを使用して再フラッシュを開始した。コマンドが無事に完了した。リクエストが完了した後、マーベリックはデバイスの電源をオフにして、デフォルトアクセスレベルを復旧させる必要があった。
【００５０】
最低保護を獲得する。ハッカーは保護鍵をボブが所持する電話機のタイプから抽出した。サービスプロバイダはボブに鍵を取り替えるように申し出た。ボブは、彼の電話機をプロバイダの代理店に持ち込んだ。代理店から派遣されている技術者であるマーベリックは認証手順を実行して非保護アクセスをリクエストする。認証に合格した後、マーベリックはデバイスの保護メモリにアクセスすることができた。マーベリックは、ホストのハードウェアＪＴＡＧコネクタ及びソフトウェアツールを使用して保護メモリへの書き込みを開始した。コマンドが無事に完了した。処置を終了すると、マーベリックは、デフォルトＪＴＡＧアクセスを、デバイスの電源をオフにすることにより復旧させる必要があった。
【００５１】
この技術分野の当業者であれば、本発明について、ＪＴＡＧポートを使用する形態を利用する実施形態を例示しながら説明してきたことが分るであろう。しかしながら、本発明はこれらの実施形態に制限されるべきではない。その理由は、本発明を他のアクセスポートを使用して実施することができるからである。例えば、標準ポート及び専用ポートの両方をアクセスマネージャ及びレベルコントローラとともに組み込むことにより、保護アクセスポートを形成することができる。
【００５２】
本発明の所定の構成要素は、本明細書における実施形態において説明しているように、時系列図に状態図形式で広範囲に上に記述されるプログラミング命令を実行するプログラムされたプロセッサを使用して実現され、プログラミング命令は、いずれかの適切な電子記憶媒体に格納することができる。しかしながら、この技術分野の当業者であれば、上に説明したプロセスは本発明から逸脱しない限り、どのような種類の変形例としても実行することができ、多くの適切なプログラミング言語で記述することができることが分かるであろう。例えば、実行する所定の操作の順番は多くの場合、変えることができる、更に別の操作を追加することができるか、または操作を、本発明の技術思想及び技術範囲から逸脱しない限り削除することができる。エラートラップ機能を追加すること、および強化することのうちのいずれかまたは両方を行うことができ、変更をユーザインターフェース及び情報提示に本発明から逸脱しない限り加えることができる。このような変更は想到し得るものであり、かつ本発明の均等物と考えられる。
【００５３】
本発明について特定の実施形態に関連付けながら説明してきたが、多くの代替、変形、置換、及び変更を為し得ることが、この技術分野の当業者にとっては自明であることがこれまでの説明から明らかであると言える。従って、本発明はこのような代替、変形、及び変更の全てが添付の請求項の技術範囲に包含されるものとして含むものである。
【図面の簡単な説明】
【００５４】
【図１】一実施形態による保護ＪＴＡＧ回路及び当該回路の外部構成の図である。
【図２】一実施形態による保護ＪＴＡＧ回路の認証方法を示す時系列図である。
【図３】一実施形態による保護ＪＴＡＧ回路の動作方法の状態遷移図である。
【図１】
2009521772.tif 000004
【図２】
2009521772.tif 000005
【図３】
2009521772.tif 000006
【国際調査報告】
2009521772.tif 000007