公开密钥认证

用于证明公开密钥所有权的电子文档
(重定向自公钥证书

公开密钥认证(英语:Public key certificate),又称数字证书(digital certificate)或身份证书(identity certificate)。是用于公开密钥基础建设的电子文件,用来证明公开密钥拥有者的身份。此文件包含了公钥信息、拥有者身份信息(主体)、以及数字证书认证机构(发行者)对这份文件的数字签名,以保证这个文件的整体内容正确无误。拥有者凭着此文件,可向电脑系统或其他用户表明身份,从而对方获得信任并授权访问或使用某些敏感的电脑服务。电脑系统或其他用户可以透过一定的程序核实证书上的内容,包括证书有否过期、数字签名是否有效,如果你信任签发的机构,就可以信任证书上的密钥,凭公钥加密与拥有者进行可靠的通信。

维基百科网站所使用的数字证书,可见载有维基媒体基金会的名称、签发的数字证书认证机构、有效期及公开密钥指纹

简而言之,认证机构用自己的私钥对需要认证的人(或组织机构)的公钥施加数字签名并生成证书,即证书的本质就是对公钥施加数字签名。[1]

数字证书的其中一个最主要好处是在认证拥有者身份期间,拥有者的敏感个人资料(如出生日期、身份证号码等)并不会传输至索取资料者的电脑系统上。透过这种资料交换模式,拥有者既可证实自己的身份,亦不用过度披露个人资料,对保障电脑服务访问双方皆有好处。

人们透过信任数字证书认证机构的根证书、及其使用公开密钥加密作数字签名核发的公开密钥认证,形成信任链架构,已在TLS实现并在万维网HTTPS、在电子邮件的SMTPS和STARTTLS广泛应用。业界现行的标准是国际电信联盟电信标准化部门制定的X.509[2],并由IETF发行的RFC 5280详细述明。而在不少国家/地区,都已立法承认使用数字证书所作的数字签名拥有等同亲笔签名的法律效力(如欧洲联盟[3][4]香港[5][6]台湾[7]美国加拿大)。

证书种类

编辑
 
根证书(自签证书)、中介证书和终端实体(TLS服务器/客户端)证书的关系

自签证书

编辑

在用于小范围测试等目的的时候,用户也可以自己生成数字证书,但没有任何可信赖的人签名,这种自签名证书通常不会被广泛信任,使用时可能会遇到电脑软件的安全警告[8]

根证书

编辑

根证书获得广泛认可,通常已预先安装在各种软件(包括操作系统浏览器电邮软件等),作为信任链的起点,来自于公认可靠的政府机关(如香港邮政[9]台湾网络信息中心)、证书颁发机构公司(如DigiCertGoogle[10])、非营利组织(如Let's Encrypt)等,与各大软件商透过严谨的核认程序才在不同的软件广泛部署。由于部署程序复杂费时,需要行政人员的授权及机构法人身份的核认,一张根证书有效期可能长达二十年以上。在某些企业,也可能会在内部电脑自行安装企业自签的根证书,以支持内部网企业级软件;但是这些证书可能未被广泛认可,只在企业内部适用。

中介证书

编辑

认证机构的一个重要任务就是为客户签发证书,虽然广泛认可的认证机构都已拥有根证书,相对应的私钥可用以签署其他证书,但因为密钥管理和行政考虑,一般会先行签发中介证书,才为客户作数字签署。中介证书的有效期会较根证书为短,并可能对不同类别的客户有不同的中介证书作分工。

授权证书

编辑

授权证书又称属性证书,本身没有公钥,必须依附在一张有效的数字证书上才有意义,其用处是赋予相关拥有人签发终端实体证书的权力;某些情况下,如果只在短期内授予证书机构签发权力,便可以不改变(缩短)该机构本身持有的证书的有效期。这种情况,类似于某人持有长达十年期的护照,而只透过签发短期入境签证,来个别赋予护照持有人额外权力。

终端实体证书

编辑

其他不会用作签发其他证书的,都可称为终端实体证书,在实际的软件中部署,以便建立加密通道时应用。

TLS服务器证书

编辑

服务器通常以域名形式在互联网上提供服务,服务器证书上主体通用名称就会是相应的域名,相关机构名称则写在组织单位一栏上。服务器证书(包括公钥)和私钥会安装于服务器(例如Apache),等待客户端连接时协议加密细节。客户端的软件(如浏览器)会执行认证路径验证算法英语Certification path validation algorithm以确保安全,如果未能肯定加密通道是否安全(例如证书上的主体名称不对应网站域名、服务器使用了自签证书、或加密算法不够强),可能会警告用户。

通配符证书
编辑

如果服务器证书上主体的通用名称(或主体别名英语Subject Alternative Name)一栏以通配符前缀,则该证书可以用于旗下的所有子域名,特别适合较具规模、或设有多个子网站的机构一次过申领,套用于多个服务器上;即使未来建立新的子域名,也可以套用。但通配符不可用于扩展认证证书上。

TLS客户端证书

编辑

有时候,某些TLS服务器可能会在建立加密通道时,要求客户端提供客户端证书,以验证身份控制访问权限。客户端证书包含电子邮件地址或个人姓名,而不是主机名。但客户端证书比较不常见,因为考虑到技术门槛及成本因素,通常都是由服务提供者验证客户身份,而不是依赖第三方认证机构。通常,需要使用到客户端证书的服务都是内部网的企业级软件,他们会设立自己的内部根证书,由企业的技术人员在企业内部的电脑安装相关客户端证书以便使用。在公开的互联网,大多数网站都是使用登录密码Cookie来验证用户,而不是客户端证书。

在台湾,中华民国内政部证书管理中心根据电子签名法负责签发自然人证书,让国民在网络使用各种政府服务[11]

客户端证书在RPC系统中更常见,用于验证连接设备的许可授权。

内容字段

编辑

一般遵从X.509格式规范的证书,会有以下的内容,它们以字段的方式表示[12]

  • 版本:现行通用版本是 V3
  • 序号:用以识别每一张证书,特别在撤消证书的时候有用
  • 主体:拥有此证书的法人自然人身份或机器,包括:
    • 国家(C,Country)
    • 州/省(S,State)
    • 地域/城市(L,Location)
    • 组织/单位(O,Organization)
    • 通用名称(CN,Common Name):在TLS应用上,此字段一般是网域
  • 发行者:以数字签名形式签署此证书的数字证书认证机构
  • 有效期开始时间:此证书的有效开始时间,在此前该证书并未生效
  • 有效期结束时间:此证书的有效结束时间,在此后该证书作废
  • 公开密钥用途:指定证书上公钥的用途,例如数字签名、服务器验证、客户端验证等
  • 公开密钥
  • 公开密钥指纹
  • 数字签名
  • 主体别名英语Subject Alternative Name:例如一个网站可能会有多个网域(www.wikipedia.org, zh.wikipedia.org, zhwiki.oracleblog.org 都是维基百科)、一个组织可能会有多个网站(*.wikipedia.org, *.wikibooks.org, *.wikidata.org 都是维基媒体基金会旗下的网域),不同的网域可以一并使用同一张证书,方便实现应用及管理

申领及使用

编辑
 
向证书机构申领签发电子证书的过程

数字证书一般由数字证书认证机构签发,简单的程序如下:

申领

编辑
  1. 鲍伯在自己的机器上使用密码学安全伪随机数生成器产生一对足够强的密钥,鲍伯的私钥不会向任何人发送。
  2. 鲍伯把他的公钥,连同主体消息、使用目的等组成证书签署请求英语Certificate signing request,发送给认证机构伊凡
  3. 伊凡(用另外一些渠道)核实鲍伯的身份。
  4. 如果伊凡信任这个请求,他便使用鲍伯的公钥和主体消息,加上证书有效期、用途等限制条件,组成证书的基本资料。
  5. 伊凡用自己的私钥对鲍勃的公钥加上数字签名并生成证书。
  6. 伊凡把生成的证书发送给鲍伯(伊凡也可以透过证书透明度公布他签发了新的证书)。

使用

编辑
  1. 鲍伯可以随便把证书向外发布。
  2. 鲍伯与爱丽丝事先可能互不认识,但鲍伯与爱丽丝都信任伊凡,爱丽丝使用认证机构伊凡的公钥验证数字签名,如果验证成功,便可以信任鲍勃的公钥是真正属于鲍伯的。[1]
  3. 爱丽丝可以使用证书上的鲍勃的公钥加密明文,得到密文并发送给鲍伯。
  4. 鲍伯可以可以用自己的私钥把密文解密,得到明文。

单元格式

编辑

电子证书可以二进制Base64形式存储,常见的文件扩展名有 .cer、.crt、.der和.pem。如果把证书和私钥一起存储,则可以使用PKCS#12(.p12)格式[13]

  • DER用于二进制DER编码的证书。
  • PEM用于不同类型的X.509v3文件,是以“ - BEGIN ...”前缀的ASCII(Base64)数据。
  • CER和CRT几乎同义,证书可以被编码为二进制DER或ASCII PEM。
  • PKCS7 文件,也被称为 P7B,通常用于 Java Keystores 和 Microsoft IIS(Windows)。它们是 ASCII 文件,可以包含证书和 CA 证书。
  • PKCS12 文件,也被称为 PFX 文件,通常用于在 Micrsoft IIS(Windows)中导入和导出证书链。

审核级别

编辑

法人团体申领数字证书的时候,可以视乎其法人的地位及其实际需要申领不同级别的证书,认证机构会作相应的审核,越高级别的通常都牵涉越严谨的行政程序,及需付出更高昂的费用。各大证书机构和网页浏览器软件商透过CA/浏览器论坛共同建立和维护相关的指导方针[14]

域名验证(DV)

编辑

这是最基本的审核级别,如果申领代表可以证明他拥有管理某域名的权力,认证机构就可以发放域名验证(DV)证书。认证机构通常使用自动机制(例如自动证书管理环境英语Automated Certificate Management Environment[15]或透过电邮确认)审核域名拥有权,所以成本也较低[16]

组织验证(OV)

编辑

如果申领代表可以证明他拥有管理某域名的权力,而且相关组织是实际存在的法人,认证机构可以发放组织验证(OV)证书。审核程序通常需要经过人手处理。

扩展验证(EV)

编辑

这是最严格的审核级别,审核过程可能牵涉专业法律人员的调查及独立审计人员的确认,成本也自然更高[17];成功获得扩展验证证书的网站,现代浏览器通常会在地址列以绿色表示相关机构的法人名称及所属国家代码[18]。扩展验证证书的主体名称或主体别名上不可以有通配符。

弱点与防御

编辑

公开密钥基础建设的弱点,在于人们必须循数字证书上的信任链找到根证书,并信任核发根证书的数字证书认证机构,一旦证书机构被黑客入侵,黑客可以在人们不知情下签发了伪冒他人身份的证书,以中间人攻击进行欺诈。业界已研发不同的防御方法,例如证书机构可以透过证书透明度公布新签发的电子证书,让大众检查手上收到的电子证书是否可能未被正式授权(中间人攻击不会“公布”他伪冒了别人签发了欺诈证书),网站管理员也可以定期检查是否有不明机构发出了未被授权的证书。另一方面,HTTPS网站可以使用HPKP指明其固定的公钥,让中间人的欺诈证书无法使用。另外,而OCSPOCSP装订也在发展中,让用户软件可以透过第三方检查证书是否有效。

在公钥基础设施以外,信任网络则采用去中心化的概念,取代了依赖数字证书认证机构的公钥基础设施,因为每一张电子证书在信任链中最终只由一个根证书授权信任,信任网络的公钥则可以累积多个用户的信任。

根证书弱点与争议事件

编辑

中国互联网络信息中心发行假证书事件

编辑

2009年,中国互联网络信息中心(CNNIC)的一名员工向Mozilla申请要求将 CNNIC 加入 Mozilla 的 根证书列表[19],并且得到了批准。后来微软也把 CNNIC加到了Windows根证书列表里。

2015年,因CNNIC发行的一个中级CA被发现发行了Google域名的假证书[20],许多用户选择不信任CNNIC颁发的数字证书[21]。并引起对CNNIC滥用证书颁发权力的担忧[22]

2015年4月2日,Google宣布不再承认CNNIC所颁发的电子证书[23][24]。4月4日,继Google之后,Mozilla也宣布不再承认CNNIC所颁发的电子证书[25]。2016年8月,CNNIC官方网站已放弃自行发行的根证书,改用由DigiCert颁发的证书。

沃通及StartCom遭封杀事件

编辑

2016年,拥有奇虎360背景的中国最大CA证书签发机构沃通(WoSign)[26]及其以色列子公司StartCom,遭谷歌拒绝承认其证书。 ]] 沃通被揭发在短短5日内发行了几百个相同序列号的证书,以及对证书日期上造假[27]

