アプリケーションノート 3675

セキュア認証によるR&D投資の保護

筆者: Scott Jones

要約: ID盗難と偽造IDが氾濫する現代において、確実なIDを実現することは非常に重要です。これは個人のみに限らず、電子製品にも当てはまります。ほぼすべての種類の機器のメーカーは、アフターマーケット企業がOEMサプライチェーンへの導入を試みる偽造コンポーネントに対して自社の製品を保護する必要があります。セキュア認証は、この脅威に対応するための強力な電子的ソリューションを提供するとともに、その他の有用な最終製品の機能を実現します。

このアプリケーションノートは、認証の概念について、特に知的財産保護、エンベデッドHW/SWライセンス管理、セキュアソフト機能/ステータス設定、および耐タンパー性データストレージを含むアプリケーションの要件をセキュア認証用ICという形で解決するマキシムのソリューションについて説明します。

認証とは何か?

認証は、2つ以上のエンティティ間でIDの証明を確立することを目的とした処理です。1方向認証の場合、一方だけが他方に対してIDを証明します。双方向認証では、両方が相互にIDを証明します。最も一般的に使用される認証方式はパスワードです。パスワードの主な問題は、使用時に露出されるため、スパイ行為に対して脆弱である点です。
フランドルの言語学者Auguste Kerckhoffsは、暗号の歴史的な用例を調査したあと、1883年に軍用暗号に関する草分け的な論文で結論を発表しました。Kerckhoffsは、セキュリティは秘匿性に依存するのではなく、鍵の強度に依存すべきだと主張しました。それによって、セキュリティ侵害が発生した場合、システム全体ではなく鍵のみの交換が必要になります。
実証済みの対称鍵ベースの認証方式は、図1に示すように動作します。秘密鍵と認証対象のデータ(「メッセージ」)を入力として、メッセージ認証コード(MAC)が計算されます。次にそのMACがメッセージに付加され、要求に応じて送信されます。メッセージの受取り側も同じ計算を実行し、自分で生成したMACとメッセージで受信したMACを比較します。両方のMACが一致すれば、メッセージは真正です。しかしこの基本的モデルには、固定的なメッセージおよびMACを傍受され、後で(または続けて)非真正な送信者によって再現された場合、真正なものとして誤認識されるという弱点があります。
図1. MAC計算モデル
図1. MAC計算モデル
MACの発行元(たとえば、システムアクセサリ)の真正性を証明するために、受取り側(すなわち、そのアクセサリが接続されるホストシステム)は乱数を生成し、それをチャレンジとして発行元に送信します。次に、MAC発行元はシークレット、メッセージ、およびチャレンジに基づいて新しいMACを計算し、受取り側にそれを送り返す必要があります。発行元が任意のチャレンジに対して有効なMACを生成することができることを証明した場合、シークレットを知っていることが確実になり、真正と考えることができます。図2は、このチャレンジ/レスポンス認証のフローおよび関連するデータ要素を示します。
図2. チャレンジ/レスポンス認証のデータフロー
図2. チャレンジ/レスポンス認証のデータフロー
暗号学では、メッセージから固定長のメッセージ認証コードを生成するアルゴリズムを1方向キャッシュ関数と呼びます。「1方向」というのは、固定長の出力MACから通常はそれより長い入力メッセージ(秘密鍵を含む)を推論することが数学的に実行不可能なことを意味します。
徹底的に精査され、国際的に認定された1方向ハッシュアルゴリズムとして、米国国立標準技術研究所(NIST)によって開発されたFIPS 180 SHA-1とSHA-2の2つがあります。これらのアルゴリズムの基盤となる数学理論は、NISTのウェブサイトで公開されています。これらのアルゴリズムには、以下のような明確な特長があります。1)不可逆性—MACに対応する入力を判定することは、計算時間の面で非現実的です。2)衝突困難性—特定のMACを生成する2つ以上の入力メッセージを発見することは非現実的です。3)高いなだれ効果—入力が少しでも変化した場合、MACの結果に大幅な変化が生じます。これらの理由、およびアルゴリズムが国際的に精査されていることから、マキシムはセキュア認証用ICのチャレンジ/レスポンス認証にSHA-1およびSHA-2を選択しました。さらに、マキシムの最新の製品ではSHA-2のSHA-256バージョンが実装されています。

