HTTPS

  1. SSL与TLS
    SSL:(Secure Socket Layer) 安全套接层,于 1994 年由网景公司设计,并于 1995 年发布了 3.0 版本
    TLS:(Transport Layer Security)传输层安全性协议,是 IETF 在 SSL3.0 的基础上设计的协议
  2. 从网络协议的角度理解 HTTPS
    在这里插入图片描述
    HTTP:(HyperText Transfer Protocol) 超文本传输协议
    HTTPS:(Hypertext Transfer Protocol Secure)超文本传输安全协议
    TLS:位于 HTTP 和 TCP 之间的协议,其内部有 TLS握手协议、TLS记录协议
    HTTPS 经由 HTTP 进行通信,但利用 TLS 来保证安全,即 HTTPS = HTTP + TLS
  3. 从密码学的角度理解 HTTPS
    HTTPS 使用 TLS 保证安全,这里的“安全”分两部分,一是传输内容加密、二是服务端的身份认证
    3.1 TLS工作流程
    在这里插入图片描述
    此为服务端单向认证,还有客户端/服务端双向认证,流程类似,只不过客户端也有自己的证书,并发送给服务器进行验证。
    3.2 密码基础
    3.2.1. 伪随机数生成器
    它的主要作用在于生成对称密码的秘钥、用于公钥密码生成秘钥对
    3.2.2. 消息认证码
    消息认证码主要用于验证消息的完整性与消息的认证,其中消息的认证指“消息来自正确的发送者”
    消息认证码用于验证和认证,而不是加密
    在这里插入图片描述
    1.发送者与接收者事先共享秘钥
    2.发送者根据发送消息计算 MAC 值
    3.发送者发送消息和 MAC 值
    4.接收者根据接收到的消息计算 MAC 值
    5.接收者根据自己计算的 MAC 值与收到的 MAC 对比
    6.如果对比成功,说明消息完整,并来自与正确的发送者
    3.2.3. 数字签名
    消息认证码的缺点在于无法防止否认,因为共享秘钥被 client、server 两端拥有,server 可以伪造 client 发送给自己的消息(自己给自己发送消息),为了解决这个问题,我们需要它们有各自的秘钥不被第二个知晓(这样也解决了共享秘钥的配送问题)
    在这里插入图片描述
    数字签名和消息认证码都不是为了加密
    可以将单向散列函数获取散列值的过程理解为使用 md5 摘要算法获取摘要的
    使用自己的私钥对自己所认可的消息生成一个该消息专属的签名,这就是数字签名,表明我承认该消息来自自己
    注意:私钥用于加签,公钥用于解签,每个人都可以解签,查看消息的归属人
    3.2.4. 公钥密码
    公钥密码也叫非对称密码,由公钥和私钥组成,它是最开始是为了解决秘钥的配送传输安全问题,即,我们不配送私钥,只配送公钥,私钥由本人保管
    它与数字签名相反,公钥密码的私钥用于解密、公钥用于加密,每个人都可以用别人的公钥加密,但只有对应的私钥才能解开密文
    client:明文 + 公钥 = 密文
    server:密文 + 私钥 = 明文
    注意:公钥用于加密,私钥用于解密,只有私钥的归属者,才能查看消息的真正内容
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值