HTTPS 与网络安全
http 协议是我们生活和工作中接触到的最多的网络应用协议,打开浏览器,浏览新闻,欣赏图片,下载文件,这些习以为常的操作背后都是 http 协议在发力。http 协议很好但是一个很大的缺点,就是它传输的内容是明文的。换句话说,你看了什么新闻,看了什么图片,下载了什么文件,网络运营商、老板、网管都一览无余。
为了解决这个问题,科学家们提成了 https 这种解决方案来达到保护隐私和数据安全的目的。不过在详细说明 https 之前需要先了解一下对称加密算法和非对称加密算法。对称加密指的是加解密使用同一个密钥。非对称加密指的是加密和解密使用不同的密钥,而且公钥加密的数据只能使用私钥解密,私钥加密的数据只能公钥解密。在实际的 https 中,这两个过程是组合使用的,前者用于数据加密,后者用于数字签名。
对称加密算法虽然快但是需要暴露密钥,非对称加密算法虽然私钥是私密的但是加解密涉及到复杂的数学计算,这个过程非常消耗资源。在实际 https 中,这两种方案是结合使用的。https 在每次通信前都会生成一个临时的用于加密内容的密钥,再将这个密钥通过非对称加密算法加密,结合了二者的优点,保证了安全和性能之间的平衡。
有了 https,在日常使用中还需要注意什么吗?最需要注意的是不能随便安装根证书。安装了 根证书后意味着该机构签发的所有证书都是合法的,即使证书是伪造的。这种操作相当于允许一个中间人来审查客户端和服务器通信的流量。
那么,有了 https 就万无一失了吗?虽然 https 加密了内容,但是访问的地址是没法加密的。也就是说,别人还是能知道你访问了 google.com,虽然他不知道你具体访问了哪个网页,网页的内容是什么。另外 https 只负责客户和服务器之间的数据传输,服务器的数据库泄露之类的问题,https 也无能为力。
总之,网络安全是一个多方面作用的结果,而其中一个环节出了问题那么整个安全链路都会崩塌,也就是没有绝对安全的系统。