単一の孤立した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-plain64256ビットキーは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

関連情報