Представлена библиотека TLS Certificate Verification Bypass Library для отключения проверки TLS-сертификатов

от автора

Состоялся выпуск библиотеки под названием TLS Certificate Verification Bypass Library (tls‑preloader). Исходный текст проекта написан на языке C. Это универсальное решение, которое позволяет полностью отключать проверку TLS‑сертификатов, упрощая отладку и анализ работы приложений с зашифрованными соединениями.

Проект tls‑preloader распространяется как LD_PRELOAD‑библиотека, перехватывающая функции популярных TLS‑библиотек.

Решение работает с OpenSSL (включая версии 1.0.x, 1.1.x и 3.x), BoringSSL, LibreSSL, GnuTLS, NSS, mbedTLS, wolfSSL, а также может обходить встроенные проверки в libcurl.

В команде проекта пояснили, что библиотека кроссплатформенная и поддерживает Linux, FreeBSD, OpenBSD, NetBSD, Solaris, AIX и macOS. При её сборке автоматически учитываются особенности целевой платформы и применяются оптимизации для потокобезопасности — от pthread‑мьютексов до атомарных операций.

Решение tls‑preloader сделано простым для использования. Необходимо скомпилировать библиотеку и подгрузить её через LD_PRELOAD. После этого можно запускать любую программу — от curl и wget до Python‑скриптов или Firefox — с отключённой проверкой сертификатов. Для удобства в tls‑preloader предусмотрен режим отладки и возможность вывода стек‑трейсов при вызове перехваченных функций.

В OpenSSL и его производных библиотека tls‑preloader перехватывает функции SSL_CTX_set_verify(), X509_verify_cert() и связанные с ними проверки хоста и срока действия сертификата.

В GnuTLS с помощью tls‑preloader обходятся механизмы gnutls_certificate_verify_peers, а в NSS — хуки SSL_BadCertHook() и CERT_VerifyCert(). Аналогичные приёмы применены и к другим TLS‑реализациям.

Инструмент tls‑preloader ориентирован на разработчиков и тестировщиков, которые работают с самоподписанными или просроченными сертификатами и нуждаются в быстрой отладке.

Разработчики решения настоятельно не рекомендуют использовать библиотеку в рабочих системах, поскольку она полностью убирает один из ключевых элементов защиты HTTPS.

В числе ограничений проекта tls‑preloader — невозможность работы со статически собранными бинарниками и отсутствие поддержки браузеров Chrome и Chromium, где BoringSSL встроен напрямую. Кроме того, приложения с жёсткой проверкой сертификатов (certificate pinning) могут продолжить блокировать соединения.


ссылка на оригинал статьи https://habr.com/ru/articles/945900/


Комментарии

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *