2016-05-03 16 views
1

Meine tls.Config ist so eingestellt, dass ECDHE Exchange nicht verwendet wird, damit ich meinen Traffic in Wireshark überwachen kann, ohne die Schlüssel des Clients zu erhalten.golang tls.Config CiperSuites schränkt die Client-Authentifizierung nicht ein

config = &tls.Config{ 
    Certificates:    []tls.Certificate{cpair}, 
    MinVersion:    tls.VersionTLS12, 
    PreferServerCipherSuites: true, 
    ClientAuth: tls.NoClientCert, 
    CipherSuites: []uint16{tls.TLS_RSA_WITH_AES_256_CBC_SHA, 
     tls.TLS_RSA_WITH_RC4_128_SHA, 
     tls.TLS_RSA_WITH_AES_128_CBC_SHA, 
    }, 
} 

jedoch, wenn der Verkehr in wireshark zu analysieren, ich sehe immer noch die Verbindung mit einem ECDHE Ciper suiete gemacht werden:

62 ssl_decrypt_pre_master_secret: session uses Diffie-Hellman key exchange 
(cipher suite 0xC014 TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA) 
and cannot be decrypted using a RSA private key file. 

Antwort

0

stellt sich heraus, ich über meine Reverse-Proxy auf Apache vergessen.

wireshark war auf der Suche auf Port 443 für https-Verbindungen,

wurde aber auf den Port des Servers die Kommunikation zwischen Apache und meinem Servers Ausfiltern

ich in der Lage war, um erfolgreich SSLCipherSuites auf ssl.conf in Apache zu begrenzen Konfiguration und war in der Lage, den Verkehr zu analysieren

ich nehme an, dass Apache die Daten an mein Go-Programm in der Reverse-Proxy übergeben wurde, die Apache verursacht und eine Verbindung basierend auf tls.Config zu verhandeln, was ich nicht tat t sehen, weil diese Kommunikation auf einem anderen Port auf localhost war (i Filterte wireshark basierend auf Port 443 auf meiner IP-Adresse, nicht localhost, wie Apache und Go kommunizieren)

Verwandte Themen