Студопедия

КАТЕГОРИИ:


Архитектура-(3434)Астрономия-(809)Биология-(7483)Биотехнологии-(1457)Военное дело-(14632)Высокие технологии-(1363)География-(913)Геология-(1438)Государство-(451)Демография-(1065)Дом-(47672)Журналистика и СМИ-(912)Изобретательство-(14524)Иностранные языки-(4268)Информатика-(17799)Искусство-(1338)История-(13644)Компьютеры-(11121)Косметика-(55)Кулинария-(373)Культура-(8427)Лингвистика-(374)Литература-(1642)Маркетинг-(23702)Математика-(16968)Машиностроение-(1700)Медицина-(12668)Менеджмент-(24684)Механика-(15423)Науковедение-(506)Образование-(11852)Охрана труда-(3308)Педагогика-(5571)Полиграфия-(1312)Политика-(7869)Право-(5454)Приборостроение-(1369)Программирование-(2801)Производство-(97182)Промышленность-(8706)Психология-(18388)Религия-(3217)Связь-(10668)Сельское хозяйство-(299)Социология-(6455)Спорт-(42831)Строительство-(4793)Торговля-(5050)Транспорт-(2929)Туризм-(1568)Физика-(3942)Философия-(17015)Финансы-(26596)Химия-(22929)Экология-(12095)Экономика-(9961)Электроника-(8441)Электротехника-(4623)Энергетика-(12629)Юриспруденция-(1492)Ядерная техника-(1748)

Лабораторная работа №5 «Создание сертификатов» в WINDOWS




Лабораторная работа №4 «Создание и распределение криптографических ключей».

 

Алгоритм RSA можно использовать для обмена криптографическими ключами между пользователями. Например, RSA применяется для создания общего секретного ключа в протоколе SSL/TLS.

Цель работы: Научиться использовать алгоритм RSA для обмена ключевой информацией по сети.

Порядок выполнения работы:

 

Для выполнения лабораторной работы создать каталог./lab4. Файлы с ключами называть своим именем, например, ivan.

  Создать сессионный ключ по паролю для симметричного алгоритма: openssl enc –des –P –k 12345 > ivan.key
  Создать ключевую пару RSA: openssl genrsa –out ivan.pr.pem 1024 openssl rsa –in ivan.pr.pem –out ivan.pub.pem -pubout
  Получить по сети открытый ключ RSA партнера (например, masha.pub.pem) и передать ему свой открытый ключ RSA.
  Зашифровать свой сессионный ключ открытым ключом RSA партнера: openssl rsautl –encrypt –in ivan.key –out ivan.key.rsa -inkey masha.pub.pem –pubin
  Передать по сети партнеру свой зашифрованный сессионный ключ (ivan.key.rsa) и получить от него зашифрованный сессионный ключ (masha.key.rsa).
  Расшифровать сессионный ключ партнера: openssl rsautl –decrypt –in masha.key.rsa –out masha.key -inkey ivan.pr.pem
  Создать текстовый файл masha.privet.txt, зашифровать его симметричным алгоритмом DES, используя ключ из файла masha.key: openssl des -in masha.privet.txt -out masha.privet.txt.des -e -K <ключ> -iv <IV>
  Передать по сети зашифрованный файл masha.privet.txt.des соседу и получить от него аналогично зашифрованный файл ivan.privet.txt.des.
  Расшифровать полученный файл симметричным алгоритмом DES, используя ключ из файла ivan.key: openssl des -in ivan.privet.txt.des -out ivan.privet.txt -d –K <ключ> -iv <IV>

 

