HTTPS是什么
HTTPS 属于应用层协议,其原理是通过SSL/TLS协议在HTTP和TCP之间插入一层安全机制。通过SSL/TLS握手过程,客户端和服务器协商出一个对称密钥,用于后续的数据加密和解密,从而保证数据的机密性和完整性。
为什么会需要HTTPS
因为HTTP 比较严重的缺点就是不安全!
因为HTTP的内容是明文传输的,明文数据会经过路由器、wifi热点、通信服务运营商、代理服务
器等多个物理节点,如果信息在传输过程中被劫持,传输的内容就完全暴露了。劫持者还可以篡改传
输的信息且不被双方察觉,所以我们才需要对信息进行加密。
HTTPS的工作原理
非对称加密 + 对称加密 + CA证书认证
非对称加密
想象一把锁和一把钥匙。在非对称加密中,有两个特殊的“钥匙”:公钥和私钥。想象你把一个公钥放在一个盒子里,然后把盒子送给别人。任何人都可以获得这个盒子,打开它,获得这个公钥。但是,只有你拥有与之配对的“私钥”。
当别人想要给你发加密的信息时,他们可以用你的公钥来锁住信息。只有拥有私钥的人才能解锁并读取这个信息。这意味着你可以安全的接受信息不用担心数据被篡改或者被窃取。其适用于加密小量的重要信息,例如验证身份、数字签名等。
对称加密
对称加密更像是一个密码。想象你和朋友有同样的密码,你们都可以使用这个密码来加密和解密信息。但是,这个密码必须保密,因为任何知道密码的人都可以使用它。这就是为什么对称加密需要更好的密码管理和保护机制。
对称加密的关键是,同一个密钥用于加密和解密数据。这种方法在加密大量数据时非常高效,因为加密和解密过程都使用相同的操作。然而,对称加密需要确保密钥的安全性,以免被不良人士获取。
CA证书认证
当你在互联网上访问一个网站时,你可能会注意到浏览器地址栏前面有一个小锁图标,或者网站的网址以 “https://” 开头。这表示网站使用了加密来保护你的信息。而这种加密是通过一个叫做CA证书认证的方式实现的。
CA是什么?
CA代表“Certificate Authority”,翻译成中文就是“证书颁发机构”。CA就像是一个安全守门员,负责确保网站的身份是真实可信的。
CA证书如何获取
-
申请证书: 网站所有者想要使用加密来保护其网站,就需要向一个CA申请一个证书。这个证书就像一个身份证,确认了这个网站的身份。
-
验证身份: CA不会轻易发放证书,它会仔细验证网站所有者的身份,确保这不是一个欺诈行为。这是为了防止恶意人士伪造证书。
-
颁发证书: 一旦CA验证了网站所有者的身份,它就会颁发一个数字证书。这个证书包含了网站信息、公钥等。
-
使用证书: 网站将获得的数字证书安装在自己的服务器上。这个证书中包含了一个公钥,用于加密信息。
CA证书如何工作
- SSL/TLS握手过程
- 客户端向服务器发起HTTPS请求。
- 服务器返回公开的SSL证书,其中包含服务器的公钥和其他信息。
- 客户端的浏览器会验证证书的合法性,包括检查证书是否由受信任的证书颁发机构签署,证书是否过期,证书是否被篡改(从系统中拿到该证书发布机构的公钥, 对签名解密, 得到一个 hash 值(称为数
据摘要), 设为 hash1. 然后计算整个证书的 hash 值, 设为 hash2. 对比 hash1 和 hash2 是否相等. 如
果相等, 则说明证书是没有被篡改过的)。 - 如果证书验证成功,客户端生成一个随机的对称密钥(也称为会话密钥),用于后续的数据加密和解密。
- 客户端使用服务器的公钥加密这个随机密钥,并将其发送给服务器。
- 建立安全连接:
- 服务器收到客户端发送的加密后的随机密钥后,使用服务器的私钥进行解密,获取到随机密钥。
- 现在,服务器和客户端都拥有了相同的对称密钥,用于后续的数据加密和解密。
- 客户端和服务器之间的数据传输将使用这个对称密钥来进行加密和解密,保证数据的机密性和完整性。
- 会话保持:
- 一旦SSL/TLS握手过程完成并建立了安全连接,客户端和服务器之间的通信会保持这个安全连接。
- 在会话保持期间,客户端和服务器都可以使用相同的对称密钥来加密和解密数据。
- 这样,每个后续的请求和响应都可以在安全的连接上进行,不需要重新进行SSL/TLS握手过程。