参见

编辑

参考文献

编辑
  1. ^ 1.0 1.1 结城浩. 图解密码技术(第3版). 人民邮电出版社. 2016: 231页. ISBN 978-7-115-42491-4. 
  2. ^ Public-key and attribute certificate frameworks. ITU-T. 2016-12-08 [2017-07-10]. (原始内容存档于2020-09-30) (英语). 
  3. ^ EU Trusted Lists. 欧洲联盟委员会. 2017-05-09 [2017-07-18]. (原始内容存档于2020-08-25) (英语). Under the Regulation (EC) No 910/2014/EU (eIDAS Regulation), national Trusted Lists have a constitutive effect. In other words, a trust service provider and the trust services it provides will be qualified only if it appears in the Trusted Lists. Consequently, the users (citizens, businesses or public administrations) will benefit from the legal effect associated with a given qualified trust service only if the latter is listed (as qualified) in the Trusted Lists. 
  4. ^ REGULATION (EU) No 910/2014 OF THE EUROPEAN PARLIAMENT AND OF THE COUNCIL of 23 July 2014 on electronic identification and trust services for electronic transactions in the internal market and repealing Directive 1999/93/EC. EUR-Lex. 2014-08-28 [2017-07-18]. (原始内容存档于2018-01-15) (英语). A qualified electronic signature shall have the equivalent legal effect of a handwritten signature. 
  5. ^ 香港的認可核證機關. 政府信息技术总监办公室. 2017-06-30 [2017-07-18]. (原始内容存档于2017-10-27) (中文(香港)). 核证机关在确保公开密码匙基础建设的有效运作方面担当重要角色,并作为可信赖的第三方,负责证明电子交易所涉及有关各方的身份。目前,香港有两间根据《电子交易条例》(第553章)获得认可的核证机关。根据《电子交易条例》,邮政署署长是认可核证机关,提供香港邮政核证机关服务,而电子核证服务有限公司则是根据《电子交易条例》下核证机关自愿认可计划获得认可的商营核证机关。 
  6. ^ 《電子交易條例》(第553章). 政府信息技术总监办公室. 2017-06-30 [2017-07-18]. (原始内容存档于2017-06-29) (中文(香港)). 政府于2000年1月制定《电子交易条例》(第553章)(“条例”),并于2004年6月作出修订。大体上,条例旨在:赋予电子纪录及电子签署(请看下文的注释1)跟纸张文件上的纪录和签署同等的法律地位;以及设立核证机关自愿认可计划以加强社会人士对电子交易的信心。(注释1︰就不涉及政府单位的电子交易而言,任何形式的电子签署,只要可靠恰当并获签署的接受人认同,已能符合法律有关签署的规定。就涉及政府单位的电子交易而言,有认可数字证书证明的数字签署,便符合法律上的签署规定。) 
  7. ^ 電子簽章法. 中华民国法务部全国法规数据库工作小组. 2001-11-14 [2017-07-18]. (原始内容存档于2020-08-08) (中文(台湾)). 依法令规定应签名或盖章者,经相对人同意,得以电子签名为之。 
  8. ^ 什麼是「您的連線並不安全」?. mozilla.org. [2017-07-07]. (原始内容存档于2020-08-20). Firefox 会检验网站证书的正确性以及连线的加密强度以确保您的隐私。如果证书无法被验证,或连线使用了不够强的加密算法,Firefox 会中断与网站的连线,并显示下列错误页面……自我签署的证书能保护您的资料免受窃听,但无法让您确认资料的接收者是谁。常见于无法公开连线的企业内部网,您可以对这类网站忽略此警告。 
  9. ^ 關於香港郵政電子證書. 香港邮政. [2017-07-12]. (原始内容存档于2020-08-20). 香港邮政在二零零零年成立香港第一家在《电子交易条例》(香港法例第553章)下的认可公共核证机关。现时,香港邮政核证机关发出符合电子交易条例要求的“认可数字证书”。根据《电子交易条例》,使用该条例下认可的数字证书作出的数字签署与书面的签署具同等法律效力。 
  10. ^ Repository of Documentation and Certificates. Google Trust Services. [2017-07-10]. (原始内容存档于2020-12-19) (英语). The Google Public Key Infrastructure (“Google PKI”), has been established by Google Trust Services, LLC (“Google”), to enable reliable and secure identity authentication, and to facilitate the preservation of confidentiality and integrity of data in electronic transactions. 
  11. ^ 內政部憑證管理中心. 内政部证书管理中心. [2017-07-10]. (原始内容存档于2020-05-09) (中文). 内政部证书管理中心是电子化政府信息安全基础建设计划之一,是一个我国电子签名法所谓的“证书机构”,负责签发我国满 18岁以上国民之公钥证书, 并提供其他自然人之电子化政府应用服务网络通信的安全基础。 
  12. ^ Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile. IETF. [2017-07-10]. (原始内容存档于2018-03-15) (英语). This section presents a profile for public key certificates that will foster interoperability and a reusable PKI. This section is based upon the X.509 v3 certificate format and the standard certificate extensions defined in [X.509]. [...] This section also defines private extensions required to support a PKI for the Internet community. 
  13. ^ Mac OS X 10.6: 關於憑證格式. 苹果电脑. [2017-07-18]. (原始内容存档于2018-03-17) (中文(台湾)). 
  14. ^ About the CA/Browser Forum. CA/浏览器论坛. [2017-07-14]. (原始内容存档于2016-01-27) (英语). the CA/Browser Forum advances industry best practices to improve the ways that certificates are used to the benefit of Internet users and the security of their communications 
  15. ^ Automated Certificate Management Environment (acme). IETF. [2017-07-12]. (原始内容存档于2020-10-28) (英语). ACME certificate management must allow the CA to verify, in an automated manner, that the party requesting a certificate has authority over the requested identifiers, including the subject and subject alternative names. The processing must also confirm that the requesting party has access to the private key that corresponds to the public key that will appear in the certificate. 
  16. ^ Information for the Public/Domain Validation (DV). CA/浏览器论坛. [2017-07-12]. (原始内容存档于2020-11-06) (英语). A Domain Validated SSL certificate is issued after proof that the owner has the right to use their domain is established. This is typically done by the CA sending an email to the domain owner (as listed in a WHOIS database). Once the owner responds, the certificate is issued. [...] The certificate only contains the domain name. Because of the minimal checks performed, this certificate is typically issued quicker than other types of certificates. 
  17. ^ About EV SSL. CA/浏览器论坛. [2017-07-12]. (原始内容存档于2020-10-25) (英语). The primary objectives of an EV SSL Certificate are to: Identify the legal entity that controls a web site by providing reasonable assurance to the user of an Internet browser that the web site the user is accessing is controlled by a specific legal entity identified in the EV Certificate by name, address of Place of Business, Jurisdiction of Incorporation or Registration and Registration Number or other disambiguating information 
  18. ^ 我怎麼知道是否連上安全的網站?/綠色鎖頭. mozilla.org. [2017-07-12]. (原始内容存档于2020-08-20) (中文(台湾)). 绿色锁头图标将另外以绿色字体呈现公司或组织的名称,代表该网站使用了 Extended Validation (EV) certificate。与其他类型的证书相较,EV 属于特别的网站证书,需完成极繁复的检验程序。/在使用 EV 证书的网站,站点标识按钮会显示绿色锁头、合法的公司或组织的名称和网站拥有者的位置,因此你可以知道是谁在营运这个网站。举例来说,站点标识按钮会显示 mozilla.org 是由 Mozilla 基金会所拥有。 
  19. ^ 476766 - Add China Internet Network Information Center (CNNIC) CA Root Certificate. bugzilla.mozilla.org. [2020-01-03]. (原始内容存档于2020-02-22) (英语). 
  20. ^ CNNIC发行的中级CA发行了Google的假证书. solidot. 2015-03-24 [2015-03-24]. (原始内容存档于2015-03-26). 
  21. ^ 编程随想. CNNIC 证书的危害及各种清除方法. [2015-03-24]. (原始内容存档于2015-03-25). 
  22. ^ 最危险的互联网漏洞正在逼近. [2015-03-26]. (原始内容存档于2015-11-21). 
  23. ^ 谷歌不再承認中國CNNIC頒發的信任證書. 华尔街日报. 2015-04-03 [2015-04-03]. (原始内容存档于2015-04-07). 
  24. ^ 谷歌不再信任中国CNNIC 的网站信任证书. 美国之音. 2015-04-03 [2015-04-03]. (原始内容存档于2015-04-05). 
  25. ^ Mozilla紧随谷歌 拒绝承认中国安全证书. 美国之音. 2015-04-04 [2015-04-04]. (原始内容存档于2015-04-10). 
  26. ^ 谷歌宣布开始全面封杀使用沃通CA证书网站,信誉破产的恶果 - 超能网. www.expreview.com. [2020-01-03]. (原始内容存档于2020-08-20). 
  27. ^ CA:WoSign Issues - MozillaWiki. wiki.mozilla.org. [2020-01-03]. (原始内容存档于2016-10-28).