什麼是數字證書

2021-09-10 19:43:32 字數 1950 閱讀 5204

打個比方,有兩個小朋友在網上相互發訊息,名字分別是小明和小紅,小明想要給小紅發個訊息,但是呢,又擔心發的訊息被別人修改,就像信件被郵局修改那樣。所以呢,小明想了個辦法。給資料「簽個名」,然後小紅同學呢,就驗證這個資料的簽名是不是小明同學的,如果是,那麼資料沒有被修改。那怎麼簽名呢?

這種蓋章的好處是什麼呢?很簡單,因為如果要改變內容的話,就一定會改變蓋的章,所以,小紅就可以輕易地檢測出信件是否被修改過。好,這是現實情況。在資料的世界裡怎麼辦呢?怎麼給資料「蓋章簽名」呢?

要給資料蓋章,我們就得搞懂兩個問題:

資料世界裡,什麼是「章」

資料的重要內容是什麼

這部分可能得扯很久,為了簡單起見,只簡單的說一下。在數字的世界裡,有一門學科叫密碼學,密碼學中又有乙個領域就非對稱加密,非對稱加密有兩個金鑰,乙個叫私鑰,乙個叫公鑰。這兩個金鑰都可以用於給資料加解密:

如果是私鑰加的密,那麼就用公鑰解密

如果是公鑰加的密,那麼就用私鑰解密

都可以加解密的話,公鑰私鑰有什麼區別,就一點:私鑰可以推斷出公鑰,但反過來不行。所以,只要我們手裡的私鑰不給任何人,只有自己知道的前提下,我們就可以用私鑰給資料加密,然後把公鑰給別人,讓他用公鑰解密。如果公鑰無法解密,說明私鑰不是我的。所以,公鑰體系能達到「章」的作用。

這就簡單了,就是資料的雜湊值(這裡較為簡單,就一筆帶過了,如果有不懂的同學,可以google下)。

懂了公私鑰的話,簽名的概念就容易理解了。簽名就是用私鑰將資料的雜湊值加密,然後接收方用公鑰解密出雜湊值,然後接收方再計算一次資料的雜湊進行對比,不同,則資料被篡改。

回到例子本身,過程如下:

小明準備一套私鑰和公鑰

將公鑰發給小紅

編寫一條訊息

計算訊息的雜湊值

用私鑰對上面計算出的雜湊值加密,將簽名附在訊息的後面

將訊息發給小紅

小紅接收到訊息

解析出簽名

用公鑰解密簽名獲得雜湊

自己計算一次資料雜湊

對比雜湊值

得出結果

以上就是資料簽名的原理和用途。那到底什麼是數字認證呢?

上面有乙個很重要的一步,就是第2步:將公鑰發給小紅。小紅怎麼知道這個公鑰是小明給她的呢?

這裡就需要數字證書了。也就是說,資料證書是來解決公鑰的信任問題的。

到這一步,密碼學的幫助其實就不大了,因為我們要引入權威第三方機構了。

首先,小紅和小明得找到乙個雙方都信任的第三方機構,這個機構我們將它 稱為ca(certificate authority)首先給兩人各發一張證書。

這張證書裡有下面這些內容:

簽發者:ca自己

公鑰:1024/2048位公鑰(明文)

有效期:xx

雜湊演算法:將公鑰生成雜湊

加密演算法:將雜湊用私鑰加密,生成簽名

簽名:見上

證書的簽名就是上述的數字簽名,資料是公鑰,所以,小紅和小明可以用證書裡的公鑰對簽名進行解密,然後自己對公鑰進行雜湊計算,然後進行驗證,從而可以確保ca證書是正確的。這個證書叫根證書

然後接下來,小明將自己的公鑰和自己的一些資訊交給ca中心,ca中心呢,就按照上述的格式給小明簽發了一組證書,內容如下:

簽發者:ca

公鑰:小明的公鑰

有效期:xx

雜湊演算法:將小明的公鑰生成雜湊

加密演算法:將雜湊用私鑰加密,生成簽名

簽名:見上

然後有了證書的小明就把自己的證書發給小紅,小紅拿到後,先用ca的公鑰解密簽名,然後就是將小明的公鑰進行雜湊計算,對比一下後就可確定這的確是小明的公鑰。

以上就是數字證書的原理。

SSL,HTTPS,數字證書

ssl https secure hypertext transfer protocol 安全超文字傳輸協議 它是由netscape開發並內置於其瀏覽器中,用於對資料進行壓縮和解壓操作,並返回網路上傳送回的結果。https實際上應用了netscape的完全套接字層 ssl 作為http應用層的子層。...

SSL 數字證書

secure 可靠的.安全的 socket 座 layer 層 ssl 協議 ssl 是乙個安全協議,它提供使用 tcp ip 的通訊應用程式間的隱私與完整性。網際網路的 超文字傳輸協議 http 使用 ssl 來實現安全的通訊。由於ssl技術已建立到所有主要的瀏覽器和web伺服器程式中,因此,伺服...

數字證書原理

概念介紹 對稱加密演算法 加密和解密使用同乙個金鑰。非對稱加密演算法 加密和解密使用的金鑰不是同乙個。典型的如rsa 公鑰加密演算法 擁有一對金鑰,公鑰和私鑰,用私鑰進行解密和數字簽名,用公鈅來進行加密及驗證簽名。encryption 加密 decryption 解密 asymmetric 非對稱 ...