Сертификатом называется открытый ключ пользователя вместе с идентифицирующей пользователя информацией подписанные секретным ключом центра сертификации (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.  

 

 

Лабораторная работа № 6 «Протокол защиты электронной почты S/MIME»

 

Протокол S/MIME является основным промышленным стандартом для защиты электронной почты. Этот протокол поддерживает большинство современных почтовых клиентов (например, Outlook Express). Чтобы использовать протокол S/MIME пользователь должен иметь сертификат Х.509 своего открытого ключа.

Цель работы: Научиться использовать протокол S/MIME для защиты электронной почты. Для защиты почтовых сообщений будем применять команду smime программы openssl.

 

Порядок выполнения работы:

В данной лабораторной работе используются секретный ключ ключевой пары алгоритма RSA Ivan.pr.pem, сертификат локального центра сертификации cacert.pem, сертификат пользователя Ivan.cert.pem, секретный ключ Masha.pr.pem, сертификат пользователя Masha.cert.pem

  Скопировать в каталог./lab6 свой секретный ключ RSA, сертификат локального центра сертификации и свой сертификат, переименовав его: Ivan.pr.pem cacert.pem Ivan.cert.pem
  Создать текстовый файл f.txt с текстом: Hello, my friend Masha! Best Regards from Ivan.
  Создать подписанное почтовое сообщение: openssl smime -sign -in f.txt -out toMashaFromIvan.s.msg -inkey Ivan.pr.pem -signer Ivan.cert.pem -from [email protected] -to [email protected] Подписанное сообщение будет состоять из двух частей. Первая часть содержит текст сообщения. Вторая – подпись и сертификат отправителя. Вторая часть сообщения кодируется алгоритмом base64 во избежание потерь при передаче через различные почтовые серверы.
  Отправить почтовое сообщение соседу (если Интернет не доступен, надо просто скопировать файл toMashaFromIvan.s.msg на соседний компьютер)
  Получить от соседа подписанное почтовое сообщение: toIvanFromMasha.s.msg
  Проверить подпись почтового сообщения: openssl smime -verify -in toIvanFromMasha.s.msg -signer Masha.cert.pem -CAfile cacert.pem -out f1.txt В случае успеха, в текущем каталоге появятся файл Masha.cert.pem с сертификатом соседа и файл f1.txt с текстом сообщения. Заметим, что для проверки подписи необходимо указать сертификат центра сертификации, выдавшего сертификат отправителю сообщения.
  Создать текстовый файл f2.txt с текстом: Hello, my friend Masha! This message is top secret. Ivan.
  Зашифровать почтовое сообщение для соседа: openssl smime -encrypt -in f2.txt -out toMashaFromIvan.e.msg -from [email protected] -to [email protected] Masha-cert.pem Заметим, что для этого надо указать сертификат соседа.
  Передать соседу зашифрованное почтовое сообщение toMashaFromIvan.e.msg и получить от него зашифрованное почтовое сообщение toIvanFromMaswha.e.msg.
  Расшифровать полученное почтовое сообщение: openssl smime -decrypt -in toIvanFromMaswha.e.msg -recip Ivan.cert.pem -inkey Ivan.pr.pem

 

Задание для самостоятельной работы. Подписать и зашифровать почтовое сообщение для соседа, используя любой почтовый клиент, поддерживающий протокол S/MIME (например, Outlook Express). Вначале надо импортировать сертификат СА и свой сертификат в этот почтовый клиент.

 

Лабораторная работа №7 «Стек протоколов SSL/TLS»

 

В настоящее время стек протоколов SSL/TLS является общепринятым стандартом, обеспечивающим надежную защиту сквозной передачи данных с использованием протокола TCP.

 

Цель работы: С помощью программы OpenSSL запустить приложения клиент и сервер, которые будут обмениваться защищенной информацией по протоколу SSL/TLS.

Для установления защищенного сеанса клиент и сервер обмениваются общим секретным ключом (Master Secret). Для создания этого ключа протокол SSL/TLS предоставляет различные методы. Рассмотрим два из них: ADH и RSA.

Порядок выполнения работы:

Для выполнения работы студент создает каталог./lab7. Студенту потребуются:

cacert.pem – сертификат локального центра сертификации,

Ivan.pr.pem – секретный RSA-ключ,

Ivan.cert.pem – сертификат соответствующего открытого ключа.

 

Метод обмена ключами ­– anonymous DH (ADH)

  В папке./server_ADH: a. сформировать список наборов алгоритмов, поддерживающих ADH openssl ciphers ADH > ser_ADH b. Файл ser_ADH сделать исполняемым и в нем набрать команду openssl s_server –nocert -state –accept 10001 –cipher <список наборов шифров поддерживающих ADH >
  В папке./client_ADH a. сформировать список наборов шифров, поддерживающих ADH openssl ciphers ADH > cli_ADH b. Файл cli_ADH сделать исполняемым и в нем набрать команду openssl s_client –state –connect 127.0.0.1:10001 –cipher <список наборов шифров поддерживающих ADH >  
  Запустить на выполнение SSL-сервер ser_ADH  
  Любой пользователь может подсоединиться к вашему серверу, запустив на своем компьютере SSL-клиент cli_ADH В этом режиме к серверу может подсоединиться только один клиент. Клиент и сервер могут обмениваться тестовыми сообщениями (после ввода с консоли текста сообщения нажмите Enter).



Поделиться с друзьями:


Дата добавления: 2014-12-07; Просмотров: 1780; Нарушение авторских прав?; Мы поможем в написании вашей работы!


Нам важно ваше мнение! Был ли полезен опубликованный материал? Да | Нет



studopedia.su - Студопедия (2013 - 2024) год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! Последнее добавление




Генерация страницы за: 0.024 сек.