要約:個人情報の盗難や偽造IDの時代においては、確実に身元を証明することができることが極めて重要なことになります。このことは個人だけでなく、電子製品にも当てはまります。システムベンダは「外部」のハッカーの攻撃から製品を保護し、またクローンハードウェアによってセキュリティが「内部」で危険に晒されないようにする必要があります。これらの異なる要件を実現するための鍵となるのが「認証」です。
このアプリケーションノートでは、認証の概念、特にセキュアメモリ方式のマキシムのソリューションについて説明します。このソリューションによって、アプリケーション要件(知的財産の保護、組み込み型HW/SWのライセンス管理、セキュアなソフトによる機能とステイタスの設定、および不正操作防止データストレージなど)に対してセキュアな制御と保護を実現します。
認証とは
認証とは、2つ以上のエンティティ間で身元を証明することを目的とするプロセスです。一方向認証の場合、一方の当事者のみが自らの身元を他方の当事者に対して証明します。双方向認証の場合は、両方の当事者が自らの身元を互いに証明します。最も一般的に使用される認証方法はパスワードです。パスワードに関する主な問題は、パスワードは使用するときにさらけ出すことになるため、スパイ行為に対して脆弱なことです。
フランドルの言語学者Auguste Kerckhoffsは、暗号化技術が歴史上どのように使われてきたかを調査した後、1883年に軍用暗号に関する革新的な論文でその成果を公表しました。Kerckhoffsは、セキュリティは、はっきりしないものに頼るのではなく、鍵の強度に依存すべきであると主張しました。その理由は、侵害があった場合、システム全体ではなく鍵のみを交換すればよいからです。
鍵をベースにした認証は、図1に示すように機能します。共通鍵および認証対象のデータ(「メッセージ」)を入力として取得し、メッセージ認証コード(MAC)を計算します。次に、MACをメッセージに付加します。メッセージの受信者は同じ計算を行い、MACのバージョンをメッセージとともに受信したバージョンと比較します。両方のMACが一致すれば、メッセージは本物です。ただし、この基本モデルの欠点は、傍受されたメッセージを本物でない送信者が後で再現することで、本物と間違えられる可能性があるということです。
 図1. MACの計算モデル
MAC発信者の信憑性を証明するため、受信者が乱数を生成し、それを発信者へのチャレンジとして送信します。次に、MAC発信者は共通鍵、メッセージ、およびチャレンジに基づいて新しいMACを計算し、受信者に返送します。発信者がいずれのチャレンジに対しても有効なMACを生成することができることを証明した場合、明らかに発信者は共通鍵を知っており、本物と見なすことができます(図2を参照してください)。このプロセスのことを専門用語でチャレンジ&レスポンス認証といいます。

図2. チャレンジ&レスポンス認証のデータフロー
暗号化技術では、メッセージから(固定長の)メッセージ認証コードを生成するアルゴリズムを一方向ハッシュ機能と呼びます。「一方向」とは、固定長のMAC出力から、通常はMACより長いメッセージを割り出すことは極めて困難なことを意味します。一方、暗号化では、暗号化されたメッセージのサイズは元のメッセージに比例します。
徹底的に吟味され、国際的に認定された一方向ハッシュアルゴリズムはSHA-1です。SHA-1は米国標準技術研究所(NIST)によって開発され、国際規格ISO/IEC 10118-3:2004へと発展しました。このアルゴリズムの基となる計算は、NISTのウェブサイトで公開されています。SHA-1アルゴリズム特有の特長は、1)非可逆性―MACに対応する入力を求めることは計算上、実行不可能です。2)衝突耐性―所定のMACを生成する2つ以上の入力メッセージを見つけることは実質的に不可能です。および3)大きな「なだれ」効果―入力が少しでも変化すると、MACの結果が大きく異なります。これらの理由によって、またアルゴリズムが国際的に吟味されていることもあり、マキシムは、セキュアメモリのチャレンジ&レスポンス認証としてSHA-1を選択しました。
低コストのセキュアな認証―機能の実装
DS2432は、1-Wireインタフェースを備えているため、マイクロコントローラ(µC)などのディジタル処理能力を備えた任意の回路に簡単に付加することができます。図3に示すように、最も単純な例では、必要なものは1個の空きI/Oピンと1-Wireライン用のプルアップ抵抗器のみです。基板の計算能力や残存するプログラム記憶空間がMACの計算に不十分な場合、DS2460 SHA-1コプロセッサを使用するか、あるいはこのタスクをシステムまたはネットワーク内の最も近いホストに任せることができます。コプロセッサには、ホストプロセスのプログラムコードではなくセキュアメモリにシステムの共通鍵を安全に格納することができるという追加の利点があります。
 図3. 標準的なシステム環境
