Java教程

加解密与HTTPS(5)

本文主要是介绍加解密与HTTPS(5),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

您好,我是湘王,这是我的慕课手记,欢迎您来,欢迎您再来~



咱们大学读完之后有毕业证书,并且这个证书可以在学信网查询专业上有注会、CCIE、律师证等,可以在国家职业认证机构或委托机构的网站上查到公司注册之后,营业执照信息也可以在天眼查或企查查上找到从上述场景中,不难发现证书的作用

1、过往经历的证明

2、第三方信用担保

3、唯一合法性检验

 

在互联网上也有证书并且还是天文数字随便举几个例子看看就知道

https://img4.sycdn.imooc.com/63b6e5d20001cbdf08900438.jpg


https://img1.sycdn.imooc.com/63b6e5d70001040808500395.jpg


https://img1.sycdn.imooc.com/63b6e5db0001330409030553.jpg


 

这就是互联网站的毕业证」。

而且还不是谁都能发这样的证书现在世界著名证书颁发机构(也叫CA证书授权中心,Certificate Authority)包括:DigiCert(某付宝的毕业证就是它发的)、Comodo、GeoTrust(阿里云的毕业证是它发的)、Symantec、RapidSSL

有了「毕业证」,就不得不提「学位证」

1、DV:域名型证书,只需要验证域名的所有权,相当于学士学位

2、OV:组织型证书,域名和组织身份都要验证,相当于硕士学位

3、EV:安全性和可信任度最高,特点是浏览器有绿色地址栏,相当于博士学位

https://img4.sycdn.imooc.com/63b6e5e60001eb4907800565.jpg


 

有了「学位证」,还要能够选修不同「专业」:通配符型、万能型、单域名型、多域名型

真实世界的证书,一般都是学校存档一份,毕业生保存一份有一些比价特殊的工艺,保证证书不可伪造及唯一性那么网络证书CA怎么保证安全性、不可伪造及唯一呢?

可以随便找一个有证书的网站,看看TA的证书「长什么样」

目前,所有证书都由四部分组成

1、主题信息:常规信息,如国家、地区、组织等

2、签发者信息:证书机构、签发者使用的签名算法

3、公钥信息包括密钥基本信息和扩展信息策略、约束、扩展域名、时间戳列表等);

4、指纹信息:SHA-1、SHA-256

 

那么证书是怎么签发的呢

1、准备证书元数据:包括签发人、地址、签发时间、有效期等,还包括证书持有者基本信息,比如DN(DNS Name)、 所有者公钥等信息

2、使用的Hash算法(如SHA-256)对证书元数据进行计算,生成数字摘要

3、使用签发人的私钥对该数字摘要进行加密,生成一个加密的数字摘要,也就是签发人的数字签名

4、将数字签名附加到数字证书上,变成一个签过名的数字证书

5、将签过名的数字证书与签发人的公钥一同发给证书使用者

就是这样的

https://img1.sycdn.imooc.com/63b6e5ef0001423704120616.jpg


 

怎么验证证书的真伪呢

1、证书使用者获通过某种途径(如浏览器访问)获取到该数字证书,解压后分别获得证书元数据和数字签名

2、使用同样的Hash算法计算证书元数据的数字摘要

3、使用签发人的公钥对数字签名进行解密,得到解密后的摘要

4、对比2和3两个步骤得到的数字摘要值,如果相同,则说明这个数字证书确实是被签发人验证过合法证书,证书中的信息(最主要的是所有者的公钥)是可信的

它的流程是

https://img1.sycdn.imooc.com/63b6e5f6000129a805150625.jpg


https://img4.sycdn.imooc.com/63b6e5fd0001bd4c07670627.jpg

 


 

关于证书的最后一个问题:证书的关键在于签发人的公钥,但如果签发人本身有问题,信用差,那谁又来替TA担保呢?就好比清北复哈的证书(文凭),谁来保证他们和野鸡大学不一样呢?

真实世界中有国家这个强力后盾为名牌大学做担保,但是互联网里没有这样的威权或公器存在,有的是证书链。

某付宝为例,TA的证书层级大概是这样:

DigiCert Global Root CA

Secure Site CA G2

*.alipay.com

 

从上到下级别依次递减

就像这样

https://img3.sycdn.imooc.com/63b6e6020001483908690404.jpg

 

这种证书层级结构就是证书链以刚才的某付宝举例它的的证书层级有三个级别

1、终端用户:就是某付宝,该证书包含某付宝的公钥,某付宝的用户支付或者调用某付宝接口,就是使用这个公钥将数据加密后再传给某付宝的

2、中间签发人:对公钥持有者身份的证书进行认证,负责确认确实是某付宝在使用终端用户证书,也就是负责确认「某付宝确实是某付宝」,这类签发人可以有很多层级

3、root:最高级别的签发人,负责认证所有中间签发人,类似于国家教育部,认证和管理下面所有的教育机构

 

为了得到终端用户的公钥,就要得到终端用户证书为了证明该证书可信,必须向上追溯该证书是否被中间签发人机构认证继续线上追溯,直到找到最终的Root CA

证书追溯的过程是这样的

https://img1.sycdn.imooc.com/63b6e6060001cb9708180613.jpg


 

感谢您的大驾光临!咨询技术、产品、运营和管理相关问题,请关注后留言。欢迎骚扰,不胜荣幸~



这篇关于加解密与HTTPS(5)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!