2345技术员联盟

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代理服務器的安全性和不使用代理服務器相比基本沒有什麽差別,我們面對的人為網絡故障在使用了代理服務器後也有

可能依然存在,也有可能減少甚至消失了。如果有人在國內提供解決了人為網絡故障的代理服務器,給一些不會使用或無法使用加密代理軟件的人用


本文来自电脑技术网www.it892.com),转载本文请注明来源.
本文链接:http://www.it892.com/content/ip/2018/0713/106634.html

无觅相关文章插件,快速提升流量