我创建了一个简单的本地服务器,它在127.0.0.10:443上侦听来自我的浏览器的HTTPS请求。我没有使用代理设置,只是使用url https://127.0.0.10/来查看来自浏览器的初始请求,并获得加密数据,如下所示:
►?? ↑ / 5 ♣ ?C ?↑;`????D♣9?¶#F%??
?‼?¶? ?
2 8 ‼ ♦☺ ↓ ♣ ♣☺
♠ ♦ ↨ ↑ ♂ ☻☺
我读了一个关于SSL协议的“小”,我以为第一个请求是设置一个加密密钥,然后数据就被加密了!或者它是某种其他格式,比如base64?
谢谢
发布于 2010-07-14 05:54:18
您应该会看到未加密的Client & Server hello消息,以及服务器公钥的未加密传输,直到第一个数据包传送加密的“应用程序数据”。
作为SSL握手的一部分传输的大多数数据都是纯二进制的(尽管您看到的可读字符串很少,如服务器名称、证书的友好名称、颁发者和描述。我建议使用像wireshark这样的工具来分解它。
你到底想用这个做什么?如果您正在尝试调试HTTPS应用程序流量,我建议使用Charles Web调试代理:http://www.charlesproxy.com/。我用它对一些只能通过HTTPS访问的web服务进行了逆向工程。您还可以尝试使用支持解密SSL流量的数据包嗅探器(例如wireshark),尽管这可能需要您拥有服务器的私钥。
发布于 2010-07-14 05:22:45
实际上,第一个请求是使用服务器公钥加密的,因此只有服务器可以使用其秘密私钥对其进行解密。请参阅http://support.microsoft.com/kb/257591
https://stackoverflow.com/questions/3241550
复制相似问题