?
HTTPS 与 HTTP 不同, 其在传输层与应用层之间添加了一个 SSL/TLS 的安全层.
机制: 所有的 HTTP 请求与响应都要通过 SSL/TLS 先进行加密, 再进行传输.
基础知识
密码 cipher:
一套编码的算法, 用于编码和以后解码的结合体
工作原理: 通过算法将 plaintext 编码为 ciphertext
密钥 key:
改变密码的工作方式的数字化参数, 从而使得密码机有不同的行为.
数字密钥: 数字密钥是编 / 解码算法的数字化参数
工作原理: 一个加密算法可产生众多的虚拟加密算法, 每一种算法即为一种密钥.
对称密钥技术
定义: 在编码时使用的密钥和解码时使用的密钥相同
缺陷: 在发送着与接受者互相对话之前, 一定要有一个共享密钥; 若有 N 个节点进行相互之间的安全对话, 那么总共需要的保密密钥数量庞大, 不便于管理.
公开密钥加密技术
定义: 编码的密钥为公开密钥, 所有人都可以对其进行编码; 解码的密钥称为私有密钥, 只有其私有者惨鞥够对报文进行解码
功能:
在安全协议下全球范围内发送报文
解决了对称密钥数量庞大的问题
数字签名
定义: 数字签名是用来验证报文未被伪造或篡改的校验和.
机制:
证明身份: 作者拥有私有密钥, 因此只有作者能计算出校验和
防止篡改: 当报文被恶意攻击, 进行修改了之后, 无法计算出正确的校验和
流程:
发送端:
报文转变为摘要
应用私有密钥的加密算法对摘要编码, 计算出数字签名
接受端:
接收到明文报文与签名
把接受到的明文报文计算出其报文摘要 , 同时将签名通过公共密钥的反函数计算出其报文摘要
将两报文摘要进行对比
数字证书
定义: 在 HTTPS 建立一个安全事务之后, 浏览器获取其数字证书, 它的内容基本如下:
web 站点的名称和主机名
Web 站点的公开密钥
签名颁发机构的名称
数字签名
浏览器会对证书内容进行检查:
签名颁发机构可信度
日期检测
签名检测
站点身份检测
通过这些检测来判断是否信任这一证书.
SSL 握手
机制: 在 HTTPS 中, 客户端首先打开一条到 443 服务端口的连接. 之后就会初始化 SSL 层, 对加密参数进行沟通, 并交换密钥. 这个流程叫做「握手」, 握手完成之后, SSL 初始化就完成了.
握手基本流程如下:
客户端发送可供选择的密码并请求证书
服务器发送选中的密码和证书
客户端发送保密信息; 客户端与服务器生成密钥
客户端与服务器交换密钥, 互相告知
来源: http://www.bubuko.com/infodetail-3012952.html