理解https

 HTTPS (全称:Hyper Text Transfer Protocol over SecureSocket Layer),是以安全为目标的 HTTP 通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。这是百度百科上HTTPS的定义。

说起https,首先要说一下两种数据加密方式:对称加密与RSA(非对称加密)

对称加密算法

如上图所示,加密算法与解密算法用的同一个秘钥,这种加密方式是在一定程度上保证了会话的安全,但是秘钥该如何传递呢,我们知道http是明文传递数据的,如果直接通过http传递秘钥,被第三方劫持,那么数据就没有安全性可言。通过线下的方式传递秘钥?如果有成千上万个客户端,不可能都通过线下的方式完成。所以我们并不能直接依靠对称加密的方式来保证会话的安全性。

RSA(非对称加密算法)

  1976年以前,所有的加密方法都是同一种模式就是对称加密,这种模式最大的缺点就是甲方必须把加密规则告诉乙方,否则无法解密。保存和传递密钥,就成了最头疼的问题。

  1976年,两位美国计算机学家Whitfield Diffie 和 Martin Hellman,提出了一种崭新构思,可以在不直接传递密钥的情况下,完成解密。这被称为"Diffie-Hellman密钥交换算法"。这个算法启发了其他科学家。人们认识到,加密和解密可以使用不同的规则,只要这两种规则之间存在某种对应关系即可,这样就避免了直接传递密钥。这种新的加密模式被称为"非对称加密算法"。

  1. 乙方生成两把密钥(公钥和私钥)。公钥是公开的,任何人都可以获得,私钥则是保密的。公钥加密的信息只有私钥解得开,那么只要私钥不泄漏,通信就是安全的。
  2. 甲方获取乙方的公钥,然后用它对信息加密。
  3. 乙方得到加密后的信息,用私钥解密。

  但是由于RSA算法进行的都是大数计算,使得RSA最快的情况也比DES慢上好几倍,无论是软件还是硬件实现。速度一直是RSA的缺陷。一般来说只用于少量数据加密。RSA的速度比对应同样安全级别的对称密码算法要慢1000倍左右。

 

↓ 对称加密(有密钥交换的问题)

↓ 非对称加密(基于复杂的数学难题,运行速度很慢)

↓ 混合加密(怎么保证完整性?不被修改?)

↓ 摘要算法(无法保证是用户自己)

↓ 数字签名(公钥怎么保证安全正确的?)

↓ 数字证书、CA

 

posted @ 2021-04-01 01:30  唐磊(Jason)  阅读(108)  评论(0编辑  收藏  举报