当使用HTTP或HTTPS协议时,GET/POST的工作方式有什么区别? 在尝试嗅探数据时,HTTPS GET / POST包中会显示什么?主机IP?域名?完整的GET请求? TLS在成功握手后隐藏哪些信息?
我似乎无法通过在互联网上查找来弥补这个知识差距,没有人提出这样的问题。
请给出建议,并使其成为互联网的参考。
当使用HTTP或HTTPS协议时,GET/POST的工作方式有什么区别? 在尝试嗅探数据时,HTTPS GET / POST包中会显示什么?主机IP?域名?完整的GET请求? TLS在成功握手后隐藏哪些信息?
我似乎无法通过在互联网上查找来弥补这个知识差距,没有人提出这样的问题。
请给出建议,并使其成为互联网的参考。
SSL在TCP和HTTP协议层之间运行。浏览器首先通过DNS查找服务器IP。这是一个可以被嗅探的明文查找。然后它将联系端口443上的服务器并建立加密通道。只有在这之后,它才会发送加密的POST或GET请求URL以供服务器执行。
HTTPS在传输任何HTTP数据之前建立了基础SSL连接。这确保了所有URL数据(除了用于建立连接的主机名)仅在此加密连接中传递,并受到与任何HTTP数据相同的中间人攻击保护。
就TCP/IP协议栈而言,HTTP作为应用层协议,使用TCP层安全性。首先建立一个安全的TCP连接,然后才发送请求并接收响应。
HTTP请求仅是由用户浏览器生成的一段文本,通过互联网发送。问题在于,它就像这样以纯文本形式发送,任何监视连接的人都可以读取。
如果网站使用HTTP而不是HTTPS,则所有请求和响应均可被正在监视会话的任何人读取。基本上,一个恶意行为者可以只读取请求或响应中的文本,并准确地知道某人正在请求、发送或接收的信息。
在 HTTPS 中,请求和响应使用 TLS/SSL。 TLS 使用一种称为公钥加密的技术:有两个密钥,一个是公钥,一个是私钥,公钥通过服务器的 SSL 证书与客户端设备共享。当客户机与服务器打开连接时,两个设备使用公钥和私钥协商新键,称为会话键,以加密它们之间的进一步通信。
然后,使用这些会话密钥对所有 HTTP 请求和响应进行加密,因此任何拦截通信的人只能看到随机字符串,而不是明文。
描述取自这里 - 相当简单明了。