볼륨을 여는 데 필요한 매개변수에 대한 완전한 지식이 있는 경우 dm-crypt
해당 볼륨에서 얻은 단일 섹터의 암호를 해독하는 것이 가능합니까 ?
원래 볼륨을 사용할 수 없지만 섹터 번호를 알고 있다고 가정해 보겠습니다.
예를 들어 다음 볼륨은 다음을 사용하여 마운트됩니다 cryptsetup
.
$ dmsetup --showkey table myvolume
0 104857600 crypt aes-xts-plain64 95264...aacae 0 254:9 0
dd
원본 볼륨에서 섹터 125를 추출한 적이 있다고 가정해 보겠습니다 .
$ dd if=/dev/sda1 of=raw.sector bs=512 skip=125 count=1
위 출력에서 비밀번호는 aes-xts-plain64
이고 256비트 키는 95264...aacae
(여기서 축약된 주요 예)라는 것을 알 수 있습니다.
독립 실행형( openssl
)을 사용하여 암호를 해독할 수 있나요?
아마도 이런 것이 아닐까...
$ openssl enc -d -in raw.sector -aes-128-xts -K 95264...aacae -iv 7D -out plain.sector
주어진 256비트 키가 다음과 같기 때문에 비밀번호는 128비트입니다.둘로 나누어XTS 모드를 통해. 초기화 벡터는 0x7D
섹터 번호가 125이기 때문입니다. 하지만 OpenSSL이 XTS( openssl enc -ciphers
) 를 지원하지 않는 것 같아서 첫 번째 단계를 넘어갈 수 없었습니다 .
https://github.com/openssl/openssl/blob/master/apps/enc.c#L267:
if (cipher && (EVP_CIPHER_mode(cipher) == EVP_CIPH_XTS_MODE)) {
BIO_printf(bio_err, "%s XTS ciphers not supported\n", prog);
goto end;
}
(나는 가지고있다오픈SSL 1.1.0f2017년 5월 25일)
또한 이전 OpenSSL(1.0.2f)을 시도했는데 openssl enc -ciphers
목록에 있지만 xts 암호화를 사용하면 -aes-128-xts
오류 메시지가 나타납니다.
Ciphers in XTS mode are not supported by the enc utility