PKI:公鑰基礎建設
核心定位
PKI (Public Key Infrastructure) 是提供公開金鑰加密與數位簽章服務的「基礎設施」,而非單一協定。其核心目標:透過自動化管理金鑰與憑證,建立安全可信的網路環境,實現機密性、完整性、不可否認性、實體鑑別。
必要組件
| 組件 | 功能 |
| CA (Certificate Authority) | 根信任錨點,簽發/吊銷憑證,管理憑證生命週期 |
| RA (Registration Authority) | 身份驗證、審核申請,介面 CA 與用戶 |
| 憑證庫 | 儲存有效憑證 (X.509 v3),支援查詢與驗證鏈 |
| CRL/OCSP | 憑證吊銷列表 / 線上狀態協定,即時檢查憑證有效性 |
| 金鑰備份/恢復 | 私鑰託管、閾值分享、災難恢復機制 |
| 跨域認證 | 交叉簽發、橋接 CA、信任清單管理 |
核心標準體系
- X.509 v3:憑證格式標準 (Subject, Issuer, Validity, PublicKey, Extensions: KeyUsage, ExtKeyUsage, SAN, CRLDistributionPoints, AuthorityInfoAccess)
- PKCS 系列:#1 RSA、#7 Cryptographic Message Syntax、#8 PrivateKey、#10 CSR、#12 PFX/P12
- CMP/SCEP/EST:憑證管理協定 (註冊、更新、吊銷、金鑰更新)
- RFC 5280:PKIX 路徑驗證演算法
SET:安全電子交易協定
誕生背景
1996 年 Visa + Mastercard 聯合 IBM、Microsoft、Netscape 等制定,專為「信用卡網路支付」設計,解決持卡人、商家、收單銀行、發卡銀行四方信任問題。
核心安全屬性
- 機密性:DES/3DES 加密支付資訊 (PAN 卡號不傳給商家)
- 完整性:RSA 簽章 + SHA-1 雜湊防篡改
- 鑑別性:雙向 X.509 憑證驗證 (持卡人↔發卡行、商家↔收單行)
- 不可否認性:雙重簽章 (購買指令 + 支付指令) 提供法律效力
關鍵創新:雙重簽章
購買指令 (OI) : 訂單明細、商家資訊 → 持卡人簽章 → 商家可見
支付指令 (PI) : 信用卡帳號、金額、收單行 → 持卡人簽章 → 僅發卡行可見
雙重簽章 : Hash(OI) || Hash(PI) → 持卡人簽章 → 綁定雙方不可分離
為何未普及?
- 客戶端需安裝專用錢包軟體、管理憑證,使用門檻極高
- 商家需部署 SET 伺服器、申請商家憑證,成本高昂
- SSL + 3D Secure (OTP/風控) 以較低成本解決 80% 場景
- EMV 晶片卡 + Tokenization (Apple Pay/Google Pay) 從實體端解決核心風險
SSL/TLS:傳輸層安全
演進時間軸
SSL 1.0 (內部) → SSL 2.0 (1995, 重大缺陷) → SSL 3.0 (1996, Netscape)
→ TLS 1.0 (RFC 2246, 1999) → TLS 1.1 (RFC 4346, 2006)
→ TLS 1.2 (RFC 5246, 2008, 主流) → TLS 1.3 (RFC 8446, 2018, 現代標準)
TLS 1.2 完整握手流程
- ClientHello:支援的 Cipher Suites、壓縮方式、隨機數、SNI、ALPN
- ServerHello:選定 Cipher Suite、隨機數、憑證鏈、ServerKeyExchange (ECDHE)
- 驗證憑證鏈:信任錨點 → 簽名驗證 → 有效期 → 撤銷狀態 → 主機名匹配
- ClientKeyExchange:PreMasterSecret (RSA 加密或 ECDHE 共享)
- ChangeCipherSpec + Finished:雙方驗證握手完整性
- Application Data:對稱加密 (AES-GCM/ChaCha20-Poly1305) + HMAC/Authenticated Encryption
TLS 1.3 關鍵改進
- 0-RTT/1-RTT 握手,移除 RSA 金鑰交換,強制前向保密 (ECDHE)
- 加密 ServerHello 後所有握手訊息 (含憑證),防中繼監聽
- 移除弱演算法 (RC4, DES, 3DES, MD5, SHA-1, 压缩、重協商)
- PSK (Pre-Shared Key) 支援 Session Resumption、0-RTT 數據
三者關係與定位對比
| 維度 | PKI | SET | SSL/TLS |
| 層級 | 基礎設施層 | 應用層協定 | 傳輸層/會話層 |
| 範圍 | 通用、跨應用 | 特定:信用卡支付 | 通用:任意 TCP 連線 |
| 核心物件 | CA、憑證、CRL/OCSP | 雙重簽章、錢包、支付閘道 | Cipher Suite、Session、憑證驗證 |
| 信任模型 | 層級式 CA 信任鏈 | 四方信任 (持卡/商家/收單/發卡) | 信任錨點 (Root CA) + 路徑驗證 |
| 不可否認性 | 支援 (數位簽章) | 核心目標 (雙重簽章) | 標準 TLS 不支援 (需應用層簽章) |
| 現狀 | 核心基建、持續演進 | 歷史產物、已被取代 | TLS 1.3 成主流、持續更新 |
實務部署建議
- 企業內部:建立私有 PKI (Microsoft AD CS, HashiCorp Vault, Smallstep) 簽發 mTLS 憑證、代碼簽章、VPN/802.1X 認證
- 對外服務:申請公信 CA 憑證 (Let's Encrypt 自動化、DigiCert/Sectigo 付費)、啟用 TLS 1.3、HSTS、Certificate Transparency 監控
- 支付業務:PCI DSS 合規、Tokenization、3DS 2.0、EMVCo 標準、硬體安全模組 (HSM) 管理金鑰
- 微服務:Service Mesh (Istio) 自動 mTLS、SPIFFE/SPIRE 身份、Sidecar 代理透明加密