組み込み型HW/SWのライセンス管理
参照設計は、後でライセンスを供与され、サードパーティによって製造される可能性があり、知的財産の違法使用を防ぐための障壁が必要です。収益を得るために参照利用数を追跡し、確認することも必要です。DS2432をあらかじめ設定することによって(共通鍵とメモリの設定をサードパーティ製造業者に送る前にインストール)、これらの要件やさらに高度な要件を簡単に解決することができます。パワーアップ時のセルフチェックとして、参照設計(図4)はDS2432を用いて認証シーケンスを実行します。有効な共通鍵(ライセンス供与の企業と参照電子機器のみが知っている)を備えたDS2432のみが有効なMACでの応答に成功します。無効なMACが検出されると、参照プロセッサはアプリケーション固有の適切な処置を実行します。さらに、この方法には、DS2432のセキュアメモリの設定によってライセンスを選択的に供与して参照機能を有効にすることができるという利点もあります(この概念の詳細については、「ソフトによる機能管理」の項を参照してください)。
64ビットの有効な共通鍵を備えたDS2432は、ライセンシーまたはサードパーティの製造業者に、以下の2つのセキュアな方法の1つによって提供されます。すなわち、a)参照設計のライセンスを供与する企業があらかじめ設定する。あるいは、b)ライセンス供与企業の入力にしたがってマキシムがあらかじめ設定し、その後でサードパーティ製造業者に配布するというものです。いずれの場合も、ライセンシーまたは製造業者に送られるデバイスの数はわかっているため、これを使用してライセンス料を確認することができます。
 図4. 参照設計の認証
ハードウェアの信憑性の検証
ハードウェアの信憑性を検証するときには、2つのケースを考慮に入れる必要があります(図5)。すなわち、1)ファームウェア/FPGA構成を正確にコピーしたクローン回路基板、および2)クローンシステムホストです。
 図5. HWの認証例
最初のケースでは、ファームウェア/FPGAはクローン回路基板を認証しようとします。クローン製造業者は、データをユーザのEEPROMに書き込むため、共通鍵をDS2432にロードする必要があります。これによってデータは正しく見えますが、共通鍵はシステムで無効です。ファームウェア/FPGの変更は複雑であるため、またホストとの互換性を維持するため、ファームウェア/構造はオリジナルの正確なコピーでなければなりません。パワーアップ時に基板がDS2432のチャレンジ&レスポンス認証を実施した場合、DS2432が生成するMACはマイクロコントローラ/FPGAが計算するMACとは異なります。このMACの不一致は、基板が本物でないという強力な証拠です。このことは、基板に備わるチャレンジ/レスポンスシーケンスを実施するシステムによって検出され、次にアプリケーション固有の処置が実施されます。
2番目のケースでは、回路基板はホストシステムを認証しようとします。基板は、以下の方法を使用してホストの信憑性を検証することができます。すなわち、1)チャレンジを生成し、DS2432がチャレンジ&レスポンスの認証MACを計算する、および2)同じMAC計算入力データ(当然、共通鍵は除きます)をネットワークホストに送信し、次にホストがデータとホスト所有の共通鍵からチャレンジ&レスポンスの認証MACを計算して返す、というものです。両方のMACが一致した場合、基板はホストが本物であると想定することができます。ただし、DS2432とネットワークホストの両方がセキュリティの危険に晒されている場合にも一致することがあります。
ソフトによる機能管理
電子システムは、ハンドヘルド製品から複数のラックを備えたユニットまでさまざまな範囲に及びます。ユニットのサイズが大きいほど、開発コストがかかります。コストを管理するため、より小さなサブシステム(基板)を少数選択することによって大規模システムを構築したいという要望があります。多くの場合、アプリケーションでサブシステムのすべての機能が必要とは限りません。これらの機能を取り除くのではなく、基板をそのままにして、単に制御ソフトウェアで機能を無効にする方が低コストになります。ただし、これによって新しい問題が生じます。機能を完全装備したシステムを複数必要とする賢明なお客様ならば、機能を完全装備したユニットを1つと機能を削減したユニットを複数購入する可能性があります。その後でソフトウェアをコピーすれば、削減した方のユニットも、より低価格で完全装備のシステムと同様に動作するので、システムベンダへの支払をごまかせることになります。
各サブシステムの基板上のDS2432は、システムベンダをこのタイプの不正手段から保護します。同じくDS2432は、チャレンジ&レスポンス認証に役立つことに加えて、ユーザのEEPROMに個々の構成の設定値を格納することができます。後で「データセキュリティ」の項で説明するように、このデータは不正な変更から保護され、システムベンダが完全に制御することができます。構成の設定値は、ビットマップ、またはシステム設計者が適切と考えるコードワードの形で格納することができます。実用的な理由から、構成はできるだけ簡単に設定可能なようにしてください。また、1-Wireインタフェースを備えているため、図6に示すように、必要なことは、1つのトランジスタとプローブポイントを追加するだけです。基板の残りの部分に電力を供給しなくても、プローブポイントを介して構成をDS2432に書き込むことができます。サブシステムが通常の環境で動作するとき、MOSFETはDS2432を他の回路からアイソレートしますが、DS2432への通常のアクセスを妨げることはありません。

