介绍一下HTTPS吧?
HTTPS
HTTPS概念:英文名是HTTP over SSL/TLS,HTTPS 的语法、语义仍然是 HTTP,但在 HTTP 下层的五层会话层换成了 SSL/TLS,默认端口从80调整为443。
SSL/TLS:SSL 即Secure Sockets Layer(安全套接层),由网景公司1994年开发的安全协议,处于OSI五层(会话层),TLS·即Transport Layer Security(传输层安全),它是SSL的3.1版本。
通信安全需要的四个必要特性
机密性(混合加密(对称+非对称)解决)是指对数据的“保密”,只能由可信的人访问,对其他人是不可见的秘密,HTTP没有机密性所以wireshark抓包之后能清楚的看到传输的数据。
对称加密是指加密解密使用同一把密钥,是“对称”的,只要保证了密钥的安全,那整个通信过程就可以说具有了机密性,常用的对称加密算法有AES和CHACHA20。
非对称加密是指使用“公钥”加密、“私钥”解密的加密方式,公钥的信任需要通过CA颁发的证书进行认证,接收方拥有自己的私有密钥,不需要通过传输获得。比较著名的非对称加密算法是基于“整数分解”问题的RSA算法,使用两个超大素数的乘积作为生成密钥的材料,想要从公钥推算出私钥非常困难;还有基于“椭圆曲线离散对数”问题的ECC算法,使用特定的曲线方程和基点生成密钥,其子算法ECDHE用于密钥交换,ECDSA用于数字签名。
混合加密是指混合使用对称加密和非对称加密的加密方式,之所以需要混合加密是因为非对称加密虽然安全但太慢了,在交换对称加密密钥阶段使用非对称加密,交换报文阶段使用对称加密。
完整性(摘要算法解决)是指数据在传输过程中没有被修改。
摘要算法是指通过哈希函数将数据转换为固定长度的字符串,所以数据要配合摘要一起发送,为了防止数据和摘要一起被黑客修改,要保证机密性,使用密钥加密数据和摘要。
身份认证(数字签名解决)是指保证消息只能发送给可信的人。
不可否认(数字签名解决)是指不能否认已经发生过的行为。
数字签名使用非对称加密,但是是使用私钥加密,公钥解密,考虑非对称加密效率低,我们仅加密摘要,拿到数字签名后对比原文验证即可知道对方身份是否可信。