Краткие теоретические и учебно-методические материалы по теме практической работы
Схема аутентификации на основе сертификата.
Данная схема предполагает наличие третьей стороны, называемой УЦ – удостоверяющим центром или ЦС – центром сертификации, которая выдает удостоверения (сертификаты) всем участникам сетевого домена, входящего в зону действия данного ЦС. При регистрации нового пользователя или сервера в домене ЦС выдает новому участнику сертификат, состоящий из открытой части, содержащий такие данные как:
и закрытой части, содержащий ту же информацию, закрепленной электронно-цифровой подписью ЦС (т.е. подвергнутого хеш- преобразованию и последующему шифрованию с помощью закрытого ключа ЦС).
Обе части выдаются соискателю в электронном виде в виде одного файла. Закрытая часть служит для того, чтобы нельзя было подделать сертификат.
Кроме того, соискатель получает отдельно закрытый ключ, соответствующий открытому ключу, находящемуся в сертификате, который соискатель обязуется хранить в секрете.
Кроме того, открытая часть сертификата может выдана в виде бумажного документа, подтвержденного печатью ЦС.
При обмене сообщения каждый участник сопровождает свое послание меткой времени, электронно-цифровой подписью, сформированной на основе своего закрытого ключа, и сертификатом, выданным ему ЦС. Сертификат здесь служит для удостоверения ЭЦП отправителя: получатель подписывает своим закрытым ключом послания, а получатель расшифровывает ЭЦП, используя открытый ключ отправителя, извлеченный из сертификата. Подлинность сертификата подтверждается электронно-цифровой подписью ЦС, которая может быть проверена с помощью расшифровки закрытой части сертификата с использованием открытого ключа ЦС, который является общедоступным. Скачать OpenSSL отсюда и добавить в корень C:\, скопировать файл openssl.cnf из C:\OpenSSL\bin в C:\OpenSSL\
3) Выпустим собственный ЦС сертификат, для этого получим private-ключ для нашего ЦСсертификата:
Openssl> genrsa -out «ИМЯКЛЮЧАЦС».key 2048
Ключ:
2048 - длина ключа в битах, можно выбрать 4096;
«ИМЯКЛЮЧАЦС».key - имя файла ключа.
4) Создадим ЦС сертификат, выполнив команду:
openssl> req -x509 -new -key «ИМЯКЛЮЧАЦС».key -days 10000 -out «ИМЯСЕРТЦС».crt
Можно задать параметр -subj состоит из сегментов вида /$KEY=$VALUE, где $KEY может принимать такие значения:
ca.cer –subj "/C=KZ/ST=Kazahstan/L=Taraz/O=MyCompany/OU=CA/CN=localhost"
- C - country, двухбуквенный код страны, например, RU или US
- ST - state, обычно это регион, область, район и т.д.
- L - locality, обычно это город
- O- organization, название организации
- OU - organization unit, отдел в организации
- CN - common name, обычно это адрес веб-сайта
Ключ:
- days 30 — это количество дней от текущего дня, в течение этого срока сертификат будет считаться действующим.
- «ИМЯКЛЮЧАЦС».key — имя файла с закрытым ключом, созданным на предыдущем шаге
- «ИМЯСЕРТЦС».crt — имя файла, в который будет записан созданный сертификат ЦС.
5) Откройте папку и просмотрите созданный сертификат
8) Выполним выпуск дочернего сертификата, для этого создадим ключ
Openssl> genrsa –out «ИМЯКЛЮЧАДОЧЕРНЕГОСЕРТ».key 2048
9) Создадим дочерний сертификат, выполнив команду:
Openssl> req -new -key «ИМЯКЛЮЧАДОЧЕРНЕГОСЕРТ».key -out «ИМЯДОЧЕРНЕГОСЕРТ».csr
10) Подпишем ваш сертификат
Openssl> x509 -req -in «ИМЯДОЧЕРНЕГОСЕРТ».csr -CA «ИМЯСЕРТЦС».crt -CAkey «ИМЯКЛЮЧАЦС».key –CAcreateserial -out «ИМЯДОЧЕРНЕГОСЕРТ».crt -days 5000
11) Данные сертификата (проверить кем выдан):
1. Просмотр содержимого CSR:
Openssl req -noout -text -in C:\OpenSSL\bin\«ИМЯДОЧЕРНЕГОСЕРТ».csr
2. Отобразить информацию о сертификате в формате PEM:
Openssl> x509 -text -in C:\OpenSSL\bin\«ИМЯДОЧЕРНЕГОСЕРТ».crt
3. Просмотр отпечатков сертификата:
Openssl> x509 -fingerprint -noout -in C:\OpenSSL\bin\«ИМЯДОЧЕРНЕГОСЕРТ».crt
4. Проверка секретного ключа и подписанного сертификата сравнением вывода (должен быть одинаковым):
Openssl> rsa -noout -modulus -in C:\OpenSSL\bin\«ИМЯКЛЮЧАДОЧЕРНЕГОСЕРТ».key
openssl> x509 -noout -modulus -in C:\OpenSSL\bin\«ИМЯДОЧЕРНЕГОСЕРТ».crt
5. Отобразить информацию о закрытом ключе:
Openssl> rsa -text -in C:\OpenSSL\bin\«ИМЯКЛЮЧАДОЧЕРНЕГОСЕРТ».key
Контрольные вопросы