共享密鑰加密:
加密和解密用同一個密鑰的方式稱為共享密鑰加密,也交對稱密鑰加密。
以共享密鑰方式加密時必須將密鑰也發給對方,可究竟怎樣才能安全地轉交,在互聯網上轉發密鑰時,如果通信被監聽那么密鑰怎么保證不被監聽,存在一個悖論。
公開密鑰加密:
公開密鑰加密使用一對非對稱的密鑰,一把是私鑰,一把是公鑰。使用公開密鑰加密方式,發送密文方會使用對方的公開密鑰進行加密處理,對方收到被加密的信息后,再使用自己的私鑰進行解密。利用這種方式,不需要發送用來解密的私鑰,也不必擔心密鑰被攻擊者竊聽而盜走。
另外,要想根據密文和公開密鑰,恢復到信息原文是異常困難的,因為解密過程就是在對離散對數進行求值,這很難辦到(如果對非常大的整數做快速的因式分解,那可以破解)。
HTTPS采用混合加密機制
HTTPS采用共享密鑰加密和公開密鑰加密兩者並用的混合加密機制。若密鑰能夠采用實現安全交換,那么有可能會考慮僅使用公開密鑰加密來通信。但是公開密鑰加密與共享密鑰加密相比,其處理速度要慢。所以使用公開密鑰加密方式來交換密鑰,之后建立通信交換報文階段使用共享密鑰加密方式。
為了確保公開密鑰本身的完整性,需要第三方數字證書認證機構介入。
數字證書的認證過程如下:
1.服務器向機構提交公鑰申請,機構在判明申請者身份后,對公鑰進行數字簽名(即用自己的私鑰部署至公鑰)之后頒發公鑰證書。
2.數字證書認證機構的公開密鑰已事先植入到瀏覽器,客戶端拿到服務器的公鑰證書后,使用數字證書認證機構的公開密鑰,向數字證書認證機構驗證公鑰證書的數字簽名,以確認服務器的公開密鑰的正式性。
3.使用服務器的公開密鑰對報文加密后發送。
4.服務器用私鑰對報文解密。
EV SSL證書可證明服務器是否規范及服務器運營的企業是否真實存在(即是否適非法攻擊者搭建)
客戶端證書也可證明客戶端是否為默認通信方的客戶端(即是否非法攻擊者),但客戶端證書需要自行安裝(是個門檻),銀行的網銀系統就采用了客戶端證書。