SSL介紹:html
安全套接字(Secure Socket Layer,SSL)協議是Web瀏覽器與Web服務器之間安全交換信息的協議,提供兩個基本的安全服務:鑑別與保密。web
SSL是Netscape於1994年開發的,後來成爲了世界上最著名的web安全機制,全部主要的瀏覽器都支持SSL協議算法
目前有三個版本:2、3、3.1,最經常使用的是第3版,是1995年發佈的。瀏覽器
SSL協議的三個特性安全
① 保密:在握手協議中定義了會話密鑰後,全部的消息都被加密。服務器
② 鑑別:可選的客戶端認證,和強制的服務器端認證。加密
③ 完整性:傳送的消息包括消息完整性檢查(使用MAC)。spa
SSL的位置.net
SSL介於應用層和TCP層之間。應用層數據再也不直接傳遞給傳輸層,而是傳遞給SSL層,SSL層對從應用層收到的數據進行加密,並增長本身的SSL頭。htm
SSL的工做原理
握手協議(Handshake protocol)
記錄協議(Record protocol)
警報協議(Alert protocol)
參看文檔 :http://blog.csdn.net/u012643122/article/details/44025947 http://www.ruanyifeng.com/blog/2014/09/illustration-ssl.html
DH (Diffie–Hellman 密鑰交換協議)
概要: Diffie-Hellman算法是Whitefield Diffie和Martin Hellman在1976年公佈的一種祕鑰交換算法,它是一種創建祕鑰的方法,而不是加密方法 !
原理:Diffie-Hellman密鑰交換算法的有效性依賴於計算離散對數的難度
這種算法的關鍵是在這個式中
b=ai mod p, 0<=i<=p-1 (mod: 取餘, 即ai / p 的餘數)
若是知道a, i, p能夠很方便的算出b的值,可是知道b, a, p的狀況下想要算出i的值卻很是難。
舉例,如下是DH協議的方案:
離散對數: y = gx modp
1. Alice和Bob先對p 和g達成一致,並且公開出來。Eve(攻擊者)也就知道它們的值了。
2. Alice取一個私密的整數a,不讓任何人知道,發給Bob 計算結果:A=ga modp. Eve 也看到了A的值。
3. 相似,Bob 取一私密的整數b,發給Alice計算結果B=gb mod p.一樣Eve也會看見傳遞的B是什麼。
4. Alice 計算出S=B a mod p=(gb)a modp=gabmod p.
5. Bob 也能計算出S=Ab mod p=(ga)bmodp=gabmod p.
6. Alice 和 Bob 如今就擁有了一個共用的密鑰S.
7. 雖然Eve看見了p,g, A and B, 可是鑑於計算離散對數的困難性,她沒法知道a和b 的具體值。因此Eve就無從知曉密鑰S 是什麼了。
PS: 我相信不久的未來,隨着量子計算機的發展,破解這種加密方式將再也不是問題,任何一種依靠計算複雜度來保證數據安全性的加密方式都將會被淘汰,應運而生的將是更加先進可靠的加密方式。
請參考