术语表 /开发者参考
PKI
又称公钥基础设施、公钥基建。
- PKI 是什么?
- PKI(公钥基础设施)是由证书颁发机构、证书和信任库构成的体系,使软件能够判断一个公钥是否确实属于与其绑定的名称。
PKI 是网络解决“初次见面”问题的方式:您从未接触过服务器,因此只能信任为其担保的第三方。您的浏览器内置了几百家此类机构的名单,其中任何一家都可以为任何名称担保。比特币的设计则完全不需要这份名单。
运作方式
PKI 有三个组成部分,其中只有一个位于您的设备上。
证书颁发机构持有签名密钥,并在核实申请人的某些信息后签发证书;对于普通网站证书而言,这只意味着确认其对某个域名的控制权,别无其他。证书把一个名称与一个公钥绑定在一起,并附有该机构对两者的签名。信任库随您的操作系统或浏览器一同提供,并随其更新,其中列出了您接受的机构,其余一切都由这份名单推导而来。
这一模式的弱点出在结构上,而非偶然。信任没有范围限制:任何国家的任何一家机构都可以为世界上任何域名签发证书,因此每个网站的安全程度等同于信任库中最薄弱的那家机构。这并非假设。攻击者在2011年入侵了荷兰的证书颁发机构 DigiNotar,签发了针对 Google 域名的欺诈证书,并用它攻击伊朗的互联网用户;浏览器厂商随后移除了 DigiNotar 的根证书,该公司在当年9月就已破产。Google 在2017年宣布,在指出有超过30,000份证书被不当签发之后,Chrome 将不再信任 Symantec 的证书业务。
随后出现了两项缓解措施。Certificate Transparency(证书透明度)于2013年6月在 RFC 6962中作出规定,要求证书发布到公开的只增不改日志中,这样在无法阻止错误签发时,至少可以发现这类问题。证书的有效期也被大幅缩短,理由是有效期短的凭证可以限制本不该存在的凭证所造成的损害。
在哪里会遇到它
当您输入交易所密码时,PKI 就在发挥保护作用,这是它在比特币购买者生活中的主要作用。
它的局限也体现在这里。挂锁图标表示连接已加密,且域名与证书相符。它并不表示该企业诚实、持牌或有偿付能力;骗子注册的仿冒域名能在几秒内获得有效证书,恰恰因为他确实控制着该域名。请仔细核对地址栏中名称的拼写,并通过书签而非广告进入网站。
硬件钱包厂商为设备认证运行着自己的小型基础设施,使用由自己掌控的单一根证书,而不是公共信任库。这种安排比网络上的做法安全得多,原因很简单:其中不存在任何第三方。
比特币自身的设计则走了完全相反的路。地址由密钥经哈希运算得出,因此没有需要认证的名称,也没有可以询问的对象。您通过比对字符来核实收款目标,这在易用性上更差,却把几百个受信任方排除在外。
PKI vs 公钥
PKI 并不是使用公钥的通用说法。生成密钥对、在由其派生的地址上接收比特币、之后再用它签署交易,都不涉及任何机构、证书或信任库,这正是该设计的全部意义。PKI 是为把现实世界的名称与密钥绑定而建立的特定管理体系,而比特币有意不使用它。