web-dev-qa-db-ja.com

SSDを暗号化しながら無人で起動するにはどうすればよいですか(linux)?

カメラフィードからのビデオをオーバーレイで表示するシステムがあり、ユーザーの介入なしに起動する必要があります(より高速です)。ただし、これらのシステムは顧客の手に渡るので、リバースエンジニアリングについて心配しています。

OS(linux)、ソフトウェア、ログはmSATA SSDに保存されます。 CPUは4GBのRAMを搭載した第4世代Core i3です。

基本的に、悪意のある顧客や競合他社がSSDを取り外してアプリケーションコードを盗むのをどのように防ぐことができますか?明白な答えはドライブを暗号化することですが、無人で起動する必要があります。次の論理的なステップは、実行時にソフトウェアを復号化することですが、復号化キーをプレーンテキストのどこかに保存する必要がありますか?

オンボードのTPMモジュールがありますが、これは解決策かもしれませんが、これを使用するための適切なドキュメントを見つけることができませんでした。

私はあらゆる提案を受け入れます。

6
Chriszuma

概観

  1. ディスクを暗号化する
    • 使用する dm-cryptおよびLUKS
  2. seal TPMへのキー。よく知られているPCRセットに従ってアクセス制限を使用します。
  3. セキュアブートを使用する
    • Intel TXT および TBoot は、Linuxカーネルを安全に起動できます。 CPUとチップセットがTXTをサポートしているかどうかを確認する必要があります。

安全保障

  • セキュアブートがなければ、TPMがすべての人にキーを解放しないようにする唯一の方法はパスワードを使用することです-無人操作が必要な場合は実行できません。

  • ディスクは、特定のTPMを備えたマシンでのみ復号化できます。

  • キーは、セキュアブート後にのみ解放されます。したがって、ディスクにアクセスできるのは、ユーザーが承認したソフトウェアだけです。ただし、システムを更新できるようにするには、適切な更新戦略を設計する必要があります。 (更新が問題になる場合)

  • TPMは、低コスト(<100€)でだまされる可能性があります ハードウェア攻撃 。これにはいくつかのスキルが必要ですが、完全に実行可能です。

  • キーは、RAMを削除し、特別なデバイスを使用してそれを読み取ることによっても取得できます。ただし、インテルTXTによるパラメーターのリセット中にワイプされます。

  • バックアップは常に問題です。バックアップ内の貴重なデータに簡単にアクセスできる場合、すべてのプラットフォーム保護は何の価値もありません。同じシステムにバックアップを保存する場合、それはバックアップではありません。

  • 実行時の動作!顧客が実行中のシステム(SSH、HTTPなど)でアクセスできる場合、ディスクがマウントされ、すべてのデータにアクセスできます。

リンク集

数年前にprotorype研究プロジェクトがリリースされたとき、そこにもいくつかの情報が見つかる可能性があります。 IAIK acTvSM Platform

5
Scolytus