우분투에서 암호화 된 HFS + 파티션을 마운트하려고합니다.
이전 게시물은 그것을 할 방법을 아주 잘 설명하지만 어떻게 암호화 된 파티션을 사용하는 정보가 부족하다.
내가 지금까지 찾은 것은 :
# install required packages
sudo apt-get install hfsprogs hfsutils hfsplus loop-aes-utils
# try to mount it
mount -t hfsplus -o encryption=aes-256 /dev/xyz /mount/xyz
그러나 이것을 실행하면 다음 오류가 발생합니다.
Error: Password must be at least 20 characters.
그래서 두 번 입력하려고했지만 결과는 다음과 같습니다.
ioctl: LOOP_SET_STATUS: Invalid argument, requested cipher or key (256 bits) not supported by kernel
어떤 제안?
답변
당신은 마운트 할 수 사용하여 OS X에서 암호화 된 HFS + 파티션 mount
의 옵션을 encryption=aes
. 암호화 된 HFS + 파티션 및 볼륨은 독점 형식을 사용하기 때문 입니다.
어느 Cryptoloop 이나 루프-AES 가 사용하는 기본 암호 해독 방법이 있습니다, mount
그리고 encryption
그 형식을 이해합니다.
이것이 내가 찾은 것입니다.
Cryptoloop는 단일 AES 블록으로 암호화 된 파티션 또는 디스크 이미지를 마운트 할 수 있습니다 (이를 단일 키 모드라고합니다 ( http://www.tldp.org/HOWTO/html_single/Cryptoloop-HOWTO/#cryptoloop-introduction 참조 ).
/dev/sdXX
disk image /dev/loopX
+-----------+ +-------------+
| | | |
| | | |
| | | unencrypted |
| AES block | -AES passwd->AES key->decrypt I/O to loop device-> | partition |
| | | |
| | | |
| | | |
+-----------+ +-------------+
AES-Loop는 위와 같은 단일 키와 다중 키 암호화 파티션 또는 디스크 이미지를 마운트 할 수 있습니다.
/dev/sdXX
disk image /dev/loopX
+------------+ +-------------+
|AES block #1| | |
+------------+ | |
|AES block #2| | unencrypted |
+------------+ -AES passwd->AES key(s)->decrypt I/O to loop dev-> | partition |
|AES block #3| | |
+------------+ | |
| ... | | |
+------------+ +-------------+
반면에 암호화 된 HFS + 파티션은 다음과 같습니다.
- 헤더를 포함합니다 (으로 덤프 할 수 있습니다
xxd
) - 문서화되지 않은 방식으로 여러 키를 사용합니다 ( http://events.ccc.de/congress/2006/Fahrplan/attachments/1244-23C3VileFault.pdf 참조 )
- OS X 10.7 “Lion”으로 시작하면 CoreStorage 논리 볼륨 그룹으로 래핑됩니다 (
man diskutil
또는 https://developer.apple.com/legacy/library/documentation/Darwin/Reference/ManPages/man8/diskutil.8.html 참조) ) -
AES-XTS를 사용합니다 .
$ diskutil coreStorage list (...) +-> Logical Volume Family D1C4665F-EAC8-4DAB-B392-634842A59559 ---------------------------------------------------------- Encryption Status: Unlocked Encryption Type: AES-XTS (...)
Cryptoloop 또는 Loop-AES에서 지원하지 않는 것 같습니다.
Cryptoloop의 후속 버전 인 dm-crypt
은 암호화 된 HFS +를 읽을 수 없습니다.
그러나 모든 희망이 사라지기 전에 :
-
암호화 된 FileVault 디스크 이미지를 해독하는 암호화 전문가 그룹
vfdecrypt
(Ubuntu 패키지에 포함되어 있으며dmg2img
tar.gz는
http://code.google.com/p/iphone-elite/downloads/list에 있습니다 ) 장치 파일로 작업하지 마십시오).이 도구는 매우 유망 해 보이지만
Disk Utility
OS X 10.8.2 “Mountain Lion”에서 만든 여러 암호화 된 디스크 이미지에서는 작동하지 않습니다 . 다른 사람들 ( http://bre.klaki.net/blog/2011/08/17/ )은 오래된 암호화 이미지로 성공한 것으로 보입니다. -
다른 전문가들은 프로젝트
libfvde
( https://code.google.com/p/libfvde )에서 작업 하며 여기에는fvdemount
FileVault 암호화 시스템 볼륨을 읽는 명령이 포함
됩니다. 여기서 제한 요소는 “시스템 볼륨”입니다. 이동식 미디어의 파티션은 지원하지 않습니다. 궁금한 점은
https://code.google.com/p/libfvde/wiki/Mounting#Mouting_the_system_volume 입니다. 소스 코드는 https://code.google.com/p/libfvde/downloads/list에서 다운로드 할 수 있습니다
.
발생한 오류 메시지는 다음과 같습니다.
첫 번째 오류 :
Error: Password must be at least 20 characters.
놀랍게도 mount
암호 해독 을 위해 파티션을 제어 할 수는 없지만 긴 암호는 암호화뿐만 아니라 암호 해독 에도 적용됩니다 . 소스를 다운로드하고 편집하고 다시 컴파일하면 이러한 방해를 피할 수 있습니다. SLES (SuSE Linux Enterprise Server)와 같은 다른 배포판에는이 제한이 없습니다.
두 번째 오류 :
ioctl: LOOP_SET_STATUS: Invalid argument, requested cipher or key (256 bits) not supported by kernel
Cryptoloop 커널 모듈을로드해야합니다.
$ sudo modprobe cryptoloop
당신이 패키지를 설치하지만, 때문에 loop-aes-utils
당신이 하지 않는 루프-AES를 사용하여.
루프-AES는 몇 가지 수정 사용자 공간 도구를 사용 ( mount
, umount
, losetup
, swapon
과 swapoff
에 의해 제공 loop-aes-utils
) 및 수정 된 loop.ko
커널 모듈. 최신 Ubuntu 버전은 수정되지 않은 loop
모듈을 커널로 컴파일합니다 .
$ cd /usr/src/linux-source-3.2.0/linux-source-3.2.0/drivers/block/
$ diff -q /tmp/loop.c-3.x.patched loop.c
Files /tmp/loop.c-3.x.patched and loop.c differ
따라서 Loop-AES는 우분투에서 즉시 사용할 수 없습니다. http://loop-aes.sourceforge.net/loop-AES.README에 설명 된대로 커널을 패치하고 다시 컴파일해야합니다 . 이것이 mount
여전히 Cryptoloop가 필요한 이유 입니다.
cryptoloop.ko
암호화 유형 을로드 한 후에도 유사한 오류 메시지가 표시 되면 인식되지 않을 수 있습니다. 예를 들어, Ubuntu 12.04는을 인식하지 aes-128
못했지만 aes
. SLES 만 인식 aes-128
합니다.
답변
실제로, 암호화 된 파일 을 열고 Linux에 마운트 할 수있는 해독 된 이미지를 생성 할 수있는 Java 응용 프로그램 hfsexplorer 가 있습니다..dmg
.dmg
.dmg
OS X 10.9.5에서 암호화 된 파일을 만든 다음 Ubuntu 14.04.2 LTS를 실행하는 가상 머신에서 이미지를 탐색 할 수있었습니다 . AES-128 및 AES-256 암호화 모두 테스트 사례에서 작동했습니다.
이것이 내가 .dmg
이미지를 만든 방법입니다 .
$ hdiutil create -size 10m -layout NONE -fs HFS+ -encryption AES-256 -volname "Vault" vault.dmg
우분투를 실행하는 가상 머신에서 이미지를 열 수있었습니다.
$ ./hfsexplorer-0/bin/hfsexplorer.sh /tmp/vault.dmg
암호를 묻는 메시지가 표시되고 이미지 내용이 표시됩니다. 해독 된 디스크 이미지를 생성하는 옵션 (도구-> 디스크 이미지 생성)이 있으며,이를 linux에서 hfs 도구로 마운트 할 수 있습니다.
$ mount vault_decrypted.dmg /mnt/hfs/
HFS + 저널 파일 시스템조차도 작동했습니다. 유일한 제한 사항은 Linux에서 HFS + J 파일 시스템에 대한 쓰기 지원이 기본적으로 사용 불가능하다는 것입니다.
이것은 암호화가 명령 에 .dmg
의해 이해 hfsexplorer
될 수 있고 mount
명령 에서 구현 될 수 있음을 보여줍니다 . 암호화되지 않은 파일을 만들면 .dmg
궁극적으로 Linux에서 이미지를 마운트 할 수 있습니다.
vfdecrypt
나에게도 효과가 없었습니다.