autoua
×
Autoua.netФорумІнформатика та побутова електроніка

tls 1.2 и c#

Достоевский *
19 лет за рулем, Vorlon Planet
Сообщения: 6727
С нами с 14.08.2011

tls 1.2 и c#
      17 июля 2018 в 19:14 Гілками

Мой коллега написал софтину которая работает с сайтом Х на который отправляет post, get запросы. Софтину благополучно передали заказчику а товарищ уехал на пару недель в отпуск в такие дебри где интернетом и не пахнет. Перед отъездом коды в репозиторий не залил, а прога перестала работать с сайтом. Есть подозрение что в программе реализован tls 1.1 а сайт уже начал работать с 1.2 (версию ТЛС проверили сниффером, таки 1.2). Поможет ли установка на клиенстком компе фреймворка 4.5 или же только правка исходников проги?

Роздрукувати   Нагадати!   Сповістити модератора   Відправити по E-mail
Достоевский ***
27 лет за рулем, Ukraine
Сообщения: 8081
С нами с 30.07.2005

Re: tls 1.2 и c# [Re: kvadjagan]
      17 июля 2018 в 19:30 Гілками

Установка на клиенте не поможет. Или поднять версию фреймворка в проекте до 4.5 (и молиться чтобы все пакеты работали после апгрейда), или одной строчкой кода принудительно выставлять версию.

Роздрукувати   Нагадати!   Сповістити модератора   Відправити по E-mail
Достоевский *
19 лет за рулем, Vorlon Planet
Сообщения: 6727
С нами с 14.08.2011

Re: tls 1.2 и c# [Re: codex]
      17 июля 2018 в 21:06 Гілками

codex 17.07.2018 19:30 пишет:

Установка на клиенте не поможет. Или поднять версию фреймворка в проекте до 4.5 (и молиться чтобы все пакеты работали после апгрейда), или одной строчкой кода принудительно выставлять версию.



спасибо за инфу, но увы исходников нет. А хекс редактором можно в экзешнике это поменять? Исходники в лучшем случае через 2 недели появятся.


Роздрукувати   Нагадати!   Сповістити модератора   Відправити по E-mail
Достоевский ****
Черкассы
Сообщения: 6362
С нами с 29.06.2005

Re: tls 1.2 и c# [Re: kvadjagan]
      18 июля 2018 в 01:15 Гілками

Я не шарю, но памойму оно не задается явно, а берет то, что на компе по умолчанию. Т.е. надо что-то типа Update to enable TLS 1.1 and TLS 1.2 as a default

Роздрукувати   Нагадати!   Сповістити модератора   Відправити по E-mail
NID
Достоевский *
-0 лет за рулем, Киев
Сообщения: 8061
С нами с 13.03.2007

Re: tls 1.2 и c# [Re: kvadjagan]
      18 июля 2018 в 07:23 Гілками

Только правка. Заочно трудно сказать, что там наваял коллега, но в с#, в классическом примере https клиента, версия шифрования указывается прямо в исходнике.
Править бинарник - не реально.
Но рукастому программеру, если программа не сильно сложная, может получиться декомпилировать бинарник, поправить версию шифрования и собрать обратно.


Роздрукувати   Нагадати!   Сповістити модератора   Відправити по E-mail
Достоевский ***
27 лет за рулем, Ukraine
Сообщения: 8081
С нами с 30.07.2005

Re: tls 1.2 и c# [Re: kvadjagan]
      18 июля 2018 в 07:24 Гілками

Хекс-редактор вряд-ли поможет. По поводу 4.5 я ошибся, там тоже надо принудительно выставлять версию.
В 4.0 надо где-нибудь в коде один раз вызвать:
Код:
ServicePointManager.SecurityProtocol = (SecurityProtocolType)3072

В 4.5:
Код:
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12

В 4.6 это идет по-умолчанию.

Змінено codex (07:25 18/07/2018)


Роздрукувати   Нагадати!   Сповістити модератора   Відправити по E-mail
Достоевский *
19 лет за рулем, Vorlon Planet
Сообщения: 6727
С нами с 14.08.2011

