Протокол TLS версия 0 - часть 10
/p>
Эти параметры определены в языке представления в виде:
enum { server, client } ConnectionEnd;
enum { null, rc4, rc2, des, 3des, des40 } BulkCipherAlgorithm;
enum { stream, block } CipherType;
enum { true, false } IsExportable;
enum { null, md5, sha } MACAlgorithm;
enum { null(0), (255) } CompressionMethod;
/* Алгоритмы, специфицированные в CompressionMethod, BulkCipherAlgorithm и MACAlgorithm могут быть добавлены. */
struct { |
ConnectionEnd |
entity; |
BulkCipherAlgorithm |
bulk_cipher_algorithm; |
|
CipherType |
cipher_type; |
|
uint8 |
key_size; |
|
uint8 |
key_material_length; |
|
IsExportable |
is_exportable; |
|
MACAlgorithm |
mac_algorithm; |
|
uint8 |
hash_size; |
|
CompressionMethod |
compression_algorithm; |
|
Opaque |
master_secret[48]; |
|
opaque |
client_random[32]; |
|
opaque |
server_random[32];} SecurityParameters; |
Уровень записей будет использовать параметры безопасности для формирования следующих шести объектов:
Секретный код MAC записи клиента
>Секретный код MAC записи сервера
>Ключ записи клиента
Ключ записи сервера
IV записи клиента (только для блочного шифра)
IV записи сервера (только для блочного шифра)
Параметры записи клиента используются сервером при получении и обработке записей и наоборот. Алгоритм, использованный для генерирования этих объектов с помощью параметров безопасности, описан в разделе 6.3. Раз параметры безопасности определены и ключи сформированы, состояния соединения могут быть в любой момент реализованы путем перевода их в текущее состояние. Эти текущие состояния должны актуализоваться после обработки каждой записи. Каждое состояние соединения включает в себя следующие элементы:
Состояние сжатия |
Текущее состояние алгоритма сжатия. |
Состояние шифра |
Текущее состояние алгоритма шифрования. Оно состоит из текущего ключа для данного соединения. Кроме того, для блочного шифра, работающего в режиме CBC (единственный режим, специфицированный в TLS), оно в исходный момент содержит IV для данного состояния соединения и должно актуализоваться, чтобы содержать текст последнего шифрованного или дешифрованного блока. Для поточных шифров, оно содержит всю необходимую информацию для продолжения шифрования или дешифрования данных. |
Секретный код MAC |
Секретный код MAC для данного соединения. |
Номер по порядку |
Каждое состояние соединения содержит номер по порядку, который поддерживается независимо для состояний чтения и записи. Номер по порядку должен быть установлен равным нулю, как только соединение переведено в активное состояние. Номера по порядку имеют тип uint64 и не может превышать 264-1. Номер по порядку инкрементируется после прихода каждой записи: в частности, первая запись, передаваемая через некоторое соединение, имеет порядковый номер 0. |