数字证书
为了防止遭受中间人攻击,需要第三方机构来保证公钥的真实性,这个第三方机构就是 CA (Certificate Authority),证书中心。
CA 用自己的私钥对信息原文所有者发布的公钥和相关信息进行加密,加密后的内容就是数字证书。
信息原文的所有者以后发布信息时,不再直接发布自己的公钥,需要带上自己的签名,以及CA颁发的数字证书。信息的接收者先用 CA给的公钥解出信息所有者的公钥,这样可以保证信息所有者的公钥是真正的公钥,然后再通过该公钥证明数字签名的真实性。
我们平常接触数字证书最多的场景就是网页浏览,现在很多网站都使用HTTPS协议,对用户和网站之间传输的数据进行加密,防止用户的密码、信用卡等信息被攻击者截获,还可以很好地防范钓鱼、诈骗等恶意网站。网站需要向CA机构申请一种数字证书叫SSL证书,网站安装SSL证书后即可使用HTTPS协议。
用户在浏览该网站时,浏览器用CA机构的公钥解开了网站的数字证书。点击浏览器地址栏的锁头图标,可看到SSL证书内容,下图为本站的数字证书:
数字证书记录了CA机构名称、网站地址、名称、公钥、加密算法、证书有效期等信息,有了这些信息,就能确定网站的真实性,同时能保证用户和网站之间的通信安全。
CA机构
我们看到,这个CA机构类似于公证处,数字证书就像公证处开的证明,证明某个公钥属于某个信息发布者。
那问题来了,我们如何获得CA机构的公钥,会不会有人冒充CA然后发布伪造的公钥呢?
(1)如何获得CA机构的公钥?
互联网领域,这个问题由操作系统或浏览器厂商来解决,不论是 windows、linux、android 还是 macos、ios,都会内置一份 CA 公钥列表(也叫CA根证书),只有系统内置的CA机构签发的证书才是有效证书。但如果电脑系统中毒或者被入侵,那么这些根证书可能被添加或者修改,这时的数字签名的安全性无法保障了。
(2)会不会有人冒充CA然后发布伪造的公钥呢?
确实会的,也曾经发生过。
公证处由司法局批准设立,那CA机构有没有相应的批准审核部门或有公信力的第三方认证机构呢?
国际的权威认证叫WebTrust,WebTrust 是由全球两大著名注册会计师协会 AICPA(美国注册会计师协会)和 CICA(加拿大注册会计师协会)共同制定的安全审计标准,也是电子认证服务行业中唯一的国际性认证标准,主要对互联网服务商的系统及业务运作逻辑安全性、保密性等共计七项内容进行审查和鉴证。
WebTrust 认证是各大主流浏览器厂商支持的标准,是规范 CA 机构运营服务的国际标准,只有通过 WebTrust 国际安全审计认证,根证书才能预装到主流的浏览器内。
通过WebTrust认证的国外知名CA机构有Sectigo、GlobalSign、GeoTrust、Digicert、Entrust等公司,国内有CFCA(中国金融认证中心)、GDCA(数安时代科技股份有限公司)。
国内CA机构的设立,需要获得工信部的行政许可,截至2024年11月01日,批准设立的CA 机构有59家,我整理了这59家的CA机构列表。最新的名单可以登录工业和信息化部政务服务平台,在业务分类下,找“行政许可”,列表中选择“电子认证服务”,即可查看全部机构。
CA机构除了可以向网站颁发SSL证书,更多的业务是向政府、机构、企业、自然人等提供认证服务和信息安全服务,推出了电子签名、电子发票、生物识别签名等各类产品。
CA机构除了开具数字证书等充当公证处的功能之外,还可以在发生纠纷的时候对涉事电子证据进行认定报告,起到鉴定机构的作用。
评论区