Как указать шифр для соединения SSL в.NET?

Как я могу указать набор шифров для использования на SSL Соединений?

Я знаю, что Mentalis Seclib получил эту функцию однако, они не поддерживают проект (и существуют проблемы в той библиотеке с x64 Ose), поскольку они говорят, что Платформа.NET 2.0 представила те функции, однако я не мог найти способ сделать это в Платформе.NET 3.5.

Чтобы быть более конкретным, я хочу соединить сервис HTTPS при помощи ПУСТОГО шифра, я сделал бы то же самое с OpenSSL при помощи следующей команды:

openssl s_client -connect www.example.com:443 -cipher NULL 

Как я могу сделать это в.NET?

Также коммерческие или коммерческие дружественные лицензированные предложения библиотеки приветствуются также.

7
задан Unihedron 2 November 2014 в 04:52
поделиться

3 ответа

(Мой предыдущий ответ был неосведомленным, я не заметил сначала, что свойство, на которое я ссылался, было только для чтения.)

В .NET 4 класс System.Net.Security.SslStream поддерживает новый конструктор, позволяющий вам предоставить значение EncryptionPolicy, которое может быть NoEncryption. Это позволяет не шифровать и запрашивать использование NULL-шифра, если другая конечная точка может работать с NULL-шифром.

К сожалению, этого не существовало даже в версии 3.5.


Это не совсем относится к вопросу, но я предполагаю (и это действительно для будущих читателей), что вы, конечно, знаете о соответствующих рисках, связанных с использованием SSL с NULL-шифром? И о преимуществах, которые вы упускаете?

6
ответ дан 7 December 2019 в 09:57
поделиться

Судя по документации, шифры при использовании SChannel можно задавать через параметры palgSupportedAlgs, dwMinimumCipherStrength и dwMaximumCipherStrength структуры SCHANNEL_CRED.

Чтобы включить алгоритм шифрования NULL, необходимо установить dwMinimumCipherStrength в -1.

CAVEAT: Это основано только на документации. Я не являюсь разработчиком .NET, но я искал ответ на этот вопрос, потому что я поддерживаю службу, у которой есть клиенты .NET.

0
ответ дан 7 December 2019 в 09:57
поделиться

В .NET вы можете использовать класс SSLStream. в .NET 4.0, как сказал выше Матье, он позволяет указывать шифры.

0
ответ дан 7 December 2019 в 09:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: