HTTPS
一、出现原因:
1、HTTP 有以下安全性问题:
- 使用明文进行通信,内容可能会被窃听;
- 不验证通信方的身份,通信方的身份有可能遭遇伪装;
- 无法证明报文的完整性,报文有可能遭篡改。
2、HTTPS通过(报文加密)(CA证书认证)(数字签名防篡改)解决上述问题
3、HTTPS并不是一个新的协议,它其实就是在HTTP协议下多加了一层SSL/TLS协议,也就是通过HTTP的明文通过SSL的加密后形成密文才能到TCP里面进行网络传输。而SSL的工作原理就是CA体系+对称和非对称加密过程
二、关键词
-
对称加密:加密和解密都是用同一个密钥
-
非对称加密:加密用公开的密钥,解密用私钥(公钥看作是锁头,私钥看作钥匙)
-
数字签名:验证数据传输过程没有被篡改
数字签名其实也可以看做是非对称加密的手段一种,具体是这样的:
得到原信息hash值,用私钥对hash值加密,另一端用公钥解密,最后比对hash值是否变了。
如果变了就说明被篡改了。(一端用私钥加密,另一端用公钥解密,也确保了来源)
- 数字证书:CA认证机构证明是真实的服务器发送的数据
非对称加密的时候,是使用公钥进行加密的。如果公钥被伪造了,后面的数字签名其实就毫无意义了。
讲到底:还是可能会被中间人攻击!此时就需要 CA认证机构来确认公钥的真实性!
三、连接过程
- Client 输入https地址连接到 Server的443端口
- Server有一套数字证书,包含公钥+私钥
- Server发送证书到 Client
- Client 验证证书有效性,成功则生成Random随机值(作为对称加密的密钥)
- Client 用公钥加密此Random(密钥),并发送给Server
- Server 用私钥解密得到密钥
- Server 用密钥加密传输内容,并发送密文到 Client
- Client 用自己生成的密钥 解密文得到传输数据
四、HTTPS的 加密、认证、完整性保证
1、加密
混合加密模式:非对称加密+对称加密
非对称加密:保证安全的交换传输过程使用的共享密钥
对称加密:通信双方的传输内容使用共享密钥加密
2、认证
CA机构是双方都信任的第三方,只要验证了它下发的证书有效性就可以确定服务器是真实可靠的
证书签发过程:
1、CA认证机构审核申请,通过则签发证书;
2、证书包含申请者提供的公钥、申请者及颁发者信息、签名;
3、签名是将 证书内的明文(申请者公钥和各种信息)通过散列函数计算得到 信息摘要,对此摘要用CA私钥加密 最后生成的密文就是签名;
4、当Client验证数字证书时,使用相同的散列函数计算得到信息摘要1;再使用 (内置)CA公钥解密签名得到的信息摘要2;对比 1和2,如果相同则证明证书合法(公钥合法)
3、完整性保证
通过2中使用到的数字签名
五、HTTPS的缺陷
HTTPS保证安全的同时也会带来以下问题:
- 因为需要进行加密解密等过程,因此速度会更慢;
- 需要支付证书授权的高额费用。