在瞭解SSL加密的方式之前我們先了解一下近代加密的方式,
近代的加密方法中加密的方法是公共的,而金鑰卻是保密的,通過這種方式得以保持加密方法的安全性。
加密和解密都會用到金鑰,沒有金鑰就沒法進行加密和解密,反過來說,任何人只要持有金鑰就能解密了。如果金鑰被攻擊者獲取,那麼加密就失去了意義。
而SSL採用一種叫做公開金鑰加密(Public-Key cryptography)的加密處理方式
1、 共享金鑰加密的困境
加密和解密同用一個金鑰的方式稱為共享金鑰加密,也被叫做對稱加密。
已共享加密的方式加密時必須將鑰匙也發給對方,可究竟怎麼樣才能安全地轉交,在網際網路上轉發金鑰時,如果通訊被監聽那麼金鑰就可會落入攻擊者之手,同時就失去了加密的意義。另外還得設法安全地保管接收到的金鑰。
2 使用兩把金鑰的公開金鑰機密
公開金鑰加密方式很好地解決了共享密碼加密的困難。
公開金鑰加密使用一對非對稱的金鑰。一把叫做私有金鑰(private key),另一把叫做public key 。顧名思義,私有金鑰不能讓任何人知道,而公有金鑰則可以隨意釋出 ,任何人都可以獲得。
使用公有鑰匙加密方式,傳送密文的一方使用對方的公有金鑰進行加密處理,對方收到被加密的資訊後,在使用自己私有的鑰匙進行解密,這種方式,不需要傳送用來解密的私鑰,也不必擔心金鑰被攻擊者竊聽而盜走。
另外,要想根據密文和公開金鑰,恢復到資訊原文是異常困難的,因為解密加密工程就是對離散對數進行求值,這並非輕而易舉的就能辦到的,退一步講,如果能對一個非常大的整數做到快速地因式分解,那麼金鑰破解還是存在希望的。但是目前的技術來看是不太現實的。
3 HTTPS採用混合加密
https採用共享金鑰機密和公開金鑰加密兩者並用的混合加密機制,若金鑰能夠實現安全的交換,那麼有可能會考慮僅適用公開金鑰加密通訊。但是公開金鑰加密與共享金鑰加密相比,其處理速度要慢。
所以充分利用兩者的優勢,將方法組合起來用來通訊,在交換密碼環節使用公開金鑰加密方式,之後建立通訊交換報文階段則使用共享金鑰方式。
但是這樣的也有些問題,就是公鑰也有可能被攔截替換,又興趣的話可以看看證明公開金鑰正確性的證書這篇文章
總結這篇文章有些抽象閱讀數可以畫畫圖,就能很好理解了