低コストのセキュア認証—システムの実装

1-Wire®インタフェースにより、マイクロコントローラ(µC)などのデジタル処理機能が存在する任意のシステムに、DeepCover®セキュア認証用IC (DS28E15)などのセキュア認証用ICを容易に追加することができます。最も単純な例の場合、図3に示すように、1-Wireライン用の1つの予備マイクロコントローラポートピンとプルアップ抵抗のみが必要です。しかし、この方式の潜在的な危険性として、非セキュアマイクロコントローラを使用しているため、攻撃者に分析され、セキュリティを理解して侵害される可能性があります。
別の方法として、図4に示すように、1-Wireマスターインタフェースを内蔵したDeepCoverセキュア認証用IC (DS2465) SHA-256コプロセッサなどのICを使用してDS28E15の操作と制御を行うことができます。DS28E15はマイクロコントローラのみの方式でも動作可能ですが、DS2465を使用することには以下のような利点があります。1) SHA-256計算がホストµCからオフロードされます。2)システムのSHA-256シークレットが高いセキュリティで保存されます。3) 1-Wire波形の生成がホストµCからオフロードされます。
図3. 基本的なアプリケーションの例
図3. 基本的なアプリケーションの例
図4. コプロセッサの使用によるセキュリティの強化
図4. コプロセッサの使用によるセキュリティの強化

偽造防止

交換式のセンサー、ペリフェラル、モジュール、または消耗品を使用するシステムは、一般に非正規アフターマーケット企業の標的となります。これらの偽造バージョンは安全性の問題やアプリケーションの品質低下など、全般的にOEMソリューションに悪影響を与える可能性があります。ソリューションにセキュア認証を取り入れることにより、ホストシステムはセンサーやモジュールの真正性をテストして、偽造が検出された場合にアプリケーション固有の対応を行うことが可能になります。図5に示すように、真正性を確認するために、システムと接続されたペリフェラル間のチャレンジ/レスポンスシーケンスが実行されます。
図5. チャレンジ/レスポンスシーケンスによる真正性のテスト
図5. チャレンジ/レスポンスシーケンスによる真正性のテスト

エンベデッドHW/SWライセンス管理

後でライセンス供与されサードパーティによって生産される可能性のあるリファレンスデザインは、知的財産の不正使用を防止するための障壁が必要です。収益面の理由から、リファレンスの使用数の追跡/確認も必要です。DeepCoverセキュア認証用IC (DS28E25)などの事前プログラムされたSHA-256認証用IC (サードパーティメーカーへの納品前にシークレット、ユーザーメモリ、および設定がインストールされるもの)を使用して、これらの要件および他の多くの要件を解決することができます。起動時セルフチェックとして、リファレンス(図6)はDS28E25との認証シーケンスを実行します。ライセンス供与企業とリファレンス電子製品のみが知っている有効なシークレットを備えたDS28E25のみが、有効なMACにより正常に応答することができます。無効なMACが検出された場合、リファレンスプロセッサは適切な、アプリケーション固有の対応を行います。この方式のもう1つの利点として、セキュアDS28E25メモリに保存された設定を介してリファレンス機能のライセンス供与とイネーブルを選択的に行うことが可能です(この概念の詳細については、「ソフト機能管理」の項を参照)。
有効なシークレットを備えたDS28E25 (または他のセキュア認証用IC)は、1)リファレンスをライセンス供与する企業が事前プログラムするか、または2)ライセンス供与企業の入力に従ってマキシムが事前プログラムしたあとサードパーティメーカーに納品するかの、2つの安全な方法のいずれかによってライセンス取得者またはサードパーティメーカーに供給されます。いずれの場合も、ライセンス取得企業またはメーカーに送られるデバイスの数は既知であり、ライセンス料金の検証に使用することができます。
図6. リファレンスデザインの認証
図6. リファレンスデザインの認証

ハードウェアの真正性の検証

