SSL全称Secure Socket Layer,安全套接字层。SSL用来保证Web浏览器与Web服务器交换信息的安全性,保证传输过程中消息的加密性。

在SSL中使用到的技术:

  1. 散列算法验证数据完整性:
    传送的数据中包含经过散列算法的到的散列值。当接收到数据时,可以通过相应的散列算法再次对数据进行计算,将计算得到的散列值与接收到的散列值进行比较,若相同,则表明数据没有被篡改。数据的完整性可以保证。
  2. 非对称加密算法交换密钥
    在ssl握手的过程中使用非对称加密算法,这样可以保证中间数据即使被劫持,对方因为没有私钥而无法得知数据内容。为什么只在握手过程中使用,而不一直在传输过程中使用,这是因为非对称加密算法的相比于对称加密算法慢的多。
  3. 对称加密算法来加密数据
    对称加密算法用在当ssl连接已经建立之后,所传输数据的加密。
  4. 数字证书证明服务器或客服端身份(网银证书就是客户端证书)
    HTTPS连接建立前通常需要通过验证服务器证书来判断当前服务器是否真是拥有用户所访问的服务器(域名)。而对于银行系统来说,服务器端需要验证当前的访问者证明自己拥有当前的账户,避免用户财产损失,这里就用到了客户端证书。证书是需要第三方权威机构颁发的(即使用了该机构公钥进行签名),浏览器对于不认识的证书颁发机构会警告。

HTTPS连接建立过程

  1. 客户端发起HTTPS连接请求,发起请求的端口号为443,请求中包含一个随机数NUM1,支持的加密协议及版本。
  2. 服务器接收到连接请求,接收到了SUM1数据并存储起来。服务器返回给客户端另一个随机数NUM2,同时向客户端传输自己的数字证书(证书包含服务端公钥)以及选定的加密协议。
  3. 客户端拿到NUM2保存,同时接收到数字证书,实例上这个证书是一个证书链,包含当前服务器证书,以及颁发该证书的第三方机构的证书,甚至包含第三方机构证书的颁发者的证书。越往上,权威性越大,直至本利浏览器默认保存的证书颁发机构。网站证书1 -> 证书1的颁发者的证书2 -> 证书2的颁发者的证书3 -> ··· -> 浏览器的根证书
    浏览器会递归的验证这些证书的有效性,首先证书中域名必须包含当前访问的地址域名。

    • 使用网站证书的颁发者的公钥对网站证书的签名字段进行验证(这里用到的就是RSA非对称加密算法),因为签名是颁发者使用自己的私钥加密生成的,使用颁发这的公钥可以解密该信息,将得到的结果与证书内容,如果一致,则表明该证书确实是该证书颁发者颁发的。如果不一致,说明签名是伪造的或者内容已被篡改。
    • 递归的使用上述方法颁发者证书的是否有效直至根证书。
  4. 上面就完成了客户端对服务器的验证,接下来,客户端再次生成一个随机数NUM3,这时使用服务器提供的公钥对NUM3进行加密得到一个加密数据secret。同时使用约定好的算法对NUM1,NUM2,NUM2进行计算生成一个对称加密的密钥。
  5. 服务器接收到secret之后,使用私钥对其解码得到NUM3,这个时候服务器也知道拥有了NUM1,NUM2,NUM3三个数字,同样可以生成对称加密的密钥。
    6.SSL握手完成,后续的通信使用对称加密密钥来进行加密。

转载于:https://www.cnblogs.com/ykli/p/9675239.html

