web加密、解密學習筆記本

還記得第一次註冊taobao賬號後在網上購買付款的情景。在選購好商品後,點擊付款,瀏覽器會跳轉到以「https」開頭的網頁連接,而後輸入銀行卡的付款密碼完成商品的付款。那時只知道以https開頭的連接是一個通過加密後的安全連接,本身在此網頁中輸入的密碼是通過加密後以密文的方式進行傳輸的,因此密碼是沒法被窺視的。web

現在,對https這種安全連接所涉及到的計算知識和工做原理也有了必定的瞭解,但從未進行過系統的整理,現經過學習與記錄的的方式,好好梳理一下這方面的知識。算法

1、安全網絡的目標瀏覽器

1.1 數據的機密性安全

    機密性就是爲了防止數據被未受權的讀取。因此數據的發送方和接收方要以某種加密的機制來對數據進行加密處理,雙方傳輸的數據是被處理後的密文。服務器

1.2 數據的完整性網絡

    完整性是爲了防止數據被未受權的修改,或至少要有機制能檢測出數據被修改過。ide

1.3  數據的可用性函數

    可用性主要針對提供服務的一方,當服務器受到拒絕服務(dos)***時,使用得資源的可得到性下降或者根本沒法得到信息。學習

2、安全協議加密

2.1 SSL

    SSL(Secure SocketLayer)安全套接字層協議是web瀏覽器與服務器間安全交換數據的協議。有V1V2V3三個版本,V3版目前經常使用。

2.2 TLS

    TLS(Transport LayerSecurity)傳輸層安全協議。有V1版本,功能與SSL V3類似。

    在互聯網模型中SSL/TLS協議工做於應用層和TCP層間,應用層的數據再也不直接發往傳輸層,而是發送給SSL層,經過SSL加密後再進行下一步的處理。

wKioL1SYMfCCAJCoAALgVxgN9dQ145.jpg

3、加密方法

3.1 對稱加密(保證數據的機密性,也就是把明文轉換成不易讀取的密文)

    加密解密使用同一個密碼,也就是加密密鑰與解密的密鑰相同,獲得了加密密鑰也就獲得解密密鑰。主要用於保證數據的機密性。密鑰的安全性成爲此種加密的關鍵。

3.1.1 DESData Encryption Standard)數據加密標準,也稱爲數據加密算法,此種加密算法的原理是由循環移位思想而來。

3.1.2 3DES 三重DESDES的變體,這是DES的一種增強版,它增加了加密密鑰的長度,由DES56位增長到了168位。

3.1.3 AESAdvanced Encryption Standard)高級加密標準,也是一種高級加密算法

3.2 非對稱加密(非對稱加密算法用公鑰加密對稱密鑰,保證進行密鑰交換時密鑰的安全)

    非對稱加密系統中會涉及到一組密鑰對,一個公開的密鑰,叫公鑰(publickey;一個私有的,叫私鑰(privatekey。公鑰是一個可公開的,私鑰則是隱密性,不可被未受權用戶的訪問。公鑰是從私鑰中提取出來的,用私鑰加密的數據只能用與之配對的公鑰來解密,這實現了驗證身份的目的;用公鑰加密的數據只能用與之配對的私鑰來解密,這實現了數據的機密性。因非對稱加密基於數字函數實現,算法複雜,較於對稱加密,非對稱加密速度慢,不適合用於加密交換的大量數據,它主要的目的是用於交換對稱加密算法的密鑰,密鑰交換後雙方就可用密鑰以對稱加密方式交換數據,而此密鑰在傳輸到對方時是通過非對稱加密算法進行加密的,安全性獲得保障。

3.2.1 非對稱加密算法

RSA

DSA

DSS

ECC

3.3 單向加密(保證數據的完整性)

   單向加密只能是從明文加密成密文,並不能從密文解密成明文。

3.3.1 加密算法

MD5

SHA1SHA256SHA512SHA3

HMAC

3.3.2 單向加密特性

定長輸出:不管加密的數據有多大,加密後輸出都是一個定長的數據。

雪崩效應:即便原源數據發生細微的變化,加密後的輸出會發生巨大的變化。

    在實際的運用中,這三種加密方法每每不會單獨使用,通常都是結合起來實現數據的安全傳輸。數據在網絡中一次完整的數據通訊過程是怎樣的呢?簡單的描述以下:

發送方:

一、  發送方使用選定的單向加密算法計算源數據的特徵碼;

二、  發送方使用本身的私鑰加密此特徵碼,並把加密後的密文數據附加在源數據後面;

三、  發送方生成一次性對稱密鑰,並使用此密鑰加密數據(源數據+加密特徵碼後的密文數據)

四、  發送方使用接收方的公鑰加密一次性對稱密鑰,並附加於已加密的數據後面;

五、  數據已準備穩當,開始發送數據。

wKioL1TLGLiyNkvkAAElGpK2Ykk272.jpg


接收方:

一、  接收方使用與公鑰配對的私鑰解密數據,可獲得一次性對稱密鑰;

二、  用一次性對稱密鑰解密數據,可獲得源數據和加密特徵碼後的密文數據;

三、  用發送方的公鑰解密數據,獲得源數據和源數據的特徵碼;

四、  使用與發送方相同的單向加密算法從新計算源數據的特徵碼,並與解密出的特徵碼進行比較,若是特徵碼相同,那獲得的源數據可信,不然,源數據不可信。

PS:文字性的東西老是讓人很差記憶,現上傳用xmind作的筆記,見附件!

相關文章
相關標籤/搜索