web-dev-qa-db-ja.com

ハードウェアが正当であることを確認する方法

データを収集してスマートフォンに渡し、データをデータベースに保存するセンサーに取り組んでいます。ハードウェアが正当であることを確認して、データベースに格納されるデータも正当であることを確認できる必要があります。

私の現在の考えは、ハードウェアに最初に接続されたときに暗号化されて送信される秘密キーをハードウェアに保存することです。認証に失敗した場合、以下のデータは拒否されます。

悪意のあるハードウェアが実際のデバイスになりすますことを防ぐために、ハードウェアを認証するための標準はありますか?

10
Lukeyb

これは、公開鍵暗号の仕事のように聞こえます。埋め込まれた秘密鍵の価値があるデバイスからのメッセージに署名します。次に、モバイルアプリとレポート先のサーバーで確認します。

私は提案します:

  1. 各ハードウェアセンサーに一意の秘密キーを埋め込みます。
  2. (作成した)プライベート認証局からの証明書をデバイスに提供します。
  3. CAの公開鍵を電話アプリに入れます。
  4. センサーの秘密鍵を使用してすべてのデータイベントに署名し、センサーのIDと日付/時刻、およびすべてのイベントに一意の識別子を含めます(リプレイ攻撃を防ぐため)。また、イベントに証明書を含めます。
  5. 署名と証明書を使用して、電話アプリはイベントを改ざんする方法がなくても、正規のセンサーからのイベントを確認できます。
  6. アプリはevent + signature + certificate全体を中央サーバーに渡します。中央サーバーは一意のIDと日付/時刻を使用して、イベントが重複していないことを確認できます。

また、攻撃者についても考慮する必要があります。彼らは電話アプリだけを見ているのですか、それともセンサーを破壊しようとしているのでしょうか。彼らは署名される前に彼らは測定値を変更できますか(例えば、温度計のヘアドライヤー:-))

7
Douglas Leeder