https://blog.csdn.net/abinge317/article/details/51791856

RSA非对称加密的2个用途:

加密(防窃听)

RSA非对称加密会用到一对密钥,分别称为公钥和私钥,公钥加密之后的数据可以通过私钥来进行解密,私钥加密的数据也同样可以用对应的公钥进行解密。在web数据传输过程中,由于客户端和服务器端是多对一的关系,因此可以让所有的客户端持有相同的公钥,服务器持有私钥,这样一来就能方便地实现数据的加密传输。

签名(防篡改)

由于私钥只在某一个体手中,因此可以通过这一点来进行身份识别。比如用户A和B分别有一对密钥中的私钥和公钥,现在A向B发送消息”abc”,可进行如下操作:A用私钥对该文本进行加密之后变成密文”#¥%”,并附加上原文,组合成文本”#¥%:abc”(冒号起分隔作用,并无其他含义,具体实现中可自行处理)一起发送,B接收到该文本之后利用公钥对密文进行解密,将得到的解密后文本与传送过来的文本”abc”之间进行比对,如果一切正常,那么公钥解密之后的文本就是私钥加密之前的文本”abc”,比对结果一致,因此可以说明这段”abc”文本确实是A发送过来的,因为只有A才有对文本进行签名的私钥。能得到这个结论的前提是——A所用的私钥跟B所用的公钥确实是一对。

假如在传送途中别人篡改了”abc”,改成”aaa”,由于中间人没有A所持有的私钥,因此无法对篡改之后的数据生成新的正确签名,那么B在收到数据之后用公钥进行解密,再与传送的文本进行比对的话就不会一致。或者中间人篡改了数据之后用另一私钥对篡改之后的数据进行签名,同样由于B没有中间人的私钥对应的公钥,因此比对也不会一致。记住一点:B的公钥所对应的私钥只在A的手中,因此比对一致就说明该文本来自A。

https如何保证安全?

如何保证客户端所持有的公钥就是某合法服务器声明的公钥?

如果不能保证这一点,那么客户端发送的信息就有可能存在被窃听的危险,因为用此公钥加密的数据可以被其对应的私钥拥有者获取,而该私钥并不在客户端所认为的服务器上。 
因此可采用一个权威机构进行证书的颁发,所谓证书就是包含了服务器声明的公钥以及组织名称等信息,这里我们只考虑最关键的公钥信息。该权威机构会对申请证书的组织进行审核,确保其身份合法,然后将服务器公钥信息发布给客户端,客户端可利用该公钥与对应的服务器进行通信。整个过程可归纳为以下几步: 
1、服务器生成一对密钥,私钥自己留着,公钥交给数字证书认证机构(CA) 
2、CA进行审核,并用CA自己的私钥对服务器提供的公钥进行签名(参照上文RSA签名) 
3、客户端从CA获取证书(即服务器端公钥),用CA的公钥对签名的证书进行验证,比对一致,说明该服务器公钥确实是CA颁发的(得此结论有一个前提就是:客户端的CA公钥确实是CA的公钥,即该CA的公钥与CA对证书进行签名的私钥确实是一对。参照上文RSA签名中所论述的情况),而CA又作为权威机构保证该公钥的确是服务器端提供的,从而可以确认该证书中的公钥确实是合法服务器端提供的

注:为保证第3步中提到的前提条件,CA的公钥必须要安全地转交给客户端,因此,CA的公钥一般来说由浏览器开发商内置在浏览器的内部。于是,该前提条件在各种信任机制上,基本保证成立。

由此可见:所谓的安全的HTTP,其实也是要建立在信任的机制上。

总结:整个过程涉及2对公私密钥对,一对由服务器产生,用于加密,一对由CA产生,用于签名。 
整个过程还涉及2个信任:客户端信任CA,CA发布的证书中的公钥就是合法服务器的公钥。客户端信任浏览器内置的CA公钥就是与CA私钥对应的公钥。最后要说明的是,非对称加密在https中只是用来对对称加密密钥进行协商的过程才使用,在两端协商完对称加密的密钥之后,数据的加密传输均采用对称加密的方式。

水平有限,如有不当之处,还望指正!

