LUKSデバイスのハッシュ値を抽出する方法は?

LUKSデバイスのハッシュ値を抽出する方法は?

LUKSデバイスの場合、ハッシュ値が何らかの形でパーティションヘッダーに格納されることがわかります(これが何を意味するのかはわかりません)。しかし、この場合、ハッシュ値を印刷する方法がわかりません。

たとえば、標準のUNIXシステムでは、ユーザーパスワードハッシュがに保存されます/etc/shadow。パスワードハッシュを表示するには、そのファイルを開いて表示できます。

それでは、LUKSデバイスのハッシュをどのように抽出しますか?

答え1

LUKSヘッダーに関する一般的な情報であれば、お試しくださいluksDump

# cryptsetup luksDump /dev/loop0
LUKS header information for /dev/loop0

Version:        1
Cipher name:    aes
Cipher mode:    xts-plain64
Hash spec:      sha1
Payload offset: 4096
MK bits:        256
MK digest:      67 77 17 e9 43 cf b2 e1 f3 a0 e2 0b 7a a9 fa a1 cf d8 e0 76 
MK salt:        f1 6a 09 51 55 e8 af d2 11 b2 73 1c cc ae b5 15 
                9e e9 dc 84 a5 22 aa b1 b3 0c 7c db 23 59 9a 14 
MK iterations:  77625
UUID:           ec59d9ad-39f1-4d5c-af9e-b35f34847561

Key Slot 0: ENABLED
    Iterations:             311434
    Salt:                   ed 69 d7 9d 7a 39 1a 23 3f 38 64 15 3f 38 dd 5f 
                            90 1e ea 9f 5b 9f c3 59 f3 18 49 2f 9a 3f 4e c6 
    Key material offset:    8
    AF stripes:             4000
Key Slot 1: DISABLED
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

実際のキーを探している場合は、開いたdmsetupときに表示されます。

# dmsetup table --showkeys
luksthing: 0 209711104 crypt aes-xts-plain64 c2349e71e00186c784a1d83917778fcaacb87382ea508aa41f6324f1e2f056eb 0 7:0 4096

これはハッシュではなく、デバイスのロックを解除する実際のキーです。このパスワードがある場合、LUKSパスワードは必要ありません。

# cryptsetup luksClose luksthing
# echo 0 209711104 crypt aes-xts-plain64 c2349e71e00186c784a1d83917778fcaacb87382ea508aa41f6324f1e2f056eb 0 7:0 4096 \
| dmsetup create luksthing
# file -s -L /dev/mapper/luksthing
/dev/mapper/luksthing: Linux rev 1.0 ext2 filesystem data, UUID=34fadafe-31cf-467d-84c0-c2d50bbcfcde (large files)

そのため、システムが損傷している場合は、再インストール/再暗号化する必要があります。 LUKSパスワードが何であれ、暗号化キーがあります。

答え2

ハッシュ値を抽出できません。そこにいない

ユーザーがログインすると、オペレーティングシステムには、ユーザーが入力したパスワードと比較できるパスワードの参照コピーが必要です。に保存されている内容です/etc/shadow。入力したパスワードが参照パスワードと同じ場合、認証は成功します。パスワードの回復を困難にするために、システムはパスワードを保存せずにパスワードのハッシュ(無差別代入を試みてパスワードを推測するのを困難にするスローソルトハッシュ)を保存します。

暗号化は異なる動作をします。その目的は、ストレージにアクセスする攻撃者から保護することです。したがって、暗号化キーはデバイスに保存されているものからのみ抽出できません。したがって、キーは、デバイスに保存されるのではなく、デバイスに保存された情報とユーザーから提供された情報を組み合わせて構成されます。通常、キーは、ユーザーが提供したパスワードと組み合わせたデバイスに保存されているソルトに基づいて生成されます。さらに、無差別攻撃の試行を遅らせるには、これらの値を組み合わせるプロセスを遅くする必要があり、ユーザーのパスワードに加えてデバイス固有の値(ソルト)を使用し、同じパスワードを使用しても同じキーが発生しないようにする必要があります。 。デバイスにあるのは、基本的に鍵を生成するためにパスワードと組み合わせたソルトだけです。

関連情報