これは実際にはMac OS Xで起こりましたが、私は http://Apple.stackexchange.com ではなく、ここで答えを得ることができると思います
Encfsで暗号化されたディレクトリがあります。そこから誤って.encfs6.xmlを削除しました。
このディレクトリをencfsとしてマウントしたい場合、encfsはそこに新しい暗号化ボリュームを作成したいと考えています。新しいファイルを作成する代わりに、既存のファイルを開くように強制することはできますか?
もちろんパスワードは覚えています。
.encfs6.xml
にはキーが含まれています。そのファイルを紛失すると、ファイルを復号化できなくなります。
暗号化キーはパスワードから派生したものではありません。パスワードから導出されるのは、encfs6.xml
に格納されているファイル暗号化キーの暗号化に使用されるキーです。これは標準的な方法です。これは、次の2つの理由で行われます。
12345678
、password
、iloveyou
、Passw0rd
、…)を列挙することで見つけることができます。一方、キーはランダムに生成されます。正しいキーを推測するために無視できないチャンスがあることは、宇宙の時代よりも長くかかります。そのため、パスワードを推測する攻撃者は、キーファイル.encfs6.xml
も入手する必要があります。 (ただし、キーファイルが暗号化されたデータと一緒に保存されていない場合、これはあまりメリットがありません。).encfs6.xml
を更新するだけで済み、すべてのファイルを再暗号化する必要はありません。バックアップから.encfs6.xml
を復元します。
バックアップがない場合は、削除されたファイルを検索するフォレンジックツールを使用してバックアップを回復できる場合があります。もちろん、これが機能するとは限らず、機能しても必ずしも簡単ではありません。
すべてのソルトと反復回数を推測するアイデアがありましたが、元の既知のパスフレーズを使用して、.encfs6.xml
ファイルを回復/再構築しましたが、欠落した<encodedKeyData>
はありませんでした...テストを試しましたが、便利なサウンドオプション--anykey
を使用すると、次のようになります。
--anykey
キー検証チェックをオフにします。これにより、EncFSをセカンダリパスワードで使用できます。これは、暗号化されたファイルシステムに個別のファイルセットを格納するために使用できます。 EncFSは正しくデコードされないファイルを無視するため、個別のパスワードで作成されたファイルは、ファイルシステムが関連するパスワードでマウントされている場合にのみ表示されます。
.encfs6.xmlには、次のような情報が含まれています。
<encodedKeySize>44</encodedKeySize>
<encodedKeyData>
t+mDmS6qiUwJcUY2rX2oj6jMlfQ3QIiGPG2BRZspTUZiUOcKBxIq70uVILk=
</encodedKeyData>
<saltLen>20</saltLen>
<saltData>
9pmECBnKHDXpW+3E+Z7WO9xWwls=
</saltData>
<kdfIterations>147015</kdfIterations>
<desiredKDFDuration>500</desiredKDFDuration>
--anykey
は、encodedKeyDataと一致しない(別のデータに変更する)場合でも使用できる可能性があると考えましたが、元のパスフレーズを使用して元のファイルを読み取っています。のように、encodedKeyData以外のすべてのデータを覚えている/推測します。そこで、新しいEncFSフォルダとテストファイルを作成し、.encfs6.xml
ファイルを編集して、<encodedKeyData>...</encodedKeyData>
エントリを変更または削除してみました。
動作しませんでした、間違ったデータを使用すると、静かにマウントされますが、ファイルは復号化されませんでした。エントリの削除は次のエラーで失敗しました:
'boost :: archive :: iterators :: dataflow_exception'のインスタンスをスローした後、terminateが呼び出されました
what():base64文字セットにない値をデコードしようとしました
中止
--anykey
の唯一の使用法は、異なるパスワードを使用して一部のファイルを「隠す」ように見えます。ファイル名の暗号化を使用していると思いますが、元のencodingKeyDataが必要です。
また、<saltData>
を1文字変更すると、encfs --anykey
も任意のパスフレーズで正常にマウントできますが、元のパスフレーズを使用しても、ファイルは復号化されず、エラーも発生しません。
つまり、あなたは100%NEED.encfs6.xml
ファイルです。これは暗号化されたキーを持つキーファイルのようなものです(私が考えるLUKSヘッダーに似ています)。