罗剑锋透视HTTP协议学习笔记---23 | HTTPS是什么?SSL/TLS又是什么?

44 篇文章 6 订阅

23 | HTTPS是什么?SSL/TLS又是什么?

为什么要有 HTTPS?
因为HTTP消息是明文传输的,任何中间人都可以截获,查看,修改HTTP消息,所以HTTP是不安全。

什么是安全?
网络通讯安全,要解决4方面的问题:
机密性: 用加密算法加密来保证消息的机密性,即消息只对通讯双方可见,中间人即使截获,也无法看到消息内容。
对称加密速度快,但秘钥交换是个问题,而且最好秘钥不固定,每个会话一个秘钥。
通常用非对称算法加密对称秘钥。而秘钥产生,交换过程是重点和难点。
完整性: 消息不允许被篡改,如果没有完整性机制,中间人截获密文后,由于加密算法是已知的,可以伪造,变更消息发送【存疑】:中间人不知道加密秘钥啊?和对称加密算法的分组方式有关,如GCM可以在加密的同时保证加密内容不被篡改。而采用ECB则用户无法感知接收的消息是否被篡改。不知这有什么用?攻击者拿不到秘钥,乱改的消息,解密出来的也是乱码,除了干扰接受者,不能有实质性的损害?目前使用的AES-256-GCM可以保证数据的加密强度,速度和不可篡改。仍然引入摘要算法保护数据的完整性。摘要算法在TLS中如何保证数据的完整性?
注:对称加密的加密强度和算法,秘钥长度,分组方式有关。分组方式会影响密文是否有特征,能否被篡改,现代的分组方式如GCM带HMAC功能,能解决上述问题,防篡改底层实现也是用的摘要算法。另外摘要算法还可以用在数字签名中。所以消息完整性由摘要算法保证。
完整性包括2个层面,一个是对称加密算法如何保证数据的完整性,另外是非加密数据如何保证数据的完整性。
无论何种数据,保证完整性的方式都是数字签名。【摘要加加密】因为TLS1.2协商,需要2个rtt才能完成握手,所以证书的Certificate消息是非加密的,而TLS1.3,在收到Client的ClientHello后,server即进入加密状态,所以TLS1.3发送的Certificate消息也是加密的。

身份验证: 保证消息的发送者的身份是真实的,即核验网站/用户的身份。
不可撤销:保证由网站/用户发出的消息,不可抵赖。【TLS如何保证?】
4者基本是递进关系

什么是 HTTPS?
HTTPS — HTTP over TLS

SSL/TLS
SSL — Secure Sockets Layer
TLS — Transport Layer Security

TLS 由记录协议、握手协议、警告协议、变更密码规范协议、扩展协议等几个子协议组成,综合使用了对称加密、非对称加密、身份认证等许多密码学前沿技术。

Cipher suite命名规则:
ECDHE-RSA-AES256-GCM-SHA384
密钥交换算法 + 身份验证算法 + 对称加密算法+分组模式 + 摘要算法
握手时使用 ECDHE 算法进行密钥交换,用 RSA 签名和身份认证,握手后的通信使用 AES 对称算法,密钥长度 256 位,分组模式是 GCM,摘要算法 SHA384 用于消息认证和产生随机数。

OpenSSL

OpenSSL是开源密码学程序库和工具包,是 SSL/TLS 的具体实现。

课后作业:

你能说出 HTTPS 与 HTTP 有哪些区别吗?
区别在于安全性,HTTPS即HTTP over TLS, HTTPS在TCP的基础上增加一个TLS安全层,基于TLS实现了HTTP通讯的安全性,包括4大方面:
机密性,对称加密算法AES256加解密, 非对称算法实现秘钥交换ECDHE
完整性, 摘要算法保证消息的完整性,SHA384
身份确认, RSA证书确认通讯双方身份
不可否认,RSA数字签名保证消息不可否
另外,scheme为https, 端口号443,版本号仍然是HTTP/1.1

你知道有哪些方法能够实现机密性、完整性等安全特性呢?
机密性:加密,通常用对称加密算法对HTTP消息进行加密,如AES256
完整性:摘要算法保证完整性, 如SHA384。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值