JP2014530418A - 安全鍵自己生成 - Google Patents

安全鍵自己生成 Download PDF

Info

Publication number
JP2014530418A
JP2014530418A JP2014530898A JP2014530898A JP2014530418A JP 2014530418 A JP2014530418 A JP 2014530418A JP 2014530898 A JP2014530898 A JP 2014530898A JP 2014530898 A JP2014530898 A JP 2014530898A JP 2014530418 A JP2014530418 A JP 2014530418A
Authority
JP
Japan
Prior art keywords
integrated circuit
csp
computer
generation
interface
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
JP2014530898A
Other languages
English (en)
Inventor
ベレンベルクポール
ポール ベレンベルク
ダニーリャンゲオルギ
ゲオルギ ダニーリャン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Cubic Corp
Original Assignee
Cubic Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Cubic Corp filed Critical Cubic Corp
Publication of JP2014530418A publication Critical patent/JP2014530418A/ja
Withdrawn legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/70Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer
    • G06F21/71Protecting specific internal or peripheral components, in which the protection of a component leads to protection of the entire computer to assure secure computing or processing of information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/575Secure boot

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Storage Device Security (AREA)

Abstract

集積回路(IC)における安全なクリティカルセキュリティパラメータ(CSP)の生成を提供するための技法を開示する。実施形態は概して、CSPが生成される前に、外部から(たとえば、デバッグインターフェースによって)CSPを読み取る能力が無効にされていると決定する工程を含む。デバイスの機能に依存して、実施形態は、安全なCSPを提供するための方法を実行するためのソフトウェアが初めて実行されているのかどうかを決定する工程などの、他のステップを含み得る。とりわけ、本明細書において提供される安全なCSPの生成を提供するための技法は、CSPのセキュリティを強化し、ICの製造コストを減じることができる。

Description

