文章转自:https://www.2cto.com/kf/201804/739010.html,感谢原作者的辛苦整理,讲解的很清楚,谢谢。

【https数字证书交换过程介绍】

注意:该问的背景用到了非对称加密,请先了解非对称加密与对称加密的区别。

1. 鲍勃有两把钥匙,一把是公钥,另一把是私钥。

2. 鲍勃把公钥送给他的朋友们----帕蒂、道格、苏珊----每人一把。

3. 苏珊要给鲍勃写一封保密的信。她写完后用鲍勃的公钥加密,就可以达到保密的效果。

4.鲍勃收信后,用私钥解密,就看到了信件内容。这里要强调的是,只要鲍勃的私钥不泄露,这封信就是安全的,即使落在别人手里,也无法解密。

5.鲍勃给苏珊回信,决定采用"数字签名"。他写完后先用Hash函数,生成信件的摘要(digest)。这个过程是不可逆的,用Digest无法还原为原文。

6.然后,鲍勃使用私钥,对这个摘要加密,生成"数字签名"(signature)。sign指的是对Hash值进行Sign

7. 鲍勃将这个签名,附在信件下面,一起发给苏珊。

8. 苏珊收信后,取下数字签名,用鲍勃的公钥解密,得到信件的摘要。由此证明,这封信确实是鲍勃发出的,因为只有bob有私钥。

9. 苏珊再对信件本身使用Hash函数,将得到的结果,与上一步得到的摘要进行对比。如果两者一致,就证明这封信未被修改过。

10. 复杂的情况出现了。道格想欺骗苏珊,他偷偷使用了苏珊的电脑,以鲍勃名义做了公私钥对,然后用自己的公钥换走了鲍勃的公钥。此时,苏珊实际拥有的是道格的公钥,但是还以为这是鲍勃的公钥。因此,道格就可以冒充鲍勃,用自己的私钥做成"数字签名",写信给苏珊,让苏珊用假的鲍勃公钥进行解密。道格欺骗了苏珊说我就是鲍勃.

11. 后来,苏珊感觉不对劲,发现自己无法确定公钥是否真的属于鲍勃。她想到了一个办法,要求鲍勃去找"证书中心"(certificate authority,简称CA),为公钥做认证,Pat(帕蒂)碰巧是这个部门的,她负责发布管理全公司的数字证书。证书中心用自己的私钥,对鲍勃的公钥和一些相关信息一起加密,生成"数字证书"(Digital Certificate)。而证书中心发布公钥给所有人,并有权废除所有digital certificate。

12. 鲍勃拿到数字证书以后,就可以放心了。以后再给苏珊写信,只要在签名的同时,再附上数字证书就行了。

13. 苏珊收信后,用CA的公钥解开数字证书,如果成功,就证明这个数字证书是经过CA的认证的。就可以拿到鲍勃真实的公钥了,然后就能证明"数字签名"是否真的是鲍勃签的。而对道格来说,他就无法模仿Bob的签名了,因为他无法让数字证书给他做一张名为Bob的digital certificate,Pat就不会同意。

14. 下面,我们看一个应用"数字证书"的实例:https协议。这个协议主要用于网页加密。

15. 首先,客户端向服务器发出加密请求。

16. 服务器用自己的私钥加密网页以后,连同本身的数字证书,一起发送给客户端。

17. 客户端(浏览器)的"证书管理器",有"受信任的根证书颁发机构"列表。客户端会根据这张列表,查看解开数字证书的公钥是否在列表之内。

18. 如果数字证书记载的网址,与你正在浏览的网址不一致,就说明这张证书可能被冒用,浏览器会发出警告。

19. 如果这张数字证书不是由受信任的机构颁发的,浏览器会发出另一种警告。

20. 如果数字证书是可靠的,客户端就可以使用证书中的服务器公钥,对信息进行加密,然后与服务器交换加密信息。

