開放、平等、協(xié)作、快速、分享
本篇文章純屬于想到哪寫到哪,所寫的內(nèi)容也不一定對,因為白天工作中剛好談到TLS協(xié)議,然后晚上查閱資料,牽涉出TCP/IP、PKI、CA、TLS/SSI等一系列知識點。本來已經(jīng)睡下了,還是決定半夜爬起來把自己的一些理解記錄下來,怕過一段時間后,把好不容易理解的地方又給遺忘了。
TLS/SSL
傳輸層安全(Transport Layer Security,TLS)是為網(wǎng)絡(luò)通信提供安全及數(shù)據(jù)完整性的一種安全協(xié)議。TLS與SSL在傳輸層對網(wǎng)絡(luò)連接進行加密。TLS/SSL位于應(yīng)用層和傳輸層之間,它可以為任何基于TCP等可靠連接的應(yīng)用層協(xié)議提供安全性保證(加密、身份驗證、完整性),如下圖1。
下圖2為客戶端和服務(wù)端的通信流程,為何服務(wù)器的證書不能被偽造,因為服務(wù)器的證書為光放證書機構(gòu)CA頒發(fā),其公鑰是公開的,以百度舉例,其公鑰是不是百度的,可通過CA公開的信息查詢到,這樣能確保公鑰是百度的無疑,然后通過百度的公鑰解密后如果和證書的摘要(哈希值)一致,則可以確定通信的對方就是百度的服務(wù)器,這樣就確保了身份驗證。
加密算法
1. 散列(Hash)
把任意大小的文檔變成一個 固定大?。∕D5是32個字符)的字符串,過程不可逆。MD5,SHA1等。
2. 對稱加密(Symmetric Cryptography)
使用同一個密鑰加密和解密,優(yōu)點是速度快,缺點是密鑰管理不方便,要求共享密鑰。 DES,AES等。
3. 非對稱加密(Asymmetric Cryptography)
使用公鑰和私鑰來加密和解密,優(yōu)點是密鑰管理很方便,缺點是速度慢。RSA,DSA等。
4. 數(shù)字簽名(Digital Signature)
使用散列和非對稱加密驗證文檔的真實性。先為要簽名的信息生成一個Hash字串,Hash1,然后用你的私鑰加密得到Encrypted(Hash1),這就是你對這個文檔的數(shù)字簽名。
當(dāng)別人需要驗證某個文檔是否是你簽名的時候,只需要用你的公鑰解密你的簽名得到Hash1,并和該文檔計算出來的Hash2對比,查看是否一致。如果一致則說明你確實對該文檔簽過名,否則就是沒有。
PKI
PKI:Public Key Infrastructure,公鑰基礎(chǔ)設(shè)施。
CA:Certificate Of Authority,認證中心。
完整的PKI/CA系統(tǒng)如下部分:
1. 安全服務(wù)器:安全服務(wù)器面向普通用戶,用于提供證書申請、瀏覽、證書撤銷列表、證書下載等安全服務(wù);用戶需要首先得到安全服務(wù)器的證書(該證書由CA頒發(fā));
2. 注冊機構(gòu)RA:在CA體系結(jié)構(gòu)中起承上啟下的作用,一方面向CA轉(zhuǎn)發(fā)安全服務(wù)器傳輸過來的證書申請請求,另一方面向LDAP服務(wù)器和安全服務(wù)器轉(zhuǎn)發(fā)CA頒發(fā)的數(shù)字證書和證書撤銷列表(CRL)。
3. LDAP服務(wù)器:Lightweight Directory Access
Protocol(輕量目錄訪問協(xié)議),提供目錄瀏覽服務(wù),負責(zé)將注冊機構(gòu)服務(wù)器RA傳輸過來的用戶信息以及數(shù)字證書加入到服務(wù)器上。用戶通過訪問LDAP服務(wù)器就能夠得到其他用戶的數(shù)字證書。
4. CA服務(wù)器:整個證書機構(gòu)的核心,負責(zé)證書的簽發(fā)。CA首先
產(chǎn)生自身的私鑰和公鑰,然后生成數(shù)字證書,并且將數(shù)字正常傳輸給安5. 5. 全服務(wù)器。CA還負責(zé)為安全服務(wù)器、RA服務(wù)器生成數(shù)字證書。
數(shù)據(jù)庫服務(wù)器:CA中的核心部分,用于CA中數(shù)據(jù)(如密鑰和用戶信息等)、日志、統(tǒng)計信息的存儲和管理。
CA證書頒發(fā)
數(shù)字簽名要發(fā)揮作用,首先需要接收方獲取發(fā)送方的公鑰。如何證明獲取的公鑰確實是發(fā)送方的公鑰而不是假冒的呢?數(shù)字證書提供了一種發(fā)布公鑰的簡便方法。
<證書的申請、發(fā)布、使用>
<數(shù)字證書的生成和驗證>
版權(quán)聲明:本文為CSDN博主「$從入門到放棄$」的原創(chuàng)文章,遵循CC 4.0 BY-SA版權(quán)協(xié)議,轉(zhuǎn)載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_41652912/java/article/details/89484332