V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Actrace
V2EX  ›  程序员

阿里云竟然也能 RESET 掉 HTTPS 链接了..?

  •  
  •   Actrace · 2014-06-30 11:19:47 +08:00 · 6358 次点击
    这是一个创建于 3806 天前的主题,其中的信息可能已经有所发展或是发生改变。
    用阿里云搭了个NGINX跳板,本来想把静态资源通过国内节点发送给国内用户的.
    页面内全部链接是HTTPS协议的,虽然域名没有备案,理论上应该检测不出来传输的内容啊没事.
    不过打开主页发现HTML被正确载入,但是其余静态资源全部被RESET了.
    这是神马原理?
    17 条回复    2022-09-19 06:14:49 +08:00
    allenm
        1
    allenm  
       2014-06-30 11:29:21 +08:00
    HTTPS 只是检测不出来传输的内容,但是域名是可以检测的。
    Actrace
        2
    Actrace  
    OP
       2014-06-30 11:34:10 +08:00
    @allenm 我看了一下net-internals,发现页面内的那些HTTPS静态资源链接触发的是HTTP的传输事件.真是奇怪啊.
    wy315700
        3
    wy315700  
       2014-06-30 12:31:32 +08:00
    在建立连接的时候都是明文的 ,比如证书什么的
    wanjun
        4
    wanjun  
       2014-06-30 12:39:55 +08:00
    http://www.badnotes.com/2013/09/25/nginx_499_code/

    以前我就遇到过,他和你连接和内容都没关系,和没有备案的域名有关。
    Actrace
        5
    Actrace  
    OP
       2014-06-30 12:42:26 +08:00
    我记得HTTPS的传输过程是在建立了SSL之后才开始发送HEADER的,包括HOST.
    Shieffan
        6
    Shieffan  
       2014-06-30 12:50:30 +08:00 via iPhone
    目前的tls协议给防火墙开了两个洞:证书明文传输;默认启用的tls sni extension会在tls握手阶段暴露域名。所以~
    Actrace
        7
    Actrace  
    OP
       2014-06-30 12:55:51 +08:00
    @Shieffan 单独点开静态资源文件地址,是可以打开的,但是载入页面时,解析这些资源文件地址却没有走443端口.无解了么.令人感到奇怪的是谷歌统计的JS就一直载入正常,话说谷歌统计的JS也是HTTPS的,从network里看,确实是走了443端口,我看了一下,只要能正常请求到资源的都是走了443端口的.
    lehui99
        8
    lehui99  
       2014-06-30 13:12:23 +08:00
    @Actrace 确实HEADER的包括HOST确实都是加密的,但证书不是加密的,通过证书可以判断你访问哪个域名。
    主要问题还是在于你的页面中一部分资源用http方式加载了吧,测试下来阿里云并没有检测证书进行reset的能力。
    Actrace
        9
    Actrace  
    OP
       2014-06-30 14:41:31 +08:00
    @lehui99 其实主要是这个环节令人费解.

    1,chrome请求了页面,由于该链接是HTTPS链接,所以能正确获取内容.
    2,chrome解析页面,请求相同域的其他资源,但是HTTPS链接全部走了HTTP管道.然后RESET.
    3,chrome解析页面,请求不同域的其他资源,HTTPS正常开SSL管道走流量,没有问题.

    一个比较特殊的情况是,如果单独打开页面内的其他HTTPS资源(新标签页,正在载入),再去刷新原来页面,会发现那个资源正确走了SSL管道,304.
    orzfly
        10
    orzfly  
       2014-06-30 15:03:37 +08:00
    Server Name Indication (SNI) is an extension to the TLS protocol[1] that indicates what hostname the client is attempting to connect to at the start of the handshaking process.
    Shieffan
        11
    Shieffan  
       2014-06-30 15:06:05 +08:00
    @Actrace 我很好奇你怎么得出 “2,chrome解析页面,请求相同域的其他资源,但是HTTPS链接全部走了HTTP管道.然后RESET.” 这个结论的。 TCP reset跟应用层协议又没关系,何必要跳到http再reset
    Actrace
        12
    Actrace  
    OP
       2014-06-30 16:15:53 +08:00
    @orzfly 能翻译一下吗,E文不太好...

    @Shieffan 具体的不是很懂,不过可以确定一点.TCP reset操作是跟应用层的某些参数挂钩的,比如header里的host.只要走了SSL通道,它是没办法做出这个操作的.
    Shieffan
        13
    Shieffan  
       2014-06-30 16:21:34 +08:00
    @Actrace 之前我就回复你了tls sni extension会在tls握手阶段暴露域名,所以防火墙当然可以直接reset你呀,所以你所说的“HTTPS链接全部走了HTTP管道”实在让人不知所云。
    Actrace
        14
    Actrace  
    OP
       2014-06-30 16:34:58 +08:00
    @Shieffan 如果会暴露域名,那么为页面请求没有被reset?而且那些资源文件也能在新tab页打开.
    Shieffan
        15
    Shieffan  
       2014-06-30 16:38:40 +08:00
    @Actrace 因为啥,因为阿里云的防火墙没那么灵敏,没那么高效,你对着你的首页多刷新几次看看。

    至于会不会暴露域名,自己抓个包看看不就知道了。
    eslizn
        16
    eslizn  
       2014-07-01 10:08:33 +08:00
    阿里云很渣,而且会扫描你机器上的文件,就因为我代码里用了eval,它说存在木马,ban掉,要求你删除再开通.
    也就是说:
    1.阿里云可以肆无忌惮的窥视你机器上的文件(我是用的vps)
    2."木马查杀"很弱智,很低级
    haikouwang
        17
    haikouwang  
       2022-09-19 06:14:49 +08:00
    @Shieffan 所以 ESNI 有希望解决这个问题吗 ...
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   988 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 26ms · UTC 20:20 · PVG 04:20 · LAX 12:20 · JFK 15:20
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.