HTTPS中SSL协议总结相关推荐

  1. SSH协议、HTTPS中SSL协议的完整交互过程

    1.(SSH)公私钥认证原理 服务器建立公钥:每一次启动sshd服务时,该服务会主动去找/etc/ssh/ssh_host*的文件 客户端通过ssh工具进行连接,如Xshell,SecureCRT 服 ...

  2. 开发微信小程序中SSL协议的申请、证书绑定、TLS 版本处理等

    在上篇随笔<基于微信小程序的系统开发准备工作>介绍了开发微信小程序的一些前期的架构设计.技术路线 .工具准备等方面内容,本篇随笔继续这个步骤,逐步介绍我们实际开发过程中对SSL协议的申请及 ...

  3. 老陈---谈Delphi中SSL协议的应用

    Posted on 2007-12-24 09:27 伯乐共勉 阅读(54) 评论(0)  编辑  收藏 所属分类: INDY与SOCKET 摘要:本文主要介绍如何在Delphi中使用SSL协议.一共 ...

  4. https中SSL加密过程详解,看这一篇就够了!

    我们所说的https实际上就是安全版本的http,是http+ssl加密实现的. SSL握手协议 1.客户端:发起一个 HTTPS 请求,请给我公钥 2.服务器:这是我的证书,里面有加密后的公钥 3. ...

  5. HTTPS 中双向认证SSL 协议的具体过程

    HTTPS 中双向认证SSL 协议的具体过程: 这里总结为详细的步骤: ① 浏览器发送一个连接请求给安全服务器. ② 服务器将自己的证书,以及同证书相关的信息发送给客户浏览器. ③ 客户浏览器检查服务 ...

  6. Https协议/SSL协议

    前言 Https协议是以安全为目标的Http通道,也就是Http的升级安全版.主要是在Http下加入了SSL层(现在主流SSL/TLS),SSL是Https协议的安全基础,Https默认端口号443 ...

  7. HTTPS协议,SSL协议及完整交互过程

    转自:https://blog.csdn.net/dfsaggsd/article/details/50910999 SSL 1.        安全套接字(Secure Socket Layer,S ...

  8. HTTPS(身披SSL协议的HTTP)

    参考链接: HTTP 与 HTTPS 的区别 HTTPS科普扫盲帖 HTTPS小结 HTTP 和 HTTPS 区别 HTTP是明文传输未加密,安全性差,HTTPS(HTTP + SSL)数据传输是加密 ...

  9. SSL协议、HTTP和HTTPS和区别

    SSL协议 SLL协议的握手过程 开始加密通信之前,客户端和服务器首先必须建立连接和交换参数,这个过程叫做握手(handshake). 第一步,客户端给出协议版本号.一个客户端生成的随机数(Clien ...

最新文章

  1. docker centos7容器 安装ssh服务
  2. 在Linux上安装Python3.6.1
  3. mysql bitmap redis_Redis中bitmap的妙用
  4. c语言一元二次方程 ii(分支嵌套),C程序设计——求一元二次方程算法
  5. java redis hash_我爱java系列---【redis中如何存取hash类型的值(key field value)】
  6. 2019年北京高校毕业生就业质量状况:四成博士去了高校
  7. mysql 安装 权限_MySQL的安装、使用及权限管理
  8. java基于ssm的个人博客系统_一个基于 Spring Boot 的开源免费博客系统
  9. 在Linux上离线安装SQL Server 2017
  10. eclipse无法启动的各种解决方法
  11. 阿里巴巴交易平台技术揭秘
  12. 爬取中国天气网获取全国城市编码并存入mysql数据库
  13. 帕累托法则/20:80法则/犹太法则
  14. 尼尔机器人技能快捷键_《尼尔:机械部队》组合按键技能使用攻略
  15. Apache Griffin+Flink+Kafka实现流式数据质量监控实战
  16. PCB设计---焊接工艺
  17. STM32 - 使用FSMC控制LCD
  18. Qt笔记(四十)之Qt打开笔记本摄像头
  19. BTF社区不忘初心共筑未来通证新经济
  20. 互联网广告请求链路_生产环境的全链路压测应该怎么做?答案都在这里了

热门文章

  1. FatFs源码剖析(1)
  2. java mapper control_java spring boot中怎么编写mapper?怎么编写service和controller?
  3. mysql definer_mysql常见问题之视图权限控制--安全性为DEFINER
  4. 查看程序占用内存_电脑扩展了内存 但还总是提示内存不足?
  5. mysql 聚合函数内比较运算符_关于常用 MYSQL 聚合函数,其他函数 ,类型转换,运算符 总结...
  6. 计算机二级access选择题知识点总结,全国计算机二级Access考试重点题型汇总(选择题).doc...
  7. bootstrap4 左侧导航栏 优秀 大气_制作动态效果的后台导航栏——左侧导航
  8. 关于举办XX学院“XX杯”网页设计大赛的通知
  9. JAVA反射机制及其原理实现
  10. python人脸识别环境搭建_怎样用3分钟搭建 Python 人脸识别系统