Генерация симметричного ключа
На этом этапе вы сгенерируете симметричный ключ шифрования с помощью OpenSSL, который мы будем использовать для шифрования нашего примерного файла на следующем этапе. Симметричное шифрование означает, что один и тот же ключ используется как для блокировки (шифрования), так и для разблокировки (дешифрования) данных, в отличие от асимметричного шифрования, которое использует отдельные ключи. Это делает процесс генерации ключа особенно важным для безопасности.
Разберем, что мы собираемся сделать: мы создадим надежный случайный ключ с использованием криптографических функций OpenSSL, сохраним его безопасно и проверим его свойства. Ключ будет использовать алгоритм AES-256, который в настоящее время считается очень надежным для большинства целей.
Следуйте этим шагам внимательно, чтобы сгенерировать надежный ключ шифрования AES-256:
-
Сначала убедитесь, что вы находитесь в правильной рабочей директории, где мы будем хранить файл с ключом. Это поможет организовать ваши проектные файлы:
cd ~/project
-
Теперь сгенерируем сам ключ. Команда openssl rand
создает криптографически надежные случайные данные. Мы запрашиваем 32 байта (256 бит) случайных данных и форматируем их в шестнадцатеричном виде (основание 16) для удобства чтения:
openssl rand -hex 32 > symmetric_key.hex
-
Посмотрим на сгенерированный ключ, чтобы убедиться, что он был создан правильно. Ключ должен выглядеть как длинная строка случайных символов:
cat symmetric_key.hex
Вы должны увидеть шестнадцатеричную строку из 64 символов (представляющую 32 байта), похожую на следующую:
a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890a1b2c3d4e5f67890
-
Поскольку этот ключ может разблокировать ваши зашифрованные данные, нам нужно его защитить. Команда chmod 600
гарантирует, что только вы можете читать или записывать в этот файл:
chmod 600 symmetric_key.hex
-
Наконец, проверим свойства файла с ключом, чтобы убедиться, что все настроено правильно:
ls -l symmetric_key.hex
Вывод должен показать:
- Ваше имя пользователя в качестве владельца
-rw-------
права доступа (только вы можете читать/писать)
- Размер 65 байт (64 символа + символ новой строки)
Не забудьте сохранить этот файл с ключом в безопасности - любой, кто его получит, может расшифровать ваши зашифрованные файлы. В реальных сценариях вы, возможно, захотите хранить его в более безопасном месте, чем ваша проектная директория.