
eCryptfsを使用してホームディレクトリを暗号化し、ユーザーがログインせずにファイルにアクセスしたいと思います。 pam_mountプログラムは暗号化されたファイルシステムを自動的にマウントしますが、これはユーザーがログインした場合にのみ発生するようです。ユーザーにログインを要求しない、または自動ログインを有効にせずにこれを行う方法はありますか?
おそらく間違った方向に行っているようです。 Pythonプログラムを静的ディスプレイとして実行しようとしていますが、別のコンピュータにドライブをマウントして暗号化されていないファイルを表示できる人にPythonコードを公開したくありません。 。アプリケーションはsystemdサービスを使用して開始されます。
答え1
アプリケーションを実行してスクリプトを使用して表示するためにデータを読み取ることができるようにしたいのですが、人々がコンピュータにアクセスしてハードドライブを取り外すことができる場合は、データを読み取れないようにしたいと思います。
暗号化は役立ちますが、キーがディスクにない場合にのみ可能です。したがって、自動マウントは忘れてください。役に立ちません。鍵がディスク上にある場合、データを暗号化しないよりもセキュリティは向上しません。
キーがディスクにない場合はどこにありますか?
- キーはパスワードから派生できます。ただし、起動時に誰かがパスワードを入力する必要があります。DMパスワードecryptfsより設定が簡単です。 ecryptfsは各ユーザーが独自の暗号化キーを持つようにマルチユーザーシステム用に設計されていますが、dm-cryptはディスク全体またはパーティションを暗号化するように設計されています。
- キーは、コンピュータに恒久的に接続されていない他のリムーバブルハードウェアに存在する可能性があります。最も簡単な解決策は、dm-cryptとUSBドライブまたはSDカードのキーファイルを使用することです。同様に、キーを含むドライブを挿入するには、起動時に誰かが必要です。
- キーは、コンピュータに恒久的に接続されている別のハードウェアに存在できます。ただし、攻撃者が別のディスクから起動し、キーを回復してから元のディスクを復号化するのを防ぐ必要があります。別のディスクから起動し、既存のディスクの起動コードを変更してデータをエクスポートしたり、パスワードのないログインを許可したりできるプログラムを追加してから、元のディスクから起動します。だからどんな形でも必要です。セキュアブート。 (下図のようにセーフブートです。あなたキーを持ってコンピュータ上で実行されることを制御できることは、製造元がキーを持っていて、ユーザーが選択したオペレーティングシステムをインストールするのを防ぐセキュリティブートとは対照的です。 )
物理的なセキュリティに依存したくない場合(電動ツールなしでは開けられないロックされたボックスにコンピュータを置く)、コンピュータが起動するたびに誰かが介入したくない場合は、セキュリティ起動が唯一の解決策であることを確認してください。
これは、次のような機械が必要であることを意味します。完全な生産管理制御可能なデバイスまたは制御可能なSecure Bootを搭載したArmボード(ややまれにSecure Bootを搭載したAndroid携帯電話またはiPhoneでアプリを実行できます)。
答え2
Gilesが指摘したように、明らかに鍵が必要ですどこかに、パスワードを入力したり、外部USBを手動で接続したりせずにこのプロセスを自動化するには、デフォルトでTPMまたはそれに対応するデバイスが必要です。
より正確に言えば、技術的には必要ありません。セキュアブート。このフレーズは時々緩く使用されているようですが、この記事ではブートチェーンコンポーネントのデジタル署名を検証するUEFI仕様のブートセキュリティ機能について言及しています。実際、セキュアブートとTPMは完全に独立しています。 TPMなしでセキュアブートを使用したり、セキュアブートなしでTPMを使用したり、2つを同時に使用したりできます。
さらに、TPMは、セキュアブートと呼ばれる同様の技術と共に、より一般的に使用されます。信頼できるブートただし、TPMで信頼できるブートを使用する必要はありません。ただし、システムのどのコンポーネントを信頼チェーンに接続できるかを決定する能力が拡張され、そのコンポーネントの整合性が使用可能かどうかを決定する上で重要な役割を果たすことができます。信頼できるスタートアップにおける役割。 TPM は秘密を必要とする一部のソフトウェアに秘密を渡します。
多くの実際の詳細を除いて、非常に簡単な要約では、TPMはSHA-1および/またはSHA-256ハッシュダイジェスト(TPMバージョンによって異なります)を取得します。測定、マシンの起動時にシステムのソフトウェアコンポーネントです。 PCR またはプラットフォーム構成レジスタと呼ばれる TPM 内部レジスタに蓄積されます。どのコンポーネントを測定するファームウェア/ソフトウェアの特性は、システムの個々のコンポーネントが全体的なパラダイムをどのようにサポートしているかに大きく依存しますが、最終的にはTPMを介してさまざまな秘密をロックするために使用できる多くの測定が必要です。 。たとえば、キーはTPMのNVRAMに書き込まれ、これらの測定値の特定のセットにロックされる可能性があるため、正確なセットとその値が存在する場合、または書き込み時に指定された値と一致しない限り、TPMは読み取りアクセスを許可しません。他の方法もありますが、ここでは簡単に紹介します。
しかし実際には、これは最終的にソフトウェアを書くか、何かを使うようになることを意味します。既存の、TPMとの通信を処理し、TPMから秘密を取得し、LUKSパーティションの復号化など、必要なすべての目的に使用します。