関連出願の相互参照
本願は、2011年9月15日付けで出願された、「初期鍵が製造中に脅かされるリスクをなくす安全鍵自己生成の方法(METHOD OF SECURE KEYS SELF GENERATION ELIMINATING THE RISK OF THE INITIAL KEYS BEING COMPROMISED IN MANUFACTURING)」と題する、米国特許出願第61/535,047号明細書の米国特許法119(e)の下の利益を主張し、その全内容は、すべての目的のために引用により本明細書に組み込まれる。
背景
マイクロコントローラ、マイクロプロセッサ、および他の集積回路(IC)は多くの場合、暗号鍵、認証データ、または、追加のセキュリティもしくは他の機能を提供するために利用され得る他のセンシティブなデータといった、クリティカルセキュリティパラメータ(CSP)を用い得る。これらのCSPの開示または変更は、この機能を脅かし得る。
CSPは多くの場合、安全な製造または供給環境において、ICに引き渡される。これは、CSPのセキュリティに関する問題を提起し得る。たとえば、ことによると製造者が、誤って、または、悪意のある行為の結果として、CSPのインストールに失敗するか、または、誤った、反復の、変更された、禁止された等のCSPをインストールして、これらの安全な手順を免れ得る。ICによるCSPの自己生成、安全な手法によるデバイスの外部の安全なストレージへのCSPの手動または自動の引き渡しが、これらの問題のいくつかを回避するのに役立ち得るが、それでもなおCSPは、当事者にデバイスのデバッグインターフェースによる鍵の傍受または鍵に対する干渉を可能にさせ得る、デバッグインターフェースによって脅かされ得る。これらの方法のすべては、対称鍵と非対称鍵の両方に適用される。
概要
集積回路(IC)における安全なクリティカルセキュリティパラメータ(CSP)の生成を提供するための技法を開示する。実施形態は概して、CSPが生成される前に、外部から(たとえば、デバッグインターフェースによって)CSPを読み取る能力が無効にされていると決定する工程を含む。デバイスの機能に依存して、実施形態は、安全なCSPを提供するための方法を実行するためのソフトウェアが初めて実行されているかどうかを決定する工程などの、他のステップを含み得る。とりわけ、本明細書において提供される安全なCSPの生成を提供するための技法は、CSPのセキュリティを強化し、ICの製造コストを減じることができる。
本開示に係る、集積回路のための安全なクリティカルセキュリティパラメータCSPの生成を提供するためのコンピュータで実施される例示的な方法は、コンピュータで実施される方法が集積回路によって初めて実行されていると決定する工程と、集積回路のインターフェースを介して集積回路の安全なメモリにアクセスする能力が無効にされていると決定する工程と、少なくとも一つのCSPを生成する工程と、集積回路の安全なメモリに少なくとも一つのCSPを記憶する工程と、を含み得る。
集積回路のための安全なクリティカルセキュリティパラメータCSPの生成を提供するためのコンピュータで実施される例示的な方法は、以下の機能および/または特徴のうちの一つまたは複数を含み得る。この方法は、集積回路の安全なメモリから消去されることから少なくとも一つのCSPを保護する工程を含み得る。この方法は、コンピュータで実施される方法が集積回路によって二度目に実行されていると決定する工程と、コンピュータで実施される方法が集積回路によって二度目に実行されている間に、集積回路のインターフェースを介して集積回路の安全なメモリにアクセスする能力が無効にされていないと決定する工程と、集積回路の通常動作を防止する工程と、を含み得る。集積回路の通常動作は、集積回路をエラー状態または停止状態にすることによって、防止され得る。集積回路のインターフェースは、デバッギングインターフェースであり得る。少なくとも一つのCSPは、暗号化鍵の公開/秘密ペアを備え得る。CSPは、集積回路によって生成され得る。この方法は、集積回路の安全なメモリに少なくとも一つのCSPを記憶した後に集積回路をリブートする工程を含み得る。
本説明に係る、集積回路のためのCSPの生成を提供するための命令が組み込まれた例示的な非一時的なコンピュータ可読媒体は、コンピュータ実行可能なコードを有する命令を有することができ、コンピュータ実行可能なコードは、コンピュータ実行可能なコードが集積回路によって初めて実行されていると決定し、集積回路のインターフェースを介して集積回路の安全なメモリにアクセスする能力が無効にされていると決定し、少なくとも一つのCSPを生成し、集積回路の安全なメモリに少なくとも一つのCSPを記憶するためのものである。
例示的な非一時的なコンピュータ可読媒体はまた、以下の特徴のうちの一つまたは複数を含み得る。この媒体は、集積回路の安全なメモリから消去されることから少なくとも一つのCSPを保護するためのコンピュータ実行可能なコードを含み得る。この媒体は、コンピュータ実行可能なコードが集積回路によって二度目に実行されていると決定し、コンピュータ実行可能なコードが集積回路によって二度目に実行されている間に、集積回路のインターフェースを介して集積回路の安全なメモリにアクセスする能力が無効にされていないと決定し、集積回路の通常動作を防止するための、コンピュータ実行可能なコードを含み得る。集積回路の通常動作を防止するためのコンピュータ実行可能なコードは、集積回路をエラー状態または停止状態にするためのコンピュータ実行可能なコードを含み得る。集積回路のインターフェースは、デバッギングインターフェースであり得る。少なくとも一つのCSPは、暗号化鍵の公開/秘密ペアを備え得る。
本開示に係る、CSPの生成を提供可能な例示的な集積回路は、安全なメモリと、インターフェースと、安全なメモリとインターフェースとに結合され、処理を実行するように構成された処理回路と、を含み得る。この処理は、処理が処理回路によって初めて実行されていると決定する工程と、インターフェースを介して安全なメモリにアクセスする能力が無効にされていると決定する工程と、少なくとも一つのCSPを生成する工程と、安全なメモリに少なくとも一つのCSPを記憶する工程と、を含み得る。
CSPの生成を提供可能な例示的な集積回路は、以下の特徴のうちの一つまたは複数を含み得る。処理回路は、安全なメモリから消去されることから少なくとも一つのCSPを保護するように構成され得る。処理回路が実行するように構成された処理はまた、処理が処理回路によって二度目に実行されていると決定する工程と、処理が処理回路によって二度目に実行されている間に、インターフェースを介して安全なメモリにアクセスする能力が無効にされていないと決定する工程と、集積回路の通常動作を防止する工程と、を含み得る。集積回路の通常動作は、集積回路をエラー状態または停止状態にすることによって、防止され得る。インターフェースは、デバッギングインターフェースであり得る。少なくとも一つのCSPは、暗号化鍵の公開/秘密ペアを含み得る。
さまざまな実施形態の本質および利点のさらなる理解が、以下の図面を参照することよって実現され得る。添付の図面において、同様の構成要素または特徴は、同一の参照符号を有し得る。さらに、同一のタイプのさまざまな構成要素は、参照符号の後に同様の構成要素を区別するダッシュおよび第2の符号が続くことによって、区別され得る。第1の参照符号のみが明細書中に使用される場合、説明は、第2の参照符号とは無関係に、同一の第1の参照符号を有する同様の構成要素のうちのいずれか一つに適用可能である。
図1は、一実施形態に係る、本明細書において提供される技法を利用可能な集積回路(IC)の単純化されたブロック図である。 図2は、一実施形態に係る、安全なCSPの自己生成のための方法を表すフローチャートである。 図3は、別の実施形態に係る、安全なCSPの自己生成のための方法を表すフローチャートである。 図4は、一実施形態に係る、本明細書において提供される技法を利用して安全なCSPの生成を実行するための方法の概略を示す、単純化されたフローシーケンスである。 図5は、別の実施形態に係る、本明細書において提供される技法を利用して安全なCSPの生成を実行するための方法の概略を示す、単純化されたフローシーケンスである。
発明の詳細な説明
説明の目的で、特定の詳細を提供する以下の多くは、さまざまな実施形態の完全な理解を提供するために説明される。しかしながら、さまざまな実施形態がこれらの特定の詳細の一部なくして実現され得るということは、当業者にとって明らかであろう。たとえば、回路、システム、ネットワーク、処理、および他の構成要素は、不必要な詳細で実施形態を曖昧にしないように、ブロック図の形態の構成要素として示され得る。他の例において、公知の回路、処理、アルゴリズム、構造、および技法は、実施形態を曖昧にすることを回避するために、不必要な詳細なしに示され得る。他の例において、周知の構造およびデバイスは、ブロック図の形態で示される。
本明細書において提供される実施形態は一例にすぎず、本開示の範囲、応用性、または構成を限定することを意図するものではない。むしろ、実施形態の以下の説明は、当業者に一つまたは複数の実施形態の実施を可能にする説明を提供するだろう。添付の請求項に記載される開示されたシステムおよび方法の精神および範囲から逸脱せずに、要素の機能および配置のさまざまな変更が行われ得ることが理解されるべきである。
また、個々の実施形態は、フローチャート、流れ図、データ流れ図、構造図、またはブロック図として示される処理として説明され得る。フローチャートは、連続した処理として動作を説明し得るが、動作の多くは、並行してまたは同時に、実行され得る。加えて、動作の順序は並べ替えられ得る。処理は、その動作の完了時に終了するが、図面に含まれない追加のステップを有し得る。処理は、方法、関数、プロシージャ、サブルーチン、サブプログラム等に対応し得る。処理が関数に対応する場合、その終了は、関数が呼び出し関数またはメイン関数に戻ることに対応し得る。
さらに、実施形態は、ハードウェア、ソフトウェア、ファームウェア、ミドルウェア、マイクロコード、ハードウェア記述言語、またはそれらの任意の組み合わせによって実施され得る。ソフトウェア、ファームウェア、ミドルウェア、またはマイクロコードにおいて実施される場合、必要なタスクを実行するためのプログラムコードまたはコードセグメントは、機械可読媒体に記憶され得る。プロセッサ(単数または複数)が、必要なタスクを実行し得る。
本明細書において提供される実施形態は、マイクロコントローラまたはマイクロプロセッサのような集積回路(IC)上で、暗号鍵、認証データ、または他のセンシティブなデータといった、クリティカルセキュリティパラメータ(CSP)を生成し、安全にするための技法を含む。開示される自己管理技法は、開発者および/または製造者が意図的にまたは意図せずにIC上でCSPを脅かすこと(たとえば、リセットする、消去する、置換する、検索する、複製する等)を防止するのに役立ち得る。
図1は、一実施形態に係る、IC100の単純化されたブロック図である。IC100の構成要素は、IC100のタイプに依存して変わり得るが、一般的に、処理回路110、メモリ120(安全なメモリ125を含む)、一つまたは複数のI/Oインターフェース130、および追加の構成要素(単数または複数)140を含み得る。IC100の他の実施形態は、所望される機能に依存して、より多い、より少ない、および/または異なる、構成要素を含み得る。
I/Oインターフェース(単数または複数)130は、IC100に、たとえば外部バスを介して外部のシステムおよび/またはデバイスと通信することを可能にさせ得る。I/Oインターフェース(単数または複数)130はまた、ジョイントテストアクショングループ(JTAG)(またはIEEE1149.1)のデバッグポートといった、デバッグインターフェースを含み得る。いくつかの実施形態によると、デバッグインターフェースおよび/または他のインターフェースは、ユーザによって無効にされ得る。たとえば、ユーザは、IC100にソフトウェアをインストールした後、デバッグインターフェースを無効にすることが可能であり得る。これらの実施形態はまた、ICの内部のコードに、デバッグインターフェースおよび/または他のインターフェースが無効にされているかどうかを検査することを可能にさせ得る。いくつかの実施形態によると、I/Oインターフェース(単数または複数)130は、IC100に、IC100によって生成されたCSPを外部のエンティティに手動および/または自動で引き渡すことを可能にさせ得る。
メモリ120の容量および/または機能は、IC100のタイプ、所望される機能、および/または他のファクタに依存して変わり得る。メモリ120は、作業メモリ(たとえば、キャッシュ、バッファ等)、および/またはソフトウェア、ファームウェア、および他の機械コードのためのストレージとして利用され得る、たとえば、揮発性および/または不揮発性データストレージ(RAM、ROM、EPROM、EEPROM、フラッシュメモリ等)を含み得る。
実施形態はまた、安全なメモリ125を含み得る。安全なメモリは、制限されたアクセスを有するメモリ120の一つまたは複数の部分を備え得る。すなわち、安全なメモリ125へのアクセスは制限されることができるので、安全なメモリ125のコンテンツは、IC100の外部のエンティティに読み取られる、またはそうでなければ、伝達されることはできない。いくつかの実施形態において、安全なメモリ125は、たとえば、CSP(たとえば、秘密暗号化鍵)を記憶することができ、CSPがIC100の通常動作中に読み取られることおよび/または変更されることを防止することができる。したがって、安全なメモリ125は、IC100自身によって実行される内部コードから保護され得る。さらに、いくつかの実施形態は、メモリ120のある特定の領域が安全かどうか(すなわち、メモリ120のある特定の領域が安全なメモリ125の一部を備えるかどうか)を検査することができるIC100を利用する。
集積回路120の処理回路110は、さまざまなコマンドおよび/または処理を実行可能な回路を含む。処理回路110の形態および機能は、IC100のタイプ、所望される機能、および/または他のファクタに依存して変わり得る。たとえば、マイクロコントローラの処理回路110は、ソフトウェア、ファームウェア、および/または他の機械実行可能なコードを実行するように構成された、プロセッシングコア、コアロジック、および/または類似のものを含み得る。一方で、マイクロプロセッサのための処理回路110は、たとえば、実行ユニット、算術論理演算ユニット(ALU)、シフタ、制御ロジック、および/または類似のものを含み得る。特定用途向けIC(ASIC)および他のタイプのICは、特定のコマンドおよび/またはロジックを実行可能な他の処理回路120を有し得る。いくつかの実施形態によると、IC100の処理回路110は、CSPを生成可能である。加えて、またはあるいは、CSPは、IC100内の特定のCSP生成モジュールのような別の構成要素によって生成されることができる。
図1は、単純化された例示的な実施形態として提供されているにすぎない。他の実施形態は、追加のおよび/または代替の構成要素を含み得る。したがって、追加の構成要素(単数または複数)140は、所望される機能に依存して、さまざまな構成要素のうちのいずれかを含み得る。そのような構成要素は、たとえば、レジスタ、コントローラ、制御ユニット、カウンタ、クロック、デバッグ回路、グルーロジック、フィールドプログラマブルロジック、キャッシュ、バッファ、メモリ管理ユニット(MMU)、および/または類似のものを含み得る。前述したように、所望される機能に依存して、追加の構成要素(単数または複数)は、CSPの生成および/または管理のためのモジュール(たとえば、専用回路および/または機械可読コード)を含み得る。当業者は、多くの追加、省略、代用、および改変を認識するだろう。
図2は、ソフトウェアを利用して方法を実行する一実施形態に係る、安全なCSPの自己生成のための方法200を表すフローチャートである。この方法は、図1に示すIC100の構成要素のうちの一つまたは複数によって実行されることができ、ソフトウェアの初期化が開始されるブロック210で始まり得る。そのような初期化は、たとえば、ICに最初に電源が入れられたときに行われ得る。
ブロック215で、ソフトウェアが初めて実行されているかどうかの決定が行われる。前述したように、近年のマイクロプロセッサおよびマイクロコントローラは、ソフトウェアが初めて実行されているかどうかを検出する能力を含み得る。さらに、単純なソフトウェアフラグおよび/または他のインジケータが、ソフトウェアが初めて実行されるときに設定されることができ、この決定を行うのに役立つ。ソフトウェア以外の手段を利用する実施形態では、他のインジケータおよび/またはデバイスが、処理が初めて実行されているかどうかを決定するために利用され得る。
ソフトウェアが初めて実行されていると決定された場合、処理は次にブロック245へと進み、インターフェースが無効にされているかどうか、および/または、そうでなければ外部の読み取り能力が無効にされているかどうか、が決定される。ここで、ICは、たとえば、デバッグインターフェースが無効にされているかどうか、および/または、ICの外部のエンティティによるCSPまたはCSPが記憶され得るデータ場所の読み取りを可能にする任意の他の手段が存在するかどうか、を決定することができる。異なるICは、異なるインターフェース、ソフトウェア、機能等を有し得るので、外部の読み取り能力が無効にされているかどうかを決定する処理は、異なるIC間で変わり得る。
ブロック220では、外部の読み取り能力が無効にされていないと決定された場合、ICは、CSPがメモリに記憶されているかどうかを確認し得る。CSPがメモリに存在しない場合、方法は単に、外部の読み取り能力が無効にされるまで待機し得る。そうでなく、CSPがメモリに存在する場合、ブロック225で、ICはエラー状態または停止状態に入り得る。
ブロック250では、外部の読み取り能力が無効にされていると決定された場合、CSPが生成され、安全なメモリに記憶(またはそうでなければ、外部のソースによって読み取られることおよび/または操作されることが防止)され得る。前述したように、CSPは、さまざまなセンシティブな値のいずれか(たとえば、公開/秘密暗号鍵のペア、対称鍵、パスワード等)を含み得る。
オプションで、ブロック255で、CSPは、安全なメモリ(または同様のデータ場所)において、書き込み/消去から保護され得る。そのようなステップは、CSPが操作から保護されることを保証するのに役立ち得る。所望される機能、ICのタイプ、および/または他のファクタに依存して、書き込み/消去からの保護は、CSPが改変されることを永続的に防止する手段を含み得る。
方法200は次に、ブロック260へと進むことができ、ICがリブートされる。今回はソフトウェアが初めて実行されていない。
そのようなケース、そして、ソフトウェアが初めて実行されていないすべてのケースでは、方法はブロック215からブロック230へと進み、インターフェース(たとえば、デバッグインターフェース)が無効にされているかどうか、および/または、そうでなければ外部の読み取り能力が無効にされているかどうか、が決定される。オプションで、実施形態、CSPのタイプ、および/または、所望される機能に依存して、ブロック230はまた、CSPが保護(たとえば、書き込み/消去から保護)されているかどうかを決定し得る。そうである場合、方法200はブロック280へと進むことができ、ICは、通常のデバイスの動作(すなわち、通常のICの機能)を受ける。いくつかの実施形態は加えて、CSPがICの外部のエンティティに手動および/または自動で安全に送信され得るステップ(図示せず)を含み得る。
ブロック230で、インターフェースが無効にされていない、または、別の外部の読み取り能力が無効にされていない、と決定された場合には、方法はブロック235へと進むことができ、ICは、エラー状態または停止状態にされる。他の実施形態は、ICを、ICが通常動作を受けることを防止するだろう他の状態にし得る。最終的に、方法200は、ともすればICのCSPのセキュリティを脅かし得る脆弱性を識別し、この脆弱性の持続を可能にするだろう条件下でICが機能することを防止する。
図3は、図2に示した方法200の代替の実施形態としての、安全なCSPの自己生成のための方法300を表すフローチャートである。図3の方法300は、たとえば、ICがCSPを再生成可能である実施形態において実行され得る。方法はブロック310で始まることができ、ソフトウェアの初期化が開始される。ここでも、そのような初期化は、たとえば、ICに最初に電源が入れられたときに行われ得る。
ブロック315では、図2のブロック230と同様に、インターフェースが無効にされているかどうか、および/または、そうでなければ外部の読み取り能力が無効にされているかどうか、の決定が行われる。ここでも、この決定は、デバッグインターフェースが無効にされているかどうか、および/または、ICの外部のエンティティによるCSPまたはCSPが記憶され得るデータ場所の読み取りを可能にする任意の他の手段が存在するかどうか、を決定することを含み得る。
ブロック320では、外部の読み取り能力が無効にされていないと決定された場合、ICは、CSPがメモリに記憶されているかどうかを確認し得る。CSPがメモリに存在しない場合、方法は単に、外部の読み取り能力が無効にされるまで待機し得る。そうでなく、CSPがメモリに存在する場合、ブロック325で、ICはエラー状態または停止状態に入り得る。
オプションで、ブロック330で、CSPがメモリ(たとえば、安全なメモリ)に記憶されているかどうかが決定される。これは、可能であればCSPそのものを読み取ること、および/または、CSPがメモリに記憶されているとのソフトウェアフラグおよび/または他のインジケータを利用すること、を含み得る。そうである場合、方法300は、ブロック355で、ソフトウェアが初めて実行されているかどうかを決定することを含み得る。そうでない場合、方法300は単に、ブロック360で、通常のデバイスの動作に移り得る。そうでなければ、CSPは、ブロック350で、CSPが消去可能な構成において、メモリから消去され得る。しかしながら、他の実施形態は、メモリに記憶され得る任意のCSPを無視および/または上書きすることができる。いずれのケースにおいても、ブロック335で、CSPが生成され、安全なメモリに記憶される。
図2の方法200によるように、図3の方法300はオプションでブロック340を含むことができ、CSPは、安全なメモリ(または同様のデータ場所)において書き込み/消去から保護されることができる。これは、ICが電力供給されている間の一時的な書き込み/消去からの保護を含むことができるので、CSPは、ICが次に再起動されたときに、消去および/または上書きされることができる。
CSPが生成されメモリに記憶されると、方法300は次にブロック345へと進むことができ、ICがリブートされる。ICの外部の読み取り能力が無効にされている場合、ICは、リブートされた後にブロック360で、通常のデバイスの動作に移る。
図2〜3に示した特定のステップは、安全なCSPの生成のための方法を示す例示的なフローチャートを提供している、ということが理解されるべきである。代替の実施形態は、示した実施形態に対する改変を含み得る。たとえば、代替の実施形態は、外部の読み取り能力が無効にされているかどうかを決定するための異なる技法を含み得る。他の実施形態は、CSPを生成および/または記憶する異なる形態を含み得る。さらに、追加の特徴が、特定の応用例に依存して追加または削除されることができる。当業者は、多くの変形例、変更、および代替例を認識するだろう。
図4および5は、それぞれ、図2および3に示したフローチャートの態様に対応する単純化されたフローシーケンスを提供する。図4は、たとえば、一実施形態に係る、本明細書において提供される技法を利用して安全なCSPの生成を実行するための方法400の概略を示すシーケンスを例示する。
方法400はブロック410で始まることができ、方法が初めて実行されていると決定される。本明細書において詳述したように、この決定は、実施形態の所望される機能に依存して、ソフトウェアフラグ、ハードウェアインジケータ、および/または他の技法を利用することができる。
ブロック420で、ICのインターフェースを介して安全なメモリにアクセスする能力が無効にされていると決定される。本明細書において前述したように、これは、デバッグインターフェースが無効にされているかどうかを決定するためのICによる内部セルフチェックを含み得る。加えて、またはあるいは、実施形態は、CSPがICの外部のエンティティから読み取られることおよび/またはICの外部のエンティティに送信されることから保護されているかどうかを決定するために、ICの他のアスペクトをチェックすることを含み得る。
ブロック430で、CSPが生成される。CSPは、たとえば、ICの処理回路および/またはCSPの生成のために構成されたモジュールによって生成されることができる。CSPが生成されると、それは、ブロック440でICの安全なメモリに記憶されることができる。
図5は、別の実施形態に係る、本明細書において提供される技法を利用して安全なCSPの生成を実行するための方法500の概略を示すシーケンスを例示する。ブロック510では、図4のブロック420と同様に、ICのインターフェースを介して安全なメモリにアクセスする能力が無効にされていると決定される。ここでも、実施形態は、CSPがICの外部のエンティティから読み取られることおよび/またはICの外部のエンティティに送信されることから保護されているかどうかを決定するために、ICの他のアスペクトをチェックすることを含み得る。
オプションで、ブロック520で、CSPは、メモリから消去され得る。図3に示すように、これは、メモリに記憶されたCSPが存在するかどうかの決定を含み得る。あるいは、これは、メモリに記憶されたCSPが脅かされないことを保証するための自動処理の一部として行われることができる。
ブロック530で、CSPが生成される。そして、ブロック540で、CSPが安全なメモリに記憶される。いくつかの実施形態において、安全なメモリにCSPを記憶することは、安全なメモリに以前に記憶されたCSPを上書きすることを含み得る。
図4〜5に示した特定のステップは、安全なCSPの生成のための方法を示す例示的なシーケンスを提供している、ということが理解されるべきである。代替の実施形態は、示した実施形態に対する改変を含み得る。たとえば、代替の実施形態は、CSPが書き込み/消去から保護されることを保証するための追加のステップを含み得る。さらに、追加の特徴が、特定の応用例に依存して追加または削除され得る。当業者は、多くの変形例、変更、および代替例を認識するだろう。
本明細書において提供された技法は、従来の技法に対し、安全な製造、より安価な製造、および/または、開発者または製造者による悪意のある行為からの保護、といった一つまたは複数の利点を提供することができる。追加の利点は、鍵を変える必要をなくすことまたは減じること(すなわち、より少ないメンテナンス)、ソフトウェアにおける未知のエラーからの保護、および/または、余計なコストおよび電力消費を必要とし得るSIMカードのような安全な第三者デバイスの使用を回避する能力、を含むことができる。さらに、実施形態は、セキュリティは重要だが、SIM/モバイルデバイスのケースにおけるようにICがいくつかのアイデンティティを維持する必要のない、幅広い応用例に利用されることができる。
実施形態は、さまざまな応用例に利用されることができ、および/または、さまざまな特徴をサポートすることができる。たとえば、実施形態は、周辺機器とのマイクロプロセッサ通信を提供する内部での対称鍵の生成をサポートすることができる。実施形態はさらに、秘密/公開鍵ペアの生成をサポートすることができ、秘密鍵は保護され(たとえば、安全なメモリに書き込まれ)、公開鍵は公表される。実施形態はまた、外部での対称鍵の生成をサポートすることもできる。この後者のシナリオでは、対称鍵は次に、ソフトウェアに記憶されたハードコーディングされたKMS公開鍵を使用して鍵管理システム(KMS)と共有され得る。
上記説明では、例示の目的で、方法が特定の順序で説明された。代替の実施形態では、説明されたものとは異なる順序で方法が実行され得る、ということが理解されるべきである。上述された方法は、ハードウェアの構成要素によって実行されることができ、または、命令によってプログラムされた汎用または専用プロセッサまたはロジック回路といった機械に方法を実行させるために使用され得るプログラミングコードのような機械可読命令のシーケンスに組み込まれることができる、ということもまた理解されるべきである。これらの機械可読および/またはコンピュータ可読命令は、一つまたは複数の不揮発性記憶媒体、たとえば、CD-ROMまたは他のタイプの光学ディスク、フロッピーディスク、ROM、RAM、EPROM、EEPROM、磁気または光学カード、フラッシュメモリ、または、電子命令を記憶するのに適した他のタイプの機械可読媒体に記憶されることができる。あるいは、方法は、ハードウェアとソフトウェアとの組み合わせによって実行され得る。
開示されたシステム、方法、およびデバイスの、例示的かつ本願における好ましい実施形態が、本明細書において詳細に説明されたが、本発明の概念はそうでなくさまざまに具体化および採用されることができること、添付の請求項は従来技術によって限定されるようなものを除く変形例を含むように解釈されることを意図すること、が理解されるべきである。

