TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

31
Автоматизация тестирования соответствия стандарту протокола безопасности транспортного уровня TLS Шнитман В.З. [email protected] Никешин А.В. [email protected] Пакулин Н.В. [email protected] Институт системного программирования РАН

description

 

Transcript of TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

Page 1: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

Автоматизация тестирования соответствия стандарту протокола

безопасности транспортного уровня TLS

Шнитман В.З. [email protected]

Никешин А.В. [email protected]

Пакулин Н.В. [email protected]

Институт системного программирования РАН

Page 2: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

2

План презентации

10-12 октября 2012 г.TMPA-2013, Кострома

Введение Представление о TLS/SSL Задачи тестирования Автоматизация тестирования: модели

Наш метод моделирования протоколов Тестовый набор для TLS/SSL Обсуждение. Направления дальнейших

исследований

Page 3: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

3

Протоколы безопасности

10-12 октября 2012 г.TMPA-2013, Кострома

Телекоммуникационные протоколы, использующие криптографические средства для обеспечения Конфиденциальности данных Целостности данных Аутентификации данных или субъектов

IPsec, TLS/SSL, EAP, WPA, …

Page 4: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

4

Несколько слов о безопасности

10-12 октября 2012 г.TMPA-2013, Кострома

Основные функции безопасности в телекоммуникациях: Конфиденциальность данных: предотвращение

разглашения данных при передаче по сетям связи. Шифрование

Целостность данных: предотвращение искажения данных при передаче (модификация, удаление части данных, внедрение новых данных) Контрольные суммы стойкими хэш-функциями

Аутентификация данных: подтверждение идентичности отправителя данных Цифровая подпись

Page 5: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

5

Несколько слов о TLS

10-12 октября 2012 г.TMPA-2013, Кострома

Page 6: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

6

Протокол TLS/SSL

10-12 октября 2012 г.TMPA-2013, Кострома

Пожалуй, наиболее часто используемый протокол безопасности (эл. почта, HTTPS, web-API мобильных приложений)

Конфиденциальность, целостность, аутентификация

Двухуровневый Прикладной уровень – handshake,

уведомления, передача прикладных данных Уровень записей (records) – фрагментирование,

шифрование, контрольные суммы

Page 7: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

7

Устройство TLS/SSL

10-12 октября 2012 г.TMPA-2013, Кострома

Конфиденциальность, целостность Шифрование DES, 3DES, AES, BlowFish, GOST, …

Расширяемый набор криптосистем Хэш функции

Аутентификация Сертификат, разделяемый секрет Односторонняя аутентификация, взаимная аутентификация

Двухуровневый Прикладной уровень – handshake, уведомления, передача

прикладных данных Уровень записей (records) – фрагментирование, шифрование,

контрольные суммы Состояние TLS – набор параметров используемых

криптографических средств Актуальное состояние и будущее состояние

Page 8: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

8

Защита данных

10-12 октября 2012 г.TMPA-2013, Кострома

Прикладные данные

Фрагментирование

Сжатие

Контрольная сумма

Шифрование

Отправка

Прикладные данные сжимаются и шифруются в соответствии с текущим состоянием протокола записей TLS

Прикладные данные рассматриваются как бинарные последовательности, их семантика или структура не учитываются TLS

Page 9: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

9

Типовой сеанс TLS

10-12 октября 2012 г.TMPA-2013, Кострома

Клиент ClientHello

Client Certificate ClientKeyExchange CertificateVerify ChangeCipherSpec Finished

Data

Сервер

ServerHello Server Certificate ServerKeyExchange CertificateRequestSerververHelloDone

ChangeCipherSpec Finished

Page 10: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

10

Тестирование соответствия

Метод

10-12 октября 2012 г.TMPA-2013, Кострома

Page 11: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

11

Задачи тестирования соответствия

10-12 октября 2012 г.TMPA-2013, Кострома

Тестирование соответствия – установление степени соответствия реализации стандарту (протокола)

Зачем? Основная гипотеза: любые две корректные

реализации «договорятся» друг с другом Наивный подход к обеспечению

совместимости: попарная проверка «заработает или нет»

Как? См. следующие слайды

Page 12: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

Общепринятая методология тестирования соответствия

10-12 октября 2012 г.TMPA-2013, Кострома12/18

