先理清HTTPS的流程:
消息認證:第五步 --> 第六步過程中怔软,對加密后的YY做單向散列函數(shù)操作(準確的說是做了消息認證垦细,本質(zhì)上其實也是單向散列函數(shù)),因為密鑰只有客戶端和服務(wù)器知道挡逼,這就保證了數(shù)據(jù)的完整性括改,簡單的單向散列函數(shù)只能做判斷數(shù)據(jù)信息被篡改沒有,但是無法判斷客戶端是否發(fā)了消息家坎,還是是別人偽裝發(fā)的消息嘱能,要識別對方是否是偽裝的,只有通過雙方共有的密鑰來確定乘盖。對方有了我們約定的密鑰藐唠,說明是真身山析,不是偽裝的,這樣就保證的信息數(shù)據(jù)的完整性晨另。
對稱加密:用隨機數(shù)1兜叨,2穿扳,3組成的密鑰,對數(shù)據(jù)進行加密国旷,和解密操作
單向散列函數(shù):在生成偽隨機數(shù)時矛物,可以用單向散列函數(shù)生成隨機數(shù)。
公鑰加密:對隨機數(shù)3跪但,用公鑰進行加密履羞,用自己私鑰解密
數(shù)字簽名:驗證服務(wù)器證書時用到,由于消息認證只能驗證對方是否是偽裝的屡久,單向散列函數(shù)只能驗證消息是否被篡改過忆首,但二者都無法防止否認。舉例說明:
A缺錢被环,找B借錢糙及,B通過銀行借給了A100萬,然后A寫借條給B筛欢,AB隔得太遠浸锨,A準備用電子郵件寫借條,“B版姑,A欠B100萬 ”柱搜。但是這個郵件可能被篡改(單向散列函數(shù)可以避免),這個郵件可能被人偽造(攻擊人偽造A發(fā)的郵件剥险,也可以通過消息認證來避免)聪蘸,但是沒辦法避免A的否認,因為共享密碼B也知道,可能B偽造A發(fā)的郵件宇姚,或者B把密碼告訴第三方匈庭,第三方偽造A發(fā)的郵件,這時消息認證就有局限性了浑劳。所以就產(chǎn)生了數(shù)字簽名阱持,數(shù)字簽名就是公鑰加密反著用。
所以在驗證服務(wù)器證書時魔熏,為了確保服務(wù)器真干了這件事衷咽,不可否認,就做了數(shù)字簽名校驗蒜绽。