从上帝视角认识一下https

一、背景

在使用抓包工具charles的时候,我们的项目大部分是基于https的,报文没办法直接看到需要进行相应的配置,配置的过程中发现自己对https的知识点有点遗忘了,知识点越混乱,自己越难受,于是抱着这个目的,自己又重新梳理了一遍https的知识点。

二、目标

万物负熵而生,我们要做的是"熵减" 而不是"熵增"。

我们另外一个目标就是打造一个老太太白话都能听到的https讲解。

三、前序

阅读本文的前提是基于你对http的知识点有一个清晰的了解,以及传输层协议tcp和网际层ip协议有一个大概的了解。如果不了解这方面的相关知识,建议学习后在来阅读本文。

四、起因

http天生明文的缺点,这让很多高安全性的场景无从谈起,例如网购、网银,证券、电子政务。例如:你高考考了300分,但是你在老师上报给教务系统的过程中,篡改了分数(改编英国某大学案例)。这个明显不符合我们现实生活的需要。

问:为什么http天生是明文?

答:它使用的是肉眼可读的ascii编码方式。

这种明文的通信方式,我们认为是不安全的,所以促使着我们需要安全的通信方式。

五、安全性

刚刚提到http是“不安全”的通信协议,如果将传输的报文变成密文,就可以是安全的通信协议嘛?

所以我们需要定义什么样的通信是安全的。通常认为,如果通信过程具备了四个特性,就可以认为是“安全”的,这四个特性是:机密性、完整性,身份认证和不可否认。

我们就来讲讲这四个特性:

机密性(Secrecy/Confidentiality)是指对数据的“保密”,只能由可信的人访问,对其他人是不可见的“秘密”。

完整性(Integrity,也叫一致性)是指数据在传输过程中没有被篡改,不多也不少,“完完整整”地保持着原状。

身份认证(Authentication)是指确认对方的真实身份,也就是“证明你真的是你”,保证消息只能发送给可信的人。

不可否认(Non-repudiation/Undeniable),也叫不可抵赖,意思是不能否认已经发生过的行为,不能“说话不算数”“耍赖皮”。

知道了这四点,也就明白了https要做的事情,也就是增强上面四点,下面就是围绕着https是怎么增强这四点展开的。

六、正篇

1、介绍

https的官方定义比较短,RFC 文档很小,只有短短的 7 页,里面规定了新的协议名“https”,默认端口号 443,它安全兼容http协议,没有增加新的语法和语义,在学习上没有新的成本。

https相对于http多了一个SSL/TLS层,我们放一张对比图:

2、SSL/TLS

刚从图中看到https多了一层SSL/TLS,那就了解这个是干什么用的。

SSL是网景公司于1994年提出的,有v2和v3两个版本。

SSL发展到v3,被证明是一个非常好的安全通信协议。于是互联网工程组IETF在1999年就把改名为TLS(传输层安全,Transport Layer Security)正式标准化,版本号从 1.0 重新算起,所以 TLS1.0 实际上就是 SSLv3.1。

到今天 TLS 已经发展出了三个版本,分别是 2006 年的 1.1、2008 年的 1.2 和去年(2018)的 1.3,每个新版本都紧跟密码学的发展和互联网的现状,持续强化安全和性能,已经成为了信息安全领域中的权威标准。

目前应用最广泛的还是1.2这个版本,之前的版本被认为

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值