определение согласованной версии TLS в приложениях .NET
]. Net 4.7 по умолчанию TLS 1.2 для HTTP -запросов; Тем не менее, фактическая версия TLS, используемая во время установления соединения, может варьироваться. В этом руководстве изложены два метода определения согласованной версии TLS.
]Метод 1: Reflection
]Этот метод использует отражение для доступа к внутренним свойствам и полям для получения версии протокола SSL. Обратите внимание, что это опирается на внутренние API и может измениться с будущими обновлениями .NET.
]using System.IO.Compression;
using System.Net;
using System.Net.Security;
using System.Reflection;
using System.Security.Authentication;
using System.Security.Cryptography;
using System.Security.Cryptography.X509Certificates;
// ... other code ...
ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls |
SecurityProtocolType.Tls11 |
SecurityProtocolType.Tls12 |
SecurityProtocolType.Tls13;
// ... other code ...
Uri requestUri = new Uri("https://somesite.com");
var request = WebRequest.CreateHttp(requestUri);
// ... other code ...
using (var requestStream = request.GetRequestStream()) {
// Request stream validated; now extract SSL protocol
SslProtocols sslProtocol = ExtractSslProtocol(requestStream);
if (sslProtocol != SslProtocols.None) {
// Process the sslProtocol value
}
}
// ... ExtractSslProtocol function (implementation would be provided here) ...
Метод 2: Атрибуты контекста Secure Connect Этот метод обращается к атрибутам контекста подключения через библиотеку
secur32.dll. Этот подход включает в себя работу с непубличными ручками и структурами, что делает его менее портативным и потенциально более сложным. (Подробная реализация опущена из -за сложности и потенциальной нестабильности.) ]
]
Этот обратный вызов предлагает понимание используемых протоколов безопасности, помогая в идентификации версии TLS.
с использованием
tcpclient позволяет получить информацию TLS до
webRequest инициализация, обеспечивающая проницательная версия TLS.
]
эта информация помогает разработчикам понять и управлять протоколами безопасности, используемыми их приложениями .NET. Не забудьте тщательно рассмотреть последствия и потенциальные риски, связанные с использованием отражения и взаимодействия с неуправляемыми библиотеками. Отказ от ответственности: Все предоставленные ресурсы частично взяты из Интернета. В случае нарушения ваших авторских прав или других прав и интересов, пожалуйста, объясните подробные причины и предоставьте доказательства авторских прав или прав и интересов, а затем отправьте их по электронной почте: [email protected]. Мы сделаем это за вас как можно скорее.
Copyright© 2022 湘ICP备2022001581号-3