你好,欢迎收听众享区块链大讲堂,今天我们要讲的是数字证书机制。
前几节课我们分别介绍了哈希散列算法、对称加解密算法和非对称加解密算法,本节课我们会详细的介绍一下数字证书的构成、原理以及应用。
数字证书介绍
一般来说,现实中的证书是有权威机构颁发的证明,比如我们的毕业证,学位证等等,证书上会带一个公章,来证明这个证书的合法性和有效性。在计算机体系中,也有这么一种具有一定证明能力的证书,叫数字证书。现实中公章是可以伪造的,所以只能通过法律的手段来约束证书伪造的行为。而数字证书是通过数字签名实现的数字化证书,无法被伪造。
数字证书就是一个经过证书授权中心(也就是我们通常所说的CA)颁发的带有CA签名的文件,这个文件里一般会包含公钥、公钥拥有者名称、CA机构名称、CA的数字签名、有效期、证书序列号等信息。数字证书用于在网络通信中向对方证明自己的身份以及发布自己的公钥信息。
数字证书构成
数字证书是一个电子文件,普遍采用X509V3国际标准格式。由于数字证书本身包含的内容比较多,在这仅挑选几个重点的解释一下:
Ø Issuer (证书的发布机构)
指出是什么机构发布的这个证书,也就是指明这个证书是哪个CA机构颁发的(只是颁发证书,不是指证书的使用者)。
Ø Valid from , Valid to (证书的有效期)
也就是证书的有效时间,或者说证书的使用期限。过了有效期限,证书就会作废,不能使用了。
Ø Public key (公钥)
这个我们在前面介绍非对称加密算法时介绍过,公钥是用来对消息进行加密的。这个公钥就是证书所有者的公钥。
Ø Subject (主题)
这个证书是发布给谁的,或者说证书的所有者,一般是某个人或者某个公司的名称、机构的名称、公司网站的网址等。
Ø Signature algorithm (签名所使用的算法)
就是指这个数字证书的数字签名所使用的加密算法,这样就可以使用发布本证书的CA机构证书里面的公钥,根据加解密算法对指纹进行解密,也就是验证签名操作。指纹的加密过程就是数字签名。
Ø Thumbprint, Thumbprint algorithm (指纹以及指纹算法)
这个是用来保证证书的完整性,也就是说确保证书没有被修改过。 其原理就是在发布证书时,发布者根据指纹算法(一个hash算法)计算整个证书的hash值并和证书放在一起,这里的hash就是指纹。使用者在打开证书时,自己也根据指纹算法计算一下证书的hash值,如果和证书中的值对得上,就说明证书没有被修改过,因为证书的内容被修改后,根据证书的内容计算的出的hash值是会变化的。Hash值就是指纹,注意,这个指纹会使用CA机构的私钥用上面所对应的签名算法加密后和证书放在一起。
以上几点,就是一个数字证书的主要构成部分。
数字证书的申请
我们在了解了证书的概念和构成之后,再来了解一下如何才能得到一个数字证书。一般来说,想要得到一个在互联网上对外开放的证书需要向一个第三方权威可信的CA机构申请,当然,这个申请需要支付一定的费用,我们举个例子。
假设Peersafe公司需要一个对公使用的证书,那么我们可以花费1000元向一个叫SafeCA的机构申请一张证书,证书的有效期为1年。在这需要注意的是,这个SafeCA机构是一个被大家公认可靠的第三方证书颁发机构,也就是说在我们日常使用的计算机操作系统或浏览器中已经预置了这个机构的根证书。然后,SafeCA机构就把“证书颁发机构”、“公钥”、“证书有效期”等证书相关的信息写到证书中,再通过指纹算法计算出一个指纹,并把指纹和指纹算法通过自己的私钥加密,然后和证书的内容一同发布,最后,SafeCA还会把我们Peersafe公司证书对应的私钥给我们……
领取专属 10元无门槛券
私享最新 技术干货