Как проверить реализацию TLS на основе SSLEngine? - PullRequest
0 голосов
/ 13 декабря 2018

Я рассматриваю возможность реализации TLS через не TCP соединение.Идея состоит в том, чтобы использовать SSLEngine , который предоставляет возможность шифровать / дешифровать данные в буферы памяти и отправлять их с помощью надежного транспорта, который мы хотим.

Мне бы пришлось реализовать все рукопожатия, определенныеПротокол SSL (клиент привет, сервер привет ... и т. Д.).

Если я сделаю это, как я буду проверять, работает ли моя реализация?Есть ли какой-нибудь "официальный TLS Test Suite", который я мог бы запустить?

Спасибо за ваши советы

1 Ответ

0 голосов
/ 13 декабря 2018

Тот факт, что вы явно исключаете TCP, усложняет ситуацию.TLS имеет некоторые предположения о том, как работает основной транспорт.Вы можете взглянуть на то, как QUIC в основном предоставляет TLS поверх UDP и его ограничения.

Что касается официального "Test Suite", у меня есть несколько предложений, которые, вероятно, не будут работать как есть "из коробки".из-за зависимости TCP, но они могут быть началом:

  • https://github.com/tomato42/tlsfuzzer - это «набор тестов протокола SSL и TLS и фаззер», но это незавершенная работа, и самое главноедля этого требуется HTTP-сервер, поэтому TCP
  • https://github.com/noxxi/p5-ssl-tools выполняет различные проверки, не только для HTTP
  • https://testssl.sh/ предоставляет инструмент командной строки

На более абстрактном уровне (я не знаю, являются ли они инструментами, использующими это, но они могут существовать), когда одновременно разрабатывался документ TLS 1.3, в котором был создан документ для сбора типичных сообщений рукопожатия, чтобы вы моглииспользуйте их в качестве примеров.

Найдите здесь: https://datatracker.ietf.org/doc/draft-ietf-tls-tls13-vectors/

Аннотация:

Приведены примеры рукопожатий TLS 1.3.Секретные ключи и входные данные предоставляются для воспроизведения этих рукопожатий.
Промежуточные значения, включая секреты, ключи трафика и IV, показаны
, так что реализации могут проверяться поэтапно с
этими значениями.

...