点击->计算机网络复习的文章集<-点击
目录
典型问题
回顾HTTP VS HTTPS
TLS
与SSL
TLS 是进行 HTTPS 连接的重要环节
TLS 在实现上分为 记录层 和 握手层 两层
加密
数字签名
加了密的校验和
数字证书
服务端大部分使用 x509 v3 派生证书,主要信息有
TLS 再分析
SSL/TLS 实际上混合使用了对称和非对称密钥,主要分成这几步
-
典型问题 - 请介绍HTTP、HTTPS协议的区别?
- 请简述TLS技术的工作原理?
-
回顾HTTP VS HTTPS - HTTPS(Secure)是安全的HTTP协议
- 安全性 不安全 安全
- 复杂度 低 高
- 效率 高 低
- 端口 一般是80 443
-
TLS -
与SSL - SSL 是 Netscape 开发的专门用来保护 Web 通讯,目前版本为 3.0
- TLS 是 IETF 制定的新协议,建立在 SSL 3.0 之上
- 所以 TLS 1.0 可以认为是 SSL 3.1
-
TLS 是进行 HTTPS 连接的重要环节 - 通过了 TLS 层进行协商,后续的 HTTP 请求就可以使用协商好的对称密钥进行加密
- 只需配置浏览器和服务器相关设置开启 TLS,即可实现 HTTPS,TLS 高度解耦
- 可装可卸,与上层高级应用层协议相互协作又相互独立
-
TLS 在实现上分为 记录层 和 握手层 两层 - 其中握手层又含四个子协议:
- 握手协议 (handshake protocol)
- 更改加密规范协议 (change cipher spec protocol)
- 应用数据协议 (application data protocol) 和警告协议 (alert protocol)
- 记录层包含TLS记录协议
-
加密 - TLS/SSL 的功能实现主要依赖于三类基本算法:
- 散列函数 Hash、对称加密和非对称加密
- 其利用非对称加密实现身份认证和密钥协商,对称加密算法采用协商的密钥对数据加密,基于散列函数验证信息的完整性
- TLS 的基本工作方式是
- 客户端使用非对称加密与服务器进行通信,实现身份验证并协商对称加密使用的密钥
- 然后对称加密算法采用协商密钥对信息以及信息摘要进行加密通信,不同的节点之间采用的对称密钥不同,从而可以保证信息只能通信双方获取
- 例如,在 HTTPS 协议中,客户端发出请求,服务端会将公钥发给客户端,客户端验证过后生成一个密钥再用公钥加密后发送给服务端(非对称加密)
- 双方会在 TLS 握手过程中生成一个协商密钥(对称密钥),成功后建立加密连接
- 通信过程中客户端将请求数据用协商密钥加密后发送,服务端也用协商密钥解密,响应也用相同的协商密钥
- 后续的通信使用对称加密是因为对称加解密快
- 而握手过程中非对称加密可以保证加密的有效性,但是过程复杂,计算量相对来说也大
-
数字签名 -
加了密的校验和
- 证明是原作者,只有原作者可以私钥来进行加密
- 证明没有篡改,中途篡改校验和就不再匹配
- 校验和使用摘要算法生成,比如 MD5,SHA
-
数字证书 - 受信任组织担保的用户或公司的信息,没有统一的标准
- 数字证书是可信任组织颁发给特定对象的认证
-
服务端大部分使用 x509 v3 派生证书,主要信息有
- 字段 举例
- 证书序列号 12:34:56:78
- 证书过期时间 Wed,Sep 17,2017
- 站点组织名 Lynch
- 站点DNS主机名 lynch-lee.me
- 站点公钥 xxxx
- 证书颁发者 RSA Data Security
- 数字签名 xxxx
- 服务端把证书(内含服务端的公钥)发给客户端,客户端使用颁布证书的机构的公钥来解密,检查数字签名,取出公钥
- 取出服务端的公钥,将后面请求用的对称密钥 X 传递给服务端,后面就用该密钥进行加密传输信息
-
TLS 再分析 - HTTPS 是在 HTTP 和 TCP 之间加了一层 TLS
- 这个 TLS 协商了一个对称密钥来进行 HTTP 加密
-
SSL/TLS 实际上混合使用了对称和非对称密钥,主要分成这几步 - 使用非对称密钥建立安全的通道
- 客户端请求 Https 连接,发送可用的 TLS 版本和可用的密码套件
- 服务端返回证书,密码套件和 TLS 版本
- 用安全的通道产生并发送临时的随机对称密钥
- 生成随机对称密钥,使用证书中的服务端公钥加密, 发送给服务端
- 服务端使用私钥解密获取对称密钥
- 使用对称密钥加密信息,进行交互
|