우분투에서 암호화 된 HFS 마운트 hfsprogs hfsutils hfsplus loop-aes-utils #

우분투에서 암호화 된 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 + 파티션은 다음과 같습니다.

Cryptoloop의 후속 버전 인 dm-crypt은 암호화 된 HFS +를 읽을 수 없습니다.

그러나 모든 희망이 사라지기 전에 :

발생한 오류 메시지는 다음과 같습니다.

첫 번째 오류 :

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, swaponswapoff에 의해 제공 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

.dmgOS 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 나에게도 효과가 없었습니다.