是否可以解密单个隔离的 dm-crypt 扇区(也许使用 OpenSSL)?

是否可以解密单个隔离的 dm-crypt 扇区(也许使用 OpenSSL)?

如果充分了解打开卷所需的参数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

密码是 128 位,因为给定的 256 位密钥是一分为二的通过 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;
}

(我有OpenSSL 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

相关内容