web-dev-qa-db-ja.com

パスフレーズの代わりに秘密鍵を使用してecryptfsファイルを復号化する方法

Synology NAS DS413(ecryptfsを使用)に暗号化された共有フォルダーがあります。SynologiesGUIを使用して、暗号化されたフォルダーを手動でマウントし、復号化されたファイルを問題なく読み取ることができます。何らかの理由で、パスフレーズを使用して暗号化されたフォルダをマウントすることはできませんでした。しかし、ecryptfsのセットアップ中に生成された秘密鍵を使用していつでもマウントできます。

そのため、私はそれ以来、Synologyを使用せずに暗号化されたファイルを復号化するための調査を行っています(たとえば、これが発火したり盗まれたりして、バックアップから復元する必要がある場合)。 Linuxとencryptfs-utilsを使用してsynology/ecryptfsで暗号化された共有を復号化するためのいくつかのスレッドとハウツーを読みました。ただし、ハウツーでは常にパスフレーズを提供するように指示されており、復号化のためのキーの使用については言及されていません。だから私の質問は、キーを使用して復号化するにはどうすればよいですか(Synologyのソフトウェアでマウントおよび復号化するために機能します)?私が持っているキーは80バイトで、バイナリです。最初の16バイトは整数のみで、残りのバイトはランダムな16進数のように見えます。

ヒントをありがとう!

4
kevincw01

簡単な答え:パスフレーズ$1$5YN01o9yを使用して、キーファイルからecryptfs-unwrap-passphraseで実際のパスフレーズを明らかにします(バックスラッシュは$文字をエスケープします):

printf "%s" "\$1\$5YN01o9y" | ecryptfs-unwrap-passphrase keyfile.key -

次に、ここでのAlexPの回答や Robert Castleの記事 など、おそらくすでに知っている指示の1つを使用してパスフレーズを使用します。

または、すべてを1行で実行します。

mount -t ecryptfs -o key=passphrase,ecryptfs_cipher=aes,ecryptfs_key_bytes=32,ecryptfs_passthrough=no,ecryptfs_enable_filename_crypto=yes,passwd=$(printf "%s" "\$1\$5YN01o9y" | ecryptfs-unwrap-passphrase /path/to/keyfile.key -) /path/to/encrypted/folder /path/to/mountpoint

キーファイルを使用して復号化プロセス全体をテストしたところ、その動作を確認できます。

  • DSM 6.2で新しい暗号化された共有フォルダーを作成し、キーファイルをダウンロードしました。
  • NASをシャットダウンし、ドライブを取り外し、Ubuntu x64 18.04.2マシンに接続して、そこにレイドとボリュームグループをマウントしました。
  • ecryptfs-utilsをインストールし、ダウンロードしたキーファイルで上記のmountコマンドを使用して、復号化されたデータに正常にアクセスしました。

クレジット:$1$5YN01o9y-パスフレーズ ドイツのSynologyフォーラムへの投稿 であることがわかりました。おそらく実際に秘密を見つけたユーザー 2014年にはバスティアン(b666m)として知られています

3
x-ray

RobertCastleによる " LinuxでSynology暗号化フォルダを回復する方法 "を参照してください。概要:

MOUNTOPTIONS=""
for option in                           \
  "key=passphrase"                      \
  "ecryptfs_cipher=aes"                 \
  "ecryptfs_key_bytes=32"               \
  "ecryptfs_passthrough=no"             \
  "ecryptfs_enable_filename_crypto=yes" \
; do
  MOUNTOPTIONS="${MOUNTOPTIONS}${MOUNTOPTIONS:+,}$option"
done
Sudo mount -t ecryptfs -o $MOUNTOPTIONS,passwd=$PASSWORD $CRYPTDIR $TARGET
2
AlexP