
Тестирование шифрования TLS/SSL на любом порту в любом месте
testssl.sh — это бесплатная утилита командной строки, которая проверяет службу сервера на любом порту на поддержку TLS/SSL-шифров, протоколов, а также на наличие некоторых криптографических уязвимостей.
Это программное обеспечение является бесплатным. Вы можете использовать его на условиях GPLv2, см. LICENSE.
Атрибуция важна для будущего этого проекта — также и в интернете. Поэтому, если вы предлагаете сканер на основе testssl.sh в качестве общедоступного и/или платного сервиса в интернете, настоятельно рекомендуется сообщать вашей аудитории, что вы используете эту программу, и указывать, откуда её можно получить. Это помогает нам получать исправления ошибок, другие отзывы и больше вкладов.
Testssl.sh работает на любых дистрибутивах Linux/BSD и MacOS «из коробки». Начиная с версии 2.9 (очень старой) большинство ограничений из-за отключённых функций клиента openssl устранены благодаря проверкам на основе bash-сокетов. Поставляется старая версия с проблемным OpenSSL, но в наши дни вы также можете использовать любую версию LibreSSL или OpenSSL.
testssl.sh также работает на других Unix-подобных системах «из коробки» при условии, что у них установлен /bin/bash версии >= 3.2 и стандартные утилиты, такие как sed и awk. Windows (с использованием MSYS2, Cygwin или WSL/WSL2) также поддерживается. При запуске testssl.sh выполняется неявная (тихая) проверка наличия двоичных файлов. Для System V Unix, вероятно, потребуется установить GNU grep.
Уведомления об обновлениях можно найти на GitHub или самые важные — в Mastodon или Bluesky. Twitter больше не используется.
Вы можете скачать ветку 3.3dev testssl.sh, просто клонировав этот git-репозиторий:
git clone --depth 1 https://github.com/testssl/testssl.sh.git --branch 3.3dev
3.3dev — это последняя ветка разработки, которая развилась из стабильной версии 3.2. Мы стараемся не проводить крупные эксперименты в ветке dev, однако суть разработки в том, что будут изменения, и изменениям может потребоваться время для созревания.
Testssl.sh имеет минимальные требования. Как уже говорилось, вам не нужно ничего устанавливать или собирать. Вы можете просто запустить его из каталога, в который он склонирован. Но если вы не хотите тянуть репозиторий GitHub в выбранный вами каталог, вы можете вытянуть контейнер из DockerHub и запустить его:
docker run --rm -it ghcr.io/testssl/testssl.sh <your_cmd_line>
Или, если вы клонировали этот репозиторий, вы также можете просто cd в INSTALLDIR и запустить
docker build . -t imagefoo && docker run --rm -t imagefoo testssl.net
Для получения дополнительной информации обратитесь к Dockerfile.md.
Использование программы осуществляется без каких-либо гарантий. Используйте её на свой страх и риск.
Testssl.sh предназначен для использования как автономный инструмент командной строки. Хотя мы старались применить лучшие практики безопасности и санировать внешние данные, мы не можем гарантировать, что программа не содержит уязвимостей. Работа в качестве веб-сервиса может нести риски безопасности, и вам рекомендуется применять дополнительные меры безопасности. Проверяйте ввод от пользователя и от всех служб, к которым выполняется запрос.
Учитывая текущий состав разработчиков, мы поддерживаем только версии n-1. Вы смотрите на ветку 3.3.dev, где ведётся дальнейшая разработка, прежде чем 3.4 станет стабильной версией, а 3.2 — старой стабильной. Если вы сомневаетесь в изменениях, вам нужно использовать 3.2. Версия 3.0.10 была последней, новых обновлений не будет.
~/doc/.Многие участники уже помогли продвинуть проект туда, где он сейчас находится, см. CREDITS.md. Ваш вклад также приветствуется! Существует список задач. Для начала ищите задачи, помеченные как good first issue, for grabs или help wanted. Последние более продвинуты. Вы также можете искать документационные задачи или помочь с модульным тестированием или улучшением GitHub Actions.
Рекомендуется прочитать CONTRIBUTING.md, а также ознакомиться с Coding Convention. Прежде чем начинать писать PR с сотнями строк, лучше сначала создайте задачу.
В целом, существует также некоторое бремя поддержки, например, поддержка рукопожатий и хранилищ сертификатов и т.д. Если вы считаете, что можете внести вклад и взять на себя ответственность за одну из таких задач по сопровождению, сообщите об этом. Это освободит ресурсы, которые мы сможем использовать для разработки.
Сообщения об ошибках важны. Они делают этот проект более надёжным.
Пожалуйста, сообщайте об ошибках в трекере задач на GitHub. Не забудьте предоставить подробную информацию, см. шаблон для задач и дополнительные сведения по адресу https://github.com/testssl/testssl.sh/wiki/Bug-reporting. Никто пока не умеет читать ваши мысли. И только учреждения видят ваш экран ;-)
Вы также можете выполнить отладку самостоятельно, см. здесь.
Пожалуйста, направляйте вопросы, не касающиеся непосредственно кода testssl.sh, в соответствующие проекты ниже.