https ssl

reference: 

- https://www.websecurity.digicert.com/security-topics/what-is-ssl-tls-https

 

1. ssl certificate

Secure Sockets Layer. 用于加密网络数据,防止反对读取/修改传输的数据。实现方式是让两个系统中的数据不可读,用加密算法保护数据。

TLS(Transport Layer Security)是进阶版的SSL。但我们仍然refer our certificate as SSL,因为SSL的词汇已经深入人心。

HTTPS(Hyper Text Transfer Protocol Secure):使用SSL证书的URL可以被称为HTTPS。

 

2. 介绍SSL

SSL证书被安装在服务端,但它通常在浏览器上url左侧的🔒标示,告知用户改网站是被SSL保护的。

CAs颁布证书给网站owner,用于鉴别公司身份。证书可以按授权等级被分为3部分:

a) domain validation certificates

最basic level的证书,适用于测试服务器和内部链接。需要企业/组织证明对域名的控制权,证书包括域名名称。不需要证明企业/组织的身份。

b) organization validation certificates

适用于公开、有收集用户信息行为的网站。个人不能获得该证书。需要证明提供合法企业身份,并证明拥有域名所有权。

c) extended validation certificates

用于保护用户,防止用户信息被诈骗网站窃取。需要证明域名所有权和公司合法证明,公司信息会存在证书里。有EV SSL证书的网站address bar是绿色的,暗示安全性。只颁布给企业/组织。

 

3. 原理

基本原理:当安装SSL证书,一个浏览器连接到服务端后,SSL证书会出发SSL/TLS协议,加密传输信息。

SSL操作在TCP层上,在更高的协议层,可以保护数据无损并提供安全的连接。有SSL证书后,一次网络传输只能看到Host、端口号以及数据大小,读不到URL path和信息内容。中断连接时,会有第三方告知server和client本次传输已终止。

- 流程:

a) SSL开始于TCP建立连接后,开始SSL handshake

  - 客户端发送SSL/TLS协议版本,支持的加密、压缩算法。

  - 一个随机数

b) 服务端给用户发送证书以及特定数字(包含加密方法的版本)

  - 证书,确认加密算法、SSL/TLS版本

  - 随机数

c) 用户校验证书,证书过期/不可信/域名不一致等会警告⚠️。选择服务端支持的 最高级的(?)一种加密方法。cipher suites (对话秘钥)

    - 随机数

  - 编码改变通知

  - 握手完毕

d) 服务端回应。保证信息和authenticity都传输了。SSL/TLS协议内包含了message authentication codes(MAC)流程。

  - 编码改变通知

  - 服务器握手完毕通知。

 

4. 加密算法

对称加密:加密、解密使用同一个密钥

非对称加密:加密、解密密钥不同,私钥保密,性能低,更安全。

HASH:不可逆

 

 

 

 

 

 

确实没有业务需求,又不知道干嘛。呆着纯属浪费时间,随便看点理论的东西,希望下个月能做好拖坑准备。^^

posted @ 2020-12-18 17:03  森淼clover  阅读(280)  评论(0编辑  收藏  举报