菜鸟学网络——HTTPS是怎么实现的?

参考文章:

目录

1. Https 简介

1.1 Https产生的背景

简单来说:就是不够安全,信息容易被黑客截获,造成信息泄露。

1.2 Https是什么?

Https是Http的安全版,它的核心是SSL/TLS(Https后面的's'就是指SSL)。

Https的原理就是:在传输层和应用层之间加了一层SSL/TLS。如下图所示:

1.3 SSL/TLS是什么?

SSL/TLS是一种介于传输层和应用层的协议,它是Https的精髓所在。

1.3.1 SSL(Secure Socket Layer,安全套接字层)

SSL协议是 NetScape 公司于 1994 年提出的一个关注互联网信息安全的信息加密传输协议,其目的是为客户端(浏览器) 到服务器端之间的信息传输构建一个加密通道,此协议是与操作系统和 Web 服务器无关。

SSL协议可分为两层: SSL记录协议(SSL Record Protocol):它建立在可靠的传输协议(如TCP)之上,为高层协议提供数据封装、压缩、加密等基本功能的支持。 SSL握手协议(SSL Handshake Protocol):它建立在SSL记录协议之上,用于在实际的数据传输开始前,通讯双方进行身份认证、协商加密算法、交换加密密钥等(它的作用!)。

1.3.2 TLS (Transport Layer Security,传输层安全协议)

用于两个应用程序之间提供保密性和数据完整性。 TLS 1.0是IETF(Internet Engineering Task Force,Internet工程任务组)制定的一种新的协议,它建立在SSL 3.0协议规范之上,是SSL 3.0的后续版本,可以理解为SSL 3.1,它是写入了 RFC 的。该协议由两层组成: TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。较低的层为 TLS 记录协议,位于某个可靠的传输协议(例如 TCP)上面。

1.3.3 SSL/TLS的关系

SSL是由网景公司发明的,后来由于应用广发,IETF就把SSL进行标准化,并把标准化后的SSL改名为TLS。所以,TLS可以说是SSL的加强版,两者是同一个东西的不同阶段。

1.3.4 白话SSL/TLS的作用

建议收看:HTTPS and SSL tutorial(谷歌大佬的教程,还不支持下?哦,对了,请自备扶梯)

总结来说:

没有加入SSL/TLS的请求,相当于你跟服务器在两个房间内彼此大喊,此时,全世界都知道了。

而加入了SSL/TLS的请求,相当于你跟服务器在用火星语交流,就算有人路过听到了,也不知道是什么意思。

1.4 Https涉及概念

1.4.1 公钥和私钥

公钥

公钥(Public Key)与私钥(Private Key)是通过一种算法得到的一个密钥对(即一个公钥和一个私钥),公钥是密钥对中公开的部分,私钥则是非公开的部分。

1.4.2 对称加密算法和非对称加密算法

对称加密:

对称密钥加密(英语:Symmetric-key algorithm)又称为对称加密、私钥加密、共享密钥加密,是密码学中的一类加密算法。这类算法在加密和解密时使用相同的密钥,或是使用两个可以简单地相互推算的密钥。

常见的对称加密算法有DES、3DES、AES、Blowfish、IDEA、RC5、RC6。

对称加密其实就是说: 比如我用'a'作为密钥对内容加了密,你必须也得用'a'作为密钥对加密后的内容进行解密。

非对称加密:

非对称加密(asymmetric cryptography),一种密码学算法类型,在这种密码学方法中,需要一对密钥,一个是私人密钥,另一个则是公开密钥。这两个密钥是数学相关,用某用户密钥加密后所得的信息,只能用该用户的解密密钥才能解密。

比如说: 我有一对密钥,一个是公钥(假设是'a'),一个是私钥(假设是'b'),现在我用'a'对一个内容加了密,那么,此时,,你只有用私钥'b'对它进行解密才能看到正确内容。同理,如果我用私钥'b'加了密,你只有用公钥'a'解密才能看到内容。

2.Https 的实现原理

废话一下:其实我也不知道自己理解的是不是对的,我觉得网上很多讲Https原理的文章其实本质上讲的都是SSL/TLS的原理。在我看来,Https指的是Http协议+ SSL/TLS协议,也就是说,Http协议本来定义了数据的包装方式(要包含请求头,请求方式等),现在在这个基础上,还要求行对数据进行加密,对通信双方身份进行验证(如何加密,如何验证由SSL决定)。 我也不知道我理解的对不对?求高人赐教。

下面上图:

这里的Https的实现原理指的是单向的,Https还有双向的。区别在于:单向是就是只检验服务端的身份,至于客户端是谁访问,不重要。双向就是客户端和服务端都有指定,这种一般用于金融,也就是说,不是服务器认同的客户端,服务端不会进行发送数据。

3.SSL/TLS 的实现原理

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值