Claims (20)

  1. 以下の工程を含む、集積回路のための安全なクリティカルセキュリティパラメータ(CSP)の生成を提供するためのコンピュータで実施される方法:
    該コンピュータで実施される方法が集積回路によって初めて実行されていると決定する工程;
    該集積回路のインターフェースを介して該集積回路の安全なメモリにアクセスする能力が無効にされていると決定する工程;
    少なくとも一つのCSPを生成する工程;および
    該少なくとも一つのCSPを集積回路の該安全なメモリに記憶する工程。
  2. 少なくとも一つのCSPを集積回路の安全なメモリから消去されることから保護する工程をさらに含む、請求項1記載の集積回路のためのCSPの生成を提供するためのコンピュータで実施される方法。
  3. コンピュータで実施される方法が集積回路によって二度目に実行されていると決定する工程;
    コンピュータで実施される方法が集積回路によって二度目に実行されている間に、該集積回路のインターフェースを介して該集積回路の安全なメモリにアクセスする能力が無効にされていないと決定する工程;および
    該集積回路の通常動作を防止する工程
    をさらに含む、請求項1記載の集積回路のためのCSPの生成を提供するためのコンピュータで実施される方法。
  4. 集積回路の通常動作が、該集積回路をエラー状態または停止状態にすることによって防止される、請求項3記載の集積回路のためのCSPの生成を提供するためのコンピュータで実施される方法。
  5. 集積回路のインターフェースがデバッギングインターフェースである、請求項1記載の集積回路のためのCSPの生成を提供するためのコンピュータで実施される方法。
  6. 少なくとも一つのCSPが暗号化鍵の公開/秘密ペアを備える、請求項1記載の集積回路のためのCSPの生成を提供するためのコンピュータで実施される方法。
  7. CSPが集積回路によって生成される、請求項1記載の集積回路のためのCSPの生成を提供するためのコンピュータで実施される方法。
  8. 少なくとも一つのCSPを集積回路の安全なメモリに記憶した後に該集積回路をリブートする工程をさらに含む、請求項1記載の集積回路のためのCSPの生成を提供するためのコンピュータで実施される方法。
  9. 集積回路のためのCSPの生成を提供するための命令が組み込まれた非一時的なコンピュータ可読媒体であって、該命令は、コンピュータ実行可能なコードを含み、該コンピュータ実行可能なコードは、
    該コンピュータ実行可能なコードが集積回路によって初めて実行されていると決定し、
    該集積回路のインターフェースを介して該記集積回路の安全なメモリにアクセスする能力が無効にされていると決定し、
    少なくとも一つのCSPを生成し、かつ
    該少なくとも一つのCSPを集積回路の該安全なメモリに記憶する
    ためのものである、
    非一時的なコンピュータ可読媒体。
  10. 少なくとも一つのCSPを集積回路の安全なメモリから消去されることから保護するためのコンピュータ実行可能なコードをさらに備える、請求項9記載の非一時的なコンピュータ可読媒体。
  11. コンピュータ実行可能なコードが集積回路によって二度目に実行されていると決定し、
    コンピュータ実行可能なコードが集積回路によって二度目に実行されている間に、該集積回路のインターフェースを介して該集積回路の安全なメモリにアクセスする能力が無効にされていないと決定し、
    該集積回路の通常動作を防止する
    ためのコンピュータ実行可能なコードをさらに備える、請求項9記載の非一時的なコンピュータ可読媒体。
  12. 集積回路の通常動作を防止するためのコンピュータ実行可能なコードが、集積回路をエラー状態または停止状態にするためのコンピュータ実行可能なコードを含む、請求項11記載の非一時的なコンピュータ可読媒体。
  13. 集積回路のインターフェースがデバッギングインターフェースである、請求項9記載の非一時的なコンピュータ可読媒体。
  14. 少なくとも一つのCSPが暗号化鍵の公開/秘密ペアを備える、請求項9記載の非一時的なコンピュータ可読媒体。
  15. CSPの生成を提供可能な集積回路であって、
    安全なメモリと、
    インターフェースと、
    該安全なメモリと該インターフェースとに結合され、処理を実行するように構成された処理回路と
    を備え、該処理は、
    該処理が該処理回路によって初めて実行されていると決定する工程、
    該インターフェースを介して該安全なメモリにアクセスする能力が無効にされていると決定する工程、
    少なくとも一つのCSPを生成する工程、および
    該少なくとも一つのCSPを該安全なメモリに記憶する工程
    を含む、
    集積回路。
  16. 処理回路が、少なくとも一つのCSPを安全なメモリから消去されることから保護するように構成されている、請求項15記載のCSPの生成を提供可能な集積回路。
  17. 処理回路が実行するように構成された処理が、
    該処理が処理回路によって二度目に実行されていると決定する工程、
    該処理が処理回路によって二度目に実行されている間に、インターフェースを介して安全なメモリにアクセスする能力が無効にされていないと決定する工程、および
    集積回路の通常動作を防止する工程
    をさらに含む、
    請求項15記載のCSPの生成を提供可能な集積回路。
  18. 集積回路の通常動作が、集積回路をエラー状態または停止状態にすることによって防止される、請求項17記載のCSPの生成を提供可能な集積回路。
  19. インターフェースがデバッギングインターフェースである、請求項17記載のCSPの生成を提供可能な集積回路。
  20. 少なくとも一つのCSPが暗号化鍵の公開/秘密ペアを備える、請求項15記載のCSPの生成を提供可能な集積回路。