図6. 構成のプローブポイントの追加
さらに付け加えるなら、この設定値の構成によって、お客様のサイトにシステムを設置した後、リモートで機能をアップグレード/変更することが可能です。構成/機能管理に使用されていないユーザEEPROMは、電子名札の形で基板識別のために使用することができます。この機能は、マキシムのウェブサイトにある『アプリケーションノート178:1-Wire製品によるプリント回路基板の識別』で詳細に説明されています。
DS2432の認証機能の詳細
一般的なデバイスのアーキテクチャ
1-Wireインタフェースを備えたDS2432 1kb SHA-1セキュアメモリの主要なデータ要素とデータフローの経路を図7に示します。8バイトの共通鍵とバッファメモリ(スクラッチパッド)は容易に認識され、このバッファメモリはチャレンジを一時的に格納します。上記以外のデータ要素は、ユニークなデバイスID番号(1-Wireの標準機能)、4ページのユーザEEPROM、制御レジスタ、およびシステム定数です。
デバイスIDは、1-Wireネットワークのノードアドレスの役割を果たしますが、認証にも使われています。ユーザメモリは認証対象の「メッセージ」の主要な部分を保持します。Seed定数は書式要件を満たすため、また64バイトのSHA-1計算用入力データブロックを構成するためのパディングとして必要です。制御レジスタは、オプションである共通鍵の書込み保護やEEPROMエミュレーションモードなどのデバイス固有の機能を実施します。これらの機能は一般に認証プロセスには関与しません。

図7. DS2432 SHA-1セキュアメモリのデータフローモデル
デバイスID番号およびユーザEEPROMの読出しには制限はありません。バッファメモリへの読出し/書込みはフルアクセスが許可されています。共通鍵をじかにロードすることが可能ですが、読み出すことはできません。ユーザメモリまたはレジスタの内容を変更するには、ホストとスレーブ(すなわちDS2432)の両方が計算した書込みの認証MACが一致し、バッファメモリからEEPROMへの経路を開くことが必要です。
DS2432のSHA-1エンジンは、MAC結果の目的に応じて3つの方法で動作させることができます。いずれの場合も、SHA-1エンジンは64バイトの入力データを取得し、そのデータから20バイトのMAC結果を計算します。違いは入力データにあります。セキュアなシステムの基本要件として、ホストは、アプリケーションで有効/本物のスレーブデバイスの共通鍵を知っているか、あるいは計算可能であることが必要となります。
チャレンジ&レスポンスの認証MAC
DS2432の主要な目的は、チャレンジ&レスポンスの認証です。ホストはランダムチャレンジを送信し、チャレンジ、共通鍵、ホストが選択した1つのメモリページのデータ、および「メッセージ」をともに構成する追加データからレスポンスMACを計算するようDS2432に指示します(図8)。

