5

加解密与HTTPS(5)

 1 year ago
source link: https://blog.51cto.com/u_15817148/5992014
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

加解密与HTTPS(5)

精选 原创

湘王爱娟娟 2023-01-05 22:58:55 博主文章分类:技术 ©著作权

文章标签 数字证书 CA证书 互联网证书 文章分类 Java 编程语言 yyds干货盘点 阅读数207

您好,我是湘王,这是我的51CTO博客,欢迎您来,欢迎您再来~


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

1、过往经历的证明;

2、第三方信用担保;

3、唯一合法性检验。

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

加解密与HTTPS(5)_CA证书
加解密与HTTPS(5)_CA证书_02
加解密与HTTPS(5)_CA证书_03

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

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

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

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

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

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

加解密与HTTPS(5)_互联网证书_04

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

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

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

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

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

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

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

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

那么证书是怎么签发的呢?

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

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

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

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

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

就是这样的:

加解密与HTTPS(5)_互联网证书_05

怎么验证证书的真伪呢?

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

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

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

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

它的流程是:

加解密与HTTPS(5)_数字证书_06
加解密与HTTPS(5)_数字证书_07

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

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

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

DigiCert Global Root CA

Secure Site CA G2

*.alipay.com

从上到下,级别依次递减。

就像这样:

加解密与HTTPS(5)_CA证书_08

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

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

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

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

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

证书追溯的过程是这样的:

加解密与HTTPS(5)_CA证书_09

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

  • 收藏
  • 评论
  • 分享
  • 举报

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK