我在考虑 https,我很好奇。有多少保护?整个请求都是加密的吗?我怀疑不是,因为服务器怎么知道要连接到哪个域?只有主体是加密的吗?如果我请求http://joes-site.com/abc/file.ext人们能看到我请求的文件吗?
我假设帖子数据是用 https 加密的,cookie 呢?到底什么没有加密?
答案1
整个会话都经过加密,包括完整请求和 Cookie 等标头。在服务器名称指示 (RFC4366,第 3.1 节),这使得无法选择使用 HTTPS 向哪个虚拟主机发送请求,因此使用 HTTPS 的服务器必须为每个域/虚拟主机分配一个 IP。观察者唯一能看到的是封装协议信息(往返 IP、端口等)
使用 SNI,vhost 会在 TLS 协商期间传输。此时 vhost(但不是整个请求......只是主机名)将可见,但后续请求将完全加密。
答案2
源 IP 和目标 IP 未加密。因此,如果您担心被窥探,有人会知道两个端点之间正在进行通信。他们不会确切知道请求的内容,也无法看到传输的任何信息。
但所有这些都假设客户端实际上正在与服务器通信,而不是中间的任何主机。HTTP 严重依赖于一组受信任的证书颁发机构。如果 CA 受到威胁,或者在客户端系统上安装了虚假的 CA 证书,那么攻击者可以伪造证书并拦截通信。