JP2014530898A 2011-09-15 2012-09-14 安全鍵自己生成 Withdrawn JP2014530418A (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201161535047P 2011-09-15 2011-09-15
US61/535,047 2011-09-15

Publications (1)

Publication Number Publication Date
JP2014530418A true JP2014530418A (ja) 2014-11-17

Family

ID=47881936

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014530898A Withdrawn JP2014530418A (ja) 2011-09-15 2012-09-14 安全鍵自己生成

Country Status (8)

Country Link
US (1) US8832781B2 (ja)
EP (1) EP2756440A4 (ja)
JP (1) JP2014530418A (ja)
KR (1) KR20140061470A (ja)
AU (1) AU2012308278A1 (ja)
CA (1) CA2847855A1 (ja)
SG (1) SG11201400514YA (ja)
WO (1) WO2013040475A1 (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20140089202A1 (en) * 2012-09-27 2014-03-27 Michael K. Bond CRM Security Core
US11244078B2 (en) 2018-12-07 2022-02-08 Nxp Usa, Inc. Side channel attack protection
US20200195432A1 (en) * 2018-12-14 2020-06-18 Nxp Usa, Inc. Self-provisioning and protection of a secret key

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6005943A (en) * 1996-10-29 1999-12-21 Lucent Technologies Inc. Electronic identifiers for network terminal devices
US6202153B1 (en) 1996-11-22 2001-03-13 Voltaire Advanced Data Security Ltd. Security switching device
US9094699B2 (en) * 2004-02-05 2015-07-28 Broadcom Corporation System and method for security key transmission with strong pairing to destination client
JP4818651B2 (ja) * 2005-07-13 2011-11-16 ルネサスエレクトロニクス株式会社 暗号化・復号化回路
US8156322B2 (en) 2007-11-12 2012-04-10 Micron Technology, Inc. Critical security parameter generation and exchange system and method for smart-card memory modules
US20090172420A1 (en) * 2007-12-31 2009-07-02 Kabushiki Kaisha Toshiba Tamper resistant method and apparatus for a storage device
US9444622B2 (en) * 2008-09-15 2016-09-13 Hewlett Packard Enterprise Development Lp Computing platform with system key
US8370645B2 (en) * 2009-03-03 2013-02-05 Micron Technology, Inc. Protection of security parameters in storage devices
KR20110058448A (ko) 2009-11-26 2011-06-01 삼성전자주식회사 다운로드 수신제한 시스템에서 수신기의 보안모듈 부트로더 다운로드 방법 및 장치
US8683188B2 (en) * 2010-10-05 2014-03-25 International Business Machines Corporation Reboot controller to prevent unauthorized reboot
JP5225412B2 (ja) * 2011-03-03 2013-07-03 株式会社東芝 通信装置および通信方法

Also Published As

Publication number Publication date
US8832781B2 (en) 2014-09-09
US20130074145A1 (en) 2013-03-21
KR20140061470A (ko) 2014-05-21
EP2756440A1 (en) 2014-07-23
EP2756440A4 (en) 2015-04-29
NZ622041A (en) 2015-03-27
WO2013040475A1 (en) 2013-03-21
AU2012308278A1 (en) 2014-03-20
SG11201400514YA (en) 2014-04-28
CA2847855A1 (en) 2013-03-21

Similar Documents

Publication Publication Date Title
US11120130B2 (en) Method and apparatus for protecting kernel control-flow integrity using static binary instrumentation
Sun et al. OAT: Attesting operation integrity of embedded devices
US10445494B2 (en) Attack protection for valid gadget control transfers
Sun et al. Trustice: Hardware-assisted isolated computing environments on mobile devices
US10691806B2 (en) Self-measuring nonvolatile memory device systems and methods
Blass et al. TRESOR-HUNT: attacking CPU-bound encryption
US9535712B2 (en) System and method to store data securely for firmware using read-protected storage
US7849315B2 (en) Method for managing operability of on-chip debug capability
US20060112241A1 (en) System, method and apparatus of securing an operating system
EP3779745A1 (en) Code pointer authentication for hardware flow control
US8621298B2 (en) Apparatus for protecting against external attack for processor based on arm core and method using the same
JP2011210037A (ja) 半導体装置及びデータ処理方法
KR20150059564A (ko) 전자 장치의 무결성 검증을 위한 방법, 저장 매체 및 전자 장치
JP2014530418A (ja) 安全鍵自己生成
US10592663B2 (en) Technologies for USB controller state integrity protection
CN108292260B (zh) 用于软件自测试的装置和方法
JP5761880B2 (ja) 自動車
NZ622041B2 (en) Secure key self-generation
JP2014056600A (ja) 電装ユニット及びデータ処理方法
Zhu et al. PULP: Inner-process Isolation based on the Program Counter and Data Memory Address
vor starken Angreifern et al. Trusted Systems in Untrusted Environments: Protecting against Strong Attackers

Legal Events

Date Code Title Description
RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20150604

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20150728

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20160713

A761 Written withdrawal of application

Free format text: JAPANESE INTERMEDIATE CODE: A761

Effective date: 20160824

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20160824