Протокол TLS состоит из двух уровней: нижнего и верхнего. На нижнем уровне находится протокол Record, работающий поверх некоторого транспортного протокола (например, TCP) с гарантированной доставкой пакетов данных, который обеспечивает доставку сообщений с сохранением их очередности, отсутствием потерь и дублирований. Поверх протокола Record, в свою очередь, работают следующие протоколы: Handshake, Alert, Change Cipher Spec и Application Data.
Схема обмена данными в протоколе TLS изображена на рисунке 1.
Рисунок 1 - Схема обмена данными в протоколе TLS
Основное назначение протокола TLS - создание защищенного канала связи между двумя взаимодействующими сторонами, обладающего следующими свойствами:
- аутентификацией сторон: криптонаборы, описанные в настоящих рекомендациях, предоставляют возможность односторонней или двусторонней аутентификации сторон. Аутентификация клиента осуществляется за счет проверки подписи клиента, аутентификация сервера - за счет подтверждения обладания общим секретом с помощью закрытого ключа, соответствующего сертификату сервера;
- конфиденциальностью: обеспечивается за счет шифрования передаваемой информации.
- целостностью: обеспечивается за счет использования имитовставок передаваемых сообщений.
Иерархия информационного обмена протокола TLS включает в себя сессии, соединения, поток сообщений различных типов, который разбивается на записи. В одной сессии может быть реализовано несколько соединений, произвольно разнесенных по времени.
Каждая сессия характеризуется следующими параметрами безопасности, которые согласовываются в ходе работы протокола Handshake (см. раздел 6) и остаются неизменными для каждого соединения в рамках данной сессии:
- идентификатором сессии;
- сертификатом сервера;
- сертификатом клиента (в случае двусторонней аутентификации);
- криптонабором;
- общим сессионным секретным значением MS (формируется клиентом и сервером в ходе работы протокола Handshake, соответствующего полной схеме обмена сообщениями).
Каждое соединение характеризуется следующими параметрами безопасности, которые согласовываются в ходе протокола Handshake (см. раздел 6):
- строкой со случайными байтами , задаваемой клиентом;
- строкой со случайными байтами , задаваемой сервером;
- ключом клиента для вычисления имитовставки сообщения ;
- ключом клиента для проверки имитовставки сообщения ;
- ключом сервера для вычисления имитовставки сообщения ;
- ключом сервера для проверки имитовставки сообщения ;
- ключом клиента для зашифрования данных ;
- ключом клиента для расшифрования данных ;
- ключом сервера для зашифрования данных ;