https 的 url 带有账号、密码、动作等等参数内容,在本地看起来, 1 次请求就完成的过程,中间的流量观察者,能不能直接看到这些内容?

67 天前
 qazwsxkevin
买了个服务,提供方用 url 的 get or post 方式完成服务提供,类似这样: https://service.website.net/ser?xx&yy&zz 的,
https 的概念不熟悉,请问:

1 、https 是 client 在和 web 服务器做完域名 ca 核证、建立 TLS 通道后,才开始握手处理域名后面的内容吗?
2 、这个跟本地客户端的发起者是什么,会过程不同吗?
比如说发起者是 curl 、firefox 浏览器,c++的 sdk http:api 接口?
遵从 https 规范一致性?

3 、那么,bash shell 代码里直接组装成完整 https 的 url 去请求,1 次请求,1 次返回完成,中间人能看到的可能性有多大?
3470 次点击
所在节点    程序员
27 条回复
yikuo
67 天前
HTTPS 是加密的,如果没有遭遇中间人攻击,最多只能看到访问的域名,看不到 URL ,也与客户端无关。
jim9606
67 天前
TLS 会将所有 HTTP 消息加密,只有域名 service.website.net 会暴露,这完全是因为 TLS 主流应用需要通过 SNI 扩展明文告知域名以供服务器选择证书。
如果客户端有一些状态缓存,在只有被动监听攻击的情况下可以连域名都不暴露。
forvvvv123
67 天前
看不到;

如果考虑保密性,从实践来说,放到 Body 里面( POST 方式)比 URL 里面( GET 方式)会更好,因为除了 tls 保障通信过程中的安全,URL 相比请求 Body 在各个节点更容易被记录和存储(比如默认的 nginx 日志),从而更容易因为其他因素被泄露;
blackeeper
67 天前
问题 1 ,是的,建立 TLS 加密通道后,才开始交换内容信息
问题 2 ,不会,过程是一样的
问题 3 ,中间人看到的可能性为 0 。除非你的证书秘钥泄露给别人,且这个别人是 [中间人] ,能管控你网络的人
lzy250
67 天前
DPI 也能解析到。
0o0O0o0O0o
67 天前
1. 是
2. 可能会有区别,但不会破坏 1 ,例如 RFC 8470
3. 前提一定是客户端是安全的,服务器是安全的,证书是安全的。那么考虑的只是会不会被例如 POODLE attack 影响,那只要工具实现是安全的,服务端正确配置了,就不需要担心。
yuzo555
67 天前
我有一个疑问,Win 下一个程序获取管理员权限后,添加的根证书,可以用来劫持监听浏览器的 HTTPS 流量吗?
我看那些网游加速器随随便便就会添加一个根证书到系统里面。
fkdtz
67 天前
@yuzo555 仅仅添加了根证书是不会解析到 HTTPS 数据的,想要解析出 HTTPS 数据还需要有劫持网路流量这一步,让所有请求都走代理,这就形成了典型的中间人。
0o0O0o0O0o
67 天前
@yuzo555 #7 “获取管理员权限”后,你可以认为它能做任何坏事。此外这个问题其实讨论过, 本来就是为了 MITM 。

/t/879778
/t/1036217
fpk5
67 天前
@yuzo555 #7 添加根证书+加速器代理流量=对于加速器都是明文的
GeekGao
66 天前
虽然理论上存在一些高级的攻击方法可能会威胁到 HTTPS 的安全性,但对于一般的流量观察者来说,由于 HTTPS 的加密特性,他们无法直接看到 URL 中的账号、密码或其他敏感信息,只能看到域名。

如果遇到中间人攻击,那么都透明了,无所谓敏感信息放在 URL or Body 。
Trim21
66 天前
在证书安全,加密算法没漏洞的情况下,中间人看不到 url 域名以外的东西。
elboble
66 天前
get 不好看,就用 post 呗,至少 url 上看不到。

不过参数在 https 下都看不到的,

还是那句话,也不是不能用
dode
66 天前
提供 get 兼容纯粹是为了不懂的人设计的简化吧,你可以用 post
misaka19000
66 天前
HTTPS 除了域名之外什么都看不到
salmon5
66 天前
@forvvvv123 #3 还有一种风险,而且这个风险更大:
搜索引擎比如 bing 等,会把自家的浏览器( edge )用户的访问记录,给自家的爬虫爬,然后全球的人都可能搜索到。
salmon5
66 天前
然后
https://example.com/login?user_name=abc&password=xyz
就会出现在 bing 的搜索结果中,这块 google 就处理的很专业,收录的时候会把 args 去掉。
salmon5
66 天前
@salmon5 #16 这里说一嘴,edge 浏览器存在很大的隐私安全问题。
feiyan35488
66 天前
@yuzo555 有根证书后,还需要配合中间人劫持流量才行,类似使用 charles 抓包, 一般只会存在个别场合里或 gfw 封控的域名下
julyclyde
64 天前
@forvvvv123 如果你真的读过 HTTP 标准,就不会觉得这种情况 GET 和 POST 有什么区别
HTTP 请求的时候,用户名密码并不在 URL 里而是在 header 里

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1056586

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX