由于各种原因,在国内上网,免不了要和HTTP代理服务器打交道。HTTP代理服务器分加密代理服务器和普通代理服务器。如果我们在自己的电脑上运行了某些软件之后就能访问之前不能访问的网站,那么很可能是加密代理;如果我们直接在浏览器中设置代理服务器,不用运行任何软件,那么这种类型的代理服务器就是普通代理。一般来说,如果加密代理软件没有问题,加密代理的安全性要好于普通代理。在这里,本文主要还是讲述普通代理的安全性。
1、HTTP代理协议简介 浏览器和HTTP代理服务器之间是通过HTTP代理协议进行通讯的。如果我们没有使用运行在自己的电脑上的加密代理,而是直接在浏览器中设置了在互联网上的代理服务器地址,那么浏览器就和代理服务器之间进行的通讯就会发送到互联网上。代理服务器常见的请求有GET、POST和CONNECT,下面分别做介绍: 1.1、GET 如果我们通过代理服务器访问某个http协议的网站网页,那么浏览器就会向HTTP代理服务器发送GET请求。比如我们通过代理服务器访问 http://www.microsoft.com/ ,那么浏览器就会向HTTP代理服务器发送数据: GET http://www.microsoft.com/ HTTP/1.1 之后代理服务器取得数据后把网页返回给浏览器: HTTP/1.1 200 OK 我们来和没有使用代理服务器的情况对比一下,如果没有使用代理服务器,那么我们访问 http://www.microsoft.com/ ,浏览器就会向 www.microsoft.com 这台服务器发送以下请求: GET / HTTP/1.1 服务器返回: HTTP/1.1 200 OK 我们看到,使用代理服务器之后,GET请求和返回的格式基本没有变化,是否使用代理服务器的安全性上基本没有差异。 1.2、POST 当我们在使用http协议的网站上提交表单时(比如网站上的用户登陆表单,填写好用户名和口令,然后点登陆,就把表单提交到服务器了),如果表单类型是POST(大多数表单类型都为POST,不过搜索引擎的搜索表单好像都是GET类型的),那么浏览器就会向代理服务器发送POST请求。比如在 http://www.williamlong.info/archives/2209.html 中进行评论,数据会提交到 http://www.williamlong.info/cmd.asp?act=cmt&key=a666b083 ,如果我们使用HTTP代理服务器,以下请求会发送到代理服务器: POST http://www.williamlong.info/cmd.asp?act=cmt&key=a666b083 HTTP/1.1 如果没有使用代理服务器,那么以下POST请求直接发送到 www.williamlong.info 服务器: POST /cmd.asp?act=cmt&key=a666b083 HTTP/1.1 使用代理服务器和没有使用代理服务器的返回结果也是基本一致的。所以POST请求在是否使用代理服务器的安全性上也是基本没有差异的。 1.3、CONNECT 当我们访问https协议的网站时,浏览器会向代理服务器发送CONNECT请求。比如我们访问 https://mail.google.com/mail/?shva=1#inbox 时,浏览器会向代理服务器发送以下请求: CONNECT mail.google.com:443 HTTP/1.0 之后服务器返回: HTTP/1.1 200 Connection established 然后浏览器开始向代理服务器发送加密的数据,使用的是 mail.google.com 的SSL证书。代理服务器把 mail.google.com 返回的加密数据原原本本的返回给浏览器。 如果没有使用代理服务器,那么浏览器直接连接 mail.google.com:443 ,然后开始发送和接收加密数据。 我们看到,使用了HTTP代理服务器之后,HTTPS协议传输的内容仍旧是端到端加密的,HTTPS仍旧保持了传输的内容不被任何负责传输数据的设备(包括代理服务器)看到的特性。是否使用代理服务器对HTTPS协议的安全性没有变化。 2、深入讨论 Q:我们看到,使用了代理服务器之后,都会把需要访问网站的域名(包括https的)发送给代理服务器,这样如果网络受到监视,就能知道我们在访问什么网站(但https协议监控不到传输的内容,只能知道我们访问了这个网站),这样是否降低了安全性? Q:有些代理服务器产品声称能够记录HTTPS传输的内容,是怎么做到的呢? Q:如果我们原先不能访问某个网站,使用了代理服务器可以放问这个网站了,这个网站是http协议的,这样访问这个网站所有的行为在受监控的网络环境内都会被记录吧? Q:使用了代理服务器后,网络数据包所经过的路和没有使用代理服务器时不同,对安全性有什么影响呢? 3、总结 综合上述,使用远程HTTP代理服务器的安全性和不使用代理服务器相比基本没有什么差别,我们面对的人为网络故障在使用了代理服务器后也有可能依然存在,也有可能减少甚至消失了。如果有人在国内提供解决了人为网络故障的代理服务器,给一些不会使用或无法使用加密代理软件的人用,结合《》和,那么全民代理的时代说不定会到来哦。 |