- Public key infrastructure (PKI) 公鑰基礎設施
- 是一套由硬體、軟體、政策和流程組成的系統,旨在建立、管理、分發、使用、儲存和撤銷數位證書以及公私鑰對,從而提供安全的數位身份驗證、資料加密和數據完整性保障。
- 四大特性
- 身份識別(Authentication):確保資料傳送者與接收者的身分可以唯一被識別。
- 隱密性(Confidentiality):確保資料經過加密後無法被直接辨識。
- 完整性(Integrity):確保資料在傳輸過程的完整與正確性,必須避免未授權的更改或僞造。
- 不可否認性(Non-Repudiation):確保傳送者無法否認之前傳送過某訊息;相反,也可以防止接收的人否認曾經接收過訊息。
- PKI 內的角色職責
- 認證機構(Certificate Authority, CA)
負責產生、發放、註銷、更新憑證的單位。 - 註冊中心(Register Authority, RA)
負責證書註冊的審核單位。 - 驗證中心(Validation Authority, VA)
確認驗章和憑證是否有效的單位。 - 儲存庫(Directory Authority, DA)
存放目前發放憑證及已註銷憑證(CRL)的倉庫。 - 信賴夥伴(Relying Party, RP)
信賴 PKI 架構的服務提供者。 - 終端實體(End Entity, EE)
申請使用憑證的單位。
- Certificate Authorities (CA) 數位憑證認證機構
- 負責簽發和管理數位證書。當網站需要使用安全協議 (例如 HTTPS)時,就需要向 CA 發送請求以獲取數位證書,CA 即會對請求者進行身份驗證,驗證成功後 CA 會簽發一個包含該網站和公司名稱、網址及公開金鑰等擁有者相關資料的數位憑證。
- 哪些 SSL 憑證頒發機構是 Root CA?
- Certum
- Sectigo
- GeoTrust (by digicert)
GeoTrust 是一家信譽良好的 SSL 憑證頒發機構,提供基本的單一網域 SSL 數位憑證、保護同一域名下的所有次網域的 SSL 數位憑證、企業 SSL 數位憑證等,幫助企業或機關進行組織驗證確保其網站安全。
RapidSSL 是一家有支援 ECC 加密算法,提供更安全的 SSL/TLS 數位憑證的 Root CA,RapidSSL 具備快速申請 SSL 憑證的優勢,以低成本、低門檻頒發受信任的 SSL 憑證,為小型電子商務網站推薦首選。
台灣的 SSL 憑證頒發機構,由政府、學術、產業等單位共同發起成立。
- Digital certificates 數位證書
- 主體的公開金鑰
- 主體公開金鑰演算法
- 橢圓曲線公開金鑰
- PKCS(Public Key Cryptography Standards)
- X.509 Public Key Infrastructure (PKIX)
Root CA 是 offline,用於發放憑證給 Intermediate CAs,Intermediate CAs 是online,用於發放憑證給一般使用者。
- 憑證主體替代名稱 Certificate Subject Alternative Name
- Certificate signing requests (CSR) 證書簽署請求
使用者生成一對公鑰/私鑰,公鑰上傳至Intermediate CA 去生成CSR
openssl genrsa -out privatekey.key
openssl req -new -key privatekey.key -out CSR.csr
- Subject name attributes 主體名稱屬性
- 用於識別身分、建立信任與確保證書持有者的真實性與唯一性。
FQDN - Hostname.Domain_name
組織名稱,表示數位證書持有者所屬的組織名稱。這可以是企業、機構或組織的合法名稱。
- Organizational Unit (OU):
組織單位名稱,表示組織中的特定部門或分支,如「資訊技術部」或「法務部」。
CN=www.example.com
O=Example Inc.
OU=IT Department
C=US
ST=California
L=San Francisco
E=admin@example.com
- Certificate revocation 證書撤銷
- 在證書的有效期內,由於某些原因將其提前作廢,從而使其不再被信任或使用。證書撤銷是公鑰基礎設施 (PKI) 中的一個重要過程,確保失效或不再安全的證書不被繼續使用,以維護系統的安全性。
- 為什麼證書會被撤銷?
- 私鑰洩露、持有者身分變更、證書不再需要、持有者違反政策等
- 證書撤銷的主要機制
- 證書撤銷清單 (Certificate Revocation List, CRL)
CRL 是由證書授權中心 (CA) 定期發佈的列表,列出所有已撤銷的證書序列號。每當一個證書被撤銷後,CA 會更新這個列表,然後應用程序可以下載並檢查該列表來判斷證書是否被撤銷。
缺點:CRL 通常是定期更新的,這意味著它並不能即時反映證書撤銷的狀況。如果 CA 頻繁發佈更新,系統可能要處理大量的 CRL 數據,影響效率。
- 線上證書狀態協議 (Online Certificate Status Protocol, OCSP)
OCSP 是一種實時查詢證書狀態的協議。當應用程序需要檢查某個證書是否有效時,它可以發送 OCSP 請求給 CA 或 OCSP 伺服器,這些伺服器會立即回應該證書的當前狀態(有效、撤銷或未知)。
優點:OCSP 的反應速度更快,因為它可以提供即時的證書狀態更新,避免下載和處理整個 CRL 列表的麻煩。
缺點:需要與 CA 的 OCSP 伺服器保持聯網,並且對 OCSP 伺服器有依賴性,如果伺服器不可用,則可能會導致證書狀態無法確認。
- Key management 金鑰管理
- Key lifecycle
- Key generation 金鑰生成
- Storage 儲存
- Revocation 撤銷
- Expiration and renewal 到期與續訂
- Decentralized Key Management 分散密鑰管理
- Key Management System 密鑰管理系統
- 儲存在中央伺服器上
- Key Management Interoperability Protocol (KMIP) 密鑰管理互通協議
背景:隨著數據安全需求的增長,企業和組織需要管理大量的加密密鑰,並且這些密鑰分佈於不同的系統、平台和設備中。然而,不同的供應商可能使用不同的密鑰管理工具和方法,這就導致了互操作性問題。KMIP 的主要目標是解決這些問題,通過提供一個標準的協議來統一密鑰管理的操作,減少不同系統之間的兼容性障礙。
- Cryptoprocessors and secure enclaves 加密處理器和安全區域
- Key Generation Challenges 密鑰生成挑戰
生成安全的加密密鑰是密鑰管理中的關鍵步驟。密鑰生成時面臨的主要挑戰包括:
- 隨機性:生成密鑰必須具有足夠的隨機性,否則攻擊者可能會通過猜測或推測來破解密鑰。
Entropy and Random Number Generation 熵和隨機數生成
高品質的密鑰生成依賴於良好的熵源,即高品質的隨機數。熵是隨機數生成中的不確定性度量,高熵表示數據的不可預測性高。許多加密系統依賴硬體隨機數生成器 (HRNG) 或偽隨機數生成器 (PRNG) 來提供密鑰生成所需的隨機性。
-熵的來源 可以包括硬體設備中的隨機物理過程,如電氣噪音、熱噪音等。
-隨機數生成必須符合嚴格的標準,確保無法預測生成的數字。
Tamper-Evident Storage 防篡改存儲
防篡改存儲技術旨在防止攻擊者未經授權存取或修改存儲的數據。如果發生物理或邏輯上的篡改行為,這些系統能夠檢測並提供警告。一些技術可能還具備自我銷毀的功能,當篡改被檢測到時自動銷毀密鑰或敏感數據。
例如,HSM 內部可能會使用防篡改電路,檢測篡改並擦除密鑰以防洩露。
- Trusted Platform Module (TPM) 可信平台模組
可信平台模組 (TPM) 是一個硬體晶片,嵌入於主板或 CPU 中,用於安全地存儲加密密鑰、證書和其他敏感信息。TPM 提供一系列安全功能,包括硬體級的密鑰生成、數位簽名、驗證啟動過程等,並能夠防止密鑰從硬體中被竊取。
- Hardware Security Module (HSM) 硬體安全模組
硬體安全模組 (HSM) 是專門的硬體設備,專門用於存儲和管理密鑰。HSM 通常用於企業中保護高價值的加密密鑰,並能提供硬體級的加密操作、數位簽名和驗證服務。它們內部具有防篡改設計,並且如果檢測到篡改,會立即銷毀內部密鑰。
- Secure Enclave 安全區域
- Protect Keys Loaded in System Memory (保護加載在系統內存中的密鑰)
保護系統內存中的加密密鑰是一個主要挑戰,因為內存中的數據容易受到攻擊者的攻擊(如冷啟動攻擊)。現代安全技術通過硬體加密處理器或安全區域來保護密鑰,以防止它們被暴露或從內存中讀取。當密鑰加載到內存時,這些硬體能確保密鑰受到保護,不會被未授權的訪問者讀取或篡改。
將加密密鑰備份並存放在受信任的第三方機構的安全技術。這樣做的主要目的是防止由於密鑰丟失而無法解密數據的情況
- 備份密鑰以防止數據丟失 (Keys can be backed up to protect against data loss)
- 當加密密鑰丟失或損壞時,託管機構能夠恢復備份密鑰,從而避免因無法解密數據而造成的損失。
- 在企業、政府和高度依賴加密的組織中,備份加密密鑰是關鍵的風險緩解策略。
- 偽裝風險 (Anyone with access to backup keys could impersonate the true key holder)
- 任何擁有密鑰備份權限的人都可能偽裝成真實的密鑰持有者,從而解密敏感數據或冒充該用戶進行各種活動。
- 為了減少這種風險,密鑰託管通常會採取額外的安全措施,例如多重授權或控制權限。
- Escrow Backup (託管備份)
- 託管備份 (Escrow backup) 是將加密密鑰存放在一個受信任的第三方機構(如政府或受監管的公司),該機構對密鑰進行妥善保護並在需要時進行恢復。這樣可以防止密鑰丟失導致的數據永久加密。
- 優點:當合法需要時(如密鑰持有者無法操作或密鑰損壞),可以通過第三方取回密鑰。
- 挑戰:若第三方被攻擊或內部人員濫用權限,則可能導致密鑰洩露。
- M-of-N Control (M-of-N 控制機制)
M-of-N 控制是密鑰恢復過程中的一種安全控制機制。這種機制將密鑰分成多個部分(N 個),每個部分由不同的密鑰恢復代理保存。密鑰的恢復需要至少 M 個密鑰部分的組合才能重新組合出完整的密鑰。
- 舉例:假設一個密鑰被分成 5 個部分(N=5),其中需要至少 3 個部分(M=3)才能恢復密鑰。這樣,即使其中 2 個密鑰部分丟失或代理失效,仍然可以使用剩餘的部分恢復密鑰。
- 好處:這種分佈式的方式降低了單點失敗的風險,並提供了更高的安全性,因為攻擊者需要取得多個密鑰部分才能獲得完整密鑰。
- 挑戰:需要有一套可靠的系統來管理不同部分的密鑰並確保代理之間的協調,且必須防範代理之間的串通或惡意行為。