Тестовый набор состоит из формально заданных тестов, не привязанных к реализации.

Цели тестирования (test purposes) описывают ситуации, подлежащие проверке. Цель тестирования реализуется в одном или нескольких тестах.

Реализация считается соответствующей спецификации, если все цели тестирования успешно проверены.

Тестовый набор

Тесты

TP

TP

TP

Page 13: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

13

Понятие Test Case

10-12 октября 2012 г.TMPA-2013, Кострома

Абстрактный тестовый набор: набор формально заданных тестов, не привязанный к реализации.

ISO 9646, TTCN Дальнейшее развитие TTCN2, TTCN3,

UML Testing Profile Для протоколов Интернета: TAHI

(Perl + C++), ETSI (TTCN3 + Java) Высокая трудоёмкость разработки

тестового набора – тысячи тестов Вынесение вердиктов о

корректности наблюдаемого поведения не опирается на модель протокола

Нет строгой процедуры оценки полноты тестирования

Test System SUT

input

alt reaction1

pass

reaction2

inconc

fail

Тест (Test case)

preambula

postambula

Page 14: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

14

Применение моделей для тестирования

10-12 октября 2012 г.TMPA-2013, Кострома

FSM Реализация

<>

<>

<><>

EFSMFSM

ab

LTS

SDL Estelle

LOTOSpass fai

l

x z

pass fail

u v

Дерево обхода

c

Протоколы редко описываются FSM

Сложные структуры сообщений/состояний: 16/32/64/128 битные поля, списки переменной длины, таблицы, таймеры, сложные функции

Недетерминизм: случайные числа, недоопределённость стандартов, управление нагрузкой

O(n3

)

Page 15: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

15

Используемый подход к тестированию соответствия (1)

10-12 октября 2012 г.TMPA-2013, Кострома

Основан на технологии автоматизированного тестирования UniTESK

Реализация

Расширение языка Java

Модель системы

Модель тестаНотация

S

Контрактная спецификаци

я

Конечный автомат, заданный в неизбыточной

форме

Page 16: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

16

Предлагаемый подход к тестированию соответствия (2)

10-12 октября 2012 г.TMPA-2013, Кострома

Формальная спецификац

ия

Стандарт протокола (IETF RFC)

Тестовый набор

Формализация стандарта протокола

Формальное задание тестов

S

Page 17: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

17

Формальные спецификации

10-12 октября 2012 г.TMPA-2013, Кострома

S

Формальный интерфейсЭлемент формального

интерфейса1. Сигнатура: In, Out2. Контракт: pre, post3. Выполнение: «эталонная

реализация» 4. Набор разбиений пространства

InS на конечное число классов эквивалентности

5. Машинно-читаемая нотация (язык программирования)

Модель состояния системы. Множество допустимых состояний определяется инвариантом Inv.

Page 18: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

18

Формализация стандартов

10-12 октября 2012 г.TMPA-2013, Кострома

Составление каталога требований и анализ требований

Определение состава формального интерфейса

S

Формализация функциональных требований в пред- и постусловиях

S

Page 19: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

19

Неизбыточное задание автомата теста

10-12 октября 2012 г.TMPA-2013, Кострома

Неизбыточное задание автомата теста есть пятёрка E,s0m, I, i,A

S[ ]E= ES×S - отношение эквивалентности модельного состояния.S0m- начальное модельное состояние

А – конструктор конкретных тестовых воздействий

I - алфавит обобщённых тестовых воздействий

i – итератор обобщ. тестовых воздействий

S

Page 20: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

20

Тестирование соответствия модели

10-12 октября 2012 г.TMPA-2013, Кострома

Обходчик

Автомат теста

Определение текущего состояния

Итератор обобщённ

ых тестовых

воздействий

Конструктор

конкретных тестовых воздействи

й

Page 21: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

21

Разработка тестов

10-12 октября 2012 г.TMPA-2013, Кострома

Определение целей тестирования

Разработка неизбыточных заданий автоматов тестов

Реализация и отладка тестов

S

S

S[ ]E=

Формальнаяспецификация протокола

Алфавит обобщённыхтестовыхвоздействий

Состояниеавтомататеста

Итератор обобщ. и конструктор конкр. тестовых воздействий

Page 22: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

