Web Security – Ceritificate
1. Concepts 1) 密钥对(私钥 & 公钥) What 私钥:只属于持有者的秘密数据;用于签名或解密。 公钥:可公开分发;用于验签或加密。 常见算法:RSA(2048/3072/4096)、ECDSA(P-256/384/521)、Ed25519(签名友好、体积小)。 Why 将“机密性”和“身份/完整性”分离:公开分发公钥不会泄密;只有私钥才能产生可信签名。 支持大规模、跨组织的互联网信任模型(PKI)。 When TLS/HTTPS、mTLS、JWT 签名、软件发布签名(如容器镜像/包)、SSH 登录等。 Who 服务器/服务实例、反向代理、客户端(mTLS)、CI/CD 签名者、KMS/HSM 托管方、开发者/运维。 How(要点 & 实践) 生成与存放:优先 KMS/HSM 或文件系统 + 严格权限;避免将私钥写入镜像与代码库。 算法选择: 兼容性优先:RSA-2048; 性能与体积:ECDSA P-256; 现代签名:Ed25519(但看 TLS/库兼容性)。 备份与轮换:定期轮换(如 6–12 个月),并保留旧私钥用于历史数据验签。 2) 数字签名(Digital Signature) What 用私钥对“数据的哈希”做签名(即用私钥对这个摘要进行加密),任何人用公钥可验证“是谁签的、有没有被改”。 Why 证明 身份(只有私钥持有者能签)、保证 完整性(数据改了就验不过)。 When CA 签发证书;TLS 握手;JWT/消息/工件(artifact)签名;代码签名。 Who 签名者:持私钥方(服务器、CA、CI/CD)。 验签者:浏览器、服务端、消费者。 How(流程) […]