初识HTTPS

初识HTTPS

HTTPS也被叫做“基于TLS的HTTP,基于SSL的HTTP,HTTP安全“,它是一个在Internet上广泛使用的计算机网络安全通信协议。

即HTTPS是HTTP的安全版本,在了解HTTPS为何安全之前,那么我们首先应该要知道HTTP为什么不安全。

HTTP为什么不安全

通过 HTTP 协议传输的信息是明文的。网络包从客户端/浏览器到服务器的这段过程中,需要经过多个网络设备。我们的登录帐号、密码等信息可以轻易被其中任何一个网络设备获取。

如果其中的一个网络设备被黑客控制,除了可以获取我们发送的数据以外,还可以将我们发送的数据进行伪造后再进行发送。

这就是 HTTP 传输所面临的问题之一:中间人攻击,指消息传递的过程中,处在传递路径上的攻击者可以嗅探或者窃听传输数据的内容。

HTTPS加密

HTTPS针对这个问题,采用了“加密”的方式来解决。

使用对称加密算法(AES)

我们最先想到的应该就是对称加密算法了,如果HTTPS使用的是对称加密算法会是怎样的情况呢?

对称加密算法既指加密和解密需要使用的密钥key是一样的。

如果客户端和服务端都有一个相同的密匙key,那么客户端先使用密匙key加密数据之后再发送到服务端,此时中间人获取到的数据是无法解密的。服务端使用key解密后,执行完毕返回同样由该key加密的数据到客户端。

整个过程看起来没有问题,但是忽略了一个点,即密匙key如果是服务端生成的该如何告诉客户端呢?实际上,无论采用什么样的方式告诉客户端,都有可能导致密匙key泄露,一旦密匙泄露,则整个加密的工作都显得没有意义了。

所以实际上HTTPS的加密并不是用的对称加密算法这种方式。

使用非对称加密算法(RSA)

HTTPS使用了另一种聪明的加密算法,非对称加密算法。

非对称加密算法会生成两个密钥(key1 和 key2)。凡是 key1 加密的数据,key1 自身不能解密,需要 key2 才能解密;凡事 key2 加密的数据,key2 自身不能解密,只有 key1 才能解密。

HTTPS实现

下面我们看看HTTPS中是如何使用RSA的:

  1. 服务端在发送消息之前先用RSA技术生成了一对密钥k1和k2。
  2. 服务端把k1用明文发送给了客户端,中间人也许会截取,但是没有用,k1加密的数据需要k2才可以破解,而k2在服务端手中。
  3. k1传到了客户端,客户端会去生成一个接下来准备用于对称加密(AES)的传输密钥key,然后用收到的k1把key加密,传给你。
  4. 服务端用手上的k2解出key后,此时只有服务端和客户端知道这个对称加密的key。
  5. 接下来的消息使用对称加密的方式进行即可,即非对称加密解决了之前我们的问题,即如何安全的把密匙key传递出去。

这里也许你会有问题,为什么不直接用非对称加密来加密信息,而是加密 AES 的 key 呢?

因为非对称加密和解密的平均消耗时间比较长,为了节省时间提高效率,我们通常只是用它来交换密钥,而非直接传输数据。

HTTPS证书

我们之前通过加密技术已经解决了消息安全传递的问题了,那么是不是从此就万无一失了呢?答案当然不是。

我们设想一下,如果我们服务端(S)和客户端(C)中间会途经一个黑客服务器,暂且就称为H吧,下面我们看看H如何操作可以破解掉我们的加密防范。

  1. S生成了k1,使用明文发送给C;
  2. H接收到k1之后,并没有转发给C,而是先自己生成一个key,使用k1加密后发送给S,即对S来说,H伪装成了C;
  3. 同时,H生成了新的一个k1,使用明文发送给C,C会把加密后的key告诉H,即对C来说,H伪装成了S;
  4. 这样一来,实际上H就成为了S和C之间的一个消息转发者了,不旦可以知道S和C之间发送的消息,还可以伪造消息进行发送;

这么看来,我们之前的努力貌似又功亏一篑了。

所以此时我们需要引入一个非常权威的第三方,一个专门用来认证网站合法性的组织,可以叫做 CA(Certificate Authority)。各个网站服务商可以向 CA 申请证书,使得他们在建立安全连接时可以带上 CA 的签名。而 CA 得安全性是由操作系统或者浏览器来认证的。

你的 Windows、Mac、Linux、Chrome、Safari 等会在安装的时候带上一个他们认为安全的 CA 证书列表,只有和你建立安全连接的网站带有这些CA的签名,操作系统和浏览器才会认为这个链接是安全的,否则就有可能遭到中间人攻击。

一旦某个 CA 颁发的证书被用于的非法途径,那么这个 CA 之前颁发过的所有证书都将被视为不安全的,这让所有 CA 在颁发证书时都十分小心,所以 CA 证书在通常情况下是值得信任的。

总结

使 HTTP 后面增加一个S(Security)的技术,正是 对称加密 + 非对称加密 + CA 认证 这三种技术的混合体。当然这个主要是 HTTPS 的基本原理,真正实际中的 HTTPS 的协议是比以上的描述更为复杂一些的,并且其中任何一步稍有闪失,整个流程都将不再安全。

这也是为什么 HTTPS 协议从 SSL 1.0升级到 SSL 3.0,再被 TLS 1.0 现在被 TLS 1.3取代,其背后都是一个个细节上的优化,以防有任何闪失。

TLS 协议相比 SSL 协议增加了传输层的安全保证。

参考链接

“HTTPS”安全在哪里?

HTTPS 小白知识(一)

时间: 2024-10-12 13:03:14

初识HTTPS的相关文章

Linux系统下Ruby安装

