[关闭]
@linux1s1s 2016-12-15T16:32:54.000000Z 字数 5631 阅读 1630

Base Time-Https Protocol-扫盲 HTTPS 和 SSL/TLS 协议1:背景知识、协议的需求、设计的难点

Base 2016-12


本系列博文完全转载IT.信息安全,因为需要翻墙,这里转载给无须翻墙的同学。

由于内容比较多,这里分几篇文章开讲。

系列博文
扫盲 HTTPS 和 SSL/TLS 协议[0]:引子
扫盲 HTTPS 和 SSL/TLS 协议[1]:背景知识、协议的需求、设计的难点
扫盲 HTTPS 和 SSL/TLS 协议[2]:可靠密钥交换的难点,以及身份认证的必要性
扫盲 HTTPS 和 SSL/TLS 协议[3]:密钥交换(密钥协商)算法及其原理

相关背景知识

要说清楚 HTTPS 协议的实现原理,至少需要如下几个背景知识。

  1. 大致了解几个基本术语(HTTPS、SSL、TLS)的含义
  2. 大致了解 HTTP 和 TCP 的关系(尤其是“短连接”VS“长连接”)
  3. 大致了解加密算法的概念(尤其是“对称加密与非对称加密”的区别)
  4. 大致了解 CA 证书的用途

考虑到很多技术菜鸟可能不了解上述背景,俺先用最简短的文字描述一下。如果你自认为不是菜鸟,请略过本章节,直接去看“HTTPS 协议的需求”。

先澄清几个术语——HTTPS、SSL、TLS

再来说说 HTTP 协议的特点

作为背景知识介绍,还需要再稍微谈一下 HTTP 协议本身的特点。HTTP 本身有很多特点,考虑到篇幅有限,俺只谈那些和 HTTPS 相关的特点。

谈谈“对称加密”和“非对称加密”的概念

CA 证书的原理及用途

关于这方面,请看俺4年前写的《数字证书及CA的扫盲介绍》。这里就不再重复唠叨了,免得篇幅太长。

HTTPS 协议的需求是啥?

兼容性

可扩展性

保密性(防泄密)

完整性(防篡改)

真实性(防假冒)

性能

小结

以上就是设计 SSL 协议时,必须兼顾的各种需求。后面聊协议的实现时,俺会拿 SSL 协议的特点跟前面的需求作对照。看看这些需求是如何一一满足滴。

设计 HTTPS 协议的主要难点

结尾

本文费这么多口水,来介绍 HTTPS 的“需求”和“难点”,为啥捏?因为只有当你了解这些,后面介绍 SSL/TLS 的实现原理时,你才能理解——当初为啥要把协议设计成这个样子。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注