通用技术 HTTPS 自学总结

撞树桐 · 2017年06月13日 · 最后由 朱光精 回复于 2017年11月05日 · 1977 次阅读

前一段时间公司升级 HTTPS,自己也看了一些 HTTPS 的相关知识,最近也在找工作,顺便总结一下(大沈阳的工作真是不好找)


非对称加密和对称加密

非对称加密

又称公开密钥加密,有一对密钥,公开其中一个并不会影响密钥的安全,被公开的叫做公钥,另一个是私钥,维基解释

特点

  • 用私钥加密的数据,只能公钥解开,反之亦然。
  • 公钥加密只能加密少量数据
  • 实现数字签名

算法
RSA

对称加密

加密解密都使用同一个密钥维基解释

特点

  • 速度比非对称加密快
  • 加密大量数据

算法
DES、AES

数字签名和数字证书

  • 数字签名是为了验证信息是否被篡改、丢失(完整性);信息的发送者的真实身份(认证);信息发送者是否发送过该消息(不可否认性)
  • 数字证书是为了验证我接收的公钥是否是信息的发送者的

举例:
A 有一个公钥和一个私钥,A 将自己的公钥给了 B,A 给 B 写信。

  1. A 将自己的公钥和一些信息在CA(数字证书认证机构)上做认证。CA 会用自己的私钥对这些信息加密,从而形成数字证书。
  2. A 将自己的信件内容用自己的私钥加密信件散列码形成数字签名,最后用将信件内容、数字签名、数字证书一起发给 B
  3. B 收到信件,首先去 CA 查询 A 的真实身份,符合后获取 A 的公钥(公钥在数字证书中),用公钥解密数字签名,获得散列码,最后自己收到的信件内容进行散列,两个散列码进行对比,即可完成对 A 身份的认证和 A 信件内容是否被串改进行验证。

注意:这里 B 从 A 获取的证书时,并在 CA 获取 A 公钥的过程,是对 A 真实身份的验证。B 对 A 散列码的验证,是对 A 发送的内容是否被串改,进行了验证。

两个问题

  1. 如果 A 的数字证书,不在浏览器的"受信任的根证书颁发机构"中,那么浏览器会提示。
  2. 如果 A 的数字证书,在浏览器的"受信任的根证书颁发机构"中,但信息不对(如域名不对),那么浏览器会认为 A 伪造、冒用了 A 的证书。

SSL/TLS

四次握手

  1. 客户请求服务端,发送自己支持的加密方法和随机码①
  2. 服务端确定加密方式,发送给客户端加密方式、数字证书、随机码②
  3. 客户端验证服务端证书,生成随机码③,并用服务端的公钥加密随机码③,发送给服务端
  4. 服务端用私钥机密随机码③,并用随机码①②③生成会话密码,以后用该会话密钥进行通信。

几个问题

  1. HTTPS 是否比 HTTP 慢? 是比 HTTP 慢,因为 HTTP 在 TCP/IP 基础上传输的,TCP 只需要三次握手。而 HTTPS 需要在 TCP/IP 基础上再加 TLS 的四次握手。所以一定慢。
  2. HTTPS 用到加密方式 HTTPS 即用到了非对称加密、又用到了对称加密。其中公钥私钥是非对称加密方式,而三个随机码形成的会话密钥,是对称加密。

HTTPS 解决的三大风险

  1. 窃听风险
  2. 篡改风险
  3. 冒充风险

会话密钥解决了盗听风险,数字签名解决了篡改风险,数字证书(CA 认证)解决了冒充风险

参考

数字签名和数字证书
SSL/TLS 协议运行机制的概述
数字签名(维基百科)

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 8 条回复 时间 点赞

希望楼主继续总结,我也跟着看看

正好学习下这块的知识😃 😃 😃

厉害了, 总结的蛮好啊😁 😁 😁 😁

大海 回复

😏 没事的时候就总结总结

匿名 #5 · 2017年06月14日

感谢 总结的很好

表示我也想回大沈阳。但是都不知道该咋找工作= = 。。

陈橙酱 回复

暂时不要回了。。。

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册