https工作流程
对称加密
加密和解密都使用同一个密钥
非对称加密
加密和解密使用不同的密钥
如:A与B使用非对称加密方式通信,A使用B的公钥对明文加密后发送给B,B使用自己的私钥解密得到明文信息;B用A的公钥对明文加密然后把密文发送给A,A接收到后使用自己的私钥进行解密得到B发送的信息
https在协商会话密钥时使用非对称加密(更安全),在后面会话双方实际进行通信时使用对称加密(效率更高)
数字签名——解决数据完整性(防篡改)问题
数字签名生成方法:明文----哈希算法----->消息摘要-----私钥加密---->数字签名
即:先使用哈希函数对明文生成消息摘要,然后再对消息摘要使用私钥加密生成数字签名
数字签名校验方法:接收方对接收到的明文使用相同的哈希函数对明文生成消息摘要A,然后使用发送方的公钥解密收到的数字签名得到消息摘要B,对比消息摘要A和B就能验证数字签名
CA(证书颁发机构)
为了保证服务器公钥的有效性https服务器运营人员需要向CA(认证机构)申请证书
数字证书认证机构的业务流程:
(1)服务器的运营人员向第三方CA提交相关的申请材料(服务器的公钥、组织信息和域名等)申请数字证书
(2)CA机构验证申请材料的真实性
(3)如果审核通过,CA机构会向申请者签发数字签名证书,证书里面包含了以下信息:申请者公钥、申请者组织信息等、CA签发机构的信息、CA对明文信息生成信息摘要的算法、CA的数字签名(CA采用非对称加密方式用自己的私钥对信息摘要加密生成的密文)
https工作流程
(1)Client向Server发送请求
(2)Server把事先配置好的自己的公钥证书返回给Client
(3)Client验证Server的公钥证书
验证证书数字签名方法:Client读取证书里的明文信息,然后使用相同的哈希算法(证书明文信息有指定)生成信息摘要记为C_M,然后Client使用CA的公钥(Client事先存储了CA的公钥)解密证书里的数字签名得到消息摘要CA_M,对比C_M和CA_M,如果一致,校验通过,否则校验不通过
(4)Client生成后面双方使用对称加密方式进行通信的会话密钥M,然后使用非对称加密方式对会话密钥M使用Server的公钥(CA证书里面有Server的公钥)进行加密发送给Server
(5)Server接收到后使用自己的私钥解密得到会话密钥M,后面Client和Server就使用对称加密的方式进行通信了(对称加密的密钥就是M)
(6)Server使用对称加密方式用会话密钥M加密明文内容A后发生给Client
(7)Client收到信息后,使用会话密钥M解密密文得到明文内容A
(8)Client使用会话密钥M加密明文内容B后发送给Server,Server使用会话密钥M解密得到明文内容B,后续双方一直使用对称加密的方式进行通信
https和http区别
(1)端口不一样,https标准端口443,http标准端口80
(2)https相当于 http+SSL(TLS的前身)
(3)https利于seo,搜索引擎优先索引https网页
参考页面