Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Http与Https区别+自我总结 #9

Open
law-chain-hot opened this issue Mar 2, 2020 · 0 comments
Open

Http与Https区别+自我总结 #9

law-chain-hot opened this issue Mar 2, 2020 · 0 comments
Labels

Comments

@law-chain-hot
Copy link
Owner

law-chain-hot commented Mar 2, 2020

Http与Https区别+自我总结

Http 简单总结

简单,低耗,危险,无ca,默认端口80,明文,直接运行在HTTP协议运行在TCP之上

但是Https,运行在SSL/TLS之上,SSL/TLS运行在TCP之上

Https 简单总结

对于Https的一句话总结用非对称加密的密钥(公钥),来保证最后生成的对称加密的密钥(会话密钥 session key)的安全性

image

因为Client randomServer randomPremaster secret
这三个重要的随机数,前2个都是明文形式,最后一个Premaster secret的安全由服务端的公钥保证

双方获得会话密钥后,变为正常的http通信,不过内容由会话密钥加密

过程

  1. Client Hello
    • 协议版本,如TLS 1.0
    • 支持的加密方法
    • 客户端生成的随机数(Client random)注意,此时为明文
  2. Server Hello (与上面对应)
    • 确认版本号
    • 确认加密方法
    • 服务器生成的随机数(Server random) 注意,此时依旧为明文
    • + 服务器证书 (里面包含公钥)
  3. Client response
    • 确认证书没问题
    • 生成PreMaster Secret,并使用公钥加密 注意,此时为加密传输
  4. Server
    • 使用私钥解密,得到PreMaster Secret
    • 根据3个随机数,生成『会话密钥(session secret)』Client 同理

为什么不全用非对称加密

因为 CPU 计算资源消耗非常大,没学过密码学,具体不清楚,据说一次完全 TLS 握手,密钥交换时的非对称解密计算量占整个握手过程的 90% 以上

参考链接:

https://honglu.me/2016/01/13/HTTPS%E8%AF%A6%E8%A7%A3/


⬅ 返回我的Blog

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant