1. 程式人生 > >網頁中的無間道1

網頁中的無間道1

比喻 兩層 所有 技術 ppi 非對稱 上層 算法 處理

在網絡中,經常會傳遞一些數據,如果不加處理明文傳遞,一但網絡被監控,數據將赤裸裸的展現在竊聽者面前。主要有以下三大風險

  1. 竊聽風險(eavesdropping):第三方可以獲知通信內容。
  2. 篡改風險(tampering):第三方可以修改通信內容。
  3. 冒充風險(pretending):第三方可以冒充他人身份參與通信。

總結需要做三件事

加密:是將數據資料加密,使得非法用戶即使取得加密過的資料,也無法獲取正確的資料內容,所以數據加密可以保護數據,防止監聽攻擊。其重點在於數據的安全性

身份認證:是用來判斷某個身份的真實性,確認身份後,系統才可以依不同的身份給予不同的權限。其重點在於用戶的真實性。

封裝大法:對應用層有需要透明處理數據,也能把工作留在下層,不給上層制造麻煩。

  所以網景公司站出來開發了ssl(Secure Socket Layer)安全協議,就是在傳輸層加密。在達到ftp,http等應用層已經解密。網景的技術只用於web,但後來被人認可,IEtF有將其發揚光大出現TLS(Transport Layer Security)

  達到效果

  1. 所有信息都是加密傳播,第三方無法竊聽。
  2. 具有校驗機制,一旦被篡改,通信雙方會立刻發現。
  3. 配備身份證書,防止身份被冒充。

具體操作: SSL協議可分為兩層:SSL記錄協議(SSL Record Protocol):它建立在可靠的傳輸協議(如TCP)之上,為高層協議提供數據封裝、壓縮、加密等基本功能的支持。 SSL握手協議(SSL Handshake Protocol):它建立在SSL記錄協議之上,用於在實際的數據傳輸開始前,通訊雙方進行身份認證、協商加密算法、交換加密密鑰等。

我理解的分為了三步,1.認證2.指定加密規則3加密解密。

首選1認證:要像完成認證將使用一偉大的加密技術,非對稱加密rsa。

RSA:RSA是一種非對稱加密的算法,所謂非對稱加密算法,就是用於加密解密的密鑰有兩個,即公鑰和私鑰,用公鑰加密過的數據,只有私鑰才能解密,用私鑰加密過的數據,只有公鑰才能解密。(對稱加密算法就是說用於加密解密的只有一個密鑰,密鑰既能加密數據,又能解密數據)
公鑰是可以公開的,別人知道也無所謂,私鑰則要存儲在安全的地方,不能泄漏。

我理解的rsa的兩個作用:

1.加密文件:流程可以理解為 誰都可以用公鑰加密文件發給我,但它用我的公鑰加密後,只有我用私鑰能解開。有個比喻不知道有沒有漏洞,公鑰可以比作鎖,私鑰是鑰匙,鑰匙只有我有,有無數把相同的鎖頭,鎖上就只有我能打開了。

2.認證:用私鑰加密一個東西,只要我發出的公鑰能解開,他們就知道這個是我了。

感想:其實公鑰私鑰都有上鎖功能,雖然不知道數學上的推導,但我理解公鑰私鑰只是兩個名字的定義,如果公鑰保留一份,私鑰隨處發是不是身份就調換了。

基於私鑰創建證書的認證過程: 即有人將其他的服務器的公鑰給了客戶端,使客戶端誤以為自己在跟正確的服務器進行交互。(攻擊者可以在代理服務器層攔截客戶端的請求,再重定向到自己的服務器)

  • 這時候我們需要一個權威的第三方機構(CA)確認這一個公鑰確實是真實的服務器的公鑰,服務器將自己的公鑰和一些私人信息發給CA,CA用自己的私鑰將這些數據加密之後就是數字證書(SSL證書)。
  • 當服務器向客戶端發送數據的時候,還附帶上從CA下載到本地的證書,客戶端拿到證書以後使用CA的公鑰進行解密,確認服務器的公鑰無誤。

基於公開密鑰的加密過程

  比如有兩個用戶Alice和Bob,Alice想把一段明文通過雙鑰加密的技術發送給Bob,Bob有一對公鑰和私鑰,那麽加密解密的過程如下:

  1. Bob將他的公開密鑰傳送給Alice。
  2. Alice用Bob的公開密鑰加密她的消息,然後傳送給Bob。
  3. Bob用他的私人密鑰解密Alice的消息。

如何確保你拿到的服務器公鑰確實是正確的服務器的公鑰呢? 即有人將其他的服務器的公鑰給了客戶端,使客戶端誤以為自己在跟正確的服務器進行交互。(攻擊者可以在代理服務器層攔截客戶端的請求,再重定向到自己的服務器)

  • 這時候我們需要一個權威的第三方機構(CA)確認這一個公鑰確實是真實的服務器的公鑰,服務器將自己的公鑰和一些私人信息發給CA,CA用自己的私鑰將這些數據加密之後就是數字證書(SSL證書)。
  • 當服務器向客戶端發送數據的時候,還附帶上從CA下載到本地的證書,客戶端拿到證書以後使用CA的公鑰進行解密,確認服務器的公鑰無誤。

回到ssl實際上ssl只用了,rsa的認證,和證書認證,並沒有使用rsa的加密,而且使用的一種約定的對稱性,下章在說。

網頁中的無間道1