随着信息安全变得越来越重要,在浏览器、搜索引擎、CA机构、大型互联网企业的共同促进下,互联网迎来了“HTTPS加密时代”。HTTPS在HTTP上建立了SSL加密层,是HTTP协议的安全版本。HTTPS主要作用有两方面:

  • 对数据进行加密,并建立一个安全通道,来保证传输过程中的数据安全。
  • 对网站服务器进行真实身份认证。

一、HTTP协议的缺点

  之所以会出现HTTPS,是因为HTTP存在了以下缺点:

  • HTTP报文使用明文方式在网络中传输,本身不具备加密功能。
  • 无法证明报文的完整性,内容很可能被篡改,即无法确认发送的报文和接受的报文前后相同。
  • HTTP协议无法验证通信方身份,任何人都可以伪造虚假服务器欺骗用户,实现“钓鱼欺诈”。

  而在HTTPS中相应的处理办法是:

  • 数据隐私性:内容经过对称加密。
  • 数据完整性:内容传输经过完整性校验。
  • 身份认证:第三方无法伪造身份。

二、HTTPS的解决办法

  通常HTTP直接和TCP通信,而HTTPS增加了一层SSL/TSL协议, 因此HTTPS并不是一种新的协议,只是HTTP穿了一件“衣服”而已,加上这一层,HTTP带来的信息窃听、信息篡改、信息劫持等缺点都能被解决。

1. 解决信息窃听——加密

  关于加密解密的一些知识可以先阅读数字证书和数字签名是个啥?

  • 对称加密

  这种方式加密和解密使用的是同一个密钥,这样方式依旧存在一种安全隐患,如果密钥落到攻击者手里,加密就是去了意义。

  • 非对称加密

  非对称加密就是我们经常见的公钥和私钥,私钥只有一把,公钥则可以随意发布。这种加密特点是信息一传多,服务器需要维持一个私钥就能够和多个客户端进行加密通信。但是依旧有很多缺点:这种方式无法验证服务器身份,可能存在“中间人攻击”的风险;数据加密解密过程需要消耗一定时间,降低了数据传输效率。

  • 对称加密+非对称加密(HTTPS采取方式)

  对称密钥的好处是解密效率高,非对称密钥的好处是传输内容不能被破解。HTTPS将两者结合起来,具体做法是:发送密文的一方使用对方的公钥进行加密处理“对称的密钥”,然后对方用自己的私钥解密拿到“对方的密钥”,这样可以确保交换的密钥是安全的前提下,使用对称加密的方式进行通信。

2. 解决信息篡改和信息劫持——数字证书和数字签名

  数字签名和数字证书的功能在上面连接,这里不在介绍。我们介绍一下数字证书认证机构的业务流程:

  • 服务器的运营人员向第三方机构CA提交公钥、组织信息、个人信息(域名)等并申请认证
  • CA通过线上、线下等多种手段验证申请者提供信息的真实性,如组织是否存在、企业是否合法,是否拥有域名的所有权等
  • 如果信息审核通过,CA会向申请者签发认证文件——数字证书,里面是CA中心用自己的私钥对服务器公钥和一些相关信息一起加密。

三、HTTPS工作流程

  1. Client发起一个HTTPS请求(默认连接Server443端口)。
  2. Server把事先配置好的公钥证书返回给客户端。
  3. Client验证公钥证书:比如是否在有效期内,证书的里的域名是不是匹配Client请求的站点,上一级证书是否有效,直到递归验证到根证书。如果验证通过则继续,不通过则显示警告信息。如果证书是由不信任机构颁发,浏览器则会发出另一种警告。

  4.  Client使用伪随机数生成器生成加密所使用的对称密钥,然后用证书的公钥(即Server的公钥)加密这个对称密钥,发给Server。

  5.  Server使用自己的私钥解密得到对称密钥。至此,Client和Server都持有相同的对称密钥,此后的回话内容都使用对称密钥进行加密。

四、HTTPS与HTTP的区别——总结

  • HTTP是明文传输,HTTPS由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比HTTP安全。
  • HTTPS需要申请CA证书,HTTP不用。
  • HTTPS标准端口443,HTTP为80。
  • HTTP连接很简单,是无状态的;HTTPS协议是有SSL/TLS协议构建的可进行加密传输、身份认证的网络协议。

五、HTTPS的缺点

  虽说HTTPS安全可靠,但不是多有web网站都用它,因为它也有一些固有的缺点。

  1. 首先就是证书申请的问题,HTTPS需要权威CA颁发SSL证书,从选择、购买到部署比较耗时耗力。
  2. 其次,HTTPS的加密解密会消耗更多的CPU及内存资源,性能会下降。但可以通过性能优化,把证书部署在SLB或CDN来解决此问题。
  3. 购买证书的开销。

