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