TLS-Attacker — это фреймворк на языке программирования Java для анализа TLS-библиотек. Он способен отправлять произвольные сообщения протокола в произвольном порядке в TLS-общении и определять их модификацию, используя предоставленный интерфейс. Это дает разработчику возможность достаточно просто определить собственный поток TLS-протокола и проверить это против собственной TLS-библиотеки.
Проект состоит из пяти подпроектов:
- Transport. Транспортные утилиты для TCP и UDP;
- ModifiableVariable. Содержит изменяемые переменные, которые позволяют выполнять конкретные, а также случайные модификации переменных во время потока протокола. Изменяемые переменные используются в сообщениях протокола;
- TLS. Реализация протокола, на данный момент совместимого с (D)TLS 1.2;
- Attacks. Реализация нескольких хорошо известных атак (Bleichenbacher, Dtls Padding Oracle, EarlyCCS, Heartbleed, Invalid Curve, Padding Oracle, Poodle, Winshock) и тестов для этих атак;
- Fuzzer. Фаззинг-фреймворк, реализованный поверх функциональности TLS-Attacker.
На текущий момент есть поддержка следующих стандартов и алгоритмов:
- TLS versions 1.0 (RFC-2246), 1.1 (RFC-4346) и 1.2 (RFC-5246);
- DTLS 1.2 (RFC-6347);
- алгоритмы обмена (EC)DH и RSA key;
- AES CBC;
- расширения: EC, EC point format, Heartbeat, Max fragment length, Server name, Signature и Hash algorithms;
- TLS-клиент (сервер скоро обещают).
URL: github.com/RUB-NDS/TLS-Attacker