Цифровые сертификаты. Определения и пояснения.

Описывается что такое и зачем нужны цифровые сертификаты, как создать запрос на цифровой сертификат для отправки в удостоверяющий центр. Звучит страшно, но на самом деле как и все гениальное, это очень просто. Прочитав эти статьи, Вы через 10 минут будете иметь все необходимые Вам цифровые ключи и сертификаты.

Определения и пояснения.

Для безопасной передачи приватной информации через интернет используется шифрование данных с использованием цифровых сертификатов.

Шифрование с открытым ключем (ассиметричное шифрование) – требует для работы алгоритма два ключа, один из которых секректный, а второй нет т.е. открытый и может свободно распространяться. Открытый ключ требуется для шифрования или проверки цифровой подписи, а секретный – для дешифровки или создания цифровой подписи.

Цифровой сертификат – открытый ключ с встроенной в нем информацией о владельце секретного ключа (имя человека или название организации, адрес, эл. почта и т. д.).

Инфраструктура с открытым ключем (PKI – Public Key Infrastructure) это система для создания и управления цифровыми сертификатами.

Удостоверяющий центр (Validation Authority) подписывает своим ключем цифровой сертификат, подтверждая, что он действительно принадлежит тому, чьи данные он содержит.

Имеются несколько известных всем удостоверяющих центров (Validation Authority), подписи которых распознаются браузерами и операционными системами как заслуживающие доверия.

То есть, чтобы, например, создать сайт, который сможет безопасно собирать и обрабатывать персональную информацию пользователей, надо создать секретный и открытый ключи, послать открытый ключ вместе с необходимой информацией о владельце в удостоверяющий центр, получить подписанный ими цифровой сертификат, разместить его на сайте. После этого, при создании безопасного соединения, браузер посетителя будет радостно сообщать своему владельцу, что он доверяет сертификату сайта и можно передавать туда персональную информацию или даже данные банковской карты.

Подтверждение цифрового сертификата стоит денег, в зависимости от крутости удостоверяющего центра, иногда весьма немалых, поэтому для тестовых сайтов можно сделать самоподписанный сертификат. При этом, браузер посетителя будет сильно ругаться, что сайт поддельный а сертификат подписан неизвестно кем (что есть правда), и ему нет доверия, но безопасное соединение работать будет нормально.

Долее рассмотрим две задачи  – создание собственной службы сертификатов и создание ключа и запроса на сертификат (certificate signing request) для подписи в удостоверяющем центре.

Начнем со второй, как более простой.

Создание ключа и запроса на сертификат (certificate signing request) для подписи в удостоверяющем центре

Секретный ключ и запрос на сертификат могут создаваться для сервера (сервиса, виртуального сервера) или пользователя. Между ними есть некоторые отличия.

Для пользователя в поле Common Name задается имя пользователя латинскими буквами (НЕ ЛОГИН! Например: Vasiliy Ivanov) и пароль, чтобы никто кроме владельца, знающего пароль не смог воспользоваться ключем. Для сервера в поле Common Name задается полное доменное имя сервера (виртуального сервера) и пароль не задается, чтобы администратору не вводить его каждый раз при запуске сервера или сервиса.

1. Необходимо подготовить ответы на вопросы пункта 1 статьи  “Как создать службу сертификатов. Подготовка“.

2. Если создается запрос на сертификат для пользователя, то потребуется хороший пароль. Что такое хороший пароль и как его создать я написал в статье «Что такое ssh/sftp и для чего он нужен?». Если для сервера, то полное доменное имя, например test2.example.com.

3. Чтобы уменьшить риск потери секретного ключа, лучше всего его создавать в папке, в которой он будет находиться. Хотя, в принципе его можно создавать где угодно.  Создание файловой структуры службы сертификатов и редактирования файла конфигурации openSSL не требуется.

4. OpenSSL позволяет создать ключ и запрос на сертификат при помощи одной команды:

Для пользователя:

openssl req -newkey rsa:1024 -keyout user1.key -out user1.req

генерирует секретный 1024 битный ключ user1.key  и запрос на сертификат user1.req в текущей папке. Команда попросит дважды ввести приготовленный пароль и ответить на вопросы п. 1. (См. Рис. 1).

Как создать службу сертификатов. Рис. 1. Запрос для пользователя

Рис. 1. Запрос для пользователя

Пароль ключа надо хорошо запомнить, в противном случае ключ и подписанный сертификат станут непригодными к использованию.

Для сервера:

openssl req -newkey rsa:1024 -keyout test2.example.com.key -nodes -out test2.example.com.req

генерирует секретный 1024 битный ключ test2.example.com.key  и запрос на сертификат test2.example.com.req в текущей папке. Команда попросит  ответить на вопросы п. 1. (См. Рис. 2).

Как создать службу сертификатов. Рис. 2. Запрос для хоста

Рис. 2. Запрос для хоста

Запрос на сертификат посылается в удостоверяющий центр вместе с кипой подтверждающих бумаг. Файлу секретного ключа устанавливаются правильные (минимальные) права доступа.

Описано что такое и зачем нужны цифровые сертификаты, как создать службу сертификатов, как создать запрос на цифровой сертификат для отправки в удостоверяющий центр.

, , ,

No comments yet.

Leave a Reply