ハードウェアの真正性を検証するときは、1) µCのファームウェアまたはFPGA構成の正確なコピーを備えたクローンの回路基板と、2)クローンのシステムホストという、2つのケースについて考慮する必要があります(図7)。この例では、SHA-1ベースのDS28E01-100を使用しています。
図7. ハードウェア認証の例
図7. ハードウェア認証の例
最初のケースでは、ファームウェアまたはFPGAがクローンの回路基板に対して認証を試みます。これが成功するためには、クローンメーカーはユーザーEEPROMにデータを書き込むためにセキュア認証用ICにシークレットをロードする必要があります。これによってデータは正しいように見えますが、シークレットはシステム内で有効ではありません。ファームウェアまたはFPGAの変更には複雑な作業が必要で、ホストとの互換性を維持する必要があるため、ファームウェアまたはFPGA構成はオリジナルの正確なコピーである必要があります。起動フェーズ中にボードがDS28E01-100のチャレンジ/レスポンス認証を実行した場合、DS28E01-100によって生成されるMACはファームウェアまたはFPGAによって計算されるMACと異なるものになります。このMACの不一致は、ボードが真正ではないことの強力な証拠となります。ボードとのチャレンジ/レスポンスシーケンスを実行するシステムによってこれが検出され、その後アプリケーション固有の対応が行われます。
第2のケースでは、回路基板がホストシステムを認証します。ボードは以下の手順を使用してホストの真正性を検証することができます。1)チャレンジを生成してDS28E01-100にチャレンジ/レスポンス認証MACを計算させ、2)それと同じMAC計算の入力データ(もちろんシークレット以外)をネットワークホストに送信すると、ホストはそのデータと自分のシークレットからチャレンジ/レスポンス認証MACを計算して送り返します。両方のMACが一致した場合、ボードはホストが真正だと想定することができます。

ソフト機能管理

電子システムは、ハンドヘルド製品から、ラック数個を占めるユニットまで多岐にわたります。ユニットのサイズが大きいほど、開発コストが高くなります。コストを制御下に維持するために、限られた種類の小型サブシステム(ボード)を組み合わせて大型システムを構築したいという要望が存在します。多くの場合、アプリケーションでサブシステムのすべての機能は必要とされません。これらの機能を削除するよりも、ボードはそのままで単に制御ソフトウェアにより不要な機能をディセーブルする方がコスト効率が向上します。しかし、これによって新しい問題が発生します。全機能を備えたシステム数個を必要とする購入者が知恵を働かせ、全機能を備えたユニット1つと、機能制限されたユニット数個を購入する可能性です。その後、ソフトウェアをコピーすることで、より低コストの簡易版ユニットが全機能を備えたユニットと同様に動作するようになり、システムベンダーへの支払いをごまかすことができます。
DeepCoverセキュア認証用IC (DS28E22)などのマキシムのSHA-256デバイスを各サブシステムのボードに実装することで、このタイプの不正手段からシステムベンダーを保護することができます。チャレンジ/レスポンス認証の役割に加えて、同じDS28E22のユーザーEEPROMに個別のコンフィギュレーション設定を保存することができます。この後の「データセキュリティ」の項で説明するように、このデータは権限のない変更から保護されるため、システムベンダーが完全に制御することができます。コンフィギュレーション設定は、システム設計者の判断によってビットマップまたはコードワードの形で保存することができます。

セキュア認証デバイスの概要

全般的デバイスアーキテクチャ

SHA-1およびSHA-256デバイスのSHAエンジンは、実行する動作に応じて3種類の方法で操作することができます。すべてのケースで、エンジンは入力データを受け取ってMACの結果を計算します。目的となるMACの結果の用途に基づいて、動作のタイプごとにSHAエンジンの入力データが異なります。どのSHA動作の場合でも、対称鍵ベースのセキュアシステムの基本的な要件として、ホストが認証されるためにはスレーブデバイスに保存されているシークレットを知っているかまたは計算することができる必要があります。
注:セキュアかつアプリケーション依存というセキュア認証製品の特長から、このアプリケーションノートではデバイスの詳細については省略しています。この情報については、秘密保持契約(NDA)の締結後に提供される個々のデバイスのフルバージョンのデータシートに記載されています。

チャレンジ/レスポンス認証MAC

