Это старая версия документа.


Описание руководства

Данная статья рассказывает, как создать надёжно зашифрованное хранилище данных на жестом диске компьютера и при этом не сломать спящий и ждущий режимы. Особенно актуально это для владельцев ноутбуков, т. к. в отличие от стационарных компьютеров шанс кражи/утери ноутбука выше и возникает обоснованное желание хранить информацию в зашифрованном виде. Однако, предлагаемая по-умолчанию опция шифрования домашней папки при помощи ecryptfs во-первых не шифрует корневой раздел системы 1), а во-вторых ecryptfs шифрует раздел swap с применением случайно сгенерированного ключа, таким образом, перестает работать такая нужная в ноутбуках опция как спящий режим2).

Предлагается же создать один большой зашифрованный раздел размером с весь диск компьютера3), поверх которого развернуть виртуальную группу LVM, в которой создать обычные (не шифрованные с точки зрения ОС) разделы /, /home и swap. При этом, пользователю придётся вводить пароль при каждом включении компьютера (даже при выходе из спящего режима), однако, за счёт смещения шифрования на более низкий уровень, ОС «не заметит» этого и все функции будут работать.

Установка

Итак, для установки нам потребуется диск альтернативной установки системы, который можно скачать тут. Ищите образ с alternate в названии.

Подразумевается, что вы выполняете новую установку системы, если это не так — предварительно сохраните все свои данные и настройки, т. к. описанный ниже процесс подразумевает потерю всех данных на жёстком диске компьютера.

Загрузите систему с alternate — диска, выберите язык и приступите у установке.

Далее продолжайте установку системы как обычно. Когда установщик спросит вас, зашифровать ли домашний каталог — откажитесь, ведь ваш диск уже зашифрован.

После завершения установки и перезагрузки система предложит вам ввести пароль для разблокировки шифрованного диска.

Тут скрин

Введите пароль и нажмите Enter.

Изменение пароля.

Рекомендуется предварительно размонтировать все разделы, лежащие на зашифрованном диске, что в нашем случае означает, что для смены пароля на диске понадобится live-cd. Если вы не боитесь возможных последствий — можете пропустить этап с загрузкой live-cd и установкой необходимых программ, и сразу перейти к смене пароля.

Загрузитесь с live-cd, выберите «Попробовать» и дождитесь полной загрузки системы. После этого, настройте подключение к интернету. Затем откройте терминал и выполните: sudo apt-get update sudo apt-get install lvm2 cryptsetup После успешной установки, переходите к этапу «Смена пароля».

LUKS использует в качестве идентификаторов доступа key slots, которые в данном случае выступают в виде пароля, однако могут быть и ключом. Всего доступно 8 слотов. По умолчанию (при создании шифрованного диска) используется слот №0.

Если вам нужно использовать компьютер совместно с другим человеком — вы можете создать для него отдельный пароль разблокировки диска.

Для операций со слотами — сначала нужно определиться с диском, на котором установлено шифрование. Выполните в терминале команду sudo fdisk -l

Disk /dev/sda: 8589 MB, 8589934592 bytes 255 heads, 63 sectors/track, 1044 cylinders, total 16777216 sectors Units = sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x000882b1

 Device Boot      Start         End      Blocks   Id  System

/dev/sda1 * 2048 1953791 975872 83 Linux /dev/sda2 1955838 16775167 7409665 5 Extended /dev/sda5 1955840 16775167 7409664 83 Linux

Disk /dev/mapper/sda5_crypt: 7586 MB, 7586443264 bytes

Она даст вам список разделов на диске. Нужно найти тот раздел, на котором присутствует зашифрованный раздел. В данном случае это sda5.

Теперь можно просмотреть состояние слотов на этом разделе: sudo cryptsetup luksDump /dev/sda5 testuser@ubuntu:~$ sudo cryptsetup luksDump /dev/sda5 [sudo] password for testuser: LUKS header information for /dev/sda5

