우분투에서 암호화 된 HFS 마운트


32

우분투에서 암호화 된 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

어떤 제안?


이것이 차이가 있는지 확실하지 않지만 aes256대신 시도해 보셨습니까 aes-256?
Ansgar Wiechers

예 - 모두 동일한 결과 - 심지어 그냥 "AES"를 사용하여 동일한 결과 제공
pagid

답변:


59

당신은 마운트 할 수 사용하여 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합니다.


1
답변에 제공된 자세한 정보와 세부 정보는 +1입니다.
혼돈의 데몬

4
이것은 단순히 경이로운 답변입니다. 매우 유익하고 상세하며 분명히 매우 잘 연구되었습니다. jaume을 공유해 주셔서 감사합니다.
chmac

3
방금 OSX 10.10.3 에서이 작업을 성공적으로 시도했습니다. 또한 컴퓨터에서 많은 작업을 수행 할 때 드라이브의 암호 해독 프로세스가 진행되지 않을 것임을 발견했습니다. 그러나 랩톱을 벽면 전원에 연결하고 드라이브를 꽂은 상태에서 덮개를 닫은 상태 (완전히 절전 상태)로 유지하고 PowerNap에서 잠자는 동안 암호 해독을 완료했습니다.
voxobscuro

14

실제로, 암호화 된 파일 을 열고 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 나에게도 효과가 없었습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.