Determinando a versão TLS negociada em aplicativos .net
. Net 4.7 Padrões para TLS 1.2 para solicitações HTTP; No entanto, a versão TLS real usada durante o estabelecimento de conexão pode variar. Este guia descreve dois métodos para determinar a versão TLS negociada.
Método 1: Reflection
Esta técnica aproveita a reflexão para acessar propriedades e campos internos para obter a versão do protocolo SSL. Observe que isso se baseia em APIs internas e pode mudar com as atualizações do .NET futuras.
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) ...
Método 2: Seguro dos atributos de contexto de conexão (Advanced)
Este método acessa atributos de contexto de conexão através do Secur32.dll
biblioteca. Essa abordagem envolve trabalhar com alças e estruturas não públicas, tornando-a menos portátil e potencialmente mais complexa. (Implementação detalhada omitida devido à complexidade e instabilidade potencial.)
considerações importantes:
:
Este retorno de chamada oferece informações sobre os protocolos de segurança empregados, ajudando na versão TLS Identification.
:
usando tcpclient permite a recuperação de TLS Information
antes webrequest inicialização, ativando a versão tls
Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.
Copyright© 2022 湘ICP备2022001581号-3