図8. チャレンジ&レスポンスの認証MACの入力データ
計算が終了すると、DS2432は検証のためにそのMACをホストに送信します。次に、ホストは、有効な共通鍵およびDS2432と同じメッセージデータを使用してMAC計算を繰り返します。DS2432から受信したMACが一致すれば、このデバイスを認証します。これは、本物のDS2432のみがチャレンジ&レスポンス認証シーケンスに正しく応答するからです。チャレンジがランダムデータに基づいていることが極めて重要です。チャレンジをまったく変更しなければ、本物のDS2432が瞬時に計算したMACではなく、記録されて再現された有効な静的MACを使用した反射攻撃を許すことになります。
データセキュリティ
スレーブデバイスの信憑性を証明すること以上に、デバイスに格納されたデータを信頼することができるということが強く望まれます。このため、DS2432 EEPROMへの書込みアクセスは安全上、制限されています。スクラッチパッドのバッファメモリからEEPROMまたは制御レジスタにデータをコピーする前に、DS2432はホストに対して、信憑性を証明するために書込みアクセスの認証MACを提供するよう要求することが必要となります。図9で示すように、DS2432は、スクラッチパッドのバッファメモリにある新しいデータ、その共通鍵、更新されるメモリページのデータ、および追加データからこのMACを計算します。
本物のホストは共通鍵を知っており、有効な書込みアクセスMACを計算することができます。DS2432は、コピーコマンド実行中にホストからMACを受信すると、受信したMACを自らの計算結果と比較します。両方のMACが一致する場合にのみ、バッファメモリからEEPROMのコピー先にデータが転送されます。当然ですが、MACが正しい場合でも、書込み保護されたメモリページを変更することはできません。

図9. 書込みアクセスの認証MACの入力データ
共通鍵の保護
DS2432のアーキテクチャでは、共通鍵をデバイスに直接ロードすることができます。共通鍵の保護は、読出し保護、および必要に応じて書込み保護の両方によって実現されます。この書込み保護によって、共通鍵は決して変更されなくなります。この保護レベルは、共通鍵へのアクセスがセキュアで、かつ機器の製造サイトで管理されている限り有効です。
共通鍵の品質は、さまざまな方法で向上することができます。すなわち、a)DS2432に共通鍵を計算させる、b)複数の段階でDS2432に共通鍵を計算させて各サイトで実施する、c)共通鍵の計算にユニークなデバイスID番号を含めることによってデバイス固有の共通鍵を生成する、あるいはd) bとCの組み合わせがあります。
各DS2432が共通鍵を計算する場合、共通鍵の構成要素のみがわかり、共通鍵そのものは明らかにされません。各サイトを使用して複数の段階で共通鍵を計算した場合、共通鍵のローカル要素のみがわかります。これが「最終」の共通鍵が知られないようにする方法です。共通鍵がデバイス固有の場合、ホストで追加の計算ステップが必要となりますが、誤ってデバイス共通鍵が知られた場合でも、予想される損害は最小限となります。共通鍵を複数の段階で計算し、さらにデバイス固有にすれば、最高レベルの共通鍵が得られます。ただし、ホストはスレーブと同様、システムの共通鍵が危険に晒されることを防ぐため、各サイトでセットアップする必要があります。
共通鍵を計算する前に、最初に既知の値を共通鍵としてロードする必要があります。この既知の共通鍵を利用して、新しい共通鍵の計算に含まれる32バイトのデータを4つのメモリページのいずれかに書き込む必要があります。次に、部分共通鍵をDS2432のスクラッチパッドのバッファメモリに書き込みます。部分共通鍵とは、たとえば、計算に使用したメモリページ番号とユニークなデバイスID番号であり、CRCバイトやその他のアプリケーション固有の8バイト値は除外されます。
DS2432は、共通鍵を計算するよう指示された場合、SHA-1エンジンを起動し、図10に示すように、各入力データ項目を使用してMACを計算します。20バイトのMACの下位8バイトは自動的に共通鍵のメモリ領域にコピーされ、直ちに有効になります。

図10. 共通鍵を計算するための入力データ
結論
セキュアな認証機能を把握してこれを適切に実装すると、競争上の優位性を得ることができます。また、知的財産を保護するだけでなく、セキュアなソフトによる機能の設定を備えた共通のHWプラットフォームを用いて製造コストを削減するのにも役立ちます。DS2432のデータセキュリティは、リモートで構成変更することも可能であり、技術者の貴重な時間を節約します。小さなシリコンチップで、最終結果に大きな違いをもたらすことが可能となります。
フィードバックをお寄せください。 内容に満足されましたか、あるいは満足されていませんか?もっと良いページにできると思いますか?あるいは、単なるコメントでも結構です。フィードバックをお待ちしています。—マキシムはお客様からいただく訂正、提案を元に改善していきます。
このページを評価し、フィードバックを送信する。
自動アップデート
お客様が関心のある分野でアプリケーションノートが新規に掲載された際に自動通知Eメールの受信を希望する場合は、EE-Mail™にご登録ください。
| その他の情報 | |
APP 3675: May 24, 2006
|
|
|
|
ダウンロード、PDFフォーマット (111kB)
AN3675,
AN 3675,
APP3675,
Appnote3675,
Appnote 3675
|
|