Вы находитесь на странице: 1из 46

Установка

соединения
в TLS
Компьютерные сети
Установка соединения TLS

Клиент
Сервер

Компьютерные сети. Установка соединения в TLS 2


Установка соединения TLS

Соединение TLS
Клиент
Сервер

Компьютерные сети. Установка соединения в TLS 3


Установка соединения TLS

Набор шифров TLS:


• Алгоритм обмена ключами: Диффи-Хеллман
• Алгоритм цифровой подписи: RSA
• Алгоритм симметричного шифрования: AES
• Хэш-функция для MAC: SHA-256

Соединение TLS
Клиент
Сервер

Компьютерные сети. Установка соединения в TLS 4


Установка соединения TLS

Набор шифров TLS:


• Алгоритм обмена ключами: Диффи-Хеллман
• Алгоритм цифровой подписи: RSA
• Алгоритм симметричного шифрования: AES
• Хэш-функция для MAC: SHA-256

Соединение TLS
Клиент
Сервер

Компьютерные сети. Установка соединения в TLS 5


Установка соединения TLS

Набор шифров TLS:


• Алгоритм обмена ключами: Диффи-Хеллман
• Алгоритм цифровой подписи: RSA
• Алгоритм симметричного шифрования: AES
• Хэш-функция для MAC: SHA-256

Соединение TLS
Клиент
Сервер

Компьютерные сети. Установка соединения в TLS 6


Установка соединения TLS

Набор шифров TLS:


• Алгоритм обмена ключами: Диффи-Хеллман
• Алгоритм цифровой подписи: RSA
• Алгоритм симметричного шифрования: AES
• Хэш-функция для MAC: SHA-256

Соединение TLS
Клиент
Сервер

Ключ симметричного Ключ симметричного


шифрования шифрования

Ключ MAC Ключ MAC


Компьютерные сети. Установка соединения в TLS 7
Установка соединения TLS
Клиент Сервер

Компьютерные сети. Установка соединения в TLS 8


Установка соединения TLS
Клиент Сервер

Client random
Client hello
Шифры TLS

Компьютерные сети. Установка соединения в TLS 9


Установка соединения TLS
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Идентификатор сессии

Компьютерные сети. Установка соединения в TLS 10


Установка соединения TLS
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Компьютерные сети. Установка соединения в TLS 11


Установка соединения TLS
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Компьютерные сети. Установка соединения в TLS 12


Проверка сертификата сервера
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Проверка сертификата:
• Проверка подписей удостоверяющих центров
• Проверка «доверия» корневому удостоверяющему центру
• Проверка домена сертификата
• Проверка срока действия сертификата
• Проверка, не отозван ли сертификат

Компьютерные сети. Установка соединения в TLS 13


Проверка сертификата сервера
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Проверка сертификата:
• Проверка подписей удостоверяющих центров
• Проверка «доверия» корневому удостоверяющему центру
• Проверка домена сертификата
• Проверка срока действия сертификата
• Проверка, не отозван ли сертификат

Компьютерные сети. Установка соединения в TLS 14


Установка соединения TLS
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

ServerKeyExchange Данные для обмена


ключами

Компьютерные сети. Установка соединения в TLS 15


Обмен ключами: алгоритм RSA
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Компьютерные сети. Установка соединения в TLS 16


Обмен ключами: статический Диффи-Хеллман
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

p, g, Ys

Компьютерные сети. Установка соединения в TLS 17


Обмен ключами: Диффи-Хеллман с одноразовыми параметрами
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Server Key Exchange Данные для обмена


ключами: p, g, Ys

Компьютерные сети. Установка соединения в TLS 18


Установка соединения TLS
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Server Key Exchange Данные для обмена


ключами: p, g, Ys
Server Hello Done

Компьютерные сети. Установка соединения в TLS 19


Установка соединения TLS
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Server Key Exchange Данные для обмена


ключами: p, g, Ys
Server Hello Done
Client Key Exchange

Компьютерные сети. Установка соединения в TLS 20


Обмен ключами: RSA
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Server Hello Done


Client Key Exchange

Компьютерные сети. Установка соединения в TLS 21


Обмен ключами: RSA
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Server Hello Done


Client Key Exchange

pre-master
secret

Компьютерные сети. Установка соединения в TLS 22


Обмен ключами: RSA
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Server Hello Done


Client Key Exchange

pre-master
secret

Компьютерные сети. Установка соединения в TLS 23


Обмен ключами: RSA
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Server Hello Done


Client Key Exchange

pre-master
secret

Компьютерные сети. Установка соединения в TLS 24


Обмен ключами: RSA
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Server Hello Done


Client Key Exchange

pre-master
secret

Компьютерные сети. Установка соединения в TLS 25


Обмен ключами: RSA
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Server Hello Done


Client Key Exchange

pre-master pre-master
secret secret

Компьютерные сети. Установка соединения в TLS 26


Обмен ключами: Диффи-Хеллман
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Server Key Exchange Данные для обмена


ключами: p, g, Ys
Server Hello Done
Данные для
обмена Client Key Exchange
ключами: Yc

Компьютерные сети. Установка соединения в TLS 27


Обмен ключами: Диффи-Хеллман
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Server Key Exchange Данные для обмена


ключами: p, g, Ys
Server Hello Done
Данные для
обмена Client Key Exchange
ключами: Yc

pre-master pre-master
secret secret

Компьютерные сети. Установка соединения в TLS 28


Расчет ключей симметричного шифрования
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Server Key Exchange Данные для обмена


ключами: p, g, Ys
Server Hello Done
Данные для
обмена Client Key Exchange
ключами: Yc
Псевдослучайная функция:
• Pre-master secret
pre-master • Client random pre-master
secret • Server random secret

