golang tls.Config CiperSuites不限制客户端身份验证

时间:2016-05-03 17:56:51

标签: ssl encryption go tcp

我的tls.Config设置为不使用ECDHE交换,因此我可以监控wireshark中的流量,而无需获取客户端的密钥。

 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,
     },
 }

然而,在分析wireshark中的流量时,我仍然看到与ECDHE ciper suiete的连接:

 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.

1 个答案:

答案 0 :(得分:0)

原来我忘记了我在apache上的反向代理。

wireshark在端口443上寻找https连接,

但过滤掉了服务器端口上的apache和我的服务器之间的通信

我能够在apache的配置中成功限制ssl.conf上的SSLCipherSuites,并且能够分析流量

我假设apache正在将数据传递给反向代理中的go程序,导致apache并根据tls.Config协商连接,我没有看到,因为该通信在localhost上的一个不同的端口(我根据我的IP地址上的端口443过滤wireshark,而不是localhost,这是apache和go的沟通方式)