TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

298 views
238 views

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
298
On SlideShare
0
From Embeds
0
Number of Embeds
44
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

TMPA-2013 Pakulin: Automation of Conformance Testing of TLS

  1. 1. Автоматизация тестирования соответствия стандарту протокола безопасности транспортного уровня TLS Шнитман В.З. vzs@ispras.ru Никешин А.В. alexn@ispras.ru Пакулин Н.В. npak@ispras.ru Институт системного программирования РАН
  2. 2. План презентации 10-12 октября 2012 г.TMPA-2013, Кострома2  Введение  Представление о TLS/SSL  Задачи тестирования  Автоматизация тестирования: модели  Наш метод моделирования протоколов  Тестовый набор для TLS/SSL  Обсуждение. Направления дальнейших исследований
  3. 3. Протоколы безопасности 10-12 октября 2012 г.TMPA-2013, Кострома3  Телекоммуникационные протоколы, использующие криптографические средства для обеспечения  Конфиденциальности данных  Целостности данных  Аутентификации данных или субъектов  IPsec, TLS/SSL, EAP, WPA, …
  4. 4. Несколько слов о безопасности 10-12 октября 2012 г.TMPA-2013, Кострома4  Основные функции безопасности в телекоммуникациях:  Конфиденциальность данных: предотвращение разглашения данных при передаче по сетям связи.  Шифрование  Целостность данных: предотвращение искажения данных при передаче (модификация, удаление части данных, внедрение новых данных)  Контрольные суммы стойкими хэш-функциями  Аутентификация данных: подтверждение идентичности отправителя данных  Цифровая подпись
  5. 5. Несколько слов о TLS 10-12 октября 2012 г.TMPA-2013, Кострома5
  6. 6. Протокол TLS/SSL 10-12 октября 2012 г.TMPA-2013, Кострома6  Пожалуй, наиболее часто используемый протокол безопасности (эл. почта, HTTPS, web-API мобильных приложений)  Конфиденциальность, целостность, аутентификация  Двухуровневый  Прикладной уровень – handshake, уведомления, передача прикладных данных  Уровень записей (records) – фрагментирование, шифрование, контрольные суммы
  7. 7. Устройство TLS/SSL 10-12 октября 2012 г.TMPA-2013, Кострома7  Конфиденциальность, целостность  Шифрование DES, 3DES, AES, BlowFish, GOST, …  Расширяемый набор криптосистем  Хэш функции  Аутентификация  Сертификат, разделяемый секрет  Односторонняя аутентификация, взаимная аутентификация  Двухуровневый  Прикладной уровень – handshake, уведомления, передача прикладных данных  Уровень записей (records) – фрагментирование, шифрование, контрольные суммы  Состояние TLS – набор параметров используемых криптографических средств  Актуальное состояние и будущее состояние
  8. 8. Защита данных 10-12 октября 2012 г.TMPA-2013, Кострома8 Прикладные данные Фрагментирование Сжатие Контрольная сумма Шифрование Отправка  Прикладные данные сжимаются и шифруются в соответствии с текущим состоянием протокола записей TLS  Прикладные данные рассматриваются как бинарные последовательности, их семантика или структура не учитываются TLS
  9. 9. Типовой сеанс TLS 10-12 октября 2012 г.TMPA-2013, Кострома9 Клиент  ClientHello  Client Certificate  ClientKeyExchange  CertificateVerify  ChangeCipherSpec  Finished  Data Сервер  ServerHello  Server Certificate  ServerKeyExchange  CertificateRequest SerververHelloDone  ChangeCipherSpec  Finished
  10. 10. Тестирование соответствия Метод 10-12 октября 2012 г.TMPA-2013, Кострома10
  11. 11. Задачи тестирования соответствия 10-12 октября 2012 г.TMPA-2013, Кострома11  Тестирование соответствия – установление степени соответствия реализации стандарту (протокола)  Зачем?  Основная гипотеза: любые две корректные реализации «договорятся» друг с другом  Наивный подход к обеспечению совместимости: попарная проверка «заработает или нет»  Как?  См. следующие слайды
  12. 12. Общепринятая методология тестирования соответствия 10-12 октября 2012 г.TMPA-2013, Кострома12/18  Тестовый набор состоит из формально заданных тестов, не привязанных к реализации.  Цели тестирования (test purposes) описывают ситуации, подлежащие проверке. Цель тестирования реализуется в одном или нескольких тестах.  Реализация считается соответствующей спецификации, если все цели тестирования успешно проверены. Тестовый набор Тесты TP TP TP
  13. 13. Понятие Test Case 10-12 октября 2012 г.TMPA-2013, Кострома13  Абстрактный тестовый набор: набор формально заданных тестов, не привязанный к реализации.  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
  14. 14. Применение моделей для тестирования 10-12 октября 2012 г.TMPA-2013, Кострома14 FSM Реализация <> <> <><> EFSM FSM a b LTS SDL Estelle LOTOS pass fail x z pass fail u v Дерево обхода c Протоколы редко описываются FSM Сложные структуры сообщений/состояний: 16/32/64/128 битные поля, списки переменной длины, таблицы, таймер ы, сложные функции Недетерминизм: случайные числа, недоопределённо сть стандартов, управление нагрузкой O(n3)
  15. 15. Используемый подход к тестированию соответствия (1) 10-12 октября 2012 г.TMPA-2013, Кострома15  Основан на технологии автоматизированного тестирования UniTESK Реализация Расширение языка Java Модель системы Модель тестаНотация S Контрактная спецификация Конечный автомат, заданный в неизбыточной форме
  16. 16. Предлагаемый подход к тестированию соответствия (2) 10-12 октября 2012 г.TMPA-2013, Кострома16 Формальная спецификация Стандарт протокола (IETF RFC) Тестовый набор Формализация стандарта протокола Формальное задание тестов S
  17. 17. Формальные спецификации 10-12 октября 2012 г.TMPA-2013, Кострома17 S Формальный интерфейс Элемент формального интерфейса 1. Сигнатура: In, Out 2. Контракт: pre, post 3. Выполнение: «эталонная реализация» 4. Набор разбиений пространства In S на конечное число классов эквивалентности 5. Машинно-читаемая нотация (язык программирования) Модель состояния системы. Множество допустимых состояний определяется инвариантом Inv.
  18. 18. Формализация стандартов 10-12 октября 2012 г.TMPA-2013, Кострома18 Составление каталога требований и анализ требований Определение состава формального интерфейса S Формализация функциональных требований в пред- и постусловиях S
  19. 19. Неизбыточное задание автомата теста 10-12 октября 2012 г.TMPA-2013, Кострома19  Неизбыточное задание автомата теста есть пятёрка E,s0m, I, i,A S[ ]E= E S×S - отношение эквивалентности модельного состояния. S0m- начальное модельное состояние А – конструктор конкретных тестовых воздействий I - алфавит обобщённых тестовых воздействий i – итератор обобщ. тестовых воздействий S
  20. 20. Тестирование соответствия модели 10-12 октября 2012 г.TMPA-2013, Кострома20 Обходчик Автомат теста Определение текущего состояния Итератор обобщённых тестовых воздействий Конструктор конкретных тестовых воздействий
  21. 21. Разработка тестов 10-12 октября 2012 г.TMPA-2013, Кострома21 Определение целей тестирования Разработка неизбыточных заданий автоматов тестов Реализация и отладка тестов S S S[ ]E= Формальная спецификация протокола Алфавит обобщённых тестовых воздействий Состояние автомата теста Итератор обобщ. и конструктор конкр. тестовых воздействий
  22. 22. Тестирование TLS с использование моделей 10-12 октября 2012 г.TMPA-2013, Кострома22
  23. 23. Тестирование соответствия TLS 10-12 октября 2012 г.TMPA-2013, Кострома23  Существуют коммерческие тестовые наборы  Полнота неизвестна  Разработаны вручную, 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  Небольшое покрытие спецификации
  24. 24. Тестовый набор 10-12 октября 2012 г.TMPA-2013, Кострома24  Проведен анализ стандарта TLS  Извлечены 300 требований  Разработана модель TLS  2,5 тыс. строк, Java  Эксперимент: Python 1,5 тыс. строк  Разработан тестовый набор для тестирования соответствия TLS  Тестовые сценарии, 1 тыс. строк, Java  Адаптер, 1 тыс. строк, Java  Проведено тестирование ряда реализаций
  25. 25. Особенности тестового набора TLS 10-12 октября 2012 г.TMPA-2013, Кострома25  Нет спецификации для нижнего уровня (TLS Records): модель реализована в явном виде в адаптере  Недетерминизм разделения на фрагменты, недетерминизм шифрования  Отсутствие содержательной семантики  Ошибки в реализации TLS Records выявляются как проблемы с расшифровкой / валидацией контрольной суммы сообщений  Глубокий перебор последовательностей сообщений  Включая «странные» и «невозможные»
  26. 26. Результаты (1) 10-12 октября 2012 г.TMPA-2013, Кострома26  Почтовый сервер Postfix.2.9.3: OpenSSL 1.0.1c  Не всегда отправляет уведомление о разрыве соединения  Не всегда принимает уведомления  Некорректно обрабатывает ошибки в ClientHello  В отдельных ситуациях некорректно обрабатывает длины элементов сообщения  Принимает сообщения чрезмерной длины  Некорректно обрабатывает дубликат ClientHello
  27. 27. Результаты (2) 10-12 октября 2012 г.TMPA-2013, Кострома27  Java Runtime Environment 1.7.0_5  Игнорирует поле длины в сообщениях Handshake  Не проверяет поля длин элементов  Не завершает сеанс при получении пустого сообщения в Handshake  www.mikestoolbox.com  Не осуществляет в ряде случаев проверку номера версии – нарушение критического требования  Некорректные сообщения об ошибках
  28. 28. Обсуждение 10-12 октября 2012 г.TMPA-2013, Кострома28
  29. 29. Результаты 10-12 октября 2012 г.TMPA-2013, Кострома29  Получен новый результат:  Разработана модель протокола TLS  Разработан тестовый набор для проверки соответствия спецификации TLS  Обнаружены отклонения от стандарта в распространенных реализациях  В том числе нарушения критических требований
  30. 30. Планы развития 10-12 октября 2012 г.TMPA-2013, Кострома30  Дальнейшее развитие тестового набора:  Увеличение покрытия требований – рассмотрение большего количества аномальных ситуаций  Добавление расширений TLS  Упрощение генерации и анализа логов теста  Бывает, генерируется до 2Гб
  31. 31. Практика использованияTLS 10-12 октября 2012 г.TMPA-2013, Кострома31  Реализация 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 для извлечения паролей, данных банковских карт и т.п.

×