简介

HTTPS (全称:Hypertext Transfer Protocol Secure [5] ),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性 [1] 。HTTPS 在HTTP 的基础下加入SSL,HTTPS 的安全基础是 SSL,因此加密的详细内容就需要 SSL。 ----摘自百度百科

关于https的讲解的帖子很多,然而多数详细既不详细,且多数使用了很多专业名词,估计写帖子的人都没有完全理解这些专业名词的实际含义吧。

详解

加密类型

加密类型主要分为对称加密、非对称加密、单向加密。

  • 对称加密

对称加密既只有一个密钥,此密钥即可用来加密也可用来解密。既用此密钥加密的密文也要用此密钥解密。

  • 非对称加密

非对称加密拥有两个密钥,假设密钥分别为A和B。用A加密的密文要用B解密,B加密的密钥要用A解密。在大多数的使用场景下,一个密钥公开,叫做公钥,另一个不公开,叫做私钥。在多数的帖子中讲述公钥用来加密,私钥用来解密,其实是错误的。

  • 单向加密

单向加密既没有密钥,只能通过加密算法将明文加密成密文,而密文没办法解密成明文。常用MD5就是单向加密。

https加密传输过程

https其主要目的是加密传输信息,且防止中间人攻击。所以就有了ca机构以及ssl证书。

  1. 网站既服务方,将自己的公钥发给ca机构。
  2. ca机构用自己的私钥将服务方的公钥加密,然后ca机构将密文、服务方的公钥以及一些基本信息封装成ssl证书给服务方。
  3. 用户既客户端,向服务方发送https请求时,服务方将ssl证书发给客户端。
  4. 客户端本来就存着ca机构的公钥,用ca的公钥将ssl证书中的密文解密,然后对比ssl证书中服务方公钥,若一样则服务方可信任。
  5. 当服务方受信任后,客户端会生成一个对称加密密钥,然后用服务方的公钥加密再发送给服务方。
  6. 服务方收到后用私钥解密获得对称加密的密钥。
  7. 之后双方就可以用对称密钥加密信息互相传输。

非对称加密比对称加密要消耗更多的性能,所以最后还是使用对称加密来传输信息。非对称加密只是帮助确定服务方和客户方互相信任。

主要名词讲解

  • ca机构

ca机构就是第三方公认的受信任机构,所以在客户端预先就有ca机构的公钥。

  • ssl证书

ssl证书主要存储以下等信息:
颁发证书的域名、颁发给哪个人,组织或设备、哪个证书颁发机构颁发、证书颁发机构的数字签名(这个就是ca机构加密服务方的公钥的信息)、关联子域、证书的签发日期、证书的到期日期、服务方公钥

结语

以上只是对https的概论,对知识的一个总结吧。有关https更详细具体的学习可以看以下篇文章

此处内容 回复 可见