您好,登錄后才能下訂單哦!
加密、數字簽名和數字證書
對稱加密算法中,加密和解密使用的是同一個秘鑰,所以秘鑰的保護是非常重要的,對稱加密和解密過程如下圖:
對稱算法加密過程
對稱算法解密過程
盡管對稱秘鑰能夠滿足對內容的加密了,但是對稱算法還是存在以下兩個問題的。
1、秘鑰泄密風險:務端與客戶端彼此之間必須約定將使用的密鑰,而這個約定的過程本身就可能存在泄密的風險;
2、如果有100甚至更多的客戶端要向服務器發送文件。那么,服務器可能需要有100多次約定密鑰的過程。
由此可見,無論是安全性還是可用性上,對稱密鑰都是存在問題的。而兩個問題則是必須解決的。
非對稱算法加密和解密使用的是不同的秘鑰,加密算法有一對秘鑰,分別是公鑰和私鑰,公鑰是公開的,私鑰則是自己保管。
非對稱算法加密過程
非對稱算法解密過程
加密是指對某個內容加密,加密后的內容還可以通過解密進行還原。 比如我們把一封郵件進行加密,加密后的內容在網絡上進行傳輸,接收者在收到后,通過解密可以還原郵件的真實內容。
簽名就是在信息的后面再加上一段內容,可以證明信息沒有被修改過。簽名一般是對信息做一個hash計算得到一個hash值,注意,這個過程是不可逆的,也就是說無法通過hash值得出原來的信息內容。在把信息發送出去時,把這個hash值加密(使用非對稱算法的私鑰進行加密)后做為一個簽名和信息一起發出去。接收方在收到信息后,會重新計算信息的hash值,并和信息所附帶的hash值(解密后)進行對比,如果一致,就說明信息的內容沒有被修改過,因為這里hash計算可以保證不同的內容一定會得到不同的hash值,所以只要內容一被修改,根據信息內容計算的hash值就會變化。當然,不懷好意的人也可以修改信息內容的同時也修改hash值,從而讓它們可以相匹配,為了防止這種情況,hash值一般都會加密后(也就是簽名)再和信息一起發送,以保證這個hash值不被修改。
數字簽名解決了信息安全上面的不可抵賴性和不可篡改性問題。
基于非對稱密鑰算法,Bob生成了一對公私鑰。Bob將公鑰發布在公開的密鑰庫中。而Alice在向Bob發送加密文件或者驗證Bob簽名的文件時,均要從公鑰庫取到Bob的公鑰。我們已經知道,一般來說公鑰就是一段固定長度的字符串,并沒有特定的含義。
為了讓Alice能夠方便的辨別公鑰,我們可以考慮對給公鑰附加一些信息,例如該公鑰使用的算法,該公鑰的所有者(主題),該公鑰的有效期等一系列屬性。這樣的數據結構我們稱作PKCS10數據包
公鑰的主題我們采用唯一標示符(或稱DN-distinguished name),以盡量唯一的標示公鑰所有者。以下是基于抽象語法表示法所定義的PKCS10數據結構:
我們已經有了PKCS10數據包,除了公鑰信息外,還有公鑰的持有者,公鑰的版本號等信息。然而這樣的數據結構其實并沒有任何權威性。例如有一天一個叫做Richard的人想冒充Bob,也生成一對公私鑰,并且使用了相同的公鑰主題封裝為P10數據結構。Alice其實并沒有辦法分辨哪個是真實Bob的公鑰。
為了解決這個問題,就需要一個權威的第三方機構,對P10結構的數據進行認證。就如同對P10文件蓋上一個權威的章,防止仿照。這樣的權威機構,我們稱作CA(Certificate Authority)數字證書認證中心。而CA如何為P10數據蓋章呢?非常簡單,就是我們前文已經提到的數字簽名技術:
① 如上圖所示,CA機構其實也持有一張私鑰。一般來說,CA會對這份私鑰進行特別的保護,嚴禁泄漏和盜用。
② Bob將自己的公鑰附加上一系列信息后,形成了P10數據包(請求包),并發送給CA。
③ CA機構通過其他一些手段,例如查看Bob的身份信息等方式,認可了Bob的身份。于是使用自己的私鑰對P10請求進行簽名。(也可能會先對數據進行一些簡單修改,如修改有效期或主題等)
④ 這樣的簽名結果,我們就稱作數字證書。
數字證書同樣遵循一個格式標準,我們稱作X509標準,我們一般提到的X509證書就是如此。
基于數字證書,我們可以再來看看Bob如何給Alice發送一份不可否認、不可篡改的文件:
第一步:Bob除了對文件進行簽名操作外,同時附加了自己的數字證書。一同發給Alice。
第二步:Alice首先使用CA的公鑰,對證書進行驗證。如果驗證成功,提取證書中的公鑰,對Bob發來的文件進行驗簽。如果驗證成功,則證明文件的不可否認和不可篡改。
可以看到,基于數字證書后,Alice不在需要一個公鑰庫維護Bob(或其他人)的公鑰證書,只要持有CA的公鑰即可。數字證書在電子商務,電子認證等方面使用非常廣泛,就如同計算機世界的×××,可以證明企業、個人、網站等實體的身份。同時基于數字證書,加密算法的技術也可以支持一些安全交互協議(如SSL)。
參考:https://yq.aliyun.com/articles/54155
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。