22

Тестирование TLS с использование моделей

10-12 октября 2012 г.TMPA-2013, Кострома

Page 23: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

23

Тестирование соответствия TLS

10-12 октября 2012 г.TMPA-2013, Кострома

Существуют коммерческие тестовые наборы Полнота неизвестна Разработаны вручную, test cases

Тесты OpenSSL и GnuTLS не проверяют соответствие В основном тестируют внутреннее устройство Есть несколько сценариев для TLS

1 research проект по тестированию TLS On the Adequacy of Statecharts as a Source of Tests

for Cryptographic ProtocolsK. R. Jayaram, Aditya P. Mathur, 2008 Небольшое покрытие спецификации

Page 24: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

24

Тестовый набор

10-12 октября 2012 г.TMPA-2013, Кострома

Проведен анализ стандарта TLS Извлечены 300 требований

Разработана модель TLS 2,5 тыс. строк, Java Эксперимент: Python 1,5 тыс. строк

Разработан тестовый набор для тестирования соответствия TLS Тестовые сценарии, 1 тыс. строк, Java Адаптер, 1 тыс. строк, Java

Проведено тестирование ряда реализаций

Page 25: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

25

Особенности тестового набора TLS

10-12 октября 2012 г.TMPA-2013, Кострома

Нет спецификации для нижнего уровня (TLS Records): модель реализована в явном виде в адаптере Недетерминизм разделения на фрагменты,

недетерминизм шифрования Отсутствие содержательной семантики Ошибки в реализации TLS Records выявляются

как проблемы с расшифровкой / валидацией контрольной суммы сообщений

Глубокий перебор последовательностей сообщений Включая «странные» и «невозможные»

Page 26: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

26

Результаты (1)

10-12 октября 2012 г.TMPA-2013, Кострома

Почтовый сервер Postfix.2.9.3: OpenSSL 1.0.1c Не всегда отправляет уведомление о разрыве

соединения Не всегда принимает уведомления Некорректно обрабатывает ошибки в

ClientHello В отдельных ситуациях некорректно

обрабатывает длины элементов сообщения Принимает сообщения чрезмерной длины Некорректно обрабатывает дубликат

ClientHello

Page 27: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

27

Результаты (2)

10-12 октября 2012 г.TMPA-2013, Кострома

Java Runtime Environment 1.7.0_5 Игнорирует поле длины в сообщениях

Handshake Не проверяет поля длин элементов Не завершает сеанс при получении пустого

сообщения в Handshake www.mikestoolbox.com

Не осуществляет в ряде случаев проверку номера версии – нарушение критического требования

Некорректные сообщения об ошибках

Page 28: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

28

Обсуждение

10-12 октября 2012 г.TMPA-2013, Кострома

Page 29: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

29

Результаты

10-12 октября 2012 г.TMPA-2013, Кострома

Получен новый результат: Разработана модель протокола TLS Разработан тестовый набор для проверки

соответствия спецификации TLS Обнаружены отклонения от стандарта в

распространенных реализациях В том числе нарушения критических

требований

Page 30: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

30

Планы развития

10-12 октября 2012 г.TMPA-2013, Кострома

Дальнейшее развитие тестового набора: Увеличение покрытия требований –

рассмотрение большего количества аномальных ситуаций

Добавление расширений TLS Упрощение генерации и анализа логов

теста Бывает, генерируется до 2Гб

Page 31: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

31

Практика использованияTLS

10-12 октября 2012 г.TMPA-2013, Кострома

Реализация openssl – стандарт де-факто Тщательная валидация в community Регулярное выявление уязвимостей

2009 год – нарушение целостности, переход TLS 1.1 2012 год – атака на алгоритм цифровой подписи ЭК, релиз 1.0.1c

Apache, Mozilla, Google, email сервера и клиенты, … Но… неадекватные сценарии использования

Неадекватные настройки: Старые версии (SSL 3.0, TLS 1.0) Слабые алгоритмы (MD5, DES)

Неадекватные сертификаты – просрочены, неверные имена, неверные права, самоподписные, …

Отсутствие проверок аутентичности 40 из 100 популярных приложений Android не проверяют

сертификат сервера Реализованы атаки man-in-the-middle для извлечения паролей, данных

банковских карт и т.п.