加密、數(shù)字簽名和數(shù)字證書
創(chuàng)新互聯(lián)公司2013年至今,先為秦安等服務(wù)建站,秦安等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為秦安企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。對稱加密算法中,加密和解密使用的是同一個(gè)秘鑰,所以秘鑰的保護(hù)是非常重要的,對稱加密和解密過程如下圖:
對稱算法加密過程
對稱算法解密過程
盡管對稱秘鑰能夠滿足對內(nèi)容的加密了,但是對稱算法還是存在以下兩個(gè)問題的。
1、秘鑰泄密風(fēng)險(xiǎn):務(wù)端與客戶端彼此之間必須約定將使用的密鑰,而這個(gè)約定的過程本身就可能存在泄密的風(fēng)險(xiǎn);
2、如果有100甚至更多的客戶端要向服務(wù)器發(fā)送文件。那么,服務(wù)器可能需要有100多次約定密鑰的過程。
由此可見,無論是安全性還是可用性上,對稱密鑰都是存在問題的。而兩個(gè)問題則是必須解決的。
非對稱算法加密和解密使用的是不同的秘鑰,加密算法有一對秘鑰,分別是公鑰和私鑰,公鑰是公開的,私鑰則是自己保管。
非對稱算法加密過程
非對稱算法解密過程
加密是指對某個(gè)內(nèi)容加密,加密后的內(nèi)容還可以通過解密進(jìn)行還原。 比如我們把一封郵件進(jìn)行加密,加密后的內(nèi)容在網(wǎng)絡(luò)上進(jìn)行傳輸,接收者在收到后,通過解密可以還原郵件的真實(shí)內(nèi)容。
簽名就是在信息的后面再加上一段內(nèi)容,可以證明信息沒有被修改過。簽名一般是對信息做一個(gè)hash計(jì)算得到一個(gè)hash值,注意,這個(gè)過程是不可逆的,也就是說無法通過hash值得出原來的信息內(nèi)容。在把信息發(fā)送出去時(shí),把這個(gè)hash值加密(使用非對稱算法的私鑰進(jìn)行加密)后做為一個(gè)簽名和信息一起發(fā)出去。接收方在收到信息后,會(huì)重新計(jì)算信息的hash值,并和信息所附帶的hash值(解密后)進(jìn)行對比,如果一致,就說明信息的內(nèi)容沒有被修改過,因?yàn)檫@里hash計(jì)算可以保證不同的內(nèi)容一定會(huì)得到不同的hash值,所以只要內(nèi)容一被修改,根據(jù)信息內(nèi)容計(jì)算的hash值就會(huì)變化。當(dāng)然,不懷好意的人也可以修改信息內(nèi)容的同時(shí)也修改hash值,從而讓它們可以相匹配,為了防止這種情況,hash值一般都會(huì)加密后(也就是簽名)再和信息一起發(fā)送,以保證這個(gè)hash值不被修改。
數(shù)字簽名解決了信息安全上面的不可抵賴性和不可篡改性問題。
基于非對稱密鑰算法,Bob生成了一對公私鑰。Bob將公鑰發(fā)布在公開的密鑰庫中。而Alice在向Bob發(fā)送加密文件或者驗(yàn)證Bob簽名的文件時(shí),均要從公鑰庫取到Bob的公鑰。我們已經(jīng)知道,一般來說公鑰就是一段固定長度的字符串,并沒有特定的含義。
為了讓Alice能夠方便的辨別公鑰,我們可以考慮對給公鑰附加一些信息,例如該公鑰使用的算法,該公鑰的所有者(主題),該公鑰的有效期等一系列屬性。這樣的數(shù)據(jù)結(jié)構(gòu)我們稱作PKCS10數(shù)據(jù)包
公鑰的主題我們采用唯一標(biāo)示符(或稱DN-distinguished name),以盡量唯一的標(biāo)示公鑰所有者。以下是基于抽象語法表示法所定義的PKCS10數(shù)據(jù)結(jié)構(gòu):
我們已經(jīng)有了PKCS10數(shù)據(jù)包,除了公鑰信息外,還有公鑰的持有者,公鑰的版本號(hào)等信息。然而這樣的數(shù)據(jù)結(jié)構(gòu)其實(shí)并沒有任何權(quán)威性。例如有一天一個(gè)叫做Richard的人想冒充Bob,也生成一對公私鑰,并且使用了相同的公鑰主題封裝為P10數(shù)據(jù)結(jié)構(gòu)。Alice其實(shí)并沒有辦法分辨哪個(gè)是真實(shí)Bob的公鑰。
為了解決這個(gè)問題,就需要一個(gè)權(quán)威的第三方機(jī)構(gòu),對P10結(jié)構(gòu)的數(shù)據(jù)進(jìn)行認(rèn)證。就如同對P10文件蓋上一個(gè)權(quán)威的章,防止仿照。這樣的權(quán)威機(jī)構(gòu),我們稱作CA(Certificate Authority)數(shù)字證書認(rèn)證中心。而CA如何為P10數(shù)據(jù)蓋章呢?非常簡單,就是我們前文已經(jīng)提到的數(shù)字簽名技術(shù):
① 如上圖所示,CA機(jī)構(gòu)其實(shí)也持有一張私鑰。一般來說,CA會(huì)對這份私鑰進(jìn)行特別的保護(hù),嚴(yán)禁泄漏和盜用。
② Bob將自己的公鑰附加上一系列信息后,形成了P10數(shù)據(jù)包(請求包),并發(fā)送給CA。
③ CA機(jī)構(gòu)通過其他一些手段,例如查看Bob的身份信息等方式,認(rèn)可了Bob的身份。于是使用自己的私鑰對P10請求進(jìn)行簽名。(也可能會(huì)先對數(shù)據(jù)進(jìn)行一些簡單修改,如修改有效期或主題等)
④ 這樣的簽名結(jié)果,我們就稱作數(shù)字證書。
數(shù)字證書同樣遵循一個(gè)格式標(biāo)準(zhǔn),我們稱作X509標(biāo)準(zhǔn),我們一般提到的X509證書就是如此。
基于數(shù)字證書,我們可以再來看看如何給發(fā)送一份不可否認(rèn)、不可篡改的文件:
第一步:Bob除了對文件進(jìn)行簽名操作外,同時(shí)附加了自己的數(shù)字證書。一同發(fā)給Alice。
第二步:Alice首先使用CA的公鑰,對證書進(jìn)行驗(yàn)證。如果驗(yàn)證成功,提取證書中的公鑰,對Bob發(fā)來的文件進(jìn)行驗(yàn)簽。如果驗(yàn)證成功,則證明文件的不可否認(rèn)和不可篡改。
可以看到,基于數(shù)字證書后,Alice不在需要一個(gè)公鑰庫維護(hù)Bob(或其他人)的公鑰證書,只要持有CA的公鑰即可。數(shù)字證書在電子商務(wù),電子認(rèn)證等方面使用非常廣泛,就如同計(jì)算機(jī)世界的×××,可以證明企業(yè)、個(gè)人、網(wǎng)站等實(shí)體的身份。同時(shí)基于數(shù)字證書,加密算法的技術(shù)也可以支持一些安全交互協(xié)議(如SSL)。
參考:https://yq.aliyun.com/articles/54155
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。