Re: tls 1.2 и c# [Re: AZC_]
      18 июля 2018 в 08:54 Гілками

AZC_ 18.07.2018 01:15 пишет:

Я не шарю, но памойму оно не задается явно, а берет то, что на компе по умолчанию. Т.е. надо что-то типа Update to enable TLS 1.1 and TLS 1.2 as a default



спасибо за линк, но у клиента виндовс 10, я так понимаю эта статья применима до версий 7 и ниже.


Роздрукувати   Нагадати!   Сповістити модератора   Відправити по E-mail
Достоевский *
19 лет за рулем, Vorlon Planet
Сообщения: 6727
С нами с 14.08.2011

Re: tls 1.2 и c# [Re: kvadjagan]
      18 июля 2018 в 11:53 Гілками

посмотрел тут обсуждение похожей проблемы. Нашел вот такой код для проверки тлс 1.2 и совместимости с ним.
Код:

Console.WriteLine("Runtime: " + System.Diagnostics.FileVersionInfo.GetVersionInfo(typeof(int).Assembly.Location).ProductVersion);
Console.WriteLine("Enabled protocols: " + ServicePointManager.SecurityProtocol);

Console.WriteLine("Available protocols: ");
Boolean platformSupportsTls12 = false;
foreach (SecurityProtocolType protocol in Enum.GetValues(typeof(SecurityProtocolType))) {
Console.WriteLine(protocol.GetHashCode());
if (protocol.GetHashCode() == 3072){
platformSupportsTls12 = true;
}
}

Console.WriteLine("Is Tls12 enabled: " + ServicePointManager.SecurityProtocol.HasFlag((SecurityProtocolType)3072));

