HTTPS解析
概述
https是Hypertext Transfer Protocol Secure的简称。主要是为了解决服务器与客户端明文发送http请求和响应消息容易被第三方劫持而造成数据泄露这一问题而提出。 https在http的基础上采用Secure Sockets Layer(SSL)对消息进行加密处理。因此,https也指HTTP over SSL。随着版本迭代,SSL逐渐被废弃,而使用了Transport Layer Security(TLS)。在http进行连接前,TLS会通过tcp进行握手完成证书校验和随机数生成,之后通过双方生成的随机数运算得到一个对称密钥,之后就使用对称加密算法进行通信。
中间人攻击
中间人攻击(man-in-the-middle attack)是指双方在通过网络进行通信时,可能会被第三者进行窃听拦截,进而篡改伪造消息,造成的通信信息不安全现象。
加密
加密主要有对称加密算法和非对称加密算法。对称加密算法计算简单但是容易被破解,非对称加密算法安全不易破解但是较为消耗计算资源。非对称加密算法包含公钥和私钥,使用公钥加密的内容只有私钥才可以解密,使用私钥加密的内容只有公钥才可以解密。公钥可以派发给所有人,而私钥自能自己保存。
CA证书
CA是Certificate Authority(认证授权)的简称。CA证书实际是由证书签证机关(CA)签发的对用户的公钥的认证。一个数字证书主要保存了认证网站的公钥。CA机构的公钥被内嵌在操作系统中,进而免去了传输的过程。为了防止证书被篡改(CA机构的公钥是公开的),CA证书通常还包括一个数字签名(指纹),即证书主体内容(明文)首先进行一次哈希(用到的哈希算法包含在证书信息中)得到信息摘要,之后再使用CA机构的私钥对这个哈希后的值进行签名。一方收到证书后,会用相同内嵌在本地的CA公钥进行解密,然后对解密后的内容进行哈希,如果明文与解密后的内容哈希一致就说明信息没有被篡改,这就得到另一方的公钥。
注意,当存在内容被篡改的情况时,比如说第三者通过供CA公开的公钥解密后又修改了明文和数字签名,但第三者没有私钥,这就导致本地公钥无法解密数字签名,导致篡改后的证书失效,这就保证了信息传送的真实性、完整性和不可否认性。