Ubuntu에서 암호화된 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
어떤 제안이 있으십니까?
답변1
너마운트할 수 없습니다mount
의 옵션을 사용하여 OS X에서 암호화된 HFS+ 파티션 encryption=aes
. 그 이유는 암호화된 HFS+ 파티션과 볼륨이소유권체재.
어느 것도 아니다크립토루프...도 아니다루프-AESmount
및 에서 사용하는 기본 암호 해독 방법인 는 encryption
해당 형식을 이해합니다.
이것이 내가 알아낸 것입니다:
Cryptoloop는 단일 AES 블록으로 암호화된 파티션이나 디스크 이미지를 마운트할 수 있습니다(이를 단일 키 모드라고 합니다.http://www.tldp.org/HOWTO/html_single/Cryptoloop-HOWTO/#cryptoloop-소개):
/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+도 읽을 수 없습니다.
그러나 모든 희망이 사라지기 전에:
암호화 전문가 그룹이 만들었습니다
vfdecrypt
(Ubuntu 패키지에 포함되어 있으며dmg2img
tar.gz는 여기에 있습니다: http://code.google.com/p/iphone-elite/downloads/list), 암호화된 FileVault 디스크 이미지를 해독합니다(장치 파일에서는 작동하지 않음).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
패키지 를 설치했지만아니다Loop-AES를 사용합니다.
Loop-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는 기본적으로 Ubuntu에서 사용할 수 없습니다. 여기에 설명된 대로 커널을 패치하고 다시 컴파일해야 합니다.http://loop-aes.sourceforge.net/loop-AES.README. 그렇기 때문에 mount
여전히 Cryptoloop가 필요합니다.
로드한 후에도 비슷한 오류 메시지가 계속 나타나면 cryptoloop.ko
암호화 유형이 인식되지 않을 수 있습니다. 예를 들어 내 Ubuntu 12.04는 을 인식하지 aes-128
못했지만 aes
. SLES는 aes-128
.
답변2
실제로 Java 애플리케이션이 있습니다.hfsexplorer.dmg
이는 암호화된 파일을 열고 .dmg
Linux에 마운트할 수 있는 해독된 이미지를 생성할 수 있습니다.
.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
Ubuntu를 실행하는 가상 머신에서 이미지를 열 수 있었습니다.
$ ./hfsexplorer-0/bin/hfsexplorer.sh /tmp/vault.dmg
비밀번호를 묻는 메시지가 표시된 다음 이미지의 내용이 표시됩니다. Linux의 hfs 도구를 사용하여 마운트할 수 있는 해독된 디스크 이미지를 생성하는 옵션(도구 -> 디스크 이미지 생성)이 있습니다.
$ mount vault_decrypted.dmg /mnt/hfs/
HFS+ 저널 파일 시스템도 작동했습니다. 유일한 제한 사항은 HFS+J 파일 시스템에 대한 쓰기 지원이 Linux에서 기본적으로 비활성화되어 있다는 것입니다.
이는 암호화가 명령에 .dmg
의해 이해되고 hfsexplorer
구현될 수 있음을 보여줍니다 mount
. 암호화되지 않은 이미지를 생성하면 .dmg
궁극적으로 Linux에 이미지를 마운트할 수 있습니다.
vfdecrypt
나에게도 효과가 없었습니다.