किसी मौजूदा dm-crypt LUKS डिवाइस के हैश-स्पेक और iter-time को कैसे बदलें?


11

मैं मौजूदा dm-crypt LUKS डिवाइस के हैश-स्पेक और iter-time को कैसे बदल सकता हूं ?

यदि मैं एक नया उपकरण बनाता हूँ तो स्पष्ट रूप से मैं विकल्प पारित कर सकता हूँ , उदाहरण के लिए कुछ इस तरह से:

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

लेकिन डिवाइस पहले से मौजूद है, तो, मैं कैसे उदाहरण के लिए बदल सकते हैं sha256करने के लिए sha1या "नष्ट" डिवाइस के बिना यात्रा समय बदल जाते हैं। (स्पष्ट रूप से आपको अपना पासवर्ड फिर से लिखना होगा क्योंकि एक नया हैश उत्पन्न होगा।)


तुम मेरे प्रश्न में क्या नहीं समझते हो?
छात्र

केवल मैं ही हो सकता हूं, लेकिन मैं इसे 1 वाक्य Q w / o पूछने के लिए एक आदमी पृष्ठ या एक ट्यूटोरियल या एक ट्यूटोरियल या ऐसी किसी चीज से पूछने के लिए अयोग्य मानता हूं जिसे आप विशेष रूप से क्या hash-specहै या iter-timeसेटिंग्स के रूप में विशिष्टताओं के साथ पालन करने का प्रयास कर रहे हैं।
स्लम

मुझे लगता है कि हमने क्यू पर पहले एक साथ काम किया है (और आप आमतौर पर उनमें उत्कृष्ट विवरण डालते हैं) और इसने मुझे गार्ड से पकड़ा कि इस बार आपने नहीं किया।
स्लम

मेरे पास इस मामले में अधिक जानकारी नहीं है और मुझे मैन पेज में जो चाहिए वह नहीं मिला ...
छात्र

2
इसके अलावा वहाँ एक और उपकरण का उल्लेख , cryptsetup-reencrypt। बुलेट लिस्ट से ऐसा लगता है कि आप मेरे लिए क्या करने का प्रयास कर रहे हैं: "मनमाने एन्क्रिप्शन पैरामीटर बदलें"।
स्लम

जवाबों:


6

प्रत्येक कुंजी स्लॉट का अपना पुनरावृत्ति समय होता है। यदि आप पुनरावृत्तियों की संख्या को बदलना चाहते हैं, तो एक ही पासफ़्रेज़ के साथ एक नया स्लॉट और पुनरावृत्तियों की एक नई संख्या बनाएं, फिर पुराने स्लॉट को हटा दें।

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

मुझे लगता है कि हैश एल्गोरिथ्म प्रति स्लॉट में कॉन्फ़िगर नहीं किया जा सकता है, यह हमेशा एक वैश्विक रूप से चुने गए हैश फ़ंक्शन के साथ PBKDF2 है।

क्रायसिपेटअप के हाल के संस्करणों में एक उपकरण शामिल है cryptsetup-reencrypt, जो मुख्य एन्क्रिप्शन कुंजी और सभी मापदंडों को बदल सकता है, लेकिन इसे प्रायोगिक माना जाता है (और यह संपूर्ण डिवाइस को पुन: प्रयास करता है, हालांकि यह केवल पासवर्ड-आधारित कुंजी व्युत्पत्ति फ़ंक्शन को बदलने के लिए आवश्यक नहीं होगा) ।


9

यदि आप सभी को बदलना चाहते हैं, तो हैश है, फिर से एन्क्रिप्ट करने की कोई आवश्यकता नहीं है। आपको अभी भी एक नया LUKS हैडर बनाना है। वही सिफर, वही मास्टर की, वही ऑफ़सेट, अलग हैश।

आप अपने लिए यह कोशिश कर सकते हैं। पहले हम मानक सेटिंग्स और घटिया iter मायने रखता है के साथ एक LUKS डिवाइस की स्थापना:

# 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

इस बिंदु पर हमारे पास एन्क्रिप्टेड डेटा "हैलो वर्ल्ड आई एम एलयूकेएस" के साथ एक एलयूकेएस डिवाइस है। विशेष रूप से यह इस तरह दिखता है:

# 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 हेडर चाहिए।

मास्टर कुंजी प्राप्त करना: (चेतावनी: यह उदाहरण आपकी मास्टर कुंजी को विश्व-पठनीय फ़ाइल, प्रक्रिया सूची में, साथ ही साथ आपके शेल के इतिहास के लिए लीक करता है। सुरक्षित होने के लिए, इसे लाइव सीडी / जो कुछ भी RAM / में करें)

# 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

तुम वहाँ जाओ।


6
cryptsetup-reencrypt --keep-key --hash sha512वही काम करता है।
ठंढकुट्ज़ २
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.