encfsパスワードはどこに保存されますか?

encfsパスワードはどこに保存されますか?

encfsはどのように暗号化されたディレクトリのパスワードを保存しますか?

私が知っている限り、encfsはencfs6.xmlパスワードを使用してエンコードされた実際の復号化キーを格納するために使用されます。私もこれがencfs6.xml解読に必要な唯一のファイルであることを理解しています。したがって、パスワードハッシュも同じファイルに保存する必要があるとします。ただし、ファイルにはのみ表示されますencodedKeyDatasaltData

私が知りたいのは、encfsが提供された情報を使用して正しいパスワードを入力したことを確認する方法です。encfs6.xml

答え1

このQ&A試しているパスワードが正しいことを確認するためにアルゴリズムを復号化する方法パスワードが正しいかどうかを知る必要がある復号化アルゴリズムでは、HMACを使用してパスワードの正確性を確認することをお勧めします。

したがって、復号化タスクが期待したデータを正常に生成したかどうかをユーザーに知らせることが重要である場合、暗号化エンジニアは以下を使用します。メッセージ確認コード。ハッシュベースのMACを使用すると、候補プレーンテキストを認証されたハッシュ値と比較できます。検査に合格すると、正しいプレーンテキストであることがわかり、解読機能が期待どおりに成功したことをユーザーに通知できます。

何かについて環境デザイン:

  • すべてのファイル名と内容を暗号化するボリュームキーがあります。
  • ボリュームキーの復号化に使用されるユーザー提供のパスワード

指定したパスワードはボリュームキーの復号化に使用されます。

技術

  • Encfsは、サードパーティのライブラリ(デフォルトではOpenSSL)のアルゴリズムを使用してデータとファイル名を暗号化します。

  • ユーザーが提供したパスワードはボリュームキーを復号化するために使用され、ボリュームキーはすべてのファイル名と内容を暗号化するために使用されます。これにより、すべてのファイルを再暗号化せずにパスワードを変更できます。

これによるとセキュリティ監査

  • EncFS は同じキーを使用してデータを暗号化し、MAC を計算します。
  • EncFSは64ビットMACを使用します。
  • EncFS は Mac-then-Encrypt を使用します。
  • MACヘッダーの目的は、暗号文への読み取り/書き込みアクセス権を持つ攻撃者が検出せずに変更するのを防ぐことです。残念ながら、この機能は.encfs6.xml設定ファイルのオプションで制御されるため、セキュリティはほとんどありません。

コメントの質問に答えるために、MACはすべての暗号化されたファイルの一部として保存されます。

答え2

encfsソースコードを見ると、最初の4文字(バイト)がencodedKeyDataHMAC検証に使用されるハッシュのようです。

https://github.com/vgough/encfs/blob/7cc6efa60ca7378ba2b95be1fe5804a97f29af10/encfs/SSL_Cipher.cpp#L530#L546

そして

https://github.com/vgough/encfs/blob/7cc6efa60ca7378ba2b95be1fe5804a97f29af10/encfs/SSL_Cipher.cpp#L49

関連情報