我正在尝试从iis 6服务器中的asp.net应用程序访问远程Web服务到远程Web服务器。 由于我无法连接,我使用MS网络监视器来查看正在发生的事情。
这是TLS进展
2 15:26:31 14.03.2013 0.0000000 yyy.yyy.yyy.yyy XXX.XXX.XXX.XXX TLS TLS:TLS Rec Layer-1 HandShake: Client Hello. {TLS:4, SSLVersionSelector:3, TCP:2, IPv4:1}
3 15:26:31 14.03.2013 0.0312500 XXX.XXX.XXX.XXX yyy.yyy.yyy.yyy TLS TLS:TLS Rec Layer-1 HandShake: Server Hello.; TLS Rec Layer-2 HandShake: Certificate. {TLS:4, SSLVersionSelector:3, TCP:2, IPv4:1}
4 15:26:31 14.03.2013 0.0312500 yyy.yyy.yyy.yyy XXX.XXX.XXX.XXX TLS TLS:TLS Rec Layer-1 HandShake: Certificate. Client Key Exchange. Certificate Verify.; TLS Rec Layer-2 Cipher Change Spec; TLS Rec Layer-3 HandShake: Encrypted Handshake Message. {TLS:4, SSLVersionSelector:3, TCP:2, IPv4:1}
5 15:26:31 14.03.2013 0.0468750 XXX.XXX.XXX.XXX yyy.yyy.yyy.yyy TLS TLS:TLS Rec Layer-1 Cipher Change Spec; TLS Rec Layer-2 HandShake: Encrypted Handshake Message. {TLS:4, SSLVersionSelector:3, TCP:2, IPv4:1}
6 15:26:31 14.03.2013 0.0781250 XXX.XXX.XXX.XXX yyy.yyy.yyy.yyy TLS TLS:TLS Rec Layer-1 Encrypted Alert {TLS:4, SSLVersionSelector:3, TCP:2, IPv4:1}
这是带警报的最终TLS交易
- TlsRecordLayer: TLS Rec Layer-1 Encrypted Alert
ContentType: Encrypted Alert
- Version: TLS 1.0
Major: 3 (0x3)
Minor: 1 (0x1)
Length: 18 (0x12)
EncryptedData: Binary Large Object (18 Bytes)
最后这是警报部分的十六进制转储。
15 03 01 00 12 CE CA A3 1C C9 44 5C AC A2 3C BB 3C F3 F9 8A A6 4F 22
根据http://en.wikipedia.org/wiki/Transport_Layer_Security#Alert_protocol,我试图解释其含义
15 = 21 dec <- always 21
03 01 = major and minor Version
00 12 = lentgh
现在变得奇怪了。通常,接下来的两个字节应该是警报的级别和描述。但他们毫无意义。除此之外,它们与我运行的每一条痕迹都不同。虽然前部保持不变。
我有什么想法可以解密警报?
我的第一个想法是对方可能不允许TLS 1,而IIS 6仅支持TLS 1(至少这是我的想法)。
非常感谢先进
答案 0 :(得分:1)
警报本身已加密,因为握手成功。所以在你知道它说什么之前,你必须解密它 - 你可以使用ssldump,以防你拥有服务器的私钥。
在此处找到:http://www.wireshark.org/lists/ethereal-users/200110/msg00055.html - 在我困惑一段时间后遇到同样的问题。
这是关于ssldump:http://www.rtfm.com/ssldump/
使用Wireshark,您可以解密所有内容,以防您拥有用于加密的私钥:http://support.citrix.com/article/ctx116557