賢い人が必ずしも最初にゴールするわけではないという言葉があります。大学時代、私の課題をコピーしていた同級生がいましたが、結局私よりも高い得点を取ることがありました。賢さが必ずしも大学でのトップの成績を保証するわけではなく、自分のアイデアを基に他人が成功を収めるのを見るのは心が折れることでした。
ビジネスの世界も似ています。競合他社が成功しているコンセプトをコピーして市場を支配することは珍しくありません。倫理的に疑問があるものの、偽造デザインは実際にかなり一般的です。設計エンジニアとして、私のデザインの偽造をできるだけ困難にすることが私の仕事です。
PCB全体をエポキシでコーティングすることを除いて、可能な限りのすべての手段を試みました。これには、ハードウェアの正確なコピーを作成して動作させることが不可能になるように、ユニークID EEPROM(電気的に消去可能なプログラム可能読み取り専用メモリ)を使用することが含まれます。組み込みシステムにユニークID EEPROMを含めることで、あなたも最悪のシナリオに備え、デザインの偽造を防ぐことができます。
EEPROMは、小さなデータサイズを保存するのに役立つ不揮発性メモリの一種です。インター・インテグレーテッド・サーキット(I2C)またはシリアル・ペリフェラル・インターフェース(SPI)を介してマイクロコントローラに接続されることが一般的です。EEPROMは数十年にわたり電子分野で使用されており、設定値のようなパラメータを保存するために使用されます。
ユニークID EEPROMは、消去不可能なIDを持つEEPROMです。ユニークIDの長さは、製造元によって32ビットから128ビットまで変わります。理論的には、2つのEEPROMが同じIDを共有する現実的な可能性はありません。これは、インターネット対応デバイスのユニークなメディアアクセスコントロール(MAC)アドレスの概念に似ています。
完全に保護されていない組み込みシステムでは、PCBをリバースエンジニアリングしてマイクロコントローラからファームウェアを抽出することにより、偽造モデルを簡単に作成することができます。もちろん、コード保護機能を有効にしても、ファームウェアの複製が可能である可能性はありますが、より困難になります。
設計にユニークID EEPROMを含め、ファームウェアに検証手順を実装することで、大量の偽造を防ぐことができます。これが私が組み込みシステムで実装する方法です:
EEPROMからユニークIDを読み取り、SDカード内のファイルに保存するシンプルなファームウェアを作成します。このファームウェアはユニークIDの取得のみを目的としており、後に実際のアプリケーションファームウェアによって上書きされます。
偽造プログラムのロードを防ぐためにユニークIDと照合します。
次に、アプリケーションファームウェアに特別な機能を作成し、ファイルからユニークIDを抽出してマイクロコントローラの内部フラッシュメモリに値を書き込みます。その後、マイクロコントローラはSDカード内の保存されたファイルを安全に保管した後に削除する必要があります。
実際のアプリケーションファームウェアにおいて、PCB上のEEPROMのユニークIDとマイクロコントローラのフラッシュメモリ内にハードコードされたEEPROM IDを照合する機能を作成します。これにより、特定のPCBで機能する正しいハードコードされたユニークIDを持つコンパイルされたファームウェアのみが許可されます。
どのような設計においても、セキュリティと利便性は常にスペクトラムの反対側にあります。偽造防止方法の実用性は、アプリケーションの性質と偽造がビジネスに与える影響の予測に依存します。
ユニークID検証の明らかな利点は、組み込みシステムが大量に偽造されることがないことです。ファームウェアが抽出されたとしても、それを複数のPCBに注入しても、どのデバイスも動作することはありません。マイクロコントローラーを自己破壊させる以外に、これは私が今まで実装した中で最も安全な保護策です。
この方法の欠点は、生産がはるかに遅いプロセスになることです。これには、ユニークID抽出ファームウェアをダウンロードし、SDカードを使用することが関与します。ユニークIDが保存された後、生産技術者はアプリケーションファームウェアを注入する必要があります。さらに、ユニークID EEPROMは一般的に通常のものよりも高価です。
ファームウェアの注入プロセスは長くて安全になることを期待してください。
偽造の結果が貴社のビジネスにとって大きな懸念事項である場合、ユニークID EEPROMを配置することが設計を保護する最良の方法です。これは、Altium Designer®のような多機能PCB設計ソフトウェアを使用して簡単に設定できます。統合された中でユニークID EEPROMがすぐに利用できない場合でも、標準のフットプリントを使用して簡単に作成できます。
組み込みシステム設計を偽造から保護するためのさらなるヒントが必要ですか?