专栏首页alexqdjayHTTPS的加密

HTTPS的加密

加密方式

常用的加密方式分为:对称加密、非对称加密。

对称加密

采用单钥密码系统的加密方法,同一个密钥可以同时用作信息的加密和解密,这种加密方法称为对称加密,也称为单密钥加密。--百度百科

简单说就是加密方和解密方使用同一个密钥进行加解密交换信息。

但是对称加密的密钥怎么安全地协商确定或者由一方发送给另一方,一直是个问题。

非对称加密 

相对于对称加密双方持有相同的密钥,非对称加密的双方持有不同的密钥,即公钥和私钥,公钥加密私钥解密,公钥加密的密文用私钥是解密不了的。

公钥和私钥是一对存在。

虽然公钥发送给私钥比较安全,但是私钥发给公钥时可能会发生被其他公钥持有者劫持进行解密,所以非对称加密只是单向比较安全,双向并不安全。

https的加密应用

https握手协议中涉及密钥交换:

  1. 服务器向客户端发送公钥
  2. 客户端生成对称加密的密钥,然后使用接收到公钥进行加密发送给服务器
  3. 服务器收到密文,使用私钥进行解密,获取对称加密的密钥
  4. 之后传输使用对称加密

https非常巧妙地将对称加密和非对称加密结合,这样安全性和效率达到最高。

RSA是非对称加密默认算法,但是效率不高,大概占了整个握手的90%,而对称加密只有非对称加密的0.1%。

所以,当年没有采用两端使用两对密钥,分别持有私钥和公钥,这样双向都安全了。不过这样设计的服务的性能一定很差。

总结

通过HTTPS的握手的密钥交换方式,给我们在服务加密的方式方法上很多启发。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • SpringCloud 之 Zuul 源代码详细笔记

    alexqdjay
  • angularjs源码笔记(5.1)--parse

    alexqdjay
  • 分布式共享Session之SpringSession源码细节

    alexqdjay
  • 开发过程中你都用到了哪些数据加密算法

    在日常的开发过程中,主要使用的加密算法有摘要算法、对称加密算法和非对称加密算法。融合自己的理解和一些简单的示例,记录下来,便于日常查看。后期也会不断的更新该文章...

    A梦多啦A
  • 协议森林17 我和你的悄悄话 (SSL/TLS协议)

    TLS名为传输层安全协议(Transport Layer Protocol),这个协议是一套加密的通信协议。它的前身是SSL协议(安全套接层协议,Secure ...

    Vamei
  • 为什么非对称加密比对称加密慢?

    这个问题是一个读者面试时遇到的一个问题,准备过面试的人应该都记得,非对称加密与对称加密的区别之一就是非对称加密的速度慢,但是我们做业务开发的时候通常都是直接调用...

    出其东门
  • 协议森林17 我和你的悄悄话 (SSL/TLS协议)

    作者:Vamei 出处:http://www.cnblogs.com/vamei 严禁任何形式转载。

    Vamei
  • [TCP/IP] HTTPS的工作原理

    一.首先HTTP请求服务端生成证书,客户端对证书的有效期、合法性、域名是否与请求的域名一致、证书的公钥(RSA加密)等进行校验; 二.客户端如果校验通过后...

    陶士涵
  • 产品经理需要了解的接口知识

    在客户端与服务器进行交互时,必然涉及到交互的报文(或者通俗的讲,请求数据与返回数据),如果不希望报文进行明文传输,则需要进行报文的加密与解密。

    物流IT圈
  • 前端网络高级篇(一)HTTPS

    HTTP是Web中常见的通信方式,无状态,简单易用。当然,它的不足之处也非常明显:

    娜姐

扫码关注云+社区

领取腾讯云代金券