极客时间 透析http 笔记 安全篇 04

2 篇文章 0 订阅

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

小结

①因为 HTTP 是明文传输,所以不安全,容易被黑客窃听或篡改;

②通信安全必须同时具备机密性、完整性、身份认证和不可否认这四个特性;

③HTTPS 的语法、语义仍然是 HTTP,但把下层的协议由 TCP/IP 换成了 SSL/TLS;

④SSL/TLS 是信息安全领域中的权威标准,采用多种先进的加密技术保证通信安全;

⑤OpenSSL 是著名的开源密码学工具包,是 SSL/TLS 的具体实现。

⑥既然 HTTP“不安全”,那什么样的通信过程才是安全的呢?通常认为,如果通信过程具备了四个特性,就可以认为是“安全”的,这四个特性是:机密性完整性身份认证不可否认

课下作业

你能说出 HTTPS 与 HTTP 有哪些区别吗?

HTTPS相对于HTTP具有机密性,完整性,身份认证和不可否认的特性,HTTPS是HTTP over SSL/TLS,HTTP> HTTP over TCP/IP

你知道有哪些方法能够实现机密性、完整性等安全特性呢?

实现机密性可以采用加密手段,接口签名实现完整性,数字签名用于身份认证

24 | 固若金汤的根本(上):对称加密与非对称加密

小结

①加密算法的核心思想是“把一个小秘密(密钥)转化为一个大秘密(密文消息)”,守住了小秘密,也就守住了大秘密;

②对称加密只使用一个密钥,运算速度快,密钥必须保密,无法做到安全的密钥交换,常用的有 AES 和 ChaCha20;

③非对称加密使用两个密钥:公钥和私钥,公钥可以任意分发而私钥保密,解决了密钥交换问题但速度慢,常用的有 RSA 和 ECC;

④把对称加密和非对称加密结合起来就得到了“又好又快”的混合加密,也就是 TLS 里使用的加密方式。

课下作业

加密算法中“密钥”的名字很形象,你能试着用现实中的锁和钥匙来比喻一下吗?

(这里举个比较勉强的例子)假设 a 持有私钥,b 持有公钥,然后他们用一个加了锁的盒子进行通信。

1. a 把信件放到盒子里,然后用一排连接为锁链的锁将盒子锁起来,然后寄给 b。只要公钥能解开其中一个锁,那对方就能拿到信件。(可能换成能识别具有某些特征密码的密码锁的比喻会更好一些)
2. b 用公钥开锁拿到了信件,然后他写了一封回信,同样放到盒子里,然后挂上一个只有私钥才能打开的锁,寄给 a。
3. 只有 a 有有对应的钥匙(私钥),于是 a 拿到了回信。

在混合加密中用到了公钥加密,因为只能由私钥解密。那么反过来,私钥加密后任何人都可以用公钥解密,这有什么用呢?

因为私钥只能由一个人秘密持有,所以它加密的数据谁都可以解密,没有私密性,但这就是它的价值所在,可以证明这个数据就是私钥持有人发布的,可以用来做身份认证。

25 | 固若金汤的根本(下):数字签名与证书

小结

①摘要算法用来实现完整性,能够为数据生成独一无二的“指纹”,常用的算法是 SHA-2;

②数字签名是私钥对摘要的加密,可以由公钥解密后验证,实现身份认证和不可否认;

③公钥的分发需要使用数字证书,必须由 CA 的信任链来验证,否则就是不可信的;

④作为信任链的源头 CA 有时也会不可信,解决办法有 CRL、OCSP,还有终止信任。

课下作业

为什么公钥能够建立信任链,用对称加密算法里的对称密钥行不行呢?

非加密算法需要公开公钥从而让客户端能解密。如果用对称加密,加密秘钥公开,就达不到加密效果了

假设有一个三级的证书体系(Root CA=> 一级 CA=> 二级 CA),你能详细解释一下证书信任链的验证过程吗?

客户端发现当前网站的证书是二级CA,在可信任签发机构中找不到,就会去拿二级CA的数字证书的签发机构去做检查,发现它是一级CA,也不在可信任签发机构中,再找一级CA的数字证书的签发机构,发现是受信任的ROOT CA,至此完成验证。如果到最后一层CA都不受信任,就会警告用户

26 | 信任始于握手:TLS1.2连接过程解析

小结今天我们学习了 HTTPS/TLS 的握手,内容比较多、比较难,不过记住下面四点就可以。

  1. HTTPS 协议会先与服务器执行 TCP 握手,然后执行 TLS 握手,才能建立安全连接;
  2. 握手的目标是安全地交换对称密钥,需要三个随机数,第三个随机数“Pre-Master”必须加密传输,绝对不能让黑客破解;第三个随机数“Pre-Master” :
  •     ECDHE算法是用 就用 ECDHE 算法一阵算,算出了一个新的东西,叫“Pre-Master”                   
  •      RSA算法是客户端直接生成随机数,然后用服务器的公钥加密,通过“Client Key Exchange”消息发给服务器 
  1. “Hello”消息交换随机数,“Key Exchange”消息交换“Pre-Master”;
  2. “Change Cipher Spec”之前传输的都是明文,之后都是对称密钥加密的密文。

27 | 更好更快的握手:TLS1.3特性解析

小结今天我们一起学习了 TLS1.3 的新特性,用抓包研究了它的握手过程,不过 TLS1.3 里的内容很多,还有一些特性没有谈到,后面会继续讲。

  1. 为了兼容 1.1、1.2 等“老”协议,TLS1.3 会“伪装”成 TLS1.2,新特性在“扩展”里实现;
  2. 1.1、1.2 在实践中发现了很多安全隐患,所以 TLS1.3 大幅度删减了加密算法,只保留了 ECDHE、AES、ChaCha20、SHA-2 等极少数算法,强化了安全;
  3. TLS1.3 也简化了握手过程,完全握手只需要一个消息往返,提升了性能。

28 | 连接太慢该怎么办:HTTPS的优化

  1. 可以有多种硬件和软件手段减少网络耗时和计算耗时,让 HTTPS 变得和 HTTP 一样快,最可行的是软件优化;
  2. 应当尽量使用 ECDHE 椭圆曲线密码套件,节约带宽和计算量,还能实现“False Start”;
  3. 服务器端应当开启“OCSP Stapling”功能,避免客户端访问 CA 去验证证书;
  4. 会话复用的效果类似 Cache,前提是客户端必须之前成功建立连接,后面就可以用“Session ID”“Session Ticket”等凭据跳过密钥交换、证书验证等步骤,直接开始加密通信。

29 | 我应该迁移到HTTPS吗?

  1.        从 HTTP 迁移到 HTTPS 是“大势所趋”,能做就应该尽早做;
  2. 升级 HTTPS 首先要申请数字证书,可以选择免费好用的“Let’s Encrypt”;
  3. 配置 HTTPS 时需要注意选择恰当的 TLS 版本和密码套件,强化安全;
  4. 原有的 HTTP 站点可以保留作为过渡,使用 301 重定向到 HTTPS。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值