HTTPS和HTTP的那些事的更多相关文章

  1. Http和Https三次握手那些事

    今天我总结了什么是HTTP三次握手,还有HTTPS握手的过程以及为什么HTTPS是安全的. 一:HTTP与TCP/IP区别? --->TPC/IP协议是传输层协议,主要解决数据如何在网络中传输 ...

  2. 关于 k210 的 micropython 添加 ussl 模块,实现 https 访问支持的那些事。

    起因 事情已经过去快一周了吧,继上次修复 maixpy k210 的 esp8285 at 通信后,突然遇到泽畔大大问,要不要做 ussl 的支持? 评估了一下各方的实现,想了一下自己也刚好在做网络层 ...

  3. 一次部署HTTPS的相关事件引发的思考

    前言: 上周五快要下班的时候,突然收到通知客户希望了解一下部署HTTPS的流程,这种事情谁听了都会有几分诧异的.因为这件事虽然和工作有一定的相关度,但平时不会走这个方向,实际上也较少接触.此外,客户手 ...

  4. 为什么 HTTP 有时候比 HTTPS 好?

    做为一家安全公司,我们在站点Stormpath上经常被开发者问到的是有关安全方面最优做法的问题.其中一个被经常问到的问题是: 我是否应当在站点上运行HTTPS? 很不幸,查遍整个因特网,你大多数情况下 ...

  5. Nginx实现同一端口HTTP跳转HTTPS

    小目标:在只监听一个端口的情况下,将http访问跳转为https. 一般情况下http协议使用80端口,https协议443端口.要实现http强制转https是非常简单的事,随便都可以找到很多方案. ...

  6. Nginx 容器教程

    春节前,我看到 Nginx 加入了 HTTP/2 的 server push 功能,就很想试一下. 正好这些天,我在学习 Docker,就想到可以用 Nginx 容器.万一哪里改乱了,直接删掉,再重启 ...

  7. CAS 5.1.x 的搭建和使用(四)—— 配置使用HTTP协议访问的服务端

    CAS单点登录系列: CAS 5.1.x 的搭建和使用(一)—— 通过Overlay搭建服务端 CAS5.1.x 的搭建和使用(二)—— 通过Overlay搭建服务端-其它配置说明 CAS5.1.x ...

  8. [转帖]Nginx 容器教程

    Nginx 容器教程 http://www.ruanyifeng.com/blog/2018/02/nginx-docker.html 里面有证书. 作者: 阮一峰 日期: 2018年2月27日 感谢 ...

  9. HTTPS那些事(一)HTTPS原理

    转载来自:http://www.guokr.com/post/114121/ 谣言粉碎机前些日子发布的<用公共WiFi上网会危害银行账户安全吗?>,文中介绍了在使用HTTPS进行网络加密传 ...

随机推荐

  1. SNMP介绍及使用,超有用,建议收藏!

    写在前面 如果你是对SNMP完全不了解,或者只想学习如何使用现成的SNMP工具,那你找对了文章,但如果你希望学习SNMP具体协议内容,推荐阅读官方的RFC文档. 1. 简介 SNMP(Simple N ...

  2. python多线程——如何停止一个死循环的线程

    进程想要执行任务就需要依赖线程.换句话说,就是进程中的最小执行单位就是线程,并且一个进程中至少有一个线程. 那什么是多线程?提到多线程这里要说两个概念,就是串行和并行,搞清楚这个,我们才能更好地理解多 ...

  3. 闭关苦修半年,最终靠着这份面试题,我成功拿到了阿里的offer!

    前言 我大概我是从去年12月份开始看书学习,到今年的6月份,一直学到看大家的面经基本上百分之90以上都会,我就在5月份开始投简历,边面试边补充基础知识等.也是有些辛苦.终于是在前不久拿到了阿里的off ...

  4. 启动时出现错误:*** Warning - bad CRC or NAND

    前面转自:https://www.cnblogs.com/java20130726/archive/2012/06/15/3218570.html 在对NAND Flash烧写了bootstrap和U ...

  5. ABBYY FineReader 15 安装教程

    ABBYY FineReader 是一款出名的OCR文字识别工具,它包含文档转换.数据捕获等功能,文字识别率较高.能够带来快速.简单.易用的文字识别体验,从而提高工作效率.下面就为大家讲解ABBYY ...

  6. 下载器Folx教程:智能标签怎么用?

    Mac专用下载器Folx的智能标签中内置了图片标签,可以自动分类图片文件,但要如何分类GIF图片呢?其实,我们可以在Folx的标签面板创建动图标签,然后再创建标签专属的下载文件夹,来独立存放GIF格式 ...

  7. 「LOJ 538」「LibreOJ NOIP Round #1」数列递推

    description sosusosu 虐爆 OI 之后成为了一名文化课选手.一天,他做作业碰到了一堆数列问题,每道题给出的数列都是以下形式: 给定一个下标从\(0\)开始,无限长的整数列\({a_ ...

  8. JDBC事务提交机制以及解决方案

    JDBC中的事务是自动提交的,什么是自动提交? 只要任意执行一条DML语句,则自动提交一次.这是JDBC默认的事务行为.但是实际业务当中,通常都是N条DML语句共同联合才能完成的,必须保证它们这些DM ...

  9. python3安装mysqlclient,解决django使用pymysql报错的问题

    1.起因 在django中为了使用MySQL,一般是在项目目录下的__init__.py中添加 import pymysql pymysql.install_as_MySQLdb() # 使用pymy ...

  10. Contest 1445

    A \(a\) 中第 \(i\) 小的配 \(b\) 中第 \(i\) 大的. 限制相同,这样配最平均. 时间复杂度 \(O\left(tn\log n\right)\). B 最终的一百名至少是第一 ...