加密算法的意义是保证消息的不泄露,不被篡改。其中一共分为两类:对称加密算法,非对称加密算法。
对称加密算法:
加解密的过程中使用同一个密钥,也就是说这个密钥既可以用来加密,也可以解密。特点是加解密速度快,但是存在密钥传输的问题,无法将这个密钥分享给多个用户。
非对称加密算法:
加密和解密使用不同的密钥,这两个相互加解密的密钥称为一对公私钥对。特点是安全新高,但是加解密的算力成本较高。
数字证书
用于解决公钥传输的问题,通过权威机构的盖章,证明该证书是可以被信任的。这这个权威机构就是CA,为了确认CA机构是否可靠,一个向CA的父级CA验证,直到追溯到根CA机构,而根CA机构一般会内置在电脑中。
HTTPS的工作流程

- 客户端发送Client Hello消息,明文传输可以支持的加密套件,tls版本,支持的加密算法,和一个客户端随机数
- 服务端回复Server Hello,告诉客户端选择的具体tls版本,加密套件,加密算法,和一个服务端随机数;再传输服务端的证书供校验身份;最后发送一个Server Hello Done表明传输完毕
- 客户端校验证书的真实性;为真则生成一个pre-master,通过发送Client Key Exchange 消息,将pre-master通过公钥加密后发送给服务端。
- 服务端,客户端各自通过 客户端随机数,服务端随机数,pre-master 一起生成对称加密密钥。
- 生成后,客户端首先发送改变密钥请求;再发送一个使用新对称密钥加密的握手消息。
- 服务端收到回复后,也会回复一个改变密钥请求,并发送一个使用新对称密钥加密的握手消息。至此连接建立成功。
网友评论