- •Курсовая работа
- •Создание удостоверяющего центра с использованием свободно распространяемого программного обеспечения
- •Перечень обозначений и сокращений
- •Введение
- •Теоретический раздел
- •1. Обзор существующих уц и принципов их работы
- •2. Принципы работы уц и его основные компоненты
- •3. Технические характеристики и требования к удостоверяющему центру
- •4. Выбор свободно распространяемого программного обеспечения для генерации и подписи цифровых сертификатов
- •Вывод по теоретическому разделу
- •Практический раздел
- •1. Создание уц на базе OpenSsl
- •2. Тестирование удостоверяющего центра
- •3. Оценка преимуществ и недостатков созданного уц на базе OpenSsl
- •Вывод по практическому разделу
- •Заключение
- •Список использованных источников
Вывод по теоретическому разделу
Краткий обзор существующих удостоверяющих центров и принципов их работы помог нам лучше понять необходимые требования к удостоверяющему центру, а также выделить основные задачи, которые может решать созданный УЦ. В частности, мы выяснили, что одним из главных принципов работы удостоверяющих центров является генерация и подписание цифровых сертификатов, которые используются для аутентификации и шифрования данных в электронной форме.
Для реализации проекта было выбрано свободно распространяемое программное обеспечение OpenSSL, так как оно отвечает всем необходимым требованиям и обладает широким функционалом.
В целом, проведенный анализ и выбор программного обеспечения были важным этапом на пути создания удостоверяющего центра, который будет обеспечивать надежную аутентификацию и безопасное шифрование данных. Следующий этап — это создание и настройка удостоверяющего центра с использованием выбранного программного обеспечения.
Практический раздел
1. Создание уц на базе OpenSsl
В ходе создания удостоверяющего центра на ОС Ubuntu нужно выполнить несколько этапов:
1. Установить OpenSSL для нужной платформы.
Для этого необходимо склонировать репозиторий, размещённый на официальном сайте проекта.
2. Подготовка каталогов
Необходимо выбрать каталог для хранения всех ключей и сертификатов. Создаем нужную директорию:
mkdir /root/ca
3. Создание самоподписанного СА сертификата.
Для создания сертификата необходимо сгенерировать приватный ключ 2048-бит RSA:
openssl genrsa -out root_ca.key 2048
А затем создать X.509 сертификат (root_ca.crt) и подписать его приватным ключом (root_ca.key). В итоге будет создан самоподписанный сертификат, его нужно разместить на всех клиентах, между которыми необходимо организовать защищенное соединение. Атрибут -days устанавливает срок действия сертификата.
openssl req -x509 -new -key root_ca.key -days 365 -out root_ca.crt
4. Создание сертификата для HTTPS сервера
Следующий шаг - генерация приватного ключа для HTTPS сервера, этот ключ нужно скопировать только на компьютер, на котором будет развернут сервер:
openssl genrsa -out server.key 2048
Затем необходимо сгенерировать запрос на сертификат CSR. В этом запросе нужно передать конкретные значения в параметре "subj". Это должны быть один или несколько параметров CN (Common Name), которые будут прописаны в атрибутах сертификата "Subject" и "Subject Alternative Name". CN - это IP адреса и имена хостов, по которым будет осуществляться доступ к серверу.
Openssl req -new -key server.key -subj "/CN=xx.xx.xx.xx/CN=server/CN=server.example.com" -out server.csr
Затем выполняем генерацию сертификата X.509 (server.crt) со сроком действия 365 дней для HTTPS сервера и подписываем его приватным ключом CA (root_ca.key):
openssl x509 -req -in server.csr -CA root_ca.crt -CAkey root_ca.key -CAcreateserial -out server.crt -days 365 -extensions SAN -extfile openssl.cnf
Примечание:
Файл openssl.cnf должен содержать список Subject Alternative Name, идентичный тому, что был в CSR запросе на сертификат:
[SAN]
subjectAltName = @alt_names
[alt_names]
IP.1 = xx.xx.xx.xx
DNS.1 = server
DNS.2 = server.example.com
5. Создание CRL
CRL - это список сертификатов, которые были отозваны. Клиентское приложение, к примеру, веб-браузер, может использовать CRL для проверки подлинности сервера. Серверные приложения, такие как Apache или OpenVPN, могут использовать CRL для запрета доступа клиентам, которые больше не являются доверенными.
Публикация CRL в публично доступном позволит получать CRL из этого места, чтобы проверить, нет ли в нем сертификатов, которые могут быть отозваны. Когда центр сертификации подписывает сертификат, он обычно зашифровывает расположение CRL в сертификат. Добавляется crlDistributionPoints в подходящие секции.
crlDistributionPoints = URI:http://example.com/intermediate.crl.pem
Необходимо создать СRL помощью команды:
openssl ca -config intermediate/openssl.cnf -gencrl -out intermediate/crl/intermediate.crl.pem
и пересоздавать CRL на регулярной основе. По умолчанию, CRL истекает через 30 дней. Это настраивается опцией default_crl_days в секции CA_default. Проверить, есть ли отозванные сертификаты, легко командой:
openssl crl -in intermediate/crl/intermediate.crl.pem -noout –text