美文网首页加密
数字证书应用详解

数字证书应用详解

作者: believablehua | 来源:发表于2018-04-21 17:13 被阅读20次

    上一篇文章谈到了数字签名的原理和验证流程,也提到了用户在无法确定发布者公钥的情况下,是无法通过数字签名验证文件/消息的正确性的。所以就要用到数字证书(digital certificate)。数字证书的作用只有一个:证明验证公钥的真实性

    举一个例子,假如你是招聘人员,要招一个清华大学毕业生,你如何确定应聘者是清华大学毕业的?对方拿出毕业证书,你就能确定了吗?当然不行,因为证书还有造假的呢。但是没有关系,每个学历证书都有一个证书编号,你可以在权威网站“学信网”上输入证书编号来验证证书的真伪。

    所以,要想验证对方身份的学历,必须满足2个条件:1) 对方要提供证书;2) 证书可以被权威机构验证。

    同理,用户想要验证公钥的真实性,也要满足2个条件

    (1) 发布者要提供的数字证书;

    (2) 数字证书可被验证;

    数字证书内容

    好了,那么我们先看看数字证书的主要内容包括什么:

    数字证书内容

    证书颁发机构

    全称是数字证书认证机构(certificate authority,简称CA),是负责发放和管理数字证书的机构。作为网络中受信任的第三方,承担着验证证书的责任。我们的操作系统安装之初就已经预装了顶级CA机构的数字证书。如图所示

    操作系统内预装的证书

    CA是分层级的,最顶层的CA的证书被称为根证书,根证书不需要其他机构为其签名背书,是直接受系统信任的。由根证书信任的下一级证书也会被系统信任,由下一级证书信任的下下一级证书也会被信任。这就形成了一条信任链。如下图,“Alipay Trust Network”就是根证书,其颁发的下一级证书“Alipay.com Corporation Machine CA”也是被系统信任的,再下一级证书也是被信任的。

    证书信任链

    证书生成流程

    好了,我们来说一下数字证书的制作流程,继续使用上一篇文章的例子,假如A要发布一款软件,为了能让系统验证软件的正确性,A必须要找证书机构申请证书,以证明自己的公钥是真实的:

    数字证书制作过程

    通过图中的流程,数字证书就制作好了。

    数字签名生成过程

    拿到了证书,A再对软件进行数字签名,过程如下

    签名过程

    签名制作好,和证书一起附在软件上,发布到网上。

    文件的验证过程

    任何人都可以对软件进行验证了,验证过程如下:

    (1) 用户首先对数字证书进行验证。

    证书验证过程

    (2) 证书验证通过,意味着A的公钥是真实可信的。然后使用A的公钥验证软件的数字签名

    签名验证过程

    数字签名仍然OK,则证明软件是由A发布的,并且没有被篡改。

    文件验证流程是这样的,数字证书还有另外一个作用,就是验证网站的真实性

    网站与https

    我们在浏览网站时,也会对网站进行类似的验证,以防掉入钓鱼网站的陷阱。不知你是否注意到,我们浏览网站是,网址的大多以“https://”开头,并且旁边会有一个锁头的提示图标,如图

    谷歌浏览器地址栏 360浏览器地址栏

    https的全称是超文本传输安全协议,网址以“https:”开头意味着你和网站的通讯是加密的,旁边的绿色锁头代表加密通讯状态是非常安全的。几乎所有网址在传输隐私信息时,都会使用https协议进行传输。在涉及个人隐私的网站(比如购物网站,网银,邮箱,社交网站),一定要注意网址是否已“https://”开头,比如139邮箱默认是不使用加密连接的,谷歌浏览器会提示这种连接不安全,如图

    未使用加密连接

    这种情况下,你输入的密码是以明文方式传输的,很容易泄露。解决的办法就是在网址前手动加上“https://”,如图

    启用加密连接

    即使我们使用“https://”网址,发现地址栏旁边变成了叹号,我们点击“叹号”,看看显示什么内容

    安全提示

    原来是图片传输没有启用加密,也就是说你上传图片是会被第三方看到的。看来139邮箱不适合作为个人隐私邮箱使用哈。

    https网站的真实性验证

    只要网址开头是“https”就一定是安全的吗?也不是,钓鱼网站也可以启用https开头的网址,假冒银行的网址,窃取你的账户密码。但是幸运的是我们可以使用数字证书来验证https开头的网址是否合法。

    网站要支持https协议,必须提供数字证书供浏览器验证,验证流程如下:

    (1) 服务器向浏览器发送数字证书,以证明网站公钥是真实的

    网站数字证书

    (2) 浏览器验证数字证书的真实性,验证过程与前文的软件验证过程相同;

    (3) 浏览器确认了网站公钥的真实性,发给网站一个字符串,要求网站用私钥进行数字签名。自己再对签名进行验证,最终确认网站身份,如图所示

    (4) 浏览器创建对称加密密钥(前文说过,对称加密密钥适用于加密通讯),用公钥加密发给服务器,服务器接收并用私钥解密出对称加密密钥。之后双方就开始进行加密通讯。

    加密通讯建立过程

    以上是数字证书在验证网站真实性的应用。

    总结一下,数字证书的本质作用就是:验证对方的公钥是真实的。而数字签名起作用的前提是对方的公钥是真实的。所以,数字证书与数字签名结合可以实现对软件和网站的验证。

    相关文章

      网友评论

        本文标题:数字证书应用详解

        本文链接:https://www.haomeiwen.com/subject/bgqzkftx.html