
- •Введение
- •1Лабораторная работа №1 «Симметричные алгоритмы шифрования»
- •Порядок выполнения работы:
- •2Лабораторная работа №2 “Асимметричный алгоритм шифрования rsa”
- •Порядок выполнения работы:
- •3Лабораторная работа №3 «Электронно-цифровая подпись»
- •Порядок выполнения работы:
- •Лабораторная работа №4 «Создание и распределение криптографических ключей».
- •Порядок выполнения работы:
- •Лабораторная работа №5 «Создание сертификатов» в windows
- •Порядок выполнения работы:
- •Лабораторная работа № 6 «Протокол защиты электронной почты s/mime»
- •Порядок выполнения работы:
- •Лабораторная работа №7 «Стек протоколов ssl/tls»
- •Порядок выполнения работы:
- •Метод обмена ключами – anonymous dh (adh)
- •Метод обмена ключами – rsa
- •Литература
- •1 Лабораторная работа №1 «Симметричные алгоритмы шифрования» 3
- •2 Лабораторная работа №2 “Асимметричный алгоритм шифрования rsa” 7
- •3 Лабораторная работа №3 «Электронно-цифровая подпись» 11
Лабораторная работа №5 «Создание сертификатов» в windows
Сертификатом называется открытый ключ пользователя вместе с идентифицирующей пользователя информацией подписанные секретным ключом центра сертификации (CA – Certificate Authority). В настоящее время наиболее часто применяются сертификаты стандарта Х.509. Сертификаты Х.509 используются такими протоколами сетевой защиты, как IPSec, SSL/TLS, S/MIME, SET.
Цель работы: Научиться создавать сертификаты стандарта Х.509 программой opessl.
Порядок выполнения работы:
1. |
В каталоге lab5 создайте каталог myCA, где будет храниться секретный ключ корневого сертификата и сам сертификат. |
2. |
Генерируем секретный ключ ключевой пары алгоритма RSA для корневого сертификата локального центра: openssl genrsa –des3 –out myCA\cakey.pem 1024 |
где des3 означает, что ключ будет зашифрован по алгоритму Triple-DES, cakey – имя файла ключа, 1024 – длина ключа в битах, не рекомендуется устанавливать ее больше данного значения, иначе могут быть проблемы с некоторыми реализациями SSL. После того как ключ будет сгенерирован, Вам предложат ввести для него пароль. Если вы забудете пароль, то не сможете выдавать новые сертификаты. Фактически, это означает, что ваш СА станет непригоден для использования, и вам нужно будет создавать его заново, а также выдать заново все клиентские сертификаты. |
|
3. |
Создаем корневой сертификат ЦС. Корневой сертификат будет самоподписанным, потому что он находится выше всех в создаваемой иерархии: openssl req –new –x509 –key myCA\cakey.pem –out myCA\cacert.pem –days 365 –config openssl.cnf Создание (-new) cacert.pem сертификата (-x509) для использования в качестве сертификата сервера или сертификата CA. Сертификат создается с использованием секретного ключа –key и конфигурационного файла –config. Создаваемый сертификат будет действителен в течение 365 дней (-days), опция –days не применима к запросам на сертификацию. В процессе создания сертификата вам будут задавать вопросы об информации, которая будет указана в созданном сертификате, обязательным является только ответ на Common Name, где имеет смысл указать название вашего ЦС. |
4.
|
Просмотр содержимого сертификата: openssl x509 –text –noout –in myCA\cacert.pem
|
Создание сертификата для пользователя |
|
1. |
В своем текущем каталоге генерируем секретный ключ: openssl genrsa -out Ivan_pr.pem 1024 Просмотр содержимого файла ключа: openssl rsa -noout -text -in <файл ключа>
|
2. |
Создание запроса reqIvan.pem на сертификацию (-new) на основе создаваемого секретного ключа rsa (-newkey rsa:1024), который записывается в файл –keyout Ivan_pr.pem (и шифруется тройным DES). Запрос на сертификацию создается на основе конфигурационного файла — config:
openssl req -new -newkey rsa:1024 -keyout Ivan_pr.pem -config openssl.cnf -out reqIvan.pem
|
|
На этом этапе вам снова предложат заполнить информационные поля сертификата. В поле Common Name следует указать полное определенное доменное имя (FQDN) (что-то вроде mail.sercer.home.ru или ip) чтобы почтовый клиент не выдавал предупреждение о неверности имени. |
3. |
Просмотр содержимого файла запроса на подписание сертификата пользователя: openssl req -noout -text -in <файл запроса на подписание сертификата сервера>
|
4. |
Для управления сертификатами x509 используется утилита openssl x509. С ее помощью можно подписать сертификат или запрос на сертификацию сертификатом CA. Также можно просмотреть содержимое сертификата в читаемой форме (DN, публичный ключ, время действия, отпечаток и.т.д.). Создать по запросу сертификат пользователя, подписанный локальным центром сертификации : openssl x509 -req -days 365 -in reqIvan.pem -CA myCA\cacert.pem -CAkey myCA\cakey.pem -CAcreateserial -out Ivan_cer.pem Подписать запрос на сертификацию (-req) файла -in, используя доверенный CA сертификат -CA и его секретный ключ -cakey. Ключ -CAcreateserial нужен для того, чтобы OpenSSL вел учет выдаваемым сертификатам в своей внутренней базе. В конечный сертификат клиента (-out), записываются дополнительные параметры сертификата 3-й версии из файла /usr/lib/ssl/openssl.cnf. Вас попросят ввести пароль к закрытому ключу ЦС. Сертификат будет выдан на 365 дней. |
5. |
Просмотр содержимого файла сертификата: openssl x509 -noout -text -in <файл сертификата>
|
6. |
Для помещения сертификата пользователя в хранилище WINDOWS необходимо его преобразовать в формат pkcs#12: openssl pkcs12 -export -in Ivan_cer.pem -inkey Ivan_pr.pem -out Ivan_cer.p12 В сертификате этого формата вместе с открытым ключом пользователя хранится защищенный паролем секретный ключ. |
7. |
Чтобы приложение Windows могло проверить сертификат пользователя, перед импортированием сертификата пользователя надо импортировать сертификат центра сертификации, выдавшего сертификат пользователю. Для этого сертификат центра сертификации можно перевести в формат сообщения pkcs#7:
openssl crl2pkcs7 -nocrl -certfile myCA\cacert.pem -out myCA\cacert.p7b |
8. |
Переместим сертификат пользователя в хранилище WINDOWS |
|
Выполнив двойной щелчок по файлу Ivan_cer.p12 откроется окно WINDOWS «Мастер импорта сертификата»
В следующем окне надо ввести пароль секретного ключа пользователя, который вводился при создании ключа
А затем выбрать хранилище, где будет храниться сертификат:
Для просмотра хранилища ОС надо выполнить команду: certmgr.msc.
|