74
правки
Изменения
SSL/TLS
,Добавил record и стаб введения.
=Протоколы SSL и TLS=
'''SSL (Secure Sockets Layer)''' и '''TLS (Transport Level Security)''' {{---}} криптографические протоколы, обеспечивающие защищенную передачу данных в компьютерной сети.
[[Файл:Handshake.png|border|right|Схема подтверждения связи]]
# Клиент посылает сообщение '''ClientHello''', указывающее версию SSL или TLS и поддерживаемые клиентом методы шифрования (англ. ''CipherSuite''). Это сообщение также содержит случайное число (набор байт), которое используется в последующих вычислениях. Протокол также позволяет указать поддерживаемые клиентом методы сжатия данных.
# Если сервер потребовал у клиента сертификат, клиент отсылает набор байт, зашифрованный его секретным ключом, и свой цифровой сертификат, или оповещение об отсутствии сертификата.
# Сервер проверяет сертификат клиента.
# Клиент и сервер отправляют друг другу сообщение '''ChangeCipherSpec''', объявляя об изменении режима передачи данных с незащищенного на защищенный.
# Клиент отправляет сообщение '''Finished''', зашифрованное секретным ключом, и таким образом завершает подтверждение связи со своей стороны.
# Аналогичные действия производит сервер.
# На протяжении данной сессии клиент и сервер могут обмениваться сообщениями, зашифрованными секретным ключом.
====Возобновление сессии====
# Клиент посылает сообщение '''ClientHello''', используя ID сессии, которую нужно возобновить.
# Сервер проверяет, есть ли у него в кэше соответствующий идентификатор. Если есть и сервер способен возобновить сессию, он отсылает клиенту сообщение '''ServerHello''' с этим же ID сессии. Если нет, сервер генерирует новый ID сессии и выполняет процедуру handshake с клиентом.
# Клиент и сервер обмениваются сообщениями '''ChangeCipherSpec''', а затем '''Finished'''.
# Передача данных по защищенному каналу возобновляется.
===Протокол записи===
Этот слой защищает данные с помощью ключей, полученных при подтверждении связи, и проверяет целостность и источник входящих сообщений. Он выполняет следующие функции:
* Разбиение исходящих сообщений на блоки нужного размера и "склеивание" входящих сообщений.
* Сжатие исходящих сообщений и распаковку входящих (используется не всегда).
* Применение кода аутентификации к исходящим сообщениям и проверку входящих с помощью MAC.
* Шифрование исходящих сообщений и дешифровку входящих.
После обработки протоколом TLS Record зашифрованные данные передаются на слой TCP для передачи.