圖1 數字簽名
用傳送發私鑰生成數字簽名、用傳送方公鑰解密,可以證明訊息確實是由公鑰擁有者發出的。
兩份摘要的比對結果,可以證明訊息在傳輸的過程中是否被改動。
數字簽名要發揮作用,首先需要接收方獲取傳送方的公鑰。如何證明獲取的公鑰確實是傳送方的公鑰而不是假冒的呢?數字證書提供了一種發布公鑰的簡便方法。
圖2 證書的申請、發布、使用
圖3 數字證書的生成與驗證
簡單地來說,把上面的原文換成公鑰、身份資訊、有效期等其他資訊,就是數字證書的生成和驗證過程。
使用ca私鑰進行簽名和解密,可以證明證書確實是由ca發布的;
兩份摘要的對比結果,可以證明證書內容是否在傳輸過程中被改動;
如果訊息原文中的公鑰和身份資訊是ca的,則是ca自簽名的過程。
數字證書提供了一種發布公鑰的簡便途徑,大家通過向ca申請認證發布自己的公鑰,通過向ca驗證來確認自己獲得了別人的公鑰。下圖展示了通訊雙方互相獲得公鑰以後的通訊過程。
圖4 通訊過程
非對稱加密安全性高,但計算量大效率低,因此使用對稱秘鑰對通訊的主要內容進行加密;對稱秘鑰每次使用隨機生成,用完即丟棄,降低風險;
用接收方公鑰加密對稱秘鑰,保證了只有接收方才能對密文進行解密;
用傳送發私鑰進行簽名,使得接收方可以驗證訊息的傳送方和訊息是否被修改過,保證了資訊的完整性和抗否認性。
完整的pki/ca系統如下部分:
序號產生器構ra:在ca體系結構中起承上啟下的作用,一方面向ca**安全伺服器傳輸過來的證書申請請求,另一方面向ldap伺服器和安全伺服器**ca頒發的數字證書和證書撤銷列表(crl)。
ldap伺服器:lightweight directory access protocol(輕量目錄訪問協議),提供目錄瀏覽服務,負責將序號產生器構伺服器ra傳輸過來的使用者資訊以及數字證書加入到伺服器上。使用者通過訪問ldap伺服器就能夠得到其他使用者的數字證書。
ca伺服器:整個證書機構的核心,負責證書的簽發。ca首先 產生自身的私鑰和公鑰,然後生成數字證書,並且將數字正常傳輸給安全伺服器。ca還負責為安全伺服器、ra伺服器生成數字證書。
資料庫伺服器:ca中的核心部分,用於ca中資料(如金鑰和使用者資訊等)、日誌、統計資訊的儲存和管理。
圖5 pki系統
JVM架構和工作原理及GC工作機制
學習j a,理解弄懂了jvm和gc,對於學習j a開發有很大幫助。借助前人之鑑博文,這裡主要講四個部分 jvm結構 記憶體分配 垃圾 演算法 垃圾收集器 jvm主要包括四個部分 1.類載入器 classloader 在jvm啟動時或者在類執行時將需要的class載入到jvm中。2.執行引擎 負責執行...
ansible架構原理及工作流程 linux技術
一 ansible介紹 ansible是一種自動化運維工具,基於paramiko模組開發,用於批量執行任務和發布工作,被廣泛用於日常運維工作當中.二 ansible架構架構圖 ansible核心模組介紹 core models ansible自帶的模組,file,shell,copy等custom ...
Dubbo 架構及工作原理 前置知識點
把 dubbo 放在本教程的原因是本框架是仿 dubbo 的架構來實現的,學習 dubbo 有助於我們在自己動手實現 rpc 框架的時候有更清晰的思路。dubbo 除了能夠應用在分布式系統中,也可以應用在現在比較火的微服務系統中。不過,由於 spring cloud 在微服務中應用更加廣泛,所以,我...