当前位置: 首页 > 科技观察

面试官:为什么HTTPS比HTTP更安全?HTTPS是如何保证安全的?

时间:2023-03-20 02:22:22 科技观察

本文转载自微信公众号《JS每日一问》,作者慧慧。转载本文请联系JS每日一问公众号。1.安全特性在什么是HTTP一文中,我们了解到HTTP在通信过程中存在以下问题:通信使用明文(未加密),内容可能在未验证通信方身份的情况下被窃听,所以有可能遇到伪装HTTPS的出现就是为了解决这些问题。HTTPS建立在SSL之上,其安全性由SSL保证。使用SSL后,HTTP具有HTTPS加密、证书和完整性保护等功能。SSL(SecureSocketsLayerSecureSocketProtocol)及其后继传输层安全协议(TLS)是一种为网络通信提供安全性和数据完整性的安全协议。2.如何实现SSL这些功能主要依赖于三种手段:对称加密:使用协商的密钥对数据进行加密非对称加密:实现身份认证和密钥协商摘要算法:验证信息的完整性数字签名:身份验证对称加密密钥是相同,即对称。只要保证密钥的安全,整个通信过程就可以说是具有保密性的。非对称加密非对称加密有两个密钥,一个称为公钥,另一个称为私钥。这两个密钥是不同的。公钥可以公开给任何人使用,而私钥需要保密。密钥加密后,只能使用公钥对混合加密进行解密。在HTTPS通信过程中,采用对称加密+非对称加密,即混合加密。对称加密中提到,如果能够保证密钥的安全性,整个通信过程可以说是具有保密性的,而HTTPS就是采用非对称加密来解决密钥交换的问题。密钥解密得到一个“对称密钥”保证交换的密钥是安全的,使用对称加密进行通信例如:网站对私钥保密,公钥在网上任意分发,你想登录网站只需要用公钥加密,密文只有私钥的持有者才能解密。黑客无法破解密文,因为他没有私钥。以上方法解决了数据加密问题。在网络传输过程中,数据可能被篡改,黑客可以伪造身份并公布公钥。如果你得到了假的公钥,那么混合加密就没有多大用处了,你的数据会被黑客破解。因此,在上述加密的基础上,还需要加入完整性和认证特性,才能实现真正的安全。实现这个功能的就是汇总算法SummaryAlgorithm实现完整性的手段主要是汇总算法,也就是我们常说的哈希函数,哈希函数可以理解为一种特殊的压缩算法,可以将数据“压缩”任意长度变成固定长度且唯一的“摘要”字符串,就像是这条数据的数字“指纹”。摘要算法确保“数字摘要”与原文完全等价。因此,只要我们将其摘要附在原文上,就可以保证数据的完整性。比如你发送一条消息:“转1000元”,然后加上一个SHA-2摘要。网站收到后,还计算了消息的摘要,并比对了两个“指纹”。如果一致,说明消息完整可信,没有被修改。数字签名可以确认消息确实由发件人签名。并发送出去,因为别人无法伪造发送者的签名原理其实很简单,就是用私钥加密,用公钥解密签名,和公钥一样完全公开,任何人可以得到它。但是这个签名只能用私钥对应的公钥来解锁。拿到摘要后,再对比原文验证完整性,就可以证明消息确实和消息本身一样,就像签署文件一样,因为任何人都可以公开公钥,我们还缺是为了防止黑客伪造公钥。也就是说,如何判断公钥就是你的公钥。这时候就需要第三方,即证书验证机构CA验证机构。数字证书认证机构是站在客户端和服务端都信任的第三方机构的立场。CA对公钥的签名认证要求包括序列号、用途、颁发者、有效时间等,并将这些打包成一个包进行签名,以完整证明公钥的关联性。形成“数字证书”的过程如下:服务器的运营者向数字证书认证机构提交公钥申请。进行数字签名然后分发签名后的公钥,并将公钥放入公钥证书中绑定在一起。服务器将数字证书认证机构颁发的数字证书发送给客户端,客户端通过非对称加密通信收到证书后,可以使用数字证书认证机构的公钥来验证该证书上的数字签名。一旦验证通过,则证明:认证服务器的公钥真实有效数字证书证书颁发机构服务器的公钥是可信的。3.小结可以看出,虽然HTTPS和HTTP只有SSL的一个区别,但是通信的安全性得到了极大的保障。沟通的四大特点都解决了。如下:Confidentiality:MixedAlgorithmIntegrity:DigestAlgorithmIdentityAuthentication:DigitalSignatureNon-repudiation:DigitalSignatureisalsointroducedinathird-partycertificateauthority保证公钥的安全参考https://zhuanlan.zhihu.com/p/100657391https://juejin.cn/post/6844903830987997197#heading-7https://cloud.tencent.com/developer/article/1748862