公开密钥认证(英语:Public key certificate),又称公开密钥证书、公钥证书、数字证书(digital certificate)、数字认证、身份证书(identity certificate)、电子证书或安全证书,是用于
公开密钥基础建设的电子文件,用来证明
公开密钥拥有者的
身份。此文件包含了公钥信息、拥有者身份信息(主体)、以及数字证书认证机构(发行者)对这份文件的
数字签名,以保证这个文件的整体内容正确无误。拥有者凭着此文件,可向计算机系统或其他用户表明身份,从而对方获得信任并授权访问或使用某些敏感的计算机服务。计算机系统或其他用户可以透过一定的程序核实证书上的内容,包括证书有否过期、数字签名是否有效,如果你信任签发的机构,就可以信任证书上的密钥,凭公钥加密与拥有者进行
可靠的通信。
简介
公开密钥认证(英语:Public key certificate),又称公开密钥证书、公钥证书、数字证书(digital certificate)、数字认证、身份证书(identity certificate)、电子证书或安全证书,是用于
公开密钥基础建设的电子文件,用来证明
公开密钥拥有者的
身份。此文件包含了公钥信息、拥有者身份信息(主体)、以及数字证书认证机构(发行者)对这份文件的
数字签名,以保证这个文件的整体内容正确无误。拥有者凭着此文件,可向计算机系统或其他用户表明身份,从而对方获得信任并授权访问或使用某些敏感的计算机服务。计算机系统或其他用户可以透过一定的程序核实证书上的内容,包括证书有否过期、数字签名是否有效,如果你信任签发的机构,就可以信任证书上的密钥,凭公钥加密与拥有者进行
可靠的通信。
数字证书的其中一个最主要好处是在证认拥有者身份期间,拥有者的敏感个人数据(如出生日期、身份证号码等)并不会传输至索取数据者的计算机系统上。透过这种数据交换模式,拥有者既可证实自己的身份,亦不用过度披露个人数据,对保障计算机服务访问双方皆有好处。
人们透过信任数字证书认证机构的
根证书、及其使用
公开密钥加密作数字签名核发的公开密钥认证,形成
信任链架构,已在
TLS实现并在
万维网的
HTTP以
HTTPS、在
电子邮件的
SMTP以
STARTTLS引入并广泛应用。业界现行的标准是国际电信联盟电信标准化部门制定的
X.509,并由
IETF发行的
RFC5280详细述明。而在不少先进国家和地区,都已立法承认使用数字证书所作的数字签名拥有等同亲笔
签名的法律效力(如
欧洲联盟、中国
香港、中国
台湾)。
证书种类
自签证书
在用于小范围测试等目的的时候,用户也可以自己生成数字证书,但没有任何可信赖的人签名,这种自签名证书通常不会被广泛信任,使用时可能会遇到计算机软件的安全警告。
根证书
根证书也是一种自签证书,但是获得广泛认可,通常已预先安装在各种软件(包括
操作系统、
浏览器、电邮软件等),作为
信任链的起点,来自于公认可靠的政府机关(如
香港邮政)、软件公司(如Google、Let's Encrypt)等,与各大软件商透过严谨的核认程序才在不同的软件广泛部署。由于部署程序复杂费时,需要行政人员的授权及机构法人身份的核认,一张根证书有效期可能长达十年以上。在某些企业,也可能会在内部计算机自行安装企业自签的根证书,以支持
内部网的企业级软件;但是这些证书可能未被广泛认可,只在企业内部适用。
中介证书
认证机构的一个重要任务就是为客户签发证书,虽然广泛认可的认证机构都已拥有根证书,相对应的私钥可用以签署其他证书,但因为
密钥管理和行政考虑,一般会先行签发中介证书,才为客户作数字签署。中介证书的有效期会较根证书为短,并可能对不同类别的客户有不同的中介证书作分工。
授权证书
主条目:授权证书
授权证书又称属性证书,本身没有公钥,必须依附在一张有效的数字证书上才有意义,其用处是赋予相关拥有人签发终端实体证书的权力;某些情况下,如果只在短期内授予证书机构签发权力,便可以不改变(缩短)该机构本身持有的证书的有效期。这种情况,类似于某人持有长达十年期的护照,而只透过签发短期入境签证,来个别赋予护照持有人额外权力。
终端实体证书
其他不会用作签发其他证书的,都可称为终端实体证书,在实际的软件中部署,以便创建加密通道时应用。
TLS服务器证书
服务器通常以域名形式在互联网上提供服务,服务器证书上主体的通用名称就会是相应的域名,相关机构名称则写在组织或单位一栏上。服务器证书(包括公钥)和私钥会安装于服务器(例如
Apache),等待客户端连接时协议加密细节。客户端的软件(如浏览器)会运行认证路径验证算法以确保安全,如果未能肯定加密通道是否安全(例如证书上的主体名称不对应网站域名、服务器使用了自签证书、或加密算法不够强),可能会警告用户。
如果服务器证书上主体的通用名称(或主体别名)一栏以通配符前缀,则该证书可以用于旗下的所有子域名,特别适合较具规模、或设有多个子网站的机构一次过申领,套用于多个服务器上;即使未来创建新的
子域名,也可以套用。但通配符不可用于扩展认证证书上。
TLS客户端证书
有时候,某些TLS服务器可能会在创建加密通道时,要求客户端提供客户端证书,以验证
身份及控制访问权限。客户端证书包含邮箱地址或个人姓名,而不是主机名。但客户端证书比较不常见,因为考虑到技术门槛及成本因素,通常都是由
服务提供者验证客户身份,而不是依赖第三方认证机构。通常,需要使用到客户端证书的服务都是内部网的企业级软件,他们会设立自己的内部根证书,由企业的技术人员在企业内部的计算机安装相关客户端证书以便使用。在公开的互联网,大多数网站都是使用登录密码和
Cookie来验证用户,而不是客户端证书。
在台湾,中国台湾地区“
内政部”证书管理中心根据
电子签名法负责签发自然人证书,让国民在网上使用各种政府服务。
客户端证书在RPC系统中更常见,用于验证连接设备的许可授权。
内容字段
一般遵从
X.509格式规范的证书,会有以下的内容,它们以字段的方式表示:
发行者:以数字签名形式签署此证书的数字证书认证机构
有效期开始时间:此证书的有效开始时间,在此前该证书并未生效
有效期结束时间:此证书的有效结束时间,在此后该证书作废
公开密钥用途:指定证书上公钥的用途,例如数字签名、服务器验证、客户端验证等
公开密钥指纹