HTTP代理服务器的原理分析与安全问答
- 来源:未知 原创
- 时间:2018-07-13
- 阅读: 次
- 本文标签:
由於各種原因,在國內上網,免不了要和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
……
<html>
……
我們來和沒有使用代理服務器的情況對比一下,如果沒有使用代理服務器,那麽我們訪問 http://www.microsoft.com/ ,瀏覽器就會向
www.microsoft.com 這臺服務器發送以下請求:
GET / HTTP/1.1
……
服務器返回:
HTTP/1.1 200 OK
……
<html>
……
我們看到,使用代理服務器之後,GET請求和返回的格式基本沒有變化,是否使用代理服務器的安全性上基本沒有差異。
1.2、POST
當我們在使用http協議的網站上提交表單時(比如網站上的用戶登陸表單,填寫好用戶名和口令,然後點登陸,就把表單提交到服務器了),如
果表單類型是POST(大多數表單類型都為POST,不過搜索引擎的搜索表單好像都是GET類型的),那麽瀏覽器就會向代理服務器發送POST請求。比如
在 http://www.veryhuo.com/archives/2209.html 中進行評論,數據會提交到 http://www.veryhuo.com/cmd.asp?act=cmt&key=a666b083 ,如
果我們使用HTTP代理服務器,以下請求會發送到代理服務器:
POST http://www.veryhuo.com/cmd.asp?act=cmt&key=a666b083 HTTP/1.1
……
[提交的評論數據]
如果沒有使用代理服務器,那麽以下POST請求直接發送到 www.veryhuo.com 服務器:
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協議監控不到傳輸的內容,只能知道我們訪問了這個網站),這樣是否降低了安全性?
A:如果我們的網絡受到監視,所有的網絡數據包都被記錄,那麽如果不用代理服務器,瀏覽器也會首先去發送查詢域名所對應的IP的DNS請求,
還會在得到IP後發送TCP連接請求到需要訪問的網站,通過網絡數據包監視一樣可以知道我們在訪問什麽網站。
Q:有些代理服務器產品聲稱能夠記錄HTTPS傳輸的內容,是怎麽做到的呢?
A:使用了SSL劫持的手段。這些代理服務器產品無一例外需要安裝對應的客戶端,一旦安裝了這些客戶端,就能控制客戶端電腦,進而安裝代理
服務器自己的證書,進行SSL劫持。有些產品不需安裝客戶端,但客戶端瀏覽器訪問所有的HTTPS網站時都通不過瀏覽器的SSL證書驗證,瀏覽器都會
給出證書無效的警告。
Q:如果我們原先不能訪問某個網站,使用了代理服務器可以放問這個網站了,這個網站是http協議的,這樣訪問這個網站所有的行為在受監控
的網絡環境內都會被記錄吧?
A:是的。因為代理服務器不改變HTTP協議的安全性,所以所有明文傳輸的內容都能被監控系統記錄下來。所以,我們使用代理服務器提交重要
信息(比如用戶名和口令)時,都要選擇HTTPS協議,在輸入用戶名和口令時需要註意瀏覽器的地址欄是不是以https開頭的。
Q:使用了代理服務器後,網絡數據包所經過的路和沒有使用代理服務器時不同,對安全性有什麽影響呢?
A:這要取決於使用了代理服務器前後中所經過的路中的每一個節點了。即使不使用代理服務器,國內上網仍舊會面臨各種人為網絡故障,使用代
理服務器後因為經過的路不同,所以有可能還是需要面對這些人為網絡故障,也有可能不需要面對這些人為網絡故障了(如果代理服務器本身特意解
決了這些故障)。
3、總結
綜合上述,使用遠程HTTP代理服務器的安全性和不使用代理服務器相比基本沒有什麽差別,我們面對的人為網絡故障在使用了代理服務器後也有
可能依然存在,也有可能減少甚至消失了。如果有人在國內提供解決了人為網絡故障的代理服務器,給一些不會使用或無法使用加密代理軟件的人用
相关文章
本文链接:http://www.it892.com/content/ip/2018/0713/106634.html