Https数字证书交换过程介绍相关推荐

  1. SSL,HTTPS,数字证书 是什么?

    一.SSL协议简介 SSL是Secure Socket Layer的缩写,中文名为安全套接层协议层.使用该协议后,您提交的所有数据会首先加密后,再提交到网易邮箱,从而可以有效防止黑客盗取您的用户名.密 ...

  2. HTTPS/数字证书/数字签名

    HTTPS 所有的HTTP请求和响应数据都需要加密. 一个传输级的安全密码层:SSL 后继者:TLS. 我们不严格的用SSL表示SSL和TLS HTTPS是位于安全层之上的HTTP,这个安全层位于TC ...

  3. golang x509包 数字证书相关介绍

    在go语言提供的系统包中包含了大量和数字证书有关的方法.在这些方法中就有私钥生成的方法.私钥解析的方法.证书请求生成的方法.证书生成的方法等等.通过这些方法应该能够实现和openssl命令类似的功能. ...

  4. nginx配置https证书、https数字证书申请

    越来越多的第三方接入需要使用https了,很多时候不止到证书到那里免费申请,申请后怎么配置. 免费证书和收费证书主要的差别有几点 免费证书 收费证书 支持绑定域名数少 支持绑定域名数多 无保险费用 有 ...

  5. 1、【java数据安全】数据安全之加密解密(base64、MD、SHA、DES、AES、IDEA、PBE、DH、RSA、EIGamal)、数字签名(DSA、ECDSA)和数字证书介绍、应用示例详细介绍

    java数据安全 系列文章 1.[java数据安全]数据安全之加密解密(base64.MD.SHA.DES.AES.IDEA.PBE.DH.RSA.EIGamal).数字签名(DSA.ECDSA)和数 ...

  6. https证书/即SSL数字证书申请途径和流程

    国际CA机构GlobalSign中国 数字证书颁发中心网站:http://cn.globalsign.com    https证书即SSL数字证书,是广泛用 于网站通讯加密传输的解决方案,是提供通信保 ...

  7. x509数字证书介绍

    x509数字证书介绍 感谢:http://www.blogjava.net/kapok/archive/2005/09/29/14378.html 一.什么是数字证书 数字证书就是互联网通讯中标志通讯 ...

  8. 浅谈数字证书的今生前世

    浅谈数字证书的今生前世 一.概述 1.1.加密 1.2.密钥 1.3.加密算法 1.3.1.对称加密 1.3.2.非对称加密 二.数字签名和数字证书的出现 2.1."故事"背景 2 ...

  9. 数字证书SSL品牌分类总结

    为了方便大家直观的分辨,这里给大家分成了国内品牌和国际品牌两种 国产ssl证书品牌 1.JoySSl JoySSL是网盾数科自研推出的新一代https数字证书,也是目前为数不多的中国自主品牌SSL证书 ...

最新文章

  1. 零基础掌握极大似然估计
  2. python详细基础教程-Python基础教程,Python入门教程(非常详细)
  3. 【转摘】Office三剑客之间的格式互换
  4. TwoSum,从O(n^2)到O(nlogn)再到O(n)
  5. django给mysql配主从_django中的mysql主从读写分离:一、配置mysql主从分离
  6. JS组件系列——Bootstrap Table 表格行拖拽
  7. linux命令cat过滤注释行和空白行
  8. 移动端布局:视口viewport的理解
  9. log4net用法实例
  10. 正则表达式常用的js验证
  11. 前端开发中一些常用技巧总结
  12. j2ee三大框架个人理解
  13. 5-6月份线上可靠性、软件测试、信息安全培训
  14. ADAS功能中LCA、LKA、LCK...区别
  15. pythoneducoder苹果梨子煮水的功效_梨子煮水真的有润肺止咳化痰的功效吗?
  16. 知行:成长的迭代之路
  17. 教你在硬件不满足Windows 11最低硬件要求的情况下安装Windows 11(绝对有效)
  18. (一)微信小程序支付前后台
  19. 一维、二维正态分布概率密度曲线的绘制
  20. 计算机二进制转化教案及ppt,计算机《数制与编码-进制转换》公开课教案.doc

热门文章

  1. 一个破解游戏双开的问题
  2. linux在局域网中隐身
  3. Unix shell范例精解 课后题
  4. 部门人手不够时提离职,很不负责任?
  5. vs调试查看中间变量
  6. ChatGPT和一群程序员的对话,甚至出现橙色警报
  7. uni-app实战教程-----H5移动app以及小程序(四)---前后端编写,交互,百度图像识别接入
  8. 战战兢兢的第一次乘坐飞机之旅
  9. 《Python语言程序设计》之第三次平时作业解析
  10. 折叠手机和反对创新的战争