OpenSSL

Привет, @ValdikSS
Посоветуй как собрать openssl с маленьким padding. Чтобы tls пакеты не рубились, когда ходят внутри shadowsocks. Слышал, что по размеру секут.
Я пробовал mbedtls, nss, libressl - не помогает.

В OpenSSL нужно отключить баги (bugs) в программе, которая его использует. Padding добавляется для исправления проблемы в древнегреческих версиях терминатора SSL от компании F5.

А как? Не нашёл упоминания bugs в Configure OpenSSL.

Это не опция сборки, это опция при создании OpenSSL-контекста.
https://docs.openssl.org/3.1/man3/SSL_CTX_set_options/#description

SSL_OP_TLSEXT_PADDING

Adds a padding extension to ensure the ClientHello size is never between 256 and 511 bytes in length. This is needed as a workaround for some implementations.

Можно пропатчить, чтобы он никогда не добавлялся, см. ssl/statem/extensions_clnt.c

Прости мне мою тупость. Я спросил у ChatGPT как изменить этот код, чтобы паддинг не добавлялся. Он мне сказал, надо удалить строчку
if ((s->options & SSL_OP_TLSEXT_PADDING) == 0)
чтобы осталось
return EXT_RETURN_NOT_SENT;
Я собрал фиксенный openssl, собрал tor с ним. Но не вижу различий между обычным тором и фиксенным тором. И в первом и во втором случае в начале размер пакетов 1280, потом падает до 588. Через shadowsocks пролезает с трудом.
Похоже паддинг добавляется или tor использует такие большие tls пакеты сам по себе?
Я пока проверяю на торе.
Но ведь если в торе с нефиксенным openssl встречался размер 588, то значит паддинг и не использовался. И значит 1280 это не паддинг, а полезные данные.
Может как-то можно ограничить максимальный размер tls пакетов в openssl?

P.S. Я умею компилировать, но не программировать.

Так, вероятно, дело не в Padding. Посмотрите в WireShark содержимое ClientHello, поймёте, почему он большой.