Протоколы Internet


Протокол TLS версия 0 - часть 34


master_secret = PRF(pre_master_secret, "master secret",

ClientHello.random + ServerHello.random) [0..47];

Мастерный секретный код всегда имеет длину 48 байт. Длина предмастерного секретного кода варьируется в зависимости от метода ключевого обмена.

8.1.1. RSA

Когда для аутентификации сервера и ключевого обмена используется RSA, 48- байтовый pre_master_secret генерируется клиентом, шифруется с помощью общедоступного ключа сервера и посылается серверу. Сервер использует свой секретный ключ для дешифрования pre_master_secret. Оба партнера преобразуют затем pre_master_secret в master_secret, как это специфицировано выше.

Цифровые подписи RSA реализуются с помощью PKCS #1 [PKCS1] с типом блока 1. Шифрование RSA с использованием общедоступного ключа выполняется с помощью PKCS #1 с типом блока 2.

8.1.2. Diffie-Hellman

Выполняются обычные вычисления по алгоритму Diffie-Hellman. В качестве pre_master_secret используется согласованный ключ (Z), преобразование его в master_secret, описано выше.

Параметры Diffie-Hellman специфицируются сервером и могут быть одноразовыми или взятыми из сертификата сервера.

В отсутствии стандарта на прикладной профайл приложение TLS должно использовать шифровой набор TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA.

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

A. Значения протокольных констант

A.1. Уровень записей

struct { uint8 major, minor; } ProtocolVersion;

ProtocolVersion version = { 3, 1 }; /* TLS v1.0 */

enum { change_cipher_spec(20), alert(21), handshake(22),

application_data(23), (255) } ContentType;

struct { ContentType type; ProtocolVersion version; uint16 length;

opaque fragment[TLSPlaintext.length];

} TLSPlaintext;

struct { ContentType type;

ProtocolVersion version;

uint16 length;

opaque fragment[TLSCompressed.length];

} TLSCompressed;

struct { ContentType type; ProtocolVersion version; uint16 length;




Начало  Назад  Вперед



Книжный магазин