我已经创建了一个简单的本地服务器,它正在侦听127.0.0.10:443,以便从我的浏览器获取HTTPS请求。我没有使用代理设置,只是网址https://127.0.0.10/只是为了查看来自浏览器的初始请求,我得到加密数据,如:
►?? ↑ / 5 ♣ ?C ?↑;`????D♣9?¶#F%??
?‼?¶? ?
2 8 ‼ ♦☺ ↓ ♣ ♣☺
♠ ♦ ↨ ↑ ♂ ☻☺
我已经读过SSL协议的“小”,我认为第一个请求是设置加密密钥,然后数据被加密了!或者它是否采用其他格式liek base64?
由于
答案 0 :(得分:0)
实际上,第一个请求是使用服务器公钥加密的,因此只有服务器可以使用其秘密私钥对其进行解密。见http://support.microsoft.com/kb/257591
答案 1 :(得分:0)
你应该看到未加密的客户端&服务器问候消息,以及服务器公钥的未加密传输,导致第一个数据包传送加密的“应用程序数据”。
作为SSL握手的一部分传输的大多数数据都是纯二进制的(尽管您会看到很少的可读字符串,如服务器名称,以及证书的友好名称,发行者和描述。我建议使用类似的工具wireshark打破它。
你还想用这个做什么?如果您正在尝试调试HTTPS应用程序流量,我建议使用Charles Web调试代理:http://www.charlesproxy.com/。我用它来反向设计一些只能通过HTTPS访问的Web服务。您也可以尝试支持解密SSL流量的数据包嗅探器(例如wireshark),尽管这可能需要您拥有服务器的私钥。