我的SSL握手(使用openssl s_client -connect host:port)显示如下输出:
SSL-Session:
Protocol : TLSv1.2
Cipher : 0000
Session-ID:
Session-ID-ctx:
Master-Key:
Key-Arg : None
PSK identity: None
PSK identity hint: None
SRP username: None
Start Time: 1631731107
Timeout : 300 (sec)
Verify return code: 0 (ok)
显示返回代码0 (ok),开始时间等。这是否意味着这里建立了SSL会话?为什么不显示其他SSL会话中常见的cipher, session-id等内容?
这个输出表示握手根本没有成功。在此之前的输出中通常会出现错误,例如:
$ openssl s_client -connect example.com:80
CONNECTED(00000003)
140501726137216:error:1400410B:SSL routines:CONNECT_CR_SRVR_HELLO:wrong version number:ssl_pkt.c:386:
....
SSL-Session:
Protocol : TLSv1.2
Cipher : 0000
...
Verify return code: 0 (ok)
在这个例子中,一个TLS连接被尝试到一个服务器,它根本不讲TLS,而是只讲纯HTTP(因为我连接到纯HTTP端口)。有一个明显的错误显示某种TLS问题,在这种情况下,这是由于试图将普通HTTP响应解释为TLS引起的。
Fromhttps://www.virtuesecurity.com/kb/null-ciphers-supported/
:
Cipher Name (IANA) Cipher Name (OpenSSL) Value
TLS_NULL_WITH_NULL_NULL N/A 0x00,0x00
参见https://en.wikipedia.org/wiki/Null_cipher
。
别用,没有加密。