หากสิ่งที่คุณต้องการเปลี่ยนคือแฮชคุณไม่จำเป็นต้องเข้ารหัสอีกครั้ง คุณยังต้องสร้างส่วนหัว LUKS ใหม่ ตัวเลขเดียวกัน, คีย์หลักเดียวกัน, ออฟเซ็ตเดียวกัน, แฮชที่ต่างกัน
คุณสามารถลองด้วยตัวเอง ครั้งแรกที่เราตั้งค่าอุปกรณ์ LUKS ด้วยการตั้งค่ามาตรฐานและนับ iter หมัด:
# truncate -s 8M /dev/shm/foobar
# cryptsetup --iter-time=42 luksFormat /dev/shm/foobar
WARNING!
========
This will overwrite data on /dev/shm/foobar irrevocably.
Are you sure? (Type uppercase yes): YES
Enter passphrase:
Verify passphrase:
# cryptsetup luksOpen /dev/shm/foobar foobar
Enter passphrase for /dev/shm/foobar:
# shred -z /dev/mapper/foobar
# echo Hello World I am LUKS > /dev/mapper/foobar
# strings /dev/mapper/foobar
Hello World I am LUKS
# cryptsetup luksClose foobar
ณ จุดนี้เรามีอุปกรณ์ LUKS ที่มีข้อมูลที่เข้ารหัส "Hello World I am LUKS" โดยเฉพาะอย่างยิ่งดูเหมือนว่านี้:
# cryptsetup luksDump /dev/shm/foobar
LUKS header information for /dev/shm/foobar
Version: 1
Cipher name: aes
Cipher mode: xts-plain64
Hash spec: sha1
Payload offset: 4096
MK bits: 256
MK digest: 30 87 62 81 8e 8f a9 15 68 e0 82 c0 dc ee 19 54 9b f2 eb 5c
MK salt: c3 e0 28 53 67 10 13 d4 43 e3 7b d1 ce 62 6b e3
58 85 ee 67 71 76 b6 48 78 a8 34 71 58 71 21 f8
MK iterations: 6175
UUID: 14a0a11d-0890-433e-bdcb-d2d1f5281bc2
Key Slot 0: ENABLED
Iterations: 26033
Salt: a1 7b 2b 5b 3d 8c 3c d1 3b 57 61 5a df 25 47 c8
29 97 62 09 08 2b e1 b2 af 61 56 80 2f af a6 ae
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
อย่างที่คุณเห็นการนับซ้ำของหมัดหมัด sha1 มาตรฐาน
ในการสลับไปที่การนับซ้ำสูงและแฮช sha512 โดยไม่ต้องเข้ารหัสใหม่เราจำเป็นต้องมีส่วนหัว LUKS ใหม่โดยใช้คีย์หลักเดียวกันรหัสตัวเลขเดียวกันและออฟเซ็ต payload เดียวกัน
การรับรหัสหลัก: (คำเตือน: ตัวอย่างนี้ปล่อยให้รหัสหลักของคุณไปยังไฟล์ที่อ่านได้ทั่วโลกไปยังรายการกระบวนการตลอดจนประวัติเชลล์ของคุณเพื่อความปลอดภัยให้ทำใน RAM / บน Live CD / อะไรก็ตาม)
# cryptsetup --dump-master-key luksDump /dev/shm/foobar
WARNING!
========
Header dump with volume key is sensitive information
which allows access to encrypted partition without passphrase.
This dump should be always stored encrypted on safe place.
Are you sure? (Type uppercase yes): YES
Enter passphrase:
LUKS header information for /dev/shm/foobar
Cipher name: aes
Cipher mode: xts-plain64
Payload offset: 4096
UUID: 14a0a11d-0890-433e-bdcb-d2d1f5281bc2
MK bits: 256
MK dump: eb aa 57 2d 42 93 fe 90 00 b9 d2 e0 e0 7b 73 26
4b 64 1b 8b 8e 61 75 84 1b c3 d6 f7 3f 03 d2 14
# printf '\xeb\xaa\x57\x2d\x42\x93\xfe\x90\x00\xb9\xd2\xe0\xe0\x7b\x73\x26\x4b\x64\x1b\x8b\x8e\x61\x75\x84\x1b\xc3\xd6\xf7\x3f\x03\xd2\x14' > /dev/shm/masterkey
# hexdump -C /dev/shm/masterkey
00000000 eb aa 57 2d 42 93 fe 90 00 b9 d2 e0 e0 7b 73 26 |..W-B........{s&|
00000010 4b 64 1b 8b 8e 61 75 84 1b c3 d6 f7 3f 03 d2 14 |Kd...au.....?...|
00000020
สร้างส่วนหัว LUKS ใหม่โดยใช้คีย์นี้: (เป็นไปได้ที่ล้มเหลว - ทำการสำรองข้อมูลส่วนหัว LUKS เก่าของคุณก่อน!)
# cryptsetup --master-key-file=/dev/shm/masterkey --iter-time=5000 --hash=sha512 luksFormat /dev/shm/foobar
WARNING!
========
This will overwrite data on /dev/shm/foobar irrevocably.
Are you sure? (Type uppercase yes): YES
Enter passphrase:
Verify passphrase:
และนี่คือสิ่งที่ดูเหมือนว่า:
# cryptsetup luksDump /dev/shm/foobar
LUKS header information for /dev/shm/foobar
Version: 1
Cipher name: aes
Cipher mode: xts-plain64
Hash spec: sha512
Payload offset: 4096
MK bits: 256
MK digest: 47 ab 7b c6 41 b0 7c d8 af 3c a0 a4 23 e6 72 87 9c 0f c6 a0
MK salt: 32 49 a5 b5 cb 4d 8a d7 25 69 72 ae e5 b2 9e 9d
14 09 00 1d 01 f3 c9 99 da e1 6c fc 69 78 e4 64
MK iterations: 393750
UUID: fd554ae8-a862-4609-8327-c6dd65ee9a83
Key Slot 0: ENABLED
Iterations: 1578295
Salt: e5 75 1c 1f 63 1d c6 0b d9 27 1a b1 27 85 b9 c1
89 e8 57 95 2a c8 a0 24 9c 29 c0 f2 27 d7 2f 9a
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
ตอนนี้เรามีมัน รหัสเดียวกันชดเชย [ถ้าพวกเขาแตกต่างกันคุณต้องระบุพวกเขาพร้อมกับ luksFormat] แฮใหม่และจำนวนที่เหมาะสมของการทำซ้ำ
แต่เนื้อหายังอยู่ที่นั่นหรือ
# cryptsetup luksOpen /dev/shm/foobar foobar
Enter passphrase for /dev/shm/foobar:
# strings /dev/mapper/foobar
Hello World I am LUKS
ไปแล้ว