dogtag-pki详解
1、设计背景
在对称加密(如kerebros使用的)体系中,通信双方必须预先共享一把密钥。当用户规模从几十人扩展到成千上万人、服务数量从几个扩展到成百上千时,“每对通信放预先共享密钥”在管理上变得不可行。 公钥密码学解决了密钥分发问题:每个人生成一对密钥,公钥公开,私钥自留。但随机产生了一个新的、更隐蔽的难题:你在网络上收到的“某人的公钥”,怎么证明他真的属于那个人,而不是中间人伪造的?攻击者完全可以拦截通信,把自己的公钥发给对方,冒充任何身份。 pki(公钥基础体系)就是为了解决这个“公钥归属的信任问题”而生的。它的核心思路是引入一个可信第三方——认证中心(ca):ca用自己的私钥对“某个公钥属于某个身份”这一声明进行数字签名,生成数字证书。任何信任ca的人,只要用ca的公钥验证签名,就能确认整数中的公钥确实绑定了证书中声明的身份,而没有被篡改。 dogtag就是ca这个角色的软件实现。它是red hat certificate system的开源上游版本,被定为为企业级证书管理系统,已部署在全球一些最大规模的pki环境中,并通过了FIPS 140-2和通用标准认证。2、pki密码学原理
一句话总结:
以非对称加密的公私钥为基础,用哈希保证完整性,用数字签名证明来源和绑定关系,用 CA 签发的数字证书把身份与公钥绑定,再通过根 CA 信任链建立信任,并支持吊销机制维护信任有效性。一张X.509数字证书的核心,是“身份信息+公钥”被ca的私钥签名后的产物。CA签发证书时的密码学操作是:对“主体身份+主体公钥+有效期+扩展信息”等内容计算哈希,然后用ca的私钥加密这个哈希,形成数字签名,附在