• 请不要在回答技术问题时复制粘贴 AI 生成的内容
qazwsxkevin
V2EX  ›  程序员

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

  •  
  •   qazwsxkevin · Jul 11, 2024 · 5230 views
    This topic created in 846 days ago, the information mentioned may be changed or developed.
    买了个服务,提供方用 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 次返回完成,中间人能看到的可能性有多大?
    27 replies  •  2024-07-14 20:56:06 +08:00
    yikuo
    yikuo
    Jul 11, 2024 via Android
    1
    HTTPS 是加密的,如果没有遭遇中间人攻击,最多只能看到访问的域名,看不到 URL ,也与客户端无关。
    jim9606
    jim9606
    Jul 11, 2024 via Android
    2
    TLS 会将所有 HTTP 消息加密,只有域名 service.website.net 会暴露,这完全是因为 TLS 主流应用需要通过 SNI 扩展明文告知域名以供服务器选择证书。
    如果客户端有一些状态缓存,在只有被动监听攻击的情况下可以连域名都不暴露。
    forvvvv123
    forvvvv123
    Jul 11, 2024❤️3
    3
    看不到;

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

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

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

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

    还是那句话,也不是不能用
    dode
    dode
    Jul 12, 2024
    14
    提供 get 兼容纯粹是为了不懂的人设计的简化吧,你可以用 post
    misaka19000
    misaka19000
    Jul 12, 2024
    15
    HTTPS 除了域名之外什么都看不到
    salmon5
    salmon5
    Jul 12, 2024
    16
    @forvvvv123 #3 还有一种风险,而且这个风险更大:
    搜索引擎比如 bing 等,会把自家的浏览器( edge )用户的访问记录,给自家的爬虫爬,然后全球的人都可能搜索到。
    salmon5
    salmon5
    Jul 12, 2024
    17
    然后
    https://example.com/login?user_name=abc&password=xyz
    就会出现在 bing 的搜索结果中,这块 google 就处理的很专业,收录的时候会把 args 去掉。
    salmon5
    salmon5
    Jul 12, 2024
    18
    @salmon5 #16 这里说一嘴,edge 浏览器存在很大的隐私安全问题。
    feiyan35488
    feiyan35488
    Jul 12, 2024
    19
    @yuzo555 有根证书后,还需要配合中间人劫持流量才行,类似使用 charles 抓包, 一般只会存在个别场合里或 gfw 封控的域名下
    julyclyde
    julyclyde
    Jul 14, 2024
    20
    @forvvvv123 如果你真的读过 HTTP 标准,就不会觉得这种情况 GET 和 POST 有什么区别
    HTTP 请求的时候,用户名密码并不在 URL 里而是在 header 里
    forvvvv123
    forvvvv123
    Jul 14, 2024
    21
    @julyclyde 所以不推荐放 get 里面啊
    julyclyde
    julyclyde
    Jul 14, 2024
    22
    @forvvvv123 啊?你的思路是怎样的?
    都说了不在 URL 里了!
    为什么就“所以”了?
    forvvvv123
    forvvvv123
    Jul 14, 2024
    23
    @julyclyde 无非就是放到 urlpath 、get 参数、post 参数、header 这几个地方嘛,放 header 、post 参数会比放 urlpath 、get 参数好,因为 url 和 get 参数更容易被各个地方记录。 不是这个意思吗?
    julyclyde
    julyclyde
    Jul 14, 2024
    24
    @forvvvv123 对啊,但现实是没在你认为容易记录的位置上啊
    forvvvv123
    forvvvv123
    Jul 14, 2024
    25
    @julyclyde 你的意思是现实中的实现其实都是在 header 和 post 上?
    julyclyde
    julyclyde
    Jul 14, 2024
    26
    @forvvvv123 我上面都说过了啊“如果你真的读过标准”
    forvvvv123
    forvvvv123
    Jul 14, 2024
    27
    @julyclyde 哦哦哦哦哦,是这个意思
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   5258 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 124ms · UTC 01:52 · PVG 09:52 · LAX 17:52 · JFK 20:52
    ♥ Do have faith in what you're doing.