Вопрос или проблема
Попытка создать RSA ключ с помощью openssl:
openssl genpkey -algorithm RSA -cipher des3 -outform PEM -pkeyopt rsa_keygen_bits:2048 -out myCA.pem
Этот вывод:
genpkey: Используйте -help для получения справки.
Если я уберу -cipher des3
, тогда это сработает, команда станет:
openssl genpkey -algorithm RSA -outform PEM -pkeyopt rsa_keygen_bits:2048 -out myCA.pem
Но в странице man
есть эта опция:
Вопросы следующие:
- почему опция
-cipher des3
не поддерживается, и как это исправить? - имеет ли значение, если я не добавляю опцию
-cipher
?
Опция не документирована как -cipher algorithm
, а как -cipher
. Это означает, что нужно использовать не -cipher des3
, а -des3
. Это также видно в примерах, которые являются частью документации. Цитирую:
openssl genpkey -algorithm RSA -out key.pem -aes-128-cbc -pass pass:hello
В этом случае используется AES-128-CBC вместо DES3. Это более подходящий выбор на сегодняшний день, поскольку DES3 больше не считается достаточно безопасным.
Ответ или решение
Проблема, с которой вы столкнулись при использовании команды openssl genpkey
с параметром -cipher des3
, связана с неправильным использованием опции шифрования. Давайте подробно рассмотрим ваши вопросы и объясним, как правильно использовать эту команду.
1. Почему опция -cipher des3
не поддерживается, и как это исправить?
Как указано в документации OpenSSL,
openssl genpkey -algorithm RSA -out key.pem -aes-128-cbc -pass pass:hello
опция шифрования не обозначается в формате -cipher algorithm
, а должна быть указана просто с названием алгоритма шифрования: -des3
, -aes-128-cbc
и т.д. Таким образом, чтобы ваш код работал корректно, вам следует заменять -cipher des3
на -des3
. Пример правильной команды будет:
openssl genpkey -algorithm RSA -outform PEM -pkeyopt rsa_keygen_bits:2048 -des3 -out myCA.pem
Важно упомянуть, что DES3 (или Triple DES) считается устаревшим и менее безопасным на сегодняшний день. Рекомендуется использовать более современные алгоритмы шифрования, такие как AES (Advanced Encryption Standard), который обеспечивает более высокий уровень безопасности.
2. Имеет ли значение отсутствие опции -cipher
?
Если вы не указываете опцию шифрования (например, -des3
или аналогичную), ключ будет сгенерирован без дополнительного шифрования, что в некоторых случаях является приемлемым. Однако в зависимости от вашей среды и сценариев использования, отсутствие шифрования может привести к тому, что частный ключ окажется менее защищённым.
В общем случае, следует рассмотреть возможность использования шифрования для любых чувствительных данных. Если вы решите не использовать шифрование, убедитесь, что у вас есть надежные механизмы безопасности для защиты вашего частного ключа, такие как ограниченный доступ к файлу, применение прав доступа и т.д.
Заключение
Чтобы поправить вашу команду для генерации RSA-ключа с шифрованием, используйте правильную опцию для шифрования, то есть замените -cipher des3
на -des3
. Если вы не хотите использовать шифрование, убедитесь в надежности хранения вашего ключа. Также рекомендуется ознакомиться с более современными алгоритмами, такими как AES, для улучшения безопасности ваших данных.
Помните, что правильное использование инструментов шифрования играет ключевую роль в обеспечении безопасности ваших криптографических ключей и данных.