我正在尝试使用 SslStream 的 .NET 实现通过 this tutorial . 我做了本文中的所有操作,但我有一些问题。我从本地主机下载了 RawCap 并捕获了数据包,之后我使用 Wireshark 打开了转储文件 (.pcap),但我看到的不是 SSL 或 TLS 类型的协议(protocol),而是 TCP:这是 TCP 流的一部分:
....l...h..T...........Y.2..1...t.4....8.J...../.5... ....... .2.8.......'..............SslServer. ......................M..T...M.<.......e.E
...M.%c...Kg.. .....iKku.^q(C.$..;..Mx
......g&./..................0...0.............L.^..F.)...{.0...+......0.1 0...U....MyCA0.. 150228143257Z. 391231235959Z0.1.0...U....SslServer0.."0 ..*.H.. ..........0.. ......p9.cq...F.^....Bm...S... .....Bg.B.<]..f[...<...q'..Tc......R...Z.C.D.D...N...1..0.v..l.<...d[=C.7.8.+^..j(...X.........D'.!*5.^.^Ef..=.6y@.=..)|...Sp..Sv.|h.-..UT..&bG.......J{.7k.X...........:.[o....o.,r.......0..Wi.s..8.Jn9........4...WU....fkmw..........D0B0@..U...907..m.....@.. ...
f...0.1 0...U....MyCA..(J..j+..K......0...+...........h..X.+.M..{...n.....@.'.F........~....@9J.......A4,>.9.DE.R.V4t._bGY.,v.>G......J ....3....@..c,%[S._..u...$....!V.r....~...'.~..T*[.#[.?.B{..Z..m.p.9.7.U.u.}.e..c..H^n.:...-AJxs.. ...:... ..u.....YB....2n...y.g=...(.Fv...B.Is..GK.....;.F..Ln.....L...ao ......@...q0o1.0...U....SE1.0...U. ..AddTrust AB1&0$..U....AddTrust External TTP Network1"0 ..U....AddTrust External CA Root..0..1.0...U....US1.0...U. . GeoTrust Inc.1907..U...0(c) 2008 GeoTrust Inc. - For authorized use only1604..U...-GeoTrust Primary Certification Authority - G3.g0e1.0...U....US1.0...U.
这是正确的 SSL/TLS 流吗?为什么 Wireshark 将其标记为 TCP?
更新:
最佳答案
默认情况下,Wireshark 使用 TCP 端口号来判断这是标准 TCP 还是 TLS/SSL。
如果您想让 Wireshark 将任何端口永久识别为 SSL/TLS,请转到编辑> 首选项> 协议(protocol)> HTTP> 在 SSL/TLS 端口 下将其从 443
更改为至 443,5555, ... <other TLS/SSL ports go here>
.
另请注意,SSL 流量已加密,因此您将无法看到正在传输的实际数据。如果您希望 Wireshark 解密 SSL 流量,那么您必须将服务器的私钥提供给它(引用 SSL dissection in Wireshark)
关于ssl - Wireshark 中的 TCP 协议(protocol)而不是 SSL/TLS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28789179/