1.數字證書是什么荒典?
數字證書(digital certificate)是互聯(lián)網通訊中標志通訊各方身份信息的一系列數據并蝗,提供了驗證身份的方式窖铡。
它是由一個由權威機構(Certificate Authority)中心發(fā)行的参歹,人們可以在網上用它來識別對方的身份勾哩。
最簡單的數字證書包含一個公開密鑰鸽素、名稱以及證書授權中心的數字簽名褒繁。
2.常見的3種加密方式
為了了解數字證書的原理,首先需要了解已下3種加密方式馍忽。
2.1 hash算法加密
它是一種不可逆的加密方式棒坏,對一組數據使用哈希算法加密燕差,加密后不能解密。
把必要的信息放到一起后坝冕,一般會用MD5或SHA1算法計算出hash值(也叫信息摘要:MD5為128位徒探,SHA1主要為256位)。
將信息的摘要也稱作信息的指紋喂窟。相同的信息一定會得相同的指紋测暗,而僅通過指紋又無法還原出原始信息。
2.2 對稱密鑰加密
加密一組數據時使用【秘鑰】加密磨澡,解密時候也使用同樣的【秘鑰】解密碗啄。
目前的對稱密鑰算法有DES、3DES稳摄、AES等稚字,而密鑰則一般是一串固定長度的字符。
2.3 非對稱密鑰加密
將秘鑰分成【公鑰publicKey】和【私鑰privateKey】厦酬。
公鑰加密的內容胆描,使用私鑰可以解開;而私鑰加密的內容仗阅,公鑰可以解開昌讲。
單獨的知道公鑰或私鑰,卻沒有辦法推出另一份密鑰减噪。
目前使用最為廣泛的非對稱密鑰為RSA算法剧蚣。
這3種加密方式如果不太理解的話,可以自行在搜一搜相關資料看看旋廷。
下面我們看看數據證書是如何發(fā)放的鸠按。
3.發(fā)放數字證書
看看下圖CA是如何發(fā)放數字證書。
1. 創(chuàng)建一個文件包含申請者信息(申請者的公鑰饶碘,簽名算法目尖,有效期等等...)的文件。
2. 對這個文件使用hash算法加密扎运,獲取hash值瑟曲。
3. CA使用自己的私鑰加密申請信息的hash值獲取證書簽名。
4. 證書簽名+申請者信息 = 數字證書
4.驗證數字證書的合法性
看下圖如何判斷數字證書的合法性豪治。
1. 先把數字證書里的申請者信息使用hash算法加密獲得hash值洞拨。
2. 使用CA頒發(fā)的公鑰解密數字證書里的簽名。
3. 比較數字證書里的內容獲得的hash值和解密簽名獲取的hash值是否一樣负拟。
5.數據證書里的詳細內容
最后整理了數字證書的詳細內容和說明烦衣。
版本: | 指定所編碼證書的版本號。 當前,此字段的可能值為 0花吟、1 或 2秸歧。 |
序列號: | 包含證書頒發(fā)機構 (CA) 分配給證書的一個唯一正整數。 |
簽名算法: | 包含一個對象標識符 (OID)衅澈,指定 CA 用于對證書進行簽名的算法键菱。 |
簽名哈希算法: | 生成簽名使用的哈希算法。 |
頒發(fā)者: | 包含創(chuàng)建和簽名證書的 CA 的 X.500 可分辨名稱 (DN)今布。 |
有效期: | 指定證書有效的時間間隔经备。 |
使用者: | 包含實體的 X.500 可分辨名稱,該實體與證書中包含的公鑰相關聯(lián)部默。 |
公鑰: | 包含公鑰和關聯(lián)的算法信息侵蒙。 |
授權密鑰標識符: | 標識證書頒發(fā)機構 (CA) 公鑰,與用于簽署證書的 CA 私鑰對應甩牺。 |
基本約束: | 指定實體是否可用作 CA蘑志,如果可以累奈,則指定在證書鏈中該 CA 下可以存在的從屬 CA 的數量贬派。 |
證書策略: | 指定頒發(fā)證書的策略和使用證書的目的。 |
CRL: | 分發(fā)點 包含基本證書吊銷列表 (CRL) 的 URI澎媒。 |
增強型密鑰用法: | 指定證書中包含的公鑰的使用方式搞乏。 |
頒發(fā)者備用名稱: | 為證書請求頒發(fā)者指定一個或多個備用名稱形式。 |
密鑰用法: | 指定證書中包含的公鑰可以執(zhí)行的操作的限制戒努。 |
名稱約束: | 指定證書層次結構中所有使用者名稱必須位于的命名空間请敦。 擴展僅在 CA 證書中使用。 |
策略約束: | 通過禁止策略映射或通過要求層次結構中的每個證書包含一個可接受的策略標識符來約束路徑驗證储玫。 擴展僅在 CA 證書中使用侍筛。 |
策略映射: | 指定與發(fā)證 CA 中的策略對應的從屬 CA 中的策略。 |
私鑰使用周期: | 為私鑰指定與私鑰關聯(lián)的證書不同的驗證周期撒穷。 |
使用者可選名稱: | 為證書請求使用者指定一個或多個備用名稱形式匣椰。 示例備用形式包括電子郵件地址、DNS 名稱端礼、IP 地址和 URI禽笑。 |
使用目錄屬性: | 傳達標識屬性,如證書使用者的國籍蛤奥。 擴展值是 OID 值對序列佳镜。 |
使用者密鑰標識符: | 區(qū)分證書使用者持有的多個公鑰。 擴展值一般是密鑰的 SHA-1 哈希凡桥。 |
歡迎大家的意見和交流
email: li_mingxie@163.com