首先,配置Linux环境,参考以下两份博文完成 ① 快速上手Ubuntu之安装篇--安装win7,Ubuntu16.04双系统 http://blog.csdn.net/qq_28205153/article/details/52203512 ② 图文并茂版: 如何配置win7 + ubuntu 环境 https://www.imooc.com/article/12957 接下来,完成ruby的安装,参考一下两份博文完成 ① 如何快速正确的安装 Ruby, Rails 运行环境 https://

屏谖畔涨善ab63gro0l16rstpb58

中新社首尔4月13日电 (记者 吴旭)韩国第20届国会议员选举于当地时间13日18时结束投票.据韩国中央选举管理委员会公布的初步统计数据显示,本届国会议员选举投票率为58%,较上一届高出3.8个百分点.最终确定投票结果将于14日上午予以公布.从选区来看,全罗南道.全罗北道投票率领先,均突破60%,而大邱.釜山.京畿道及仁川地区投票率则低于平均值.在选举"主战场"首都圈地区,首尔以59.8%的投票率超出均值.根据目前初步统计结果,本届选举的投票率虽然没有超过事前预测的60%,但较第18届

噬鸵叟客切q08c365s

新华社瓦莱塔4月10日电(记者李拯宇 李佳)全国政协主席俞正声10日在前往非洲三国进行正式友好访问途中过境马耳他,在瓦莱塔会见马耳他议长法鲁贾. 俞正声说,中马保持长期友好关系,政治上相互信任,经济上密切合作,人文交流不断深化.中方感谢马方在中国撤侨行动中给予的支持和帮助.中方愿同马方一道,落实两国领导人达成的共识,弘扬中马传统友好,拓展在科技.渔业.旅游等领域互利合作,打造合作新亮点.中国全国政协愿与马耳他议会和社会各界保持密切交往,加强治国理政经验交流,为两国扩大务实合作营造良好环境,共同促

蚜戮苛裂退q47uc785b3

新华社瓦莱塔4月10日电(记者李拯宇 李佳)全国政协主席俞正声10日在前往非洲三国进行正式友好访问途中过境马耳他,在瓦莱塔会见马耳他议长法鲁贾. 俞正声说,中马保持长期友好关系,政治上相互信任,经济上密切合作,人文交流不断深化.中方感谢马方在中国撤侨行动中给予的支持和帮助.中方愿同马方一道,落实两国领导人达成的共识,弘扬中马传统友好,拓展在科技.渔业.旅游等领域互利合作,打造合作新亮点.中国全国政协愿与马耳他议会和社会各界保持密切交往,加强治国理政经验交流,为两国扩大务实合作营造良好环境,共同促

中三他身东取必信史规不

对啊我恍然大悟凌月果然心细如尘啊 但是凌月的雪却隐藏着绝强的杀伤力下一刻突然一大片冰雪在血饮的人群中爆开顿时傲世狂人和傲世嗜血均是大惊失色忍不住道居然那么高的防御 但是级别却只有级而已不过这已经足以傲视群雄了因为我的等级已经一下子窜到了中国排名的第位只要再努力一把完全可以在等级榜上崭露头角了顿时傲世狂风和傲世狂剑两个大惊失色注已经全部被吸引了过去不客气就不客气谁怕谁啊但是这一切也只是为了杀最后的而清理路障而已那个食人魔首领才是我们真正此行的目的嗯出去吃夜宵吧秦韵亲手做的 嗯那好吧凌雪又叮嘱了我一

初识网络协议:HTTP和HTTPS

HTTP和HTTPS都是应用层的协议,也是我们经常看得到的.它们两个的区别,体现在下图. HTTP协议传输的数据都是未加密的,都是明文.所以不安全,信息容易被窃取. HTTPS协议传输的数据是经过加密的,是安全的,所以有个“锁”. HTTP协议: HTTP是基于TCP协议的,在发送HTTP请求之前会先建立起TCP连接.建立TCP连接需要三次握手,断开需要四次挥手,开销还是比较大的,所以得让建立起来的TCP连接能够被复用.目前使用的HTTP协议大部分都是1.1,在1.1的协议里,默认是开启了Kee

初识操作系统和linux

初识操作系统和linux 1.计算机系统由硬件系统和软件系统两大部分组成:是一种能接收和存储信息,并按照存储在其内部的程序对海量数据进行自动.高速地处理,然后把处理结果输出的现代化智能电子设备. 2.世界上第一台计算机是1946年诞生在美国宾州大学. 3.冯·诺依曼体系结构:1946年数学家冯·诺依曼于提出计算机硬件系统由运算器.控制器.存储器.输入设备.输出设备.摩根定律:当价格不变时,集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍,性能也将提升一倍.现在计算机技术进本很难遵

初识git

初识git 1 安装git 最早Git是在Linux上开发的,很长一段时间内,Git也只能在Linux和Unix系统上跑.不过,慢慢地有人把它移植到了Windows上.现在,Git可以在Linux.Unix.Mac和Windows这几大平台上正常运行了. 要使用Git,第一步当然是安装Git了.根据你当前使用的平台来阅读下面的文字: 1.1 在Linux上安装Git 首先,你可以试着输入git,看看系统有没有安装Git: ``` $ git The program 'git' is curren

Redis初识、设计思想与一些学习资源推荐

一.Redis简介 1.什么是Redis Redis 是一个开源的使用ANSI C 语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value 数据库,并提供多种语言的API.从2010 年3 月15 日起,Redis 的开发工作由VMware 主持. Redis 是一个Key-Value 存储系统.和Memcached 类似,它支持存储的value 类型相对更多, 包括string(字符串).hash(散列).list(链表).set(集合)和zset(有序集合).这些数据类型支持p