c# 从浏览器到网络服务器的HTTPS初始请求是否加密?
我制作了一个简单的本地服务器,它正在侦听 127.0.0.10:443 来自浏览器的 HTTPS 请求。我没有使用代理设置,只是使用 url https://127.0.0.10/ 只是为了查看初始请求从浏览器中我得到加密数据,例如:
►?? ↑ / 5 ♣ ?C ?↑;`???D♣9?¶#F%??
?!?¶ ?
2 8 ‼ ♦☺ ↓ ♣ ♣☺
♠ ♦ ↨ ↑ ♂ ☻☺
我已经阅读了有关 SSL 协议的“一点”,我认为第一个请求是设置加密密钥,然后数据就被加密了!或者是其他格式(例如base64)?
谢谢
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您应该看到未加密的客户端和服务器问候消息,以及服务器公钥的未加密传输,导致第一个数据包传送加密的“应用程序数据”。
作为 SSL 握手的一部分传输的大部分数据都是纯二进制的(尽管您会看到很少的可读字符串,例如服务器名称、证书的友好名称、颁发者和描述)。我建议使用像wireshark这样的工具来打破 rel
如果您尝试调试 HTTPS 应用程序流量,我建议使用 Charles Web 调试代理:http://www.charlesproxy.com/。我用它对一些只能通过 HTTPS 访问的 Web 服务进行了逆向工程。您也可以尝试支持解密的数据包嗅探器。 SSL 流量(例如wireshark),尽管这可能需要您拥有服务器的私钥。
You should see unencrypted Client & Server hello messages, as well as the unencrypted transmission of the server's public key leading up to the first packet delivering encrypted "application data."
Most of the data being transmitted as part of an SSL handshake is pure binary (although you'll see as few readable strings like the server name, and the Certificate's friendly name, issuer, and description. I recommend using a tool like wireshark to break it down.
What are you trying to do with this anyway? If you're trying to debug HTTPS application traffic, I recommend using the Charles Web Debugging Proxy: http://www.charlesproxy.com/. I've used it to reverse engineer a few web services that were only accessible via HTTPS. You could also try a packet sniffer that supports decrypting SSL traffic (such as wireshark), although that may require you to have the server's private key.
实际上,第一个请求是使用服务器公钥加密的,因此只有服务器可以使用其秘密私钥对其进行解密。请参阅http://support.microsoft.com/kb/257591
Actually the first request is encrypted using the servers public key, so that only the server can decrypt it using its secret private key. see http://support.microsoft.com/kb/257591