web-dev-qa-db-ja.com

例Seedおよびキーアルゴリズム

エンジンコントロールユニットのシードおよびキーアルゴリズムを設計しようとしています。これは、ECUを再プログラムする機能などのリソースを保護するために使用されます。アイデアは、ECUにシードを要求することです。ECUはバイトの文字列としてそれを提供します。 ECUと両方の秘密計算を実行して、シード値をキー値に変換します。次に、計算したキーをECUに送信し、ECUの計算と一致する場合、リソースのロックが解除されます。

私は自分自身から導出するための計算例を探していましたが、これまでのところ、上記の概念を説明するだけのリソースを考え出しました。誰か私が使用できる具体的な例はありますか?

3
Bondolin

これはさまざまな方法で行われ、完璧な方法はありません。通常、何らかの方法で事前共有キーが含まれます。

ここに例があります リモートデータベース(安全であると想定)を使用して、2つの値ECU IDとチャレンジ)を対応するキー値またはアルゴリズムに一致させるGeneral Motorsから(係数演算子のような非可逆アルゴリズム)。

  1. 診断PCはレベル3のセキュリティアクセス要求を送信します
  2. ECUは、IDと疑似ランダムチャレンジで応答します
  3. 診断PCは、ECUとそのセキュリティキーの(リモート?)データベースに対してIDを参照します。
  4. 診断用PC(またはGM実装)のようなサーバー)が応答を計算して送信します(例:キーMODチャレンジ)
  5. ECUは、これを独自の主要なmodチャレンジ計算と比較し、一致する場合は目的の実行レベルに入ります。

このアプローチは、チャレンジが毎回異なることを確実にし、このプロセスを盗聴に対してより脆弱にします。ただし、対処されていないより大きなセキュリティ問題(セッションハイジャックなど)が残っています。

4
brirus