数字证书认证过程(https为例)相关推荐

  1. SSL数字证书认证的过程

    数字证书是由权威的数字证书颁发机构所发行的,用来识别人们在网上的身份.数字证书作用就相当于现实中的营业执照或者是身份证,经由数字证书认证的网站就想当于给自己的网站部署了执照,能够让人们充分信任该站点, ...

  2. OpenSSL证书认证过程

    OpenSSL证书认证过程 游戏服务端这块,之前是很少用SSL的,毕竟游戏里的数据没有什么保密的必要,登录.充值也是传输签名,不涉及密码什么的.不过这几年,HTTPS普及得比较快,H5游戏发展迅速.H ...

  3. 细说IPSec 密钥交换,(数字证书认证、PSK、数字信封)

    前文介绍IPSec和IKE已经很清晰了,可以查看一张图认识IPSec,区分IKE SA(ISAKMP SA)和IPSec SA. 本文主要介绍在IKE动态协商方式建立IPSec隧道时的基本工作原理. ...

  4. 网络电话服务器安全认证管理系统,CA 数字证书认证系统建设解决方案

    方案介绍 CA数字证书认证系统是信息系统安全基础设施,在企业内部建设CA数字证书认证系统后,签发的数字证书可作为业务系统用户的身份认证凭证,并能对关键交易进行签名,实现防抵赖和防篡改.同时制定统一的安 ...

  5. 北京数字认证股份有限公司-数字证书认证管理解决方案

     数字证书认证管理解决方案 refurl:http://www.bjca.org.cn/solutions/zsszzsgl 一.方案背景 加强以密码技术为基础的信息保护和网络信任体系,规范和加强 ...

  6. 天威诚信-数字证书认证系统iTrusCA

    iTrusCA数字证书认证系统 refurl: http://www.itrus.com.cn/2014/0915/1091.html 1.产品简介 天威诚信数字证书认证系统(下文简称"iT ...

  7. Symantec赛门铁克支持型SSL服务器证书_网站安全SSL数字证书认证

    2010年8月,赛门铁克(Symantec)收购VeriSign,VeriSign认证服务.VeriSign SSL证书.代码签名证书以及VeriSign信任签章服务现均由赛门铁克提供.作为过渡环节之 ...

  8. NginX下Openssl的构建和部署数字证书,支持HTTPS

    一.安装 OpenSSL OpenSSL官网地址 wget https://www.openssl.org/source/openssl-1.0.2n.tar.gztar -zxvf openssl- ...

  9. PKI-CA数字证书验证过程

    签名:私钥 加密 HASH值. 公钥解密 加密数据:公钥加密,私钥解密. 数字证书:CA 颁发者 有效期 使用者 序列号 公钥 指纹算法 指纹 注:CA证书服务器 身份号码 照片 CA机构签名 第一阶 ...

最新文章

  1. 联想x250为什么这么贵_为什么ThinkPad这么贵?
  2. 画出HTML DOM对象层次图。文档对象document有哪些常用的属性和方法?
  3. NLP 笔记:Skip-gram
  4. linux 中 alien命令的使用
  5. 高速旋转中隐藏着许多鲜为人知的秘密,这些你都知道吗?
  6. 23套新鲜出炉的网站和手机界面 PSD 素材
  7. datatables.js 简单使用--多选框和服务器端分页
  8. Asterisk配置文件说明
  9. Linux 性能检查命令总结
  10. matlab %3c handle,volume browser (updated).htm 源代码在线查看 - Matlab显式三维地震数据的源代码 资源下载 虫虫电子下载站...
  11. 基于 HanLP 的 ES 中文分词插件
  12. 【elasticsearch】如何部分更新文档 (partial update的使用)
  13. C++表白代码--Beating heart
  14. Lintcode: Implement Queue by Stacks 解题报告
  15. django 轮播图上传_拼多多规则更新:关于【商品轮播图】你所不知道的秘密!...
  16. DTU有什么用?工业级DTU的特点是啥?
  17. jQuery fadeIn() 方法
  18. Vue + Element UI 实现权限管理系统(更换皮肤主题)
  19. 淘宝请求参数spm是做什么用的
  20. 虚拟机装的XP,无法上网,因为没有安装网卡驱动,怎么解决

热门文章

  1. 2021-2027全球与中国皮肤美白产品市场现状及未来发展趋势
  2. android:orientation = quot;horizontalquot; 和 android:orientation = quot;verticalquot;
  3. 为什么黑客不黑/攻击赌博网站?如何入门黑客?
  4. 房东可不可以出售房屋为由解除房屋租赁合同
  5. NODE.JS项目实战
  6. 超声波测距,1602显示距离
  7. XNA游戏:横竖屏设置
  8. 格林威治时间转换成字符串
  9. Git fatal: Authentication failed的问题解决
  10. asp.net爱厨房美食菜谱系统