Слайд 1Secure Sockets Layer
Защита информационных ресурсов компьютерных систем и сетей
Слайд 2Определение
SSL—криптографический протокол, который обеспечивает установление безопасного соединения между клиентом и
сервером.
Слайд 3Свойства канала
Канал является частным. Шифрование используется для всех сообщений после
простого диалога, который служит для определения секретного ключа.
Канал аутентифицирован.
Серверная сторона диалога всегда аутентифицируется, в то время как клиентская - аутентифицируется опционно.
Канал надежен. Транспортировка сообщений включает в себя проверку целостности (с привлечением MAC).
Слайд 4Содержание
1 Спецификация протокола записей SSL
1.1 Формат заголовка записи SSL
2.2 Формат информационных записей SSL
2 Спецификация протокола диалога SSL
2.1
Протокол диалога SSL
2.2 Типовой протокол обмена сообщениями
2.3 Ошибки
2.4 Сообщения протокола диалога SSL
Слайд 5Спецификация протокола записей SSL
Формат заголовка записи SSL
Формат информационных записей SSL
Слайд 6Формат заголовка записи SSL
2 байта
RECORD-LENGTH =
((byte[0] & 0x7F
8)) | byte[1];
3 байта
RECORD-LENGTH =
((byte[0] & 0x3F)
| byte[1];
IS-ESCAPE = (byte[0] & 0x40) != 0;
PADDING = byte[2];
Слайд 7Формат информационных записей SSL
MAC-DATA[MAC-SIZE]
Для MD2 и MD5 MAC-SIZE равен
16 байтам
ACTUAL-DATA[N]
PADDING-DATA[PADDING]
N = RECORD-LENGTH - MAC-SIZE - PADDING
Слайд 9HASH
Тип хэш-функции определяется параметром CIPHER-CHOICE
Для MD2 и MD5 MAC-SIZE равен
16 байтам
Слайд 11SEQUENCE-NUMBER
Счетчик, который инкрементируется как сервером, так и получателем. Для каждого
направления передачи, используется пара счетчиков (один для отправителя, другой для
получателя). При отправлении сообщения счетчик инкрементируется. Порядковыми номерами являются 32-битовые целые числа без знака, которые при переполнении обнуляются.
Слайд 12Спецификация протокола диалога SSL
Протокол диалога SSL
Типовой протокол обмена сообщениями
Слайд 13Протокол диалога SSL
Фаза 1
Фаза 2
Слайд 14Фаза 1
Клиент инициирует диалог посылкой сообщения CLIENT-HELLO. Сервер получает сообщение
CLIENT-HELLO, обрабатывает его и откликается сообщением SERVER-HELLO
Когда нужен новый мастер
ключ, сообщение SERVER-HELLO будет содержать достаточно данных, чтобы клиент мог сформировать такой ключ
Клиент генерирует мастер ключ и посылает сообщение CLIENT-MASTER-KEY или сообщение ERROR, если информация сервера указывает, что клиент и сервер не могут согласовать базовый шифр
после того как мастер ключ определен, сервер посылает клиенту сообщение SERVER-VERIFY
Слайд 15SERVER-HELLO
сертификат сервера
список базовых шифров
идентификатор соединения
Слайд 17Фаза 2
Сервер уже аутентифицирован клиентом на первой фазе, по этой
причине здесь осуществляется аутентификация клиента.
Когда один партнер выполнил аутентификацию другого
партнера, он посылает сообщение finished.
В случае клиента сообщение CLIENT-FINISHED содержит зашифрованную форму идентификатора CONNECTION-ID, которую должен верифицировать сервер. Если верификация терпит неудачу, сервер посылает сообщение ERROR.
Слайд 19Типовой протокол обмена сообщениями
Слайд 20При отсутствии идентификатора сессии
Слайд 21Идентификатор сессии найден клиентом и сервером
Слайд 22Использован идентификатор сессии и аутентификация клиента
Слайд 24Протокольные сообщения клиента
CLIENT-HELLO (Фаза 1; посылается открыто)
CLIENT-MASTER-KEY (Фаза 1; посылается
вначале открыто)
CLIENT-CERTIFICATE (Фаза 2; посылается шифрованным)
CLIENT-FINISHED (Фаза 2; посылается шифрованным)
Слайд 25CLIENT-HELLO (Фаза 1; посылается открыто)
char MSG-CLIENT-HELLO
char CLIENT-VERSION-MSB
char CLIENT-VERSION-LSB
char CIPHER-SPECS-LENGTH-MSB
char CIPHER-SPECS-LENGTH-LSB
char
SESSION-ID-LENGTH-MSB
char SESSION-ID-LENGTH-LSB
char CHALLENGE-LENGTH-MSB
char CHALLENGE-LENGTH-LSB
char CIPHER-SPECS-DATA[(MSB
Слайд 26CLIENT-MASTER-KEY (Фаза 1; посылается вначале открыто)
char MSG-CLIENT-MASTER-KEY
char CIPHER-KIND[3]
char CLEAR-KEY-LENGTH-MSB
char CLEAR-KEY-LENGTH-LSB
char
ENCRYPTED-KEY-LENGTH-MSB
char ENCRYPTED-KEY-LENGTH-LSB
char KEY-ARG-LENGTH-MSB
char KEY-ARG-LENGTH-LSB
char CLEAR-KEY-DATA[MSB
Слайд 27CLIENT-CERTIFICATE (Фаза 2; посылается шифрованным)
char MSG-CLIENT-CERTIFICATE
char CERTIFICATE-TYPE
char CERTIFICATE-LENGTH-MSB
char CERTIFICATE-LENGTH-LSB
char RESPONSE-LENGTH-MSB
char
RESPONSE-LENGTH-LSB
char CERTIFICATE-DATA[MSB
Слайд 28CLIENT-FINISHED (Фаза 2; посылается шифрованным)
char MSG-CLIENT-FINISHED
char CONNECTION-ID[N-1]
Слайд 29Протокольные сообщения сервера
SERVER-HELLO (Фаза 1; посылается открыто)
SERVER-VERIFY (Фаза 1; посылается
шифрованным)
SERVER-FINISHED (Фаза 2; посылается зашифрованным)
REQUEST-CERTIFICATE (Фаза 2; посылается шифрованным)
Слайд 30SERVER-HELLO (Фаза 1; посылается открыто)
char MSG-SERVER-HELLO
char SESSION-ID-HIT
char CERTIFICATE-TYPE
char SERVER-VERSION-MSB
char SERVER-VERSION-LSB
char
CERTIFICATE-LENGTH-MSB
char CERTIFICATE-LENGTH-LSB
char CIPHER-SPECS-LENGTH-MSB
char CIPHER-SPECS-LENGTH-LSB
char CONNECTION-ID-LENGTH-MSB
char CONNECTION-ID-LENGTH-LSB
char CERTIFICATE-DATA[MSB
Слайд 32SERVER-VERIFY (Фаза 1; посылается шифрованным)
char MSG-SERVER-VERIFY
char CHALLENGE-DATA[N-1]
Слайд 33SERVER-FINISHED (Фаза 2; посылается зашифрованным)
char MSG-SERVER-FINISHED
char SESSION-ID-DATA[N-1]
Слайд 34REQUEST-CERTIFICATE (Фаза 2; посылается шифрованным)
char MSG-REQUEST-CERTIFICATE
char AUTHENTICATION-TYPE
char CERTIFICATE-CHALLENGE-DATA[N-2]
Слайд 35Атаки
Раскрытие шифров
Атака открытого текста
Атака отклика
Человек посередине