//kalinux.info
Безопасность 841 просмотров

Как Nuke зашифровывает Kali Linux

Как Nuke зашифровывает Kali Linux

Патч LUKS Nuke добавлен в пакет Cryptsetup в Kali Linux. Мы хотели воспользоваться этой возможностью, чтобы лучше объяснить эту функцию, а также продемонстрировать некоторые полезные подходы, которые стоит узнать.

LUKS Nuke в двух словах

Как объяснил Майкл Ли в своей статье ZDNet, при создании зашифрованного контейнера LUKS мастер-ключ генерируется случайно. Затем кодовая фраза используется для шифрования главного ключа по очереди. Этот процесс означает, что кодовая фраза не связана напрямую с данными. То есть, если два набора идентичных данных зашифрованы и одна и та же ключевая фраза используется, главные ключи остаются уникальными для каждого набора и не могут быть заменены. Однако это означает, что независимо от используемой ключевой фразы, если главный ключ потерян, восстановление данных невозможно. Этот процесс удобно использовать для хранения приватных даных, которые можна удалить, намеренно вытирая ключи.

Пример использования LUKS Nuke

Нашей основной целью внедрения этой функции в Kali Linux является упрощение процесса безопасного перемещения с конфиденциальной информацией о клиентах. Если «LUKS Nuking» приведет ваш диск к недоступности, то можно сделать резервную копию ваших keyslots заранее и восстановить их после. Таким образом, если наше оборудование потеряно или иным образом доступно на полпути через наши путешествия, никто не сможет восстановить данные на нем.

Существуют и другие способы удаления ваших ключей, однако преимущество опции Nuke заключается в быстроте, простоте и не требует полного входа в систему Kali Linux. Если вы сохраняете резервную копию своего ключа, вы можете зашифровать все. Затем выполните восстановление, когда вы чувствуете себя в безопасности.

Попробуйте это!

Давайте рассмотрим движения шифрования, резервного копирования, уничтожения, а затем восстановления ваших данных с помощью Kali Linux. Начните с загрузки и установки Kali Linux 1.0.6 с полным дисковым шифрованием. Как только это будет сделано, вы можете проверить свою информацию следующим образом:

root@kali-crypto:~# cryptsetup luksDump /dev/sda5
LUKS header information for /dev/sda5

Version:        1
Cipher name:    aes
Cipher mode:    xts-plain64
Hash spec:      sha1
Payload offset: 4096
MK bits:        512
MK digest:      04 cd d0 51 bf 57 10 f5 87 08 07 d5 c8 2a 34 24 7a 89 3b db 
MK salt:        27 42 e5 a6 b2 53 7f de 00 26 d3 f8 66 fb 9e 48 
                16 a2 b0 a9 2c bb cc f6 ea 66 e6 b1 79 08 69 17 
MK iterations:  65750
UUID:           126d0121-05e4-4f1d-94d8-bed88e8c246d

Key Slot 0: ENABLED
    Iterations:             223775
    Salt:                   7b ee 18 9e 46 77 60 2a f6 e2 a6 13 9f 59 0a 88 
                            7b b2 db 84 25 98 f3 ae 61 36 3a 7d 96 08 a4 49 
    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

Как вы можете видеть, у нас есть слот 0 с слотами от 1 до 7 неиспользуемых. На этом этапе мы добавим ключ.

root@kali-crypto:~# cryptsetup luksAddNuke /dev/sda5
Enter any existing passphrase: 
Enter new passphrase for key slot:

Опять же, мы сбросим наш LUKS и посмотрим, что изменилось.

root@kali-crypto:~# cryptsetup luksDump /dev/sda5
LUKS header information for /dev/sda5
Version:        1
Cipher name:    aes
Cipher mode:    xts-plain64
Hash spec:      sha1
Payload offset: 4096
MK bits:        512
MK digest:      04 cd d0 51 bf 57 10 f5 87 08 07 d5 c8 2a 34 24 7a 89 3b db 
MK salt:        27 42 e5 a6 b2 53 7f de 00 26 d3 f8 66 fb 9e 48 
                16 a2 b0 a9 2c bb cc f6 ea 66 e6 b1 79 08 69 17 
MK iterations:  65750
UUID:           126d0121-05e4-4f1d-94d8-bed88e8c246d

Key Slot 0: ENABLED
    Iterations:             223775
    Salt:                   7b ee 18 9e 46 77 60 2a f6 e2 a6 13 9f 59 0a 88 
                            7b b2 db 84 25 98 f3 ae 61 36 3a 7d 96 08 a4 49 
    Key material offset:    8
    AF stripes:             4000
Key Slot 1: ENABLED
    Iterations:             267782
    Salt:                   8c e5 a2 31 60 2a f5 39 41 e9 52 94 eb 82 b8 c2 
                            b7 a6 6e 4a 7a 0e b1 85 c2 3a 75 d6 a7 6a 76 b3 
    Key material offset:    512
    AF stripes:             4000
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

Замечательно. Здесь мы видим, что теперь у нас есть слот 1, используемый для нашего ключа nuke. Теперь нам нужно создать резервную копию данных. Это можно легко сделать с помощью опции «luksHeaderBackup».