SHA-1およびSHA-256セキュア認証用ICの主な目的は、チャレンジ/レスポンス認証です。ホストは乱数のチャレンジを送信して、チャレンジ、シークレット、ユーザーメモリ、およびそれらとともに「メッセージ」を構成するその他のデータからMAC応答を計算するようスレーブデバイスに命令します(図8)。
図8. チャレンジ/レスポンス認証MACのデータフロー
図8. チャレンジ/レスポンス認証MACのデータフロー
計算が完了したあと、スレーブデバイスは検証のためにMACをホストに送信します。次にホストは、有効なシークレットおよびスレーブが使用したのと同じメッセージデータを使用してMACの計算を繰り返します。真正のスレーブのみがチャレンジ/レスポンスシーケンスに正しく応答するため、スレーブから受信したMACとの一致によってデバイスの真正性が示されます。チャレンジは乱数データに基づいていることが非常に重要です。チャレンジが変化しない場合、真正のスレーブによって即座に計算されるMACの代わりに有効な固定のMACを記録/再生して使用するリプレー攻撃が可能になります。

データセキュリティ

真正性の提供に加えて、スレーブデバイスに保存されているデータが確実に信頼可能であることが強く望まれます。この理由から、セキュア認証用ICのEEPROMへの書込みアクセスは安全に制限されています。入力バッファからEEPROMまたは制御レジスタにデータをコピーする前に、スレーブデバイスは要求元ホストに対して有効な書込みアクセス認証MACの提示による真正の証明を要求します。図9に示すように、スレーブデバイスは入力バッファメモリ内の新しいデータ、自分のシークレット、およびその他のデータからこのMACを計算します。
真正のホストはシークレットを知っているかまたは計算することが可能で、有効な書込みアクセスMACを生成することができます。copyコマンド中にホストからMACを受信すると、スレーブはそれを自分自身の結果と比較します。両方のMACが一致した場合のみ、データは入力バッファからEEPROM内のデスティネーションに転送されます。もちろん、書込み保護されたメモリページは、たとえMACが正しい場合でも変更することはできません。
図9. 書込みアクセス認証MACのデータフロー
図9. 書込みアクセス認証MACのデータフロー

シークレットの保護

マキシムのセキュア認証用ICのアーキテクチャは、シークレットをデバイスに直接ロードすることが可能です。シークレットの保護は、読取り保護と(必要に応じて)書込み保護の両方によって提供され、書込み保護は永続的にシークレットの変更を防止します。機器製造施設での初期インストール中にシークレットへのアクセスの安全と制御が確保されている限り、このレベルの保護は効果的です。
シークレットの安全性を強化するには、1)スレーブデバイスに自分のシークレットを計算させる、2)異なる施設で複数の段階にわたりスレーブに自分のシークレットを計算させる、3)固有のデバイスID番号をシークレットの計算に含めることによりデバイス固有のシークレットを作成する、または4) 2と3の組み合わせなど、さまざまな方法が可能です。
個々のセキュア認証用ICがそれぞれのシークレットを計算すると、シークレットの成分のみは既知ですが、シークレット自体は決して公開されません。異なる施設を使用して複数の段階でシークレットを計算すると、シークレットのローカルな成分のみが既知となるため、「最終的な」シークレットの情報を制御する手段が提供されます。シークレットをデバイス固有にすると、ホストにとって追加の計算ステップが必要になりますが、デバイスのシークレットが偶然に発覚した場合の潜在的な損害が最小限に抑えられます。シークレットを複数段階で計算するとともにデバイス固有にすると、可能な最高度のセキュリティが実現します。しかし、システムセキュリティの侵害を防止するために、スレーブ同様、ホストも異なる施設にセットアップする必要があります。
シークレットを計算するように命令された場合、セキュア認証用ICはそのSHA-1またはSHA-2エンジンを使用して、図10に示すようにデバイス固有のデータ項目を使ってMACを計算します。次に、MACの結果を使用して新しいシークレットが算出されます。
図10. 新しいシークレットの計算のデータフロー
図10. 新しいシークレットの計算のデータフロー

結論

マキシムのセキュア認証ソリューションにより、システム開発者は避けることのできないアクセサリやサブシステムの偽造の試みに対する保護を行うことができます。さらに、耐タンパー性を備えたユーザーメモリにより、機能の設定が可能なシステムにおいて機能をイネーブル/ディセーブルするための安全な手段が提供されます。小型ながら強力なシリコンチップは、最終的に大きな効果を実現します。