// enable Tls12, if possible
if (!ServicePointManager.SecurityProtocol.HasFlag((SecurityProtocolType)3072){
if (platformSupportsTls12){
Console.WriteLine("Platform supports Tls12, but it is not enabled. Enabling it now.");
ServicePointManager.SecurityProtocol |= (SecurityProtocolType)3072;
} else {
Console.WriteLine("Platform does not supports Tls12.");
}
}

// disable SSL3. Has no negative impact if SSL3 is already disabled
System.Net.ServicePointManager.SecurityProtocol &= ~SecurityProtocolType.Ssl3;

Console.WriteLine("Enabled protocols: " + ServicePointManager.SecurityProtocol);

На виртуальной машине запустил, там где у меня виндовс 10 и фреймворк 4.5.1 пишет
Platform supports Tls12, but it is not enabled. Enabling it now.


Роздрукувати   Нагадати!   Сповістити модератора   Відправити по E-mail
Достоевский ***
27 лет за рулем, Ukraine
Сообщения: 8081
С нами с 30.07.2005

Re: tls 1.2 и c# [Re: kvadjagan]
      18 июля 2018 в 12:29 Гілками

Ну собственно та-же строчка кода для включения. Надо менять исходники.
Вот эти все проверки имхо избыточны. Программа просто не запустится на 3.5, если скомпилена под 4.0.

Змінено codex (12:47 18/07/2018)


Роздрукувати   Нагадати!   Сповістити модератора   Відправити по E-mail
Достоевский *
19 лет за рулем, Vorlon Planet
Сообщения: 6727
С нами с 14.08.2011

Re: tls 1.2 и c# [Re: codex]
      18 июля 2018 в 12:56 Гілками

codex 18.07.2018 12:29 пишет:

Ну собственно та-же строчка кода для включения. Надо менять исходники.
Вот эти все проверки имхо избыточны. Программа просто не запустится на 3.5, если скомпилена под 4.0.



дело в том что программа скомпиленна под 4.0, на компе у клиента стоит винда 10 и там по его словам фрейм ворк 4.7.1. Программа запускается но после запуска ее в работу начинает в логи писать сообщения о том что сервер разорвал соединение,+ Базовое соединение закрыто: Непредвиденная ошибка при передаче.


Роздрукувати   Нагадати!   Сповістити модератора   Відправити по E-mail
Достоевский ****
Черкассы
Сообщения: 6362
С нами с 29.06.2005

Re: tls 1.2 и c# [Re: kvadjagan]
      18 июля 2018 в 14:18 Гілками

kvadjagan 18.07.2018 12:56 пишет:


дело в том что программа скомпиленна под 4.0, на компе у клиента стоит винда 10 и там по его словам фрейм ворк 4.7.1. Программа запускается но после запуска ее в работу начинает в логи писать сообщения о том что сервер разорвал соединение,+ Базовое соединение закрыто: Непредвиденная ошибка при передаче.




Имхо, несоответствие протоколов тут вообще ни при чом, - рвать былоб нечего, т.к. соединение бы просто не устанавливалось. Т.е. у них чото еще поменялось - текст/формат запросов и тп.


Роздрукувати   Нагадати!   Сповістити модератора   Відправити по E-mail
Достоевский *
19 лет за рулем, Vorlon Planet
Сообщения: 6727
С нами с 14.08.2011

Re: tls 1.2 и c# [Re: AZC_]
      18 июля 2018 в 16:18 Гілками

AZC_ 18.07.2018 14:18 пишет:

kvadjagan 18.07.2018 12:56 пишет:


дело в том что программа скомпиленна под 4.0, на компе у клиента стоит винда 10 и там по его словам фрейм ворк 4.7.1. Программа запускается но после запуска ее в работу начинает в логи писать сообщения о том что сервер разорвал соединение,+ Базовое соединение закрыто: Непредвиденная ошибка при передаче.




Имхо, несоответствие протоколов тут вообще ни при чом, - рвать былоб нечего, т.к. соединение бы просто не устанавливалось. Т.е. у них чото еще поменялось - текст/формат запросов и тп.



будем проверять, накидал клиенту парочку функций в отладочной утилите, жду логов от него.


Роздрукувати   Нагадати!   Сповістити модератора   Відправити по E-mail
Достоевский ***
27 лет за рулем, Ukraine
Сообщения: 8081
С нами с 30.07.2005

Re: tls 1.2 и c# [Re: kvadjagan]
      18 июля 2018 в 16:27 Гілками

kvadjagan 18.07.2018 12:56 пишет:

дело в том что программа скомпиленна под 4.0, на компе у клиента стоит винда 10 и там по его словам фрейм ворк 4.7.1. Программа запускается но после запуска ее в работу начинает в логи писать сообщения о том что сервер разорвал соединение,+ Базовое соединение закрыто: Непредвиденная ошибка при передаче.



Установленный фреймворк не имеет никакого значения. Я с этим сталкивался уже. Симптомы знакомые. Надо в коде прописать протокол. По-другому никак.


Роздрукувати   Нагадати!   Сповістити модератора   Відправити по E-mail
Достоевский *
19 лет за рулем, Vorlon Planet
Сообщения: 6727
С нами с 14.08.2011

Re: tls 1.2 и c# [Re: codex]
      18 июля 2018 в 20:51 Гілками

codex 18.07.2018 16:27 пишет:

kvadjagan 18.07.2018 12:56 пишет:

дело в том что программа скомпиленна под 4.0, на компе у клиента стоит винда 10 и там по его словам фрейм ворк 4.7.1. Программа запускается но после запуска ее в работу начинает в логи писать сообщения о том что сервер разорвал соединение,+ Базовое соединение закрыто: Непредвиденная ошибка при передаче.



Установленный фреймворк не имеет никакого значения. Я с этим сталкивался уже. Симптомы знакомые. Надо в коде прописать протокол. По-другому никак.



ок, спасибо за инфу.


Роздрукувати   Нагадати!   Сповістити модератора   Відправити по E-mail
Autoua.netФорумІнформатика та побутова електроніка
Додаткова інформація
2 користувачів і 76 що побажали залишитися невідомими читають цей форум.

Модератор:  AlMat, Yorc, moderator 

Роздрукувати всю тему

Права
      Ви не можете створювати нові теми
      Ви не можете відповідати на повідомлення
      HTML дозволений
      UBBCode дозволений

Рейтинг:
Переглядів теми: 1488

Оціните цю тему

Перейти в

Правила конференції | Календар | FAQ | Карта розділу | Мобільна версія