私はecryptfsの使用に関する背景知識としてLinuxカーネルキーリングについて少し学びたいと思います。カーネルキーリングはキーをディスクのどこかに保存しますか、それともシステムが起動するたびにプログラムで再初期化されますか?
暗号化に関するマニュアルページとArchlinuxのドキュメントを見ましたが、答えが見つかりませんでした。カーネルキーリングに関する他のドキュメントがあれば知りたいです。
カーネルキーリングがディスクにキーを保存する場合、ファイルはどこに保存されますか?
答え1
Linuxカーネルは自分の名前でディスクに何も保存しません。これは、アプリケーションがファイルシステムインタフェースを介して保存するように指示するファイル、直接アクセス可能なブロックデバイスのデータ、またはマウントされたファイルシステムとディスクボリュームのメタデータを保存します。
また、暗号鍵を同じ媒体に格納することは意味がない。
暗号化キーはRAMにのみ保存されます。暗号化されたファイルシステムがインストールされる前に入力されます。キーは通常、ユーザーが入力したパスワードから派生しますが、スマートカードなどからロードすることもできます。これカーネル文書詳細があります。
ボリュームの外側のファイルにボリュームの暗号化キーを保存し、ファイルをロードできます。たとえば、ブート時に物理的に挿入されるリムーバブルドライブにキーを置くことは合理的です。ただし、カーネルはこれを自分で実行せず、代わりにシステムの起動スクリプトでこれを行います。
答え2
カーネルキーリングに関するドキュメントは、カーネルソースツリーにあります。
https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/Documentation/security
eCryptfsで使用されるキーは、ディスクにプレーンテキストとして保存されません。 ecryptfs-utilsプロジェクトのユーティリティは、デフォルトでキーデータをディスクに保存する前に、ユーザーが提供したパスワードでキーをラップします。起動するたびに、ユーザーはユーザーが提供したパスワードを入力する必要があります。
答え3
つまり、ディスクではなくメモリに保存しません。通常、特に指定しない限り、この時間が経過するとメモリから自動的に削除されるようにタイムアウトがあります。
カーネルキーリングの使用と「keyctl」による使用に関する私のメモ
https://antofthy.gitlab.io/info/crypto/keyring_linux_kernal.txt
これには、カーネルキーリングのさまざまな側面に関するさまざまなドキュメントへの複数のリンクが含まれています。
ナレーター:暗号化されたファイルを編集するときにパスワードを保存するためにこの研究を行いました!これにより、ユーザーがファイルを保存したときに、編集者はパスワードを2回入力しなくてもファイルを再暗号化できます(おそらく誤ってパスワードを数回変更した可能性があります)。