Java教程

加解密与HTTPS(4)

本文主要是介绍加解密与HTTPS(4),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

您好,我是湘王,这是我的慕课手记,欢迎您来,欢迎您再来~


在互联网应用中,安全性问题已经越来越突出DDoS攻击、矿机劫持乌云事件(白帽子变成黑帽子)到窃听、偷拍强制植入(广告)参与互联网应用的软硬件设备越来越多PC服务器移动终端(手机、POS机、扫码枪、OBD)各类NB-IoT/IoT终端固件电路板(树莓派)等等都可能成为被攻击的对象

https://img1.sycdn.imooc.com/63b398c40001404a08910597.jpg

 

其实,所有这些问题,归纳起来就是三大风险:

1、偷窃:窃听、偷拍、倒卖、劫持;

2、篡改:包头、包内容、植入;

3、冒充:伪造、钓鱼。

所以,早在上个世纪(1994),为了解决这种网络通信的安全风险,有一群聪明人(NetScape公司)提出了一个解决方案:

1、通过引入加密与解密技术,来杜绝偷窃问题;

2、通过引入信息摘要与校验和,来杜绝篡改问题;

3、通过引入第三方认证机构,来杜绝身份冒充问题。

 

在上述背景下,SSL产生了,SSL全称是Secure Sockets Layer(安全套接字层),是为网络通信提供安全保障及数据完整性的一种安全协议SSL位于TCP/IP与各种应用层协议之间,为通讯提供安全支持SSL包含记录层与传输层,主流HTTP服务器都支持SSL

https://img4.sycdn.imooc.com/63b398ca0001490404820170.jpg

 

SSL基本运行过程包括下面几步

1、客户端发出加密通信请求(ClientHello),并向服务器提供用于会话密钥的随机数(第一个随机数)加密算法和压缩算法

2、服务器收到请求并向客户端回应(ServerHello)用于会话密钥的随机数(第二个随机数)加密算法压缩算法服务器证书以及索取客户端证书

3、客户端收到服务器回应验证服务器证书,否则显示警告,选择继续或终止访问。从服务器证书中取出公钥,并向服务器发送:用服务器公钥加密的随机数(第三个随机数,pre-master key)、编码改变通知、客户端握手结束通知(前述所有内容的Hash值,给服务端校验);

4、服务器收到请求并作出当前会话的最后回应(ServerHello):收到第三个随机数并计算生成会话密钥,向客户端发送数据、编码改变通知、之前商定的加密方法、密钥服务器握手结束通知(前述所有内容的Hash值,给客户端校验);

5、整个握手阶段结束。客户端与服务器通过HTTP及会话密钥进行消息通信。

需要注意的是:在最后一步「服务端收到第三个随机数并向客户端发送数据」时,以及后续的内容传输,采用的都是对称加密算法,原因是效率问题。

https://img4.sycdn.imooc.com/63b398cf0001a47806400456.jpg

 

Netscape公司推出了SSL,而IETF(The Internet Engineering Task Force,互联网工程任务组)将SSL进行扩展并制定了一系列标准之后,提出了TLS

TLS是SSL的升级版,是为了适应更广泛的应用场景它的全称是Transport Layer Security(传输层安全),是继SSL之后的一种为保障互联网通信安全及数据完整性的安全协议总的来说

TLS1.0对应SSL3.1

TLS1.1对应SSL3.2

TLS1.2对应SSL3.3

 


感谢您的大驾光临!咨询技术、产品、运营和管理相关问题,请关注后留言。欢迎骚扰,不胜荣幸~


这篇关于加解密与HTTPS(4)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!