一 共享秘鑰
1.1 概念
共享秘鑰和我們生活中同一把鎖的鑰匙概念類似,對同一把鎖來說,加鎖時使用什么鑰匙,解鎖也必須使用同樣的鑰匙。
1.2 共享秘鑰在HTTP傳輸中的缺點
以共享密鑰方式加密時必須將密鑰也發給對方。在互聯網上轉發密鑰時,如果通信被監聽,那么密鑰就可會落入攻擊者之手,同時也就失去了加密的意義。另外還得設法安全地保管接收到的密鑰。
二 SSL(Secure Socket Layer)公開秘鑰加密
2.1 概念
公開密鑰加密使用一對非對稱的密鑰。一把叫做私有密鑰(private key),另一把叫做公開密鑰(public key)。顧名思義,私有密鑰不能讓其他任何人知道,而公開密鑰則可以隨意發布,任何人都可以獲得。
發送密文的一方使用對方的公開密鑰進行加密處理,對方收到被加密的信息后,再使用自己的私有密鑰進行解密。利用這種方式,不需要發送用來解密的私有密鑰,也不必擔心密鑰被攻擊者竊聽而盜走。
另外,要想根據密文和公開密鑰,恢復到信息原文是異常困難。
三 HTTPS的加密機制—混合秘鑰(公開秘鑰加密技術和共享秘鑰加密技術結合)
3.1 原因
HTTPS 采用共享密鑰加密和公開密鑰加密兩者並用的混合加密機制。公開密鑰加密很安全。但是公開密鑰加密與共享密鑰加密相比,其處理速度要慢。
所以應充分利用共享密鑰加密和公開密鑰加密各自的優勢,將共享密鑰加密和公開密鑰加密組合起來用於通信。在交換密鑰環節使用公開密鑰加密方式,之后的建立通信交換報文階段則使用共享密鑰加密方式。
四 公鑰加密的問題
無法證明公開密鑰本身就是貨真價實的公開密鑰。比如,正准備和某台服務器建立公開密鑰加密方式下的通信時,無法證明收到的公開密鑰就是原本服務器發行的公開密鑰。或許在公開密鑰傳輸途中,真正的公開密鑰已經被攻擊者替換掉了。
解決辦法:
1.公鑰與私鑰原理
1)鮑勃有兩把鑰匙,一把是公鑰,另一把是私鑰
2)鮑勃把公鑰送給他的朋友們----帕蒂、道格、蘇珊----每人一把。
3)蘇珊要給鮑勃寫一封保密的信。她寫完后用鮑勃的公鑰加密,就可以達到保密的效果。
4)鮑勃收信后,用私鑰解密,就看到了信件內容。這里要強調的是,只要鮑勃的私鑰不泄露,這封信就是安全的,即使落在別人手里,也無法解密。
5)鮑勃給蘇珊回信,決定采用"數字簽名"。他寫完后先用Hash函數,生成信件的摘要(digest)。
6)然后,鮑勃使用私鑰,對這個摘要加密,生成"數字簽名"(signature)。
7)鮑勃將這個簽名,附在信件下面,一起發給蘇珊。
8)蘇珊收信后,取下數字簽名,用鮑勃的公鑰解密,得到信件的摘要。由此證明,這封信確實是鮑勃發出的。
9)蘇珊再對信件本身使用Hash函數,將得到的結果,與上一步得到的摘要進行對比。如果兩者一致,就證明這封信未被修改過。
10)復雜的情況出現了。道格想欺騙蘇珊,他偷偷使用了蘇珊的電腦,用自己的公鑰換走了鮑勃的公鑰。此時,蘇珊實際擁有的是道格的公鑰,但是還以為這是鮑勃的公鑰。因此,道格就可以冒充鮑勃,用自己的私鑰做成"數字簽名",寫信給蘇珊,讓蘇珊用假的鮑勃公鑰進行解密。
11)后來,蘇珊感覺不對勁,發現自己無法確定公鑰是否真的屬於鮑勃。她想到了一個辦法,要求鮑勃去找"證書中心"(certificate authority,簡稱CA),為公鑰做認證。證書中心用自己的私鑰,對鮑勃的公鑰和一些相關信息一起加密,生成"數字證書"(Digital Certificate)。
12)鮑勃拿到數字證書以后,就可以放心了。以后再給蘇珊寫信,只要在簽名的同時,再附上數字證書就行了。
13)蘇珊收信后,用CA的公鑰解開數字證書,就可以拿到鮑勃真實的公鑰了,然后就能證明"數字簽名"是否真的是鮑勃簽的。
五 證書的基本原理
1 首先,客戶端向服務器發出加密請求
2 服務器將自己的證書發送給請求的客戶端,這個證書中包含服務器的公鑰,而這個證書本身被頒發證書的可信機構的私鑰加密。並且可信機構的公鑰一般會存儲於請求的客戶端電腦上。
3 請求的客戶端利用存儲於本電腦上的可信機構的公鑰,來驗證該證書是否正確,這樣就驗證了服務器身份,同時得到了服務器的公鑰
4 客戶端利用服務器的公鑰加密共享秘鑰,服務器收到客戶端的共享秘鑰后,二者就可以通過共享秘鑰完成接下來的加密通信
二、HTTPS的三次握手如何實現
1、首先客戶端向服務端發起請求(TCP三次握手)
2、服務端將ca證書返還給客戶端,包括公匙,頒發機構,有效期等。。。(認證機構的公匙是提前內置在瀏覽器中的)
3、客戶端通過內置的機構公匙去驗證CA證書的合法性。
4、生成隨機的對稱密匙。
5、客戶端將生成的隨機密匙通過證書的公匙加密,然后發送給服務器。
6、雙方通過客戶端生成的隨機密匙進行http通信。
參考:https://www.cnblogs.com/shijingjing07/p/5965792.html
參考:http://www.youdzone.com/signature.html
參考: https://blog.csdn.net/u013241673/article/details/79582872
本文內容來自網上,自己做了整理,希望能對大家有幫助