ВведениеНи для кого не секрет, что построение надежной системы информационной безопасности не возможно без систем шифрования и цифровых подписей. Наиболее известными технологиями предоставляющими данный функционал на момент написания статьи являются GPG и SSL ( x.509). После сравнительного анализа этих двух технологий для внедрения в организации выбор был однозначно остановлен на SSL по следующим причинам:
Центр выдачи сертификатовНа данный центр возлагается следующий функционал:
Генерация корневого сертификатаКлючи шифрования обычно делают парами, т.е. они состоят из публичной (открытой) и секретной (приватной) части. При использовании 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). Генерация самоподписанного сертификата
КлиентКлиенты центра сертификации бывают разные по уровню владения компьютеров - от чайника до системного администратора. Это обязательно стоит учеть. Если администратору достаточно примера комманд и ссылки на документацию для полноценной работы, то для рядовых сотрудников этого врят ли будет достаточно для пониманию работы с системой. Перед внедрением следует обязательно разработать подробную инструкцию в картинках по работе как с самими сертификатами и описанием файлов, так и использование этой технологии во всех принятых к использованию в организации пользовательских приложениях. Описание использования данной технологии в продуктах 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 системах. ЗаключениеНа настоящий момент в данной статье нельзя поставить жирной точки. Я буду дополнять и модифицировать по мере накопления опыта во внедрении этого решения.Следите за обновлениями. |