root@kali-crypto:~# cryptsetup luksHeaderBackup --header-backup-file luksheader.back /dev/sda5
root@kali-crypto:~# file luksheader.back 
luksheader.back: LUKS encrypted file, ver 1 [aes, xts-plain64, sha1] UUID: 126d0121-05e4-4f1d-94d8-bed88e8c246d
root@kali-crypto:~#

Итак, в нашем случае мы хотели бы зашифровать эти данные для хранения. Существует несколько способов сделать это, однако мы будем использовать openssl, чтобы сделать процесс быстрым и легким, используя инструменты по умолчанию в Kali Linux.

root@kali-crypto:~# openssl enc -aes-256-cbc -salt -in luksheader.back -out luksheader.back.enc
enter aes-256-cbc encryption password:
Verifying - enter aes-256-cbc encryption password:
root@kali-crypto:~# ls -lh luksheader.back*
-r-------- 1 root root 2.0M Jan  9 13:42 luksheader.back
-rw-r--r-- 1 root root 2.0M Jan  9 15:50 luksheader.back.enc
root@kali-crypto:~# file luksheader.back*
luksheader.back:     LUKS encrypted file, ver 1 [aes, xts-plain64, sha1] UUID: 126d0121-05e4-4f1d-94d8-bed88e8c246d
luksheader.back.enc: data

Отлично, теперь у нас есть зашифрованный заголовок, готовый к резервному копированию. В этом случае лучше разместить ключ в легкодоступном месте. Это может быть флэш-накопителе USB, который хранится в безопасном месте. На этом этапе давайте воспользуемся ключом Nuke и посмотрим, как ответит Kali Linux.

Таким образом, мы использовали ключ Nuke, и, как и ожидалось, мы больше не можем загрузиться в Kali Linux. Посмотрим, что произошло на диске, загрузившись в Kali live и снова сбросив заголовок LUKS.

root@kali:~# cryptsetup luksDump /dev/sda5
LUKS header information for /dev/sda5

Version:        1
Cipher name:    aes
Cipher mode:    xts-plain64
Hash spec:      sha1
Payload offset: 4096
MK bits:        512
MK digest:      04 cd d0 51 bf 57 10 f5 87 08 07 d5 c8 2a 34 24 7a 89 3b db 
MK salt:        27 42 e5 a6 b2 53 7f de 00 26 d3 f8 66 fb 9e 48 
                16 a2 b0 a9 2c bb cc f6 ea 66 e6 b1 79 08 69 17 
MK iterations:  65750
UUID:           126d0121-05e4-4f1d-94d8-bed88e8c246d

Key Slot 0: DISABLED
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

Как мы видим, никаких ключей не используются. Nuke работал так, как ожидалось. Чтобы восстановить ключ на место, просто получите зашифрованный ключ с вашего USB-накопителя. После этого мы можем расшифровать его и провести наше восстановление:

root@kali:~# openssl enc -d -aes-256-cbc -in luksheader.back.enc -out luksheader.back
enter aes-256-cbc decryption password:
root@kali:~# cryptsetup luksHeaderRestore --header-backup-file luksheader.back /dev/sda5

WARNING!
========
Device /dev/sda5 already contains LUKS header. Replacing header will destroy existing keyslots.

Are you sure? (Type uppercase yes): YES
root@kali:~# cryptsetup luksDump /dev/sda5
LUKS header information for /dev/sda5

Version:        1
Cipher name:    aes
Cipher mode:    xts-plain64
Hash spec:      sha1
Payload offset: 4096
MK bits:        512
MK digest:      04 cd d0 51 bf 57 10 f5 87 08 07 d5 c8 2a 34 24 7a 89 3b db 
MK salt:        27 42 e5 a6 b2 53 7f de 00 26 d3 f8 66 fb 9e 48 
                16 a2 b0 a9 2c bb cc f6 ea 66 e6 b1 79 08 69 17 
MK iterations:  65750
UUID:           126d0121-05e4-4f1d-94d8-bed88e8c246d

Key Slot 0: ENABLED
    Iterations:             223775
    Salt:                   7b ee 18 9e 46 77 60 2a f6 e2 a6 13 9f 59 0a 88 
                            7b b2 db 84 25 98 f3 ae 61 36 3a 7d 96 08 a4 49 
    Key material offset:    8
    AF stripes:             4000
Key Slot 1: ENABLED
    Iterations:             267782
    Salt:                   8c e5 a2 31 60 2a f5 39 41 e9 52 94 eb 82 b8 c2 
                            b7 a6 6e 4a 7a 0e b1 85 c2 3a 75 d6 a7 6a 76 b3 
    Key material offset:    512
    AF stripes:             4000
Key Slot 2: DISABLED
Key Slot 3: DISABLED
Key Slot 4: DISABLED
Key Slot 5: DISABLED
Key Slot 6: DISABLED
Key Slot 7: DISABLED

Теперь наши слоты восстановлены. Все, что нам нужно сделать, это просто перезагрузить компьютер и предоставить наш обычный пароль LUKS, и система вернется в исходное состояние.