数字签名,数字证书,证书链原理
來源:數字簽名,數字證書,證書鏈原理(圖文詳解)_Ruby丶彬的博客-CSDN博客_證書鏈驗證原理
數字簽名,數字證書,加密簡述
數字簽名:談及數字簽名,就如小時候老師叫把卷子或者作業帶回去給家長簽字。只不過數字簽名非物理用筆簽名,是通過計算機電子簽名,這過程就涉及身份認證和信息加密。
例如:卷子的成績考個0分等信息是不希望被其他人知道的就需要加密(信息加密);家長對卷子簽字,需要對卷子作實名認證,證實確實是自己孩子而非他人的卷子(身份認證)。
數字證書:數字證書是用來認證公鑰持有者身份合法性的電子文檔,以防止第三方冒充行為。由CA證書授權中心頒發。
加密:顧名思義,就是對數據通過一些算法進行數據加密
對稱加密算法: 加密和解密的密鑰使用的是同一個,如DES,3DES,AES
非對稱加密算法: 與對稱加密算法不同,非對稱加密算法需要兩個密鑰:公開密鑰和私有密鑰。A對B通信,A對數據用A的私鑰加密,B就可以用A的公鑰進行解密得到原數據。如RSA,DSA,ECC
業務場景:簽合同,以前簽合同都是紙質的合同,然后用筆簽。這種方式需要線下面對面簽署,實在不方便,因此數字簽名的優勢就逐漸體現出來。
數字簽名原理
A對B數字簽名通信流程
1.A先用Hash函數,對通信data生成通信data的摘要(digest)
2.A使用A的私鑰,對這個摘要加密,生成數字簽名(signature)。
3.A把signature附在通信data上
4.A把signature附在通信data的數據發給B
5.B用A的公鑰對signature解密,解密成功則證明data是由A發出的(身份驗證)
6.B對通信data采用同樣的hash算法,若生成的digest與原digest相同,則證明通信data未被篡改(信息加密防篡改)
數字證書原理
上述第五步:5.B用A的公鑰對signature解密,解密成功則證明data是由A發出的(身份驗證)。那么
如何證明B手上的A的公鑰,是真的A的公鑰呢?若是其他人匿名頂替的A的公鑰,此時就有安全問題,那么解決這個問題就有了數字證書。A向CA證書中心對A的公鑰進行認證。
1.A向CA申請證書,CA證書中心用CA的私鑰給A的信息,A的公鑰,證書信息加密生成數字證書
2.A將數字證書與signature同時附在Data上發送B
3.B用CA公鑰解密數字證書拿到A的公鑰(解密成功則此公鑰為A的)
4.B用解密后的A的公鑰解密簽名signature,生成原digest信息摘要。(解密成功則此信息是A發出的)
5.B對通信data采用同樣的hash算法,若生成的digest與原digest相同,則證明通信data未被篡改(信息加密防篡改)
證書鏈
證書鏈:顧名思義,就是一系列的證書信任鏈條。上述通過數字證書證實A的公鑰確實是A的,那么如何證實這個數字證書是否可信呢?或者說頒發這個證書的權威機構是否可信呢?
證書有3類:
end-user :最下層的簽發人。包含用來加密傳輸數據的公鑰的證書,訪問者通過此公鑰加密傳輸數據
intermediates:次等級的簽發人。CA用來認證公鑰持有者身份的證書,確認end-user證書是屬于某個權威機構的證書。
root:最高級別的簽發人,負責認證intermediates證書是合法證書的證書。此類是無條件信任的。
證書鏈指的是通過層級結構最終保證end-user證書中的公鑰未被篡改。root認證intermediates,intermediates認證end-user。
?
總結
以上是生活随笔為你收集整理的数字签名,数字证书,证书链原理的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Extract Subclass(提炼子
- 下一篇: 测试替身之类型