浅谈网络安全之HTTPS

前言

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

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

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

  • 网络安全问题

  • HTTP为什么不安全

  • HTTPS为什么安全

  • SSL/TLS

  • 实践分析

内容不是很深,但绝对能让你了解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来说都做了哪些安全保障:

  • CA证书认证,确保访问服务器和客户端的可靠性

  • 数据加密传输

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

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

SSL/TLS

简介

  • 传输层安全性协议(英语:Transport Layer Security,缩写作 TLS),及其前身安全套接层(Secure Sockets Layer,缩写作 SSL)是一种安全协议,目的是为互联网通信提供安全及数据完整性保障。

  • 网景公司(Netscape)在1994年推出首版网页浏览器,网景导航者时,推出HTTPS协议,以SSL进行加密,这是SSL的起源。

  • IETF将SSL进行标准化,1999年公布第一版TLS标准文件。随后又公布RFC 5246 (2008年8月)与 RFC 6176 (2011年3月)。

  • SSL/TLS只是一个协议,不仅仅可以用在HTTP上,还可以跟很多常用的应用层协议(比如:FTP、SMTP、POP、Telnet、DNS等)搭配,来强化这些应用层协议的安全性。

  • 目前主流使用的是TLS1.2,最新版本是TLS1.3(2018年8月发表)

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

SSL/TLS在网络分层的位置

SSL/TLS所属位置

常用的加密算法

  • 非对称加密算法:RSA,DSA/DSS

  • 对称加密算法:AES,RC4,3DES

  • HASH算法:MD5,SHA1,SHA256

TLS/SSL加密过程

TLS/SSL加密过程

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

  • SSL客户端(也是TCP的客户端)在TCP链接建立之后

  • 客户端发出一个ClientHello来发起握手,这个消息里面包含了自己可实现的算法列表和其它一些需要的消息

  • SSL的服务器端会回应一个ServerHello,这里面确定了这次通信所需要的算法,然后发过去自己的证书(里面包含了身份和自己的公钥)

  • Client在收到这个消息后会生成一个秘密消息,用SSL服务器的公钥加密后传过去,SSL服务器端用自己的私钥解密后,会话密钥协商成功,双方可以用同一份会话密钥来通信了

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

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

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

实践分析

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

Charles截图

思考

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

  • 为什么迁移到HTTPS的时候,除了基础域名替换外,不需要做额外的工作?

  • socket是什么,属于网络中的哪一层?

  • HTTPS一定比HTTP慢么?

  • HTTPS就一定安全么?

后记

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,242评论 5 459
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,769评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,484评论 0 319
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,133评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,007评论 4 355
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,080评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,496评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,190评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,464评论 1 290
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,549评论 2 309
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,330评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,205评论 3 312
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,567评论 3 298
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,889评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,160评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,475评论 2 341
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,650评论 2 335