TLS 1.2 в моно на Ubuntu

Я установил последнюю версию mono mon -V, которая дает мне:

Mono JIT compiler version 4.8.0 (Stable 4.8.0.495/e4a3cf3 Wed Feb 22 18:30:58 UTC 2017)

Из примечаний к выпуску (http://www.mono-project.com/docs/about-mono/releases/4.8.0/) говорит, что я должен:

Чтобы использовать его, вы должны установить переменную среды MONO_TLS_PROVIDER в значение «btls», например:

Я этого не делал. Я нашел способ проверить, используется ли версия 1.2(http://mono.1490590.n4.nabble.com/Still-stuck-in-a-bad-place-with-TLS-1-2-support-td4669106.html) Когда я запускаю это, я получаю:

TLS 1.2, самая современная версия шифрования

Итак, мой вопрос: правильно ли сказать, что мне не нужно ничего делать, только установить последнюю версию моно, а по умолчанию 1.2?


person Noel    schedule 10.03.2017    source источник


Ответы (1)


Лучший способ проверить, работает ли TLS 1.2, — попытаться подключиться к службе, поддерживающей только TLS 1.2.

wget -q https://bugzilla.xamarin.com/attachment.cgi?id=16785 -O Program.cs
mcs Program.cs /r:System.Net.Http.dll
mono Program.exe

И результат:

Ошибка при отправке предупреждения TLS (Fatal:InternalError): System.IO.IOException: не удалось выполнить аутентификацию или расшифровку. ---> System.IO.IOException: невозможно прочитать данные из транспортного соединения: соединение сброшено узлом. ---> System.Net.Sockets.SocketException: сброс соединения узлом

Еще раз, на этот раз с BTLS (не нужно снова компилировать):

export MONO_TLS_PROVIDER="btls"
mono Program.exe

Результат:

OK!

Итак, как видите, BTLS еще не используется по умолчанию. Да, есть и другие способы определить это, например, просмотр стека вызовов, но этот самый простой, поскольку он приводит к исключению, если конечная точка поддерживает только TLS 1.2, и вы пытаетесь подключиться к ней, используя устаревший TLS. 1.0 или 1.1.

Кстати, код взят из моего отчета об ошибке . Результат выше был сделан с Mono 4.9.1, он должен быть таким же на 4.8.

person JustArchi    schedule 13.03.2017