AVR / Arduinoでのコードの保護と更新の配信


9
  1. AVRベースのデバイスにフラッシュされたコードをリバースエンジニアリングから保護する最良の方法は何ですか?
  2. コードを公開せずに自分でフラッシュするようにエンドユーザーに更新を提供する簡単な方法は何ですか?(暗号化されたイメージを復号化するブートローダーを使用していますか?)

DRMを宣伝するために私を非難しないでください。私はオープンプラットフォームを支持しています。


しないでください。ありますNO WAYする全く逆のハードウェア/ソフトウェアのエンジニアリング、悪意のある人物の可能性を防ぐには。アンチRE対策が行うことは、元に戻すまでの時間を長くすることだけです。
コナーウルフ

回答:


9

最初:

チップにはヒューズがあり、外部ツールがチップからコードを読み取らないように設定できます。データシートやプログラマーのドキュメントで保護ヒューズを探します。

完璧ではありませんが、単純な攻撃からあなたを守ります。

第二:

ファームウェアを安全にダウンロードすることはできません。AVRは保護領域を自己プログラミングできません。

http://www.atmel.com/dyn/resources/prod_documents/doc1644.pdf

できる最善の方法は、暗号化されたトークン言語(ベーシック、フォースなど)を使用し、暗号化されたトークンを空き領域にプログラムできるブートローダーを使用してチップ上でインタープリターを保護することです。実行中、チップはその場で命令を解読して実行します。


3
ヒューズが完全ではない場合、どのような種類のヒューズがそれを迂回できますか?

1
@匿名-チップのカバーを化学的にエッチングし、電子顕微鏡、レーザー、およびマイクロプローブを使用して、シリコンを表示、操作、および編集します。少なくとも500ドルの費用がかかりますが、stbraがデバイスに投入する作業よりも安くなります。
ケビンフェルメール

@KevinVermeer $ 500ですか?それはそれよりもはるかに高価になると私には思えます。
NickHalden 2012年

アダム、エラーがあったのでコメントを削除しました
hulkingtickets 2013年

3

それが重要であり、競合他社がコードを盗むことを特に心配している場合は、コードセグメントのIP保護を解除してください。とにかくプロジェクトからお金を稼ぐつもりなら、これを調査する必要があります。

コードの特定の要素は、特許を取得するか(特定の処理方法と新しいアルゴリズムについて)、工業デザインとして登録することができます(外観、レイアウト、およびデバイスへのコードの適用)。これについては、IP弁護士に相談することをお勧めします。


1

シリアルポートを介して暗号化されたデータを受け入れる独自のブートローダーを作成し、それを復号化してコードストレージ領域に保存した場合、安全なコードファームウェアの更新が可能です。各デバイスは、カスタムブートローダーに独自の復号化キーを持つこともできます。


1
@Adam Davisが言っていることは、ブートローダー(作成したものでも)を使用する場合、ロックビット保護領域をプログラムすることはできないということです。したがって、独自の暗号化されたブートローダーを作成した場合、チップが読み取られるのを防ぐことはできません(問題1)。とにかく、それはリンクとデータシートから得ているもののようです。
ルー

ブートローダーとコードが暗号化されている場合、2番目の問題は解決しますが、十分に安全な暗号化を使用すれば、最初の問題はほぼ解決されます。(uCの速度はボトルネックになる可能性があります)。
Rick_2047

そうだね。@Adam Davisは上記の暗号化されたトークン言語を提案しました。
ルーマール
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.