Wie ermittelt man, welches TLS / SSL-Protokoll bei der Verwendung von sslvSSLv23 ausgehandelt wurde?

8

Ich verwende TIdSSLIOHandlerSocketOpenSSL, um eine TLS / SSL-Verbindung zu öffnen. Ich möchte derzeit tls 1.0 bis 1.2 unterstützen.

Ich initialisiere den IOHandler so.

%Vor%

Wie kann ich nach dem Herstellen der Verbindung herausfinden, welches Protokoll für die Verbindung ausgehandelt wurde? (Sowohl um sicherzustellen, dass die Konfiguration des Clients und des Testservers korrekt ist, als auch zu statistischen Zwecken.)

Ich habe SSLContext.Method nach der Verbindung überprüft, aber nach der Verbindung wird sslvSSLv23 angezeigt. SSLContext.SSLVersions zeigt [sslvTLSv1_2,sslvTLSv1_1, sslvTLSv1] .

Wie bekomme ich diese Informationen?

    
Ken Bourassa 13.12.2016, 17:50
quelle

1 Antwort

5

Das spezifisch ausgehandelte Protokoll befindet sich nach dem Einrichten der SSL / TLS-Sitzung in der Eigenschaft TIdSSLIOHandlerSocketOpenSSL.SSLSocket.Cipher.Version . OpenSSL hat auch eine Funktion SSL_get_version() (die Indy nicht verwendet, aber Sie können direkt aufrufen).

    
Remy Lebeau 13.12.2016, 20:31
quelle

Tags und Links