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

通过一台 HTTPS proxy 上网,这台 proxy 能获得我访问的网址吗?

  •  
  •   crysng · 2014-11-07 21:38:00 +08:00 · 6099 次点击
    这是一个创建于 3668 天前的主题,其中的信息可能已经有所发展或是发生改变。
    这个http/https还是不太懂,还有就是proxy弄成https有什么意义呢?
    第 1 条附言  ·  2014-11-08 13:51:42 +08:00
    @lsylsy2 完美答案
    18 条回复    2015-04-30 10:30:17 +08:00
    nealfeng
        1
    nealfeng  
       2014-11-07 21:52:04 +08:00   ❤️ 1
    弄成https才能访问那些以https方式提供服务的网站啊
    不了解https代理,但这个应该是肯定的:
    如果https代理让你安装一个CA证书才能在访问网站时让浏览器不提示证书有问题,那它就可以获得你访问的网址。如果不用就不会。
    比如这个网址就说的是需要安装证书 => http://www.charlesproxy.com/documentation/proxying/ssl-proxying/
    ss098
        2
    ss098  
       2014-11-07 21:56:33 +08:00   ❤️ 1
    https 保证了用户与服务器间的数据是安全的,但是基本原理还是 TCP 与 IP,也就是说可以获得访问的网址,但不能获得数据内容。
    binux
        3
    binux  
       2014-11-07 22:04:18 +08:00   ❤️ 1
    知道HTTPS代理用的是CONNECT,知道你连的主机,但是不知道你连的URL
    wzxjohn
        4
    wzxjohn  
       2014-11-07 22:10:23 +08:00 via iPhone   ❤️ 2
    @nealfeng 嗯你说的基本完全错误。列举的例子也跟楼主想问的完全不着边。

    首先,不管使用何种代理,你访问https网站的数据都是无法被截获的,包括URI。因为访问HTTPS网站时,代理只是个版转发器。
    然后,如果是对方的服务器IP的话,那显然是能得到的,不然你让它把包往哪转。。。
    zhs227
        5
    zhs227  
       2014-11-07 22:14:49 +08:00   ❤️ 1
    我和你说话,不管是直接面对面说,还是打电话说,还是传小纸条说。我说的话你都能听见。
    https代表了内容的传输的一种方式,是为了保证不被第三方听见。(准确的来说是防止被不信任的第三方听见)
    wzxjohn
        6
    wzxjohn  
       2014-11-07 22:15:22 +08:00 via iPhone   ❤️ 1
    不小心发送了。。。上个回复吧包转发器打错了。
    第三,不管是何种代理,你访问HTTP网站的数据都是明文的,所以不论何种代理,代理本事能获得你访问的HTTP网站的所有信息。
    最后,给代理加上SSL的意义是你和代理之间的数据传输变成加密的,这样某些别总用心的人无法拦截到你和代理之间交换的数据从而进行拦截。这也是为啥HTTP代理搭建在墙外是木有用的的原因之一。。。
    dangge
        7
    dangge  
       2014-11-07 22:15:48 +08:00   ❤️ 1
    可以获得网址,但是内容是截获不了的。
    除非你同时受到了中间人攻击。
    nealfeng
        8
    nealfeng  
       2014-11-07 22:19:53 +08:00   ❤️ 1
    @wzxjohn 有不准确的地方,完全错误算不上吧,我都说了不了解https代理。如果只是转发形式的代理,比如socks5,那确实不会被截取。但楼主说的是HTTPS代理,这种代理我不了解。
    再比如GoAgent也是代理啊,我个人觉得算是HTTP代理,是不是https代理不知道,它也能访问https的网站,但需要它安装自己的CA证书,所以GoAgent服务器是知道要访问的网址的。
    最新版的GoAgent不了解,我还在用之前的某个版本。
    wzxjohn
        9
    wzxjohn  
       2014-11-07 22:26:54 +08:00 via iPhone   ❤️ 1
    @nealfeng 嗯,我道歉,你说你完全不了解这一条确实是正确的。具体的解释稍后附上,手机码字太累。
    lsylsy2
        10
    lsylsy2  
       2014-11-07 23:07:05 +08:00   ❤️ 1
    我猜LZ你说的“HTTPS代理”,是指用户和代理之间的连接走HTTPS加密,然后用这个代理访问各种网站(HTTP和HTTPS);而不是在浏览器里设置“HTTP代理”,然后用他访问 https://v2ex.com/ 这样一个URL。
    首先:前者和后者的区别,在于你和代理服务器之间的连接是否加密;加密之后,在你和代理之间的人(例如你公司的网关、中国电信、G*W)无法获取你们通信的内容;这是这一层加密的意义。
    然后,从代理服务器到目标网站,这两种代理就没有任何区别;如果你访问HTTP网站的话,代理可以获取你们通信的所有内容;
    如果你访问HTTPS网站的话,比如你访问 https://v2ex.com/ ,你会向代理发送这样一个请求:
    --------------
    CONNECT v2ex.com 443
    加密的,你想向v2ex.com服务器发送的内容
    --------------
    第一行具体是不是这样记不清了,就是表示这样的意思,你通过代理访问HTTPS网站,实际是用CONNECT请求直接建立了TCP连接。代理服务器可以获取v2ex.com和443这两个信息,其它内容加密了。
    wzxjohn
        11
    wzxjohn  
       2014-11-07 23:14:54 +08:00 via iPhone   ❤️ 1
    @lsylsy2 解释的非常好,看来我不用单独码字了~
    alsotang
        12
    alsotang  
       2014-11-07 23:45:12 +08:00   ❤️ 1
    http proxy 和 https proxy 的安全性,在 proxy 中间人层面,是一样的
    sneezry
        13
    sneezry  
       2014-11-08 00:18:57 +08:00   ❤️ 1
    @lsylsy2 我倒是觉得https协议下的内容代理未必不知道,这代理完全可以做中间人啊,ssl握手的时候公钥完全可以被他替换掉嘛,这就是1l说的要安装证书的原因吧
    lsylsy2
        14
    lsylsy2  
       2014-11-08 00:37:40 +08:00   ❤️ 1
    @sneezry 安装证书这个行为本身就相当于把你的所有秘密公开给代理……
    ptyfork
        16
    ptyfork  
       2014-11-08 10:35:40 +08:00   ❤️ 1
    @nealfeng 没看出你说的有任何的错误,
    使用代理做https访问的时候就是要时刻警惕中间人攻击,有时候证书就是在自己不经意的时候安装的, 比如公司的电脑统一做的部署,完全有可能通过这种方式来监控员工。
    mcone
        17
    mcone  
       2014-11-08 11:57:51 +08:00   ❤️ 1
    @binux 哇 来歪个楼 你是byr的那个binux嘛,居然在这里见到你了~
    flynaj
        18
    flynaj  
       2015-04-30 10:30:17 +08:00
    HTTPS proxy 是你到代理之前是加密的.如果你访问的是http的网站,代理是能看到的.
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1045 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 22ms · UTC 23:12 · PVG 07:12 · LAX 15:12 · JFK 18:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.