數字證書掃盲
近段時間做的專案都涉及到與各種支付渠道對接。由於涉及到介面呼叫安全,資金安全等,通常都會使用各種格式的數字證照來保證通訊安全,資料不被竊取,以及保證資料的來源合法。但是數字證照中卻有很多概念,到底各個概念都是什麼含義呢?下來帶大家一起來掃盲。
X.509證照
X.509是公鑰證照的標準格式,定義了證照中應該包含哪些內容。X.509證照在很多網際網路協議裡面都有應用,如TLS/SSL。可用在加密通訊、電子簽名等場景。證照需要包含公鑰、簽名資訊、身份資訊,還可以附帶證照合法性驗證演算法、證照吊銷列表等附加資訊。
X.509證照的各種字尾名
X.509證照會有很多不同的字尾名,但有些並不是真正意義上的證照,可能只是儲存了私鑰的檔案而已。下面列出常見的字尾名及其含義:
- pem,隱私增強型電子郵件(Privacy Enhanced Mail)。是der編碼的證照,在用Base64進行編碼而存放的。通常以—–BEGIN CERTIFICATE—–開頭,以—–END CERTIFICATE—–結束。如DigiCert_Global_Root_CA.pem證照,開啟後是這樣的:
-----BEGIN CERTIFICATE-----
MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh
MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3
d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD
QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT
MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j
b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG
9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB
CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97
nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt
43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P
T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4
gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO
BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR
TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw
DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr
hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg
06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF
PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls
YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk
CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4=
-----END CERTIFICATE-----
- der,二進位制格式的證照,直接用文字開啟的話全是二進位制的東西,沒有可讀性。但是可以通過windows證照開啟。如DigiCert_Global_Root_CA.der:
上面的pem和der兩種副檔名其實也是編碼格式,像下面將要講的幾種副檔名的證照檔案,儘管證照內容會有不同,但他們會採用pem和der這兩種編碼方式。 - cer,cer是certificate的三個字母,可以有pem和der兩種編碼格式。可以從der中匯出。
- key,不是X.509證照,通常用於存放公鑰或者私鑰可以有pem和der兩種編碼格式。
- csr,證照籤名請求。這個也不是證照,是向CA請求獲取簽名的證照。首先會生成一對鑰匙對(即公鑰和私鑰),然後用私鑰對csr進行簽名,並妥善保管好私鑰。這是csr包含了請求發起者的身份資訊、可以用於驗證簽名的公鑰等。
- pfx和p12,是第12號公鑰加密技術標準(PKCS#12)。包含證照和私鑰,不過私鑰是有密碼保護的,只有提供正確的密碼後,才能從p12檔案中提取出私鑰。
- JKS,Java KeyStore。java金鑰管理庫,裡面可以放各種金鑰檔案,與pfx/p12十分類似,用來存放證照和私鑰。
常見的證照就列舉到這裡,相信大家已經有個基本的概念。下面將講解一下X.509證照結構和證照鏈,有興趣的同學可以繼續往下看。
X.509的結構
X.509的結構會包括:證照、版本號、序列號、簽名演算法、頒發者、證照有效期、此日期前無效、此日期後無效、主題、主題公鑰資訊、公鑰演算法、主題公鑰、頒發者唯一身份資訊(可選項)、主題唯一身份資訊(可選項)、擴充套件資訊(可選項)、證照籤名演算法、數字簽名。
上面這樣列可能不太好理解,下面送上直觀腦圖一份。注意:黃色高亮部分為可選項。
證照鏈
瞭解證照鏈之前,我們瞭解一下什麼是CA。
- CA就是證照頒發機構(Certificate
Authority),是負責發放和管理數字證照的權威機構,並作為電子商務交易中受信任的第三方,承擔公鑰體系中公鑰的合法性檢驗的責任。CA又分為root CA 和 intermediates CA(中間CA)。root CA 和 intermediates CA之間是有鏈式關係的,root CA之下可以有多個intermediates CA,intermediates CA自己下面也可以有多個intermediates CA。
我們拿唯品會的證照來看一下,最頂層的是VeriSign(VeriSign 是全球最大的數字證照頒發機構)是Root CA,第二層的是Symantec(賽門鐵克),最後才是vip的。
既然有了鏈式結構,那麼在驗證證照的是否真實合法的時候,我們就可以通過證照鏈,一層層向上回溯,驗證證照了。
數字證照的掃盲就講到這裡。其實除了CA認證體系外,還有PGP的Web of Trust體系。關於PGP解密的相關內容,將在日後為大家帶來。
作者:皇子
相關文章
- SSL證書屬於數字證書嗎?數字證書有哪些
- 數字證書不僅有SSL證書,數字證書型別科普大全型別
- https數字證書作用和數字證書是否可以登出?HTTP
- go-自籤ca證書,客戶端數字證書,服務端數字證書Go客戶端服務端
- 數字孿生掃除智慧城市“盲點”,賦能社會數字發展
- 數字證書認證(CA)中心
- PKI/CA與數字證書
- 如何申請數字證書?
- PKI 數字證書隨筆
- SSL數字證書是什麼?SSL數字證書具體有什麼作用?
- 「掃盲」 ElasticsearchElasticsearch
- Promise掃盲Promise
- HTML掃盲HTML
- ssl數字證書如何選購?
- HTTPS-自己生成數字證書HTTP
- Jenkins掃盲篇Jenkins
- falcor掃盲篇
- PostgreSQL掃盲教程SQL
- Spring AOP 掃盲Spring
- RocketMQ掃盲篇MQ
- FDA ESG的數字簽名證書是什麼?怎麼獲取FDA ESG 數字證書?
- 非對稱加密和數字證書加密
- CA數字證書包括哪些內容?
- SSL數字證書有什麼功能?為什麼需要SSL證書?
- Dozer掃盲級教程
- JVM快速掃盲篇JVM
- Css知識掃盲CSS
- SSL數字證書型別與區別型別
- SSL數字證書申請要多少錢?怎麼購買SSL證書?
- 安全基礎:數字信封、數字簽名、數字證書(加簽驗籤,加密解密)加密解密
- 如何基於Java解析國密數字證書Java
- ICP備案掃盲帖
- Filecoin: 挖礦流程掃盲
- Java Web 掃盲行動JavaWeb
- Android、Java泛型掃盲AndroidJava泛型
- 掃盲:Kotlin 的泛型Kotlin泛型
- covpass-android:數字疫苗接種證書應用Android
- 介面測試全流程掃盲