Android开发经验谈Android开发

浅谈网络安全之HTTPS

2019-03-27  本文已影响6人  pphdsny

前言

说到Https,对于前端工程师(Android、iOS、H5)来讲都是一个很模糊的概念。

之前,公司为了安全考虑,需要将全网从http迁移到https,那时候前端工程师也就只做了一件事:基础域名从http://xx.xx.com变成了https://xx.xx.com,非常简单的就完成了迁移,至于https到底是不是更安全了,大部分人是不清楚的。

于是,我结合了之前的一些经验和近期的总结,对大家做了一次分享,包含以下几部分:

内容不是很深,但绝对能让你了解HTTPS为什么安全!

网络安全问题

对于你来说,肯定碰到过浏览的网页中突然多了块广告区域,如下图所示:

领奖图

498==iPhone 6s看着多诱人啊,不明真相的用户还以为是“官方”弄的活动,一旦点击了发生了金钱问题,就会被举报和投诉我们了。作为开发此页面的程序员来说,又得背锅lalala~

哈哈

排查以后,你发现自己的页面中被注入了不是自己写的广告代码。究其原因就是网页使用的是http协议,在网络中是明文传输的,在传输过程中会受到各级网络运营商的劫持,又由于是明文传输,很容易就在请求的报文中插入他们的广告代码。如果被非法分子劫持,所有的数据都会是透明的,如果这是一次支付请求呢,细想一下是不是很吓人~

A:这么恐怖😱,有什么办法么?

B:将网络协议从http升级为https即可!

A:为什么呢?

B:看下面的分析,你就会明白了。

HTTP为什么不安全

HTTP协议(HyperText Transfer Protocol,超文本传输协议)是因特网上应用最为广泛的一种网络传输协议,位于网络分层的应用层。

HTTP为什么不安全,还得从网络分层开始说,网络分层图(5层)如下:

网络分层

从上图来看,原始数据会经过应用层->传输层->网络层->连接层->物理层传输,到达目的地后反向解析物理层->连接层->网络层->传输层->应用层拿到原始数据进行处理。

在实际应用中,我们的网络请求必须通过运营商和ISP到达公网,这就给运营商和ISP机会可以拿到原始数据,再加上HTTP协议的明文传输,使其很方便就能将广告代码数据插入到原始数据中,再返回给用户看到了上面的广告。

A:原来是这样子啊,那是不是对数据加密就可以了?

B:聪明,HTTPS就是干加密这事的!

HTTPS为什么安全

HTTPS协议(Hyper Text Transfer Protocol over Secure Socket Layer,超文本传输安全协议),基于SSL/TLS认证的HTTP请求,简单来说就是安全的HTTP请求。

我们先来看HTTP基于TCP建立连接,三次握手建立连接->传输数据->四次挥手断开连接,如下图所示:

Http建立连接过程

HTTPS是基于HTTP的,所以建立连接的过程大致相同,额外增加的是加密密钥的获取过程,如下图所示:

HTTPS获取密钥

从上图可以简单看出,最终加密是通过对称加密完成的,但是对称加密的密钥动态生成的,通过非对称加密让客户端和服务端知晓的。

https相对于http来说都做了哪些安全保障:

A:说了这么多,里面最核心的SSL/TLS是什么?

B:简单来说SSL/TLS就是加密协议,详见下面的分析。

SSL/TLS

简介

更多关于SSL/TLS的发展历程,可参考SSL/TLS发展历程

SSL/TLS在网络分层的位置

SSL/TLS所属位置

常用的加密算法

TLS/SSL加密过程

TLS/SSL加密过程

TLS/SSL协议不仅仅是一套加密传输的协议,更是一件经过艺术家精心设计的艺术品,TLS/SSL中使用了非对称加密,对称加密以及HASH算法,大致流程如下:

整个加密过程不是一种加密方式完成的,而是多种加密方式组合而成的,简称“密钥套件”,例如TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256

协议是TLS。从ECDHE开始,我们可以看到,在握手过程中,密钥将通过短暂的椭圆曲线Diffie Hellman(ECDHE)进行交换。身份验证算法是RSA。AES_128_GCM是一种批量加密算法。最后,SHA-256是散列算法。

上面的流程说明只是简单的阐述了下秘钥的交换过程,至于各种加密算法的使用和选择不在此讨论中。

实践分析

说了这么多理论,下面用一些内容来印证下(下面所有的截图来自于Charles)。

Charles截图

思考

浅谈HTTPS就结束了,有一些问题,如果大家感兴趣可以一起交流下:

后记

其实想真正的了解HTTPS,需要深入理解TLS中使用的那些算法,后续会继续研究的,加个todos!

上一篇 下一篇

猜你喜欢

热点阅读