浅谈数字证书
数字证书一般由认证机构服务者签发,也就是常说的CA机构(Certificate Authority,证书授权),所以数字证书,也叫CA证书。
数字证书格式(包含的内容)
数字证书的格式普遍采用的是 X.509 V3 国际标准,一个标准的 X.509 数字证书包含以下一些内容:
- 证书的版本信息;
- 证书的序列号,每个证书都有一个唯一的证书序列号;
- 证书所使用的签名算法;
- 证书的发行机构名称,命名规则一般采用X.500格式;
- 证书的有效期,通用的证书一般采用UTC时间格式,它的计时范围为1950-2049;
- 证书所有人的名称 (Subject),命名规则一般采用X.500格式;
- 证书所有人的公钥;
- 证书发行者 (Issuer) 对证书的签名。
简单的来说,数字证书的作用,就是在加密网络通讯中,用来证明对方或自身身份的合法性。
那么问题就来了,证明合法性的方式是什么?由谁来证明?
百度百科上对其的解释是:
CA(Certificate Authority,证书授权)是由认证机构服务者签发,是数字签名的技术基础保障,也是网上实体身份的证明,能够证明某一实体的身份及其公钥的合法性,证明该实体与公钥二者之间的匹配关系。
证书是公钥的载体,证书上的公钥与实体身份相绑定。一个是签名证书现行的PKI机制一般为双证书机制,即一个实体应具有两个证书、两个密钥对,其中一个是加密证书,一个是签名证书,而加密证书原则上是不能用于签名的。
在电子商务系统中,所有实体的证书都是由证书授权中心即CA中心颁发并签名的。一个完整的、安全的电子商务系统必须建立一个完整的、合理的CA体系。CA体系由证书审批部门和证书操作部门组成
其他解释:
数字证书更确切的叫法应该是叫公钥证书,数字证书只是大家约定俗成的叫法,数字证书就是公钥证书。
合法性的证明方式——公钥
身份合法性的证明通过数字证书(公钥证书)来完成。
而数字证书的证明方式就是,证明在非对称加密中所要使用到的公钥,确实是属于某个实体的(个人、网站或者机构等),且该实体是真实可靠的,而不是冒牌货,即:
证明某一实体的身份及其公钥的合法性,证明该实体与公钥二者之间的匹配关系。
其本质就是:
证书是公钥的载体,证书上的公钥与实体身份相绑定。
谁来证明
某一实体的身份及其公钥的合法性,由证书签发机构给予证明,显然证书签发机构(CA机构)应该是第三方的,大家认可的,具有可信度的机构。
CA机构承担着公钥体系中公钥合法性的检验责任,国家认可的CA机构,可在工信部的官方网站上查询到
这些机构在国内是受到认可的,但在国际上不一定,因此还存在一些国际认可度较高的CA机构,它们的证书申请费用也是显而易见的会高出许多。目前全球较大的5家SSL证书发行商是: Symantec (收购VeriSign SSL证书业务)、Geotrust、Thawte、COMODO。
CA证书的种类
实际上,某一实体的合法性,是否真实存在等信息是比较难核实的,或者是需要花费代价才能鉴别的,所以数字证书的种类根据安全性分为三种:
CA证书的种类(3种)
安全证书主要分为DV、OV和EV三个种类,对应的安全等级分别为低、中、高。正常情况下,一个合法的数字证书需要经过CA签名,这需要认证域名并支付一定的费用,三者的审核过程、审核标准和对应的域名数量不同,价格在几百元到几万元不等。
选择签发机构时,最好选择行业认可的全球范围内都可以使用的 CA 机构签发的证书。目前我们国内的证书能够符合标准的还不是特别多,主要原因是有一些证书不能够被国外的浏览器所认可,在使用的时候需要进行一定的额外操作。
DV SSL: 只验证网站域名所有权的简易型(Class 1级)SSL证书,可10分钟快速颁发,能起到加密传输的作用,但无法向用户证明网站的真实身份。目前市面上的免费证书都是这个类型的,只是提供了对数据的加密,但是对提供证书的个人和机构的身份不做验证,只要你能向CA机构证明你拥有这个域名的管理权限就可以申请。
OV SSL: 提供加密功能,对申请者做严格的身份审核验证。和DV SSL的区别在于,OV SSL 提供了对个人或者机构的审核,能确认对方的身份,安全性更高,但是收费。
EV SSL: 最安全、最严格的 SSL 证书,遵循全球统一的严格身份验证标准,是目前业界安全级别最高的顶级(Class 4级)SSL证书。常用于金融证券、银行、第三方支付、网上商城等领域,重点强调网站安全、企业可信形象的网站,涉及交易支付、客户隐私信息和账号密码的传输。这部分的验证要求最高,申请费用也是最贵的。
CA证书的类型(3种)
单域名版:只保护一个域名。
多域名版:可以保护多个域名。
通配符版:保护同一个主域名下同一级的所有子域名,不限个数。通配符版只有 DV 和 OV 具有,EV 不具有通配符版本。
关于公钥和加密通讯
公钥的概念来源与非对称加密,非对称就是对明文的加密和解密用的不是同一个密钥,即公钥和密钥。非对称加密在通讯领域有着重要地位,常用的分对称加密算法有RSA 、DSA 、DH等。
在加密通讯中,通讯双方分别有一对公钥和密钥,发送方使用从接收方获取到的公钥加密(如通过读取证书获得),接收方对加密报文使用自己的私钥来解密得到明文。
这也就是为什么通信双方各有一对自己的公私钥的原因,因为发送和接收方可能会是身份互换的双向通信。
同时发送方可使用公钥加密发送数字签名,接收方将私钥解密后得到的数字签名,并于与报文的hash值比较,从而判断报文是否完整或者被篡改。
关于数字签名
数字证书的内容里面还包含了证书发行者对证书的签名,其目的是保证证书不会被篡改。
数字签名是附加在报文上的特殊加密校验码,即所谓的校验和,其中利用了非对称加密密钥加密技术。数字签名的主要作用是防止报文被篡改,一旦报文被攻击者篡改,通过将其与校验和进行匹配,可以立刻被接收者发现。数字签名的过程如下图所示:
总结
网络通讯中存在了三种风险,窃听、篡改、冒充风险。
窃听风险:通过对称加密、非对称加密技术解决。
篡改风险:通过数字签名技术解决。
冒充风险:通过数字证书技术解决。
数字证书保证了公钥的合法性,而公钥是非对称加密、数字签名的技术基础,所以可以说
数字证书(公钥证书)是安全加密通讯技术的基础保障
关于自签名证书
既然我们知道了证书的内容及原理,在项目开发过程中我们经常也需要使用SSL通讯协议,但是又没有必要、或者不想花费代价去申请证书。那么我们可以自己生成自签名的证书,这种证书虽然不被官方认可,不能对外服务,但是可用于开发调试、内部使用。
自签名证书在线生成工具:
https://myssl.com/csr_create.html
https://www.chinassl.net/ssltools/generator-csr.html
附录2 证书申请过程
参考链接:
https://blog.51cto.com/u_15087084/2598254
https://blog.csdn.net/qq_35760825/article/details/126356658
https://blog.csdn.net/qq_38265137/article/details/90112705
https://www.chinassl.net/