Причины были следующие:
- Централизованная структура. Цифровые сертификаты выдаются централизованно, возможно организовать учет выданных сертификатов. Нет необходимости обмена ключами - достаточно распространить корневой сертификат.
- Контроль действительности ключей. Можно создать так называемый список отзыва, позволяющий сделать недействительными скомпрометированные ключи или сертификаты уволенных сотрудников.
- Интеграция. Цифровые сертификаты возможно легко использовать в современных почтовых програмах для шифрования и подписей, для авторизации на web-ресурсах и пр.
Центр выдачи сертификатов
На данный центр возлагается следующий функционал:- Генерация сертификатов пользователей на основе поступающих запросов.
- Генерация и публикация списка отзыва сертификатов на основе выданных сертификатов.
- Генерация и публикация корневого сертификата в заданные промежутки времени.
Генерация корневого сертификата
Ключи шифрования обычно делают парами, т.е. они состоят из публичной (открытой) и секретной (приватной) части. При использовании OpenSSL секретный ключ уже содержит информация открытого ключа, так что публичный ключ не требуется генерировать отдельно.Создание секретного ключа:
# openssl genrsa -out privkey.pem 2048
Если ключ необходимо защитить паролем, то добавляем ключа -des3
# openssl genrsa -des3 -out privkey.pem 2048
Использование пароля опрадано в тех случаях, когда доступ к ключу будут иметь множество людей. В таком случае при каждом обращении к ключу потребуется вводить специальный пароль.
Далее необходимо создать запрос на получение сертификата:
#
openssl req -new -key privkey.pem -out cacert.csr
Результат генерации запроса можно проверить следующим образом:
# openssl req -noout -text -in cacert.csr
Генерация самоподписанного сертификата:
# openssl x509 -req -signkey privkey.pem -in cacert.csr -out cacert.pem
Генерация сертификатов пользователей
Клиент присылает запрос на выдачу сертификата (файл user-cert.pem). На основании его запроса генерируем сертификат в файле user-cert.pem:# openssl x509 -req -in user-cert.csr -CA cacert.pem -CAkey privkey.pem -out user-cert.pem
Если команда выдает ошибку об отсутствии файла индексатогда добавляем команду его генерацииcacert.srl: No such file or directory
# openssl x509 -req -in user-cert.csr -CA cacert.pem -CAkey privkey.pem -CAcreateserial
-out user-cert.pem
Данный сертификат можно передавать по незащищенным каналам связи.
Генерация самоподписанного сертификата
# openssl req -new -nodes -keyout server.key -x509 -out server.crt
Клиент
Клиенты центра сертификации бывают разные по уровню владения компьютеров - от чайника до системного администратора. Это обязательно стоит учеть. Если администратору достаточно примера комманд и ссылки на документацию для полноценной работы, то для рядовых сотрудников этого врят ли будет достаточно для пониманию работы с системой.Перед внедрением следует обязательно разработать подробную инструкцию в картинках по работе как с самими сертификатами и описанием файлов, так и использование этой технологии во всех принятых к использованию в организации пользовательских приложениях. Описание использования данной технологии в продуктах Mozilla приведено мной на отдельном сайте.
Консоль
Данный раздел полезен для специалистов и людей, которые желают знать, что скрывается под покрывалом графических оболочек.Генерируем секретный ключ клиента :
#
openssl genrsa -out privkey.pem 2048
Генерируем запрос на выдачу сертификата user-cert.csr :
#
openssl req -new -key privkey.pem -out user-cert.csr
Отправляем запрос в сервер сертификации. После получения подписанного сертификата из центра сертификации пару сертификата и секретного ключа рекомендуется запаковать в формат PKCS12
# openssl pkcs12 -export -in user-cert.pem -inkey privkey.pem -certfile cacert.pem -name "Oleg P. Kluchkin" -out user.p12
При запаковке будет запрошен пароль на пакет - не потеряйте его. Он будет использоваться для доступа к содержимому и при добавлении сертификата например в пользовательские приложения.
Графическое окружение
Для большинства пользователей безусловно изучение командной строки и параметров запуска является большой трудностью. К тому же это не рационально нагружать рабочий день сотрудника такими занятиями.Для облегчения жизни рядовых пользователей компьютера я написал графический интерфейс к консольной программе openssl.Перед началом работы следует обязательно заполнить Меню -> Реквизиты и проверить корректность настроек в Меню -> Параметры
Скачать утилиту можно с сайта проекта.
Приложение написано на Python, что позволяет использовать его как в Linux, так и в Windows системах.
Комментариев нет:
Отправить комментарий