tmpa-2013 pakulin: automation of conformance testing of tls
DESCRIPTION
TRANSCRIPT
![Page 1: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/1.jpg)
Автоматизация тестирования соответствия стандарту протокола
безопасности транспортного уровня TLS
Шнитман В.З. [email protected]
Никешин А.В. [email protected]
Пакулин Н.В. [email protected]
Институт системного программирования РАН
![Page 2: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/2.jpg)
2
План презентации
10-12 октября 2012 г.TMPA-2013, Кострома
Введение Представление о TLS/SSL Задачи тестирования Автоматизация тестирования: модели
Наш метод моделирования протоколов Тестовый набор для TLS/SSL Обсуждение. Направления дальнейших
исследований
![Page 3: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/3.jpg)
3
Протоколы безопасности
10-12 октября 2012 г.TMPA-2013, Кострома
Телекоммуникационные протоколы, использующие криптографические средства для обеспечения Конфиденциальности данных Целостности данных Аутентификации данных или субъектов
IPsec, TLS/SSL, EAP, WPA, …
![Page 4: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/4.jpg)
4
Несколько слов о безопасности
10-12 октября 2012 г.TMPA-2013, Кострома
Основные функции безопасности в телекоммуникациях: Конфиденциальность данных: предотвращение
разглашения данных при передаче по сетям связи. Шифрование
Целостность данных: предотвращение искажения данных при передаче (модификация, удаление части данных, внедрение новых данных) Контрольные суммы стойкими хэш-функциями
Аутентификация данных: подтверждение идентичности отправителя данных Цифровая подпись
![Page 5: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/5.jpg)
5
Несколько слов о TLS
10-12 октября 2012 г.TMPA-2013, Кострома
![Page 6: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/6.jpg)
6
Протокол TLS/SSL
10-12 октября 2012 г.TMPA-2013, Кострома
Пожалуй, наиболее часто используемый протокол безопасности (эл. почта, HTTPS, web-API мобильных приложений)
Конфиденциальность, целостность, аутентификация
Двухуровневый Прикладной уровень – handshake,
уведомления, передача прикладных данных Уровень записей (records) – фрагментирование,
шифрование, контрольные суммы
![Page 7: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/7.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/8.jpg)
8
Защита данных
10-12 октября 2012 г.TMPA-2013, Кострома
Прикладные данные
Фрагментирование
Сжатие
Контрольная сумма
Шифрование
Отправка
Прикладные данные сжимаются и шифруются в соответствии с текущим состоянием протокола записей TLS
Прикладные данные рассматриваются как бинарные последовательности, их семантика или структура не учитываются TLS
![Page 9: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/10.jpg)
10
Тестирование соответствия
Метод
10-12 октября 2012 г.TMPA-2013, Кострома
![Page 11: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/11.jpg)
11
Задачи тестирования соответствия
10-12 октября 2012 г.TMPA-2013, Кострома
Тестирование соответствия – установление степени соответствия реализации стандарту (протокола)
Зачем? Основная гипотеза: любые две корректные
реализации «договорятся» друг с другом Наивный подход к обеспечению
совместимости: попарная проверка «заработает или нет»
Как? См. следующие слайды
![Page 12: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/12.jpg)
Общепринятая методология тестирования соответствия
10-12 октября 2012 г.TMPA-2013, Кострома12/18
Тестовый набор состоит из формально заданных тестов, не привязанных к реализации.
Цели тестирования (test purposes) описывают ситуации, подлежащие проверке. Цель тестирования реализуется в одном или нескольких тестах.
Реализация считается соответствующей спецификации, если все цели тестирования успешно проверены.
Тестовый набор
Тесты
TP
TP
TP
![Page 13: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/15.jpg)
15
Используемый подход к тестированию соответствия (1)
10-12 октября 2012 г.TMPA-2013, Кострома
Основан на технологии автоматизированного тестирования UniTESK
Реализация
Расширение языка Java
Модель системы
Модель тестаНотация
S
Контрактная спецификаци
я
Конечный автомат, заданный в неизбыточной
форме
![Page 16: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/16.jpg)
16
Предлагаемый подход к тестированию соответствия (2)
10-12 октября 2012 г.TMPA-2013, Кострома
Формальная спецификац
ия
Стандарт протокола (IETF RFC)
Тестовый набор
Формализация стандарта протокола
Формальное задание тестов
S
![Page 17: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/18.jpg)
18
Формализация стандартов
10-12 октября 2012 г.TMPA-2013, Кострома
Составление каталога требований и анализ требований
Определение состава формального интерфейса
S
Формализация функциональных требований в пред- и постусловиях
S
![Page 19: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/20.jpg)
20
Тестирование соответствия модели
10-12 октября 2012 г.TMPA-2013, Кострома
Обходчик
Автомат теста
Определение текущего состояния
Итератор обобщённ
ых тестовых
воздействий
Конструктор
конкретных тестовых воздействи
й
![Page 21: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/21.jpg)
21
Разработка тестов
10-12 октября 2012 г.TMPA-2013, Кострома
Определение целей тестирования
Разработка неизбыточных заданий автоматов тестов
Реализация и отладка тестов
S
S
S[ ]E=
Формальнаяспецификация протокола
Алфавит обобщённыхтестовыхвоздействий
Состояниеавтомататеста
Итератор обобщ. и конструктор конкр. тестовых воздействий
![Page 22: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/22.jpg)
22
Тестирование TLS с использование моделей
10-12 октября 2012 г.TMPA-2013, Кострома
![Page 23: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/25.jpg)
25
Особенности тестового набора TLS
10-12 октября 2012 г.TMPA-2013, Кострома
Нет спецификации для нижнего уровня (TLS Records): модель реализована в явном виде в адаптере Недетерминизм разделения на фрагменты,
недетерминизм шифрования Отсутствие содержательной семантики Ошибки в реализации TLS Records выявляются
как проблемы с расшифровкой / валидацией контрольной суммы сообщений
Глубокий перебор последовательностей сообщений Включая «странные» и «невозможные»
![Page 26: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/28.jpg)
28
Обсуждение
10-12 октября 2012 г.TMPA-2013, Кострома
![Page 29: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/29.jpg)
29
Результаты
10-12 октября 2012 г.TMPA-2013, Кострома
Получен новый результат: Разработана модель протокола TLS Разработан тестовый набор для проверки
соответствия спецификации TLS Обнаружены отклонения от стандарта в
распространенных реализациях В том числе нарушения критических
требований
![Page 30: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/30.jpg)
30
Планы развития
10-12 октября 2012 г.TMPA-2013, Кострома
Дальнейшее развитие тестового набора: Увеличение покрытия требований –
рассмотрение большего количества аномальных ситуаций
Добавление расширений TLS Упрощение генерации и анализа логов
теста Бывает, генерируется до 2Гб
![Page 31: TMPA-2013 Pakulin: Automation of Conformance Testing of TLS](https://reader033.vdocuments.net/reader033/viewer/2022061114/546201d2af79597f0b8b56ef/html5/thumbnails/31.jpg)
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 для извлечения паролей, данных
банковских карт и т.п.