HTTPS加密算法

HTTPS

  HTTPS其实是有两部分组成:HTTP + SSL / TLS,即在HTTP上又加了一层处理加密信息的模块。服务端和客户端的信息传输都会通过TLS进行加密,所以传输的数据都是加密后的数据。
在这里插入图片描述

  1. 客户端发起HTTPS请求
    用户在浏览器里输入一个https网址,然后连接到server的端口

  2. 服务端的配置
    采用HTTPS协议的服务器必须要有一套数字证书,这套证书就是一对公钥和私钥

  3. 传送证书
    这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等

  4. 客户端解析证书
    这部分工作是有客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题。如果证书没有问题,那么就生成一个随机值,然后用证书对该随机值进行加密

  5. 传送加密信息
    这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了

  6. 服务端解密信息
    服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密。所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥

  7. 传输加密后的信息
    这部分信息是服务段用私钥加密后的信息,可以在客户端被还原

  8. 客户端解密信息
    客户端用之前生成的私钥解密服务端传过来的信息,于是获取了解密后的内容

加密算法

HTTPS一般使用的加密与HASH算法如下:

非对称加密算法:RSADSA/DSS
对称加密算法:AESRC43DES
HASH算法:MD5SHA1SHA256

对称加密(Symmetric Cryptography)

  对称加密是最快速、最简单的一种加密方式,加密(encryption)与解密(decryption)用的是同样的密钥(secret key)。对称加密有很多种算法,由于它效率很高,所以被广泛使用在很多加密协议的核心当中。
  对称加密通常使用的是相对较小的密钥,一般小于256 bit。因为密钥越大,加密越强,但加密与解密的过程越慢。密钥的大小既要照顾到安全性,也要照顾到效率。
  对称加密的一大缺点是密钥的管理与分配,换句话说,如何把密钥发送到需要解密你的消息的人的手里是一个问题。在发送密钥的过程中,密钥有很大的风险会被黑客们拦截。现实中通常的做法是将对称加密的密钥进行非对称加密,然后传送给需要它的人。

非对称加密(Asymmetric Cryptography)

  非对称加密为数据的加密与解密提供了一个非常安全的方法,它使用了一对密钥,公钥(public key)和私钥(private key)。私钥只能由一方安全保管,不能外泄,而公钥则可以发给任何请求它的人。非对称加密使用这对密钥中的一个进行加密,而解密则需要另一个密钥。比如,你向银行请求公钥,银行将公钥发给你,你使用公钥对消息加密,那么只有私钥的持有人–银行才能对你的消息解密。与对称加密不同的是,银行不需要将私钥通过网络发送出去,因此安全性大大提高。
  虽然非对称加密很安全,但是和对称加密比起来,它非常的慢,所以还是要用对称加密来传送消息,但对称加密所使用的密钥可以通过非对称加密的方式发送出去。例子:
(1)需要在银行的网站做一笔交易,浏览器首先生成了一个随机数作为对称密钥
(2) 浏览器向银行的网站请求公钥
(3) 银行将公钥发送给浏览器
(4) 浏览器使用银行的公钥将自己的对称密钥加密
(5) 浏览器将加密后的对称密钥发送给银行
(6) 银行使用私钥解密得到浏览器的对称密钥
(7) 浏览器与银行可以使用对称密钥来对沟通的内容进行加密与解密了

  • 对称加密加密与解密使用的是同样的密钥,所以速度快,但由于需要将密钥在网络传输,所以安全性不高
  • 非对称加密使用了一对密钥,公钥与私钥,所以安全性高,但加密与解密速度慢
  • 解决的办法是将对称加密的密钥使用非对称加密的公钥进行加密,然后发送出去,接收方使用私钥进行解密得到对称加密的密钥,然后双方可以使用对称加密来进行沟通
发布了162 篇原创文章 · 获赞 58 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/ThreeAspects/article/details/105605594