비밀번호 대신 개인 키를 사용하여 ecryptfs 파일을 해독하는 방법

비밀번호 대신 개인 키를 사용하여 ecryptfs 파일을 해독하는 방법

Synology NAS DS413에 암호화된 공유 폴더가 있습니다(ecryptfs 사용). Synologies GUI를 사용하여 암호화된 폴더를 수동으로 마운트하고 문제 없이 해독된 파일을 읽을 수 있습니다. 어떤 이유에서든 내 비밀번호를 사용하여 암호화된 폴더를 마운트할 수 없습니다. 하지만 ecryptfs 설정 프로세스 중에 생성된 개인 키를 사용하면 언제든지 이 작업을 수행할 수 있습니다.

그래서 저는 Synology 없이 암호화된 파일을 해독하는 방법을 조사해 왔습니다(예: 이 파일에 불이 붙거나 도난당하여 백업에서 복원해야 하는 경우). Linux 및 encryptfs-utils를 사용하여 synology/ecryptfs 암호화된 공유를 해독하는 방법에 대한 일부 스레드와 방법을 읽었습니다. 그러나 가이드에서는 항상 비밀번호를 제공하라고 지시하고 암호 해독에 키를 사용하는 것에 대해서는 언급하지 않습니다. 그래서 제 질문은 키를 사용하여 암호를 해독하는 방법입니다(Synology 소프트웨어를 사용하여 설치 및 암호 해독 가능). 내 키는 80바이트이고 바이너리입니다. 처음 16바이트는 정수이고 나머지 바이트는 임의의 16진수로 나타납니다.

어떤 팁이라도 감사드립니다!

답변1

짧은 답변: 암호를 사용하여 $1$5YN01o9y키 파일의 실제 암호를 표시합니다 ecryptfs-unwrap-passphrase(백슬래시로 이스케이프된 $문자).

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

그런 다음 AlexP의 답변(여기) 또는 이미 알고 있는 지침 중 하나와 함께 비밀번호를 사용하세요.로버트 캐슬의 기사.

아니면 한 줄로 모두 수행하세요.

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 시스템에 연결하고 거기에 RAID 및 볼륨 그룹을 설치합니다.
  • 위에서 언급한 설치 명령어와 다운로드한 키 파일을 사용하여 설치 ecryptfs-utils하고 복호화된 데이터에 성공적으로 접근합니다.

$1$5YN01o9y크레딧: 에서 -passphrase를 찾았습니다 .독일 Synology 포럼의 게시물. 이 비밀을 실제로 발견할 가능성이 있는 사용자2014년에는 Bastian(b666m)으로 알려졌습니다..

답변2

보다 "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

관련 정보