Mevcut bir dm-crypt LUKS cihazının hash-spec ve iter-time nasıl değiştirilir?


11

Mevcut bir dm-crypt LUKS cihazının hash-spec ve iter zamanını nasıl değiştirebilirim ?

Açıkçası ben yeni bir cihaz, örneğin böyle bir şey oluşturursanız seçenekleri iletebilirsiniz :

 sudo cryptsetup luksFormat --cipher aes-cbc-essiv:sha256 --key-size 256 --iter-time 2100 --hash sha512 /dev/loop0

Cihaz zaten varsa Ama, nasıl mesela değiştirebilir sha256için sha1veya cihazı "yok" olmadan yineleme saatini değiştirmek. (Yeni bir karma oluşturulacağından, şifrenizi tekrar yazmanız gerektiği açıktır.)


Sorumda ne anlamıyorsun?
öğrenci

Sadece ben olabilirim, ama en azından bir man sayfasına veya öğreticiye ya da ne hash-specolduğu ya da iter-timeayarlar gibi özelliklerle takip etmeye çalıştığınız bir cümleye atıfta bulunmadan 1 cümle Q istemenin kaba olduğunu düşünüyorum .
slm

Sanırım daha önce Q'lar üzerinde birlikte çalıştık (ve genellikle onlara mükemmel detaylar koydun) ve bu sefer yapmadığın beni hazırlıksız yakaladı.
slm

Bu durumda daha fazla bilgim yok ve adam sayfasında ne istediğimi bulamadım ...
öğrenci

2
Ayrıca orada başka aracın söz , cryptsetup-reencrypt. Madde işareti listesi, bana yapmaya çalıştığınız şeye benziyor: "rastgele şifreleme parametrelerini değiştirme".
slm

Yanıtlar:


6

Her tuş yuvasının kendi yineleme süresi vardır. Yineleme sayısını değiştirmek istiyorsanız, aynı parolaya ve yeni yineleme sayısına sahip yeni bir yuva oluşturun, ardından eski yuvayı kaldırın.

cryptsetup -i 100000 --key-slot 2 luksAddKey $device
cryptsetup luksKillSlot $device 1

Karma algoritmanın her yuva için yapılandırılamayacağını düşünüyorum, her zaman küresel olarak seçilmiş bir karma işlevine sahip PBKDF2.

Kripta kurulumunun son sürümlericryptsetup-reencrypt , ana şifreleme anahtarını ve tüm parametreleri değiştirebilen bir araç içerir , ancak deneysel olarak kabul edilir (ve yalnızca şifre tabanlı anahtar türetme işlevini değiştirmek için gerekli olmasa bile tüm cihazı yeniden şifreler) .


9

Değiştirmek istediğiniz tek şey karma ise, yeniden şifrelemeye gerek yoktur. Yine de yeni bir LUKS başlığı oluşturmalısınız. Aynı şifre, aynı ana anahtar, aynı ofset, farklı karma.

Bunu kendiniz deneyebilirsiniz. İlk önce standart ayarlara ve berbat yineleme sayılarına sahip bir LUKS cihazı kurduk:

# 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

Bu noktada şifreli verileri "Hello World I LUKS" olan bir LUKS cihazımız var. Özellikle şöyle görünür:

# 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

Gördüğünüz gibi, berbat yineleme önemlidir, standart sha1 karmaları.

Bunu yüksek yineleme sayılarına ve sha512 karmasına geçirmek için, yeniden şifrelemeden aynı ana anahtarı, aynı şifreyi ve aynı yük ofsetini kullanarak yeni bir LUKS başlığına ihtiyacımız var.

Ana anahtarı edinme: (Uyarı: bu örnek ana anahtarınızı dünya tarafından okunabilir bir dosyaya, işlem listesine ve kabuğunuzun geçmişine sızdırıyor.

# 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

Bu anahtarı kullanarak yeni LUKS üstbilgisini oluşturun: (hata mümkündür - önce eski LUKS üstbilginizin yedeğini alın!)

# 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: 

Ve işte şöyle görünüyor:

# 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

Şimdi bizde var. Aynı şifre, ofset [eğer farklıysa luksFormat ile birlikte belirtmelisiniz], yeni karma ve uygun sayıda yineleme.

Ama içerik hala orada mı?

# cryptsetup luksOpen /dev/shm/foobar foobar
Enter passphrase for /dev/shm/foobar: 
# strings /dev/mapper/foobar
Hello World I am LUKS

İşte böyle.


6
cryptsetup-reencrypt --keep-key --hash sha512aynı şeyi yapar.
frostschutz
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.