Version: 1 Cipher name: aes Cipher mode: cbc-essiv:sha256 Hash spec: sha1 Payload offset: 2056 MK bits: 256 MK digest: cd 6d 79 1b 55 11 e9 04 2f ae 51 7d d5 02 8d ec 40 38 3f ef MK salt: c2 b3 1a 4f e7 ed 13 16 40 0b 45 af 43 10 de 24

             	f8 fe bd d8 09 be 71 e6 e0 6f bd ea b9 33 78 c7 

MK iterations: 22250 UUID: 358a958b-c2ce-4626-8cd3-58124ddc15eb

Key Slot 0: ENABLED

Iterations:         	89495
Salt:               	ad 0b 83 b8 08 cc 6c 13 51 d3 23 39 9f ab a2 32 
                      	c6 3f 28 1c e2 de 10 3f f1 5d 30 f3 38 b0 9c 57 
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 имеют статус DISABLED.

Устанавливаем новый ключ. sudo cryptsetup luksAddKey /dev/sda5 Enter any passphrase: любой из существующих паролей (т. е. В нашем случае из слота 0) Enter new passphrase for key slot: Новый пароль Verify passphrase: Подтверждение нового пароля Если теперь посмотреть слоты, то станет видно, что статус ENABLED стоит теперь уже у двух слотов: testuser@ubuntu:~$ sudo cryptsetup luksDump /dev/sda5 LUKS header information for /dev/sda5

Version: 1 Cipher name: aes Cipher mode: cbc-essiv:sha256 Hash spec: sha1 Payload offset: 2056 MK bits: 256 MK digest: cd 6d 79 1b 55 11 e9 04 2f ae 51 7d d5 02 8d ec 40 38 3f ef MK salt: c2 b3 1a 4f e7 ed 13 16 40 0b 45 af 43 10 de 24

             	f8 fe bd d8 09 be 71 e6 e0 6f bd ea b9 33 78 c7 

MK iterations: 22250 UUID: 358a958b-c2ce-4626-8cd3-58124ddc15eb

Key Slot 0: ENABLED

Iterations:         	89495
Salt:               	ad 0b 83 b8 08 cc 6c 13 51 d3 23 39 9f ab a2 32 
                      	c6 3f 28 1c e2 de 10 3f f1 5d 30 f3 38 b0 9c 57 
Key material offset:	8
AF stripes:            	4000

Key Slot 1: ENABLED

Iterations:         	84916
Salt:               	54 af 0f 9a 38 80 d6 52 c2 e2 ec 12 5b 3b 11 cd 
                      	fb 4d 21 ea 98 66 25 d9 24 c5 91 f3 16 11 b6 72 
Key material offset:	264
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

Теперь можно удалить старый пароль, находящийся в слоте 0: sudo cryptsetup luksKillSlot /dev/sda5 0 Enter any remaining LUKS passphrase:Пароль из слота 1 (т. е. Из любого оставшегося слота) Смотрим слоты: testuser@ubuntu:~$ sudo cryptsetup luksDump /dev/sda5 LUKS header information for /dev/sda5

Version: 1 Cipher name: aes Cipher mode: cbc-essiv:sha256 Hash spec: sha1 Payload offset: 2056 MK bits: 256 MK digest: cd 6d 79 1b 55 11 e9 04 2f ae 51 7d d5 02 8d ec 40 38 3f ef MK salt: c2 b3 1a 4f e7 ed 13 16 40 0b 45 af 43 10 de 24

             	f8 fe bd d8 09 be 71 e6 e0 6f bd ea b9 33 78 c7 

MK iterations: 22250 UUID: 358a958b-c2ce-4626-8cd3-58124ddc15eb

Key Slot 0: DISABLED Key Slot 1: ENABLED

Iterations:         	84916
Salt:               	54 af 0f 9a 38 80 d6 52 c2 e2 ec 12 5b 3b 11 cd 
                      	fb 4d 21 ea 98 66 25 d9 24 c5 91 f3 16 11 b6 72 
Key material offset:	264
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

И видим, что слот 0 стал DISABLED.

1)
имея доступ к корневому разделу можно, например, получить список файлов в домашнем разделе, несмотря на то, что тот зашифрован
2)
т. е. режим приостановки работы компьютера, при котором все содержимое оперативной памяти сбрасывается на диск, а питание компьютера отключается
3)
за исключением небольшого не шифруемого раздела /boot