Компьютерные сети. Установка соединения в TLS 29


Расчет ключей симметричного шифрования
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Server Key Exchange Данные для обмена


ключами: p, g, Ys
Server Hello Done
Данные для
обмена Client Key Exchange
ключами: Yc

Ключ
Ключ симметричного
симметричного шифрования
шифрования

Ключ MAC
Ключ MAC Компьютерные сети. Установка соединения в TLS 30
Установка соединения TLS
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Server Key Exchange Данные для обмена


ключами: p, g, Ys
Server Hello Done
Данные для
обмена Client Key Exchange
ключами: Yc Change Cipher Spec
Ключ
Ключ симметричного
симметричного шифрования
шифрования

Ключ MAC
Ключ MAC Компьютерные сети. Установка соединения в TLS 31
Установка соединения TLS
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Server Key Exchange Данные для обмена


ключами: p, g, Ys
Server Hello Done
Данные для
обмена Client Key Exchange
ключами: Yc Change Cipher Spec
Finished Ключ
Ключ симметричного
симметричного Сообщение зашифровано
шифрования
шифрования и защищено MAC

Ключ MAC
Ключ MAC Компьютерные сети. Установка соединения в TLS 32
Установка соединения TLS
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Server Key Exchange Данные для обмена


ключами: p, g, Ys
Server Hello Done
Данные для
обмена Client Key Exchange
ключами: Yc Change Cipher Spec
Finished Ключ
Ключ симметричного
симметричного Change Cipher Spec
шифрования
шифрования Finished

Ключ MAC
Ключ MAC Компьютерные сети. Установка соединения в TLS 33
Соединение TLS
Клиент Сервер

Ключ Ключ
симметричного Соединение TLS симметричного
шифрования Идентификатор сессии шифрования
Набор шифров TLS:
• Алгоритм обмена ключами: Диффи-
Ключ MAC Хеллман Ключ MAC
• Алгоритм цифровой подписи: RSA
• Алгоритм симметричного
шифрования: AES
• Хэш-функция для MAC: SHA-256

Компьютерные сети. Установка соединения в TLS 34


Разрыв соединения TLS
Клиент Сервер

Ключ Ключ
симметричного Соединение TLS симметричного
шифрования close_notify шифрования

Ключ MAC Ключ MAC

Компьютерные сети. Установка соединения в TLS 35


Разрыв соединения TLS
Клиент Сервер

Ключ Ключ
симметричного Соединение TLS симметричного
шифрования close_notify шифрования

close_notify
Ключ MAC Ключ MAC

Компьютерные сети. Установка соединения в TLS 36


Восстановление сессии TLS
Клиент Сервер

Идентификатор Client hello


сессии

Ключ
Ключ симметричного
симметричного шифрования
шифрования

Ключ MAC
Ключ MAC

Компьютерные сети. Установка соединения в TLS 37


Восстановление сессии TLS
Клиент Сервер

Идентификатор Client hello


сессии
Server hello
Change Cipher Spec Ключ
Ключ симметричного
симметричного Finished шифрования
шифрования

Ключ MAC
Ключ MAC

Компьютерные сети. Установка соединения в TLS 38


Восстановление сессии TLS
Клиент Сервер

Идентификатор Client hello


сессии
Server hello
Change Cipher Spec Ключ
Ключ симметричного
симметричного Finished шифрования
шифрования
Change Cipher Spec
Ключ MAC
Ключ MAC
Finished

Компьютерные сети. Установка соединения в TLS 39


Восстановление сессии TLS
Клиент Сервер

Идентификатор Client hello


сессии
Server hello
Change Cipher Spec Ключ
Ключ симметричного
симметричного Finished шифрования
шифрования
Change Cipher Spec
Ключ MAC
Ключ MAC
Finished

Соединение TLS

Компьютерные сети. Установка соединения в TLS 40


Проверка подлинности клиента
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Server Key Exchange


Запрос сертификата

Компьютерные сети. Установка соединения в TLS 41


Проверка подлинности клиента
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Server Key Exchange


Запрос сертификата
Server Hello Done

Компьютерные сети. Установка соединения в TLS 42


Проверка подлинности клиента
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Server Key Exchange


Запрос сертификата
Server Hello Done
Сертификат

Компьютерные сети. Установка соединения в TLS 43


Проверка подлинности клиента
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Server Key Exchange


Запрос сертификата
Server Hello Done
Сертификат

Компьютерные сети. Установка соединения в TLS 44


Пересылка сообщений в TLS
Клиент Сервер

Client random
Client hello
Шифры TLS Server random
Server hello Выбранный шифр TLS
Сертификат Идентификатор сессии

Server Key Exchange Данные для обмена


ключами: p, g, Ys
Server Hello Done
Данные для
обмена Client Key Exchange
ключами: Yc Change Cipher Spec
Finished Ключ
Ключ симметричного
симметричного Change Cipher Spec
шифрования
шифрования Finished

Ключ MAC
Ключ MAC Компьютерные сети. Установка соединения в TLS 45
Установка соединения в TLS

Соединение в TLS:
• Набор шифров TLS
• Проверка подлинности сервера (и клиента)
• Обмен ключами симметричного шифрования
Установка соединения в TLS:
• Протокол установки соединения (handshake protocol)
• Протокол смены шифра (change cipher protocol)
Разрыв соединения в TLS:
• Сообщение close_notify протокола оповещений (alert
protocol
Восстановление сессии в TLS:
• Повторное использование шифров и ключей
Компьютерные сети. . Установка соединения в TLS 46