Как устанавливается SSL соединение - Программное обеспечение для пропускной системы на основе технологии NFC

Коммуникация между клиентом и сервером начинается прежде всего с "рукопожатия" (SSL Handshake). Цели данного рукопожатия, следующие [10]:

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

Фаза рукопожатия может быть разделена на 3 части:

1. Приветствие

Клиент отправляет клиентское приветствие (ClientHello) на сервер. Данное приветствие содержит поддерживаемые алгоритмы шифрования и максимальную версию SSL, которую поддерживает клиент. Сервер отвечает своим приветствием (ServerHello), которое содержит похожую информацию, включая решение какой шифр и какую версию SSL использовать из набора, используемого клиентом [10].

2. Обмен сертификатами

Когда соединение установлено, серверу необходимо доказать свою подлинность клиенту. Это достигается с помощью SSL сертификата, который выступает в роли документа, удостоверяющего личность. Данный сертификат содержит различную информацию, включающую имя владельца, домен, к которому прикреплен сертификат, публичный ключ сертификата, цифровую подпись и информацию о сроке действия сертификата. Клиент безоговорочно доверяет сертификату или же проверяет его с помощью одного из центров валидации (Certificate Authorities), которым он безоговорочно доверяет. Чуть более подробно об этом будет позже. Сервер также может запросить сертификат клиента, но обычно это происходит только в очень требовательных к безопасности приложениях [10].

3. Обмен ключами

Шифрование сообщений в протоколе SSL происходит с помощью симметричного алгоритма. Какой именно алгоритм будет использован было выяснено на фазе "рукопожатия". Обычно, это AES с размером ключа 128 бит (например, https://passport. yandex. ru использует данный алгоритм). Общий секретный ключ генерируется заново для каждого сеанса связи. Ключ представляет собой, обычно число длиной более 100 знаков [22]. Чтобы безопасно получить общий ключ для симметричного алгоритма, существует два самых популярных способа: первый способ - использование RSA. Клиент шифрует ключ публичным ключом сервера и передает его на сервер, где с помощью приватного ключа сервера сервер получает отправленный ключ. Второй способ - это использование алгоритма Диффи-Хеллмана, описание которого было представлено ранее [10].

Похожие статьи




Как устанавливается SSL соединение - Программное обеспечение для пропускной системы на основе технологии NFC

Предыдущая | Следующая