https为何安全?
通信内容的保密、通信双方身份的真实、通信内容的完整
而https就是为了解决这3大问题而诞生的(准确来说应该是ssl)
通信内容的保密
互联网环境是非常透明的,通信需要经过很多中转才能到接收方手中。
解决办法是非对称加密算法,这种算法有公钥和私钥一对钥匙,公钥是所有人都能获取到的钥匙,私钥则是服务器私自保存的钥匙。
非对称加密算法中公钥加密的内容只能用私钥解密,私钥加密的内容则只有公钥才能解密。
从而达到了内容保密。
通信双方身份的真实
通信双方夹带ssl证书,证明通信双方真实性(权威ca机构颁发ssl证书,可一层层推到证明证书是否为真)
企业ssl证书一年1200左右,可自制(OpenSSL或XCA软件制作,没公信力)
通信内容的完整
篡改通信内容的场景相信大家都深有体会,我们访问一些站点的时候无缘无故就出现了运营商的广告,这都是运营商给加的!!
所以内容的完整性也需要保证,这比较简单:先用哈希算法提取内容摘要,然后对摘要进行加密生成数字签名,验证数字签名就可以判断出通信内容的完整性了
优缺点:
1.SSL 证书需要钱。功能越强大的证书费用越高。个人网站、小网站可申请免费证书。
2. SSL协议握手阶段相对费时
误区:
https无法缓存(Firefox默认只在内存中缓存HTTPS。但是,只要头命令中有Cache-Control:Public,缓存就会被写到硬盘上)