跳到主要内容

1. Informal Introduction (非正式引言)

1. Informal Introduction (非正式引言)

证书透明度 (Certificate Transparency, CT) 旨在通过提供可公开审计的, 仅追加的, 不受信任的已签发证书日志, 来缓解错误签发证书的问题. 日志可公开审计, 因此任何人都可以验证每个日志的正确性, 并监视何时向其中添加新证书. 日志本身并不能阻止错误签发, 但它们确保相关方 (尤其是证书中指名的各方) 能够发现此类错误签发. 注意这是一种通用机制, 但在本文档中, 我们只描述其用于由公共证书颁发机构 (certificate authority, CA) 签发的公共 TLS 服务器证书的用途.

每个日志由证书链组成, 任何人都可以提交. 预期公共 CA 会将其新签发的所有证书贡献给一个或多个日志; 也预期证书持有者会贡献自己的证书链. 为避免日志被垃圾信息淹没至无法使用, 要求每条链都必须锚定在已知的 CA 根证书上. 当某条链被提交到日志时, 会返回一个签名时间戳, 之后可用于向客户端证明该链已被提交. 因此 TLS 客户端可以要求其所见的所有证书均已被记录.

关心错误签发问题的一方可以监视日志, 定期向其请求所有新条目, 从而检查其负责的域名是否出现了未预期的证书签发. 他们如何处理这些信息, 尤其是当发现已发生错误签发时, 已超出本文档范围; 但总体而言, 他们可以调用现有的业务机制来处理错误签发的证书. 当然, 任何愿意的人都可以监视日志, 并在认为某证书被错误签发时按其认为合适的方式采取行动.

同样, 见过来自特定日志的签名时间戳的一方, 之后可以要求该日志提供包含性证明 (proof of inclusion). 若日志无法提供 (或者, 监视器所持该日志副本中确实缺少相应证书), 即构成日志运行不正确的证据. 检查操作与 TLS 连接异步进行, 以便尽管存在网络连通性问题与防火墙的不确定性, TLS 连接仍可无延迟继续.

每个日志的仅追加属性在技术上通过 Merkle 树 (Merkle Trees) 实现, 可用于表明日志的任一特定版本都是任一特定先前版本的超集. 同样, Merkle 树避免了对日志的盲目信任: 若日志试图向不同人展示不同内容, 可通过比较树根与一致性证明 (consistency proofs) 高效地发现. 同样, 日志的任何其他不当行为 (例如, 对证书签发签名时间戳后却未将其记入日志) 也可以被高效检测并向全世界证明.