HTTPS的原理
介绍HTTPS前先介绍一下HTTP
HTTP是超文本传输协议,HTTP传输的数据是明文所以在用户登录时的用户名及密码容易泄露,明文传输数据。
HTTPS是基于HTTP传输加上SSL/TLS建立全信道通信,SSL层加密数据,传输加密数据。
加密的方法 对称加密、非对称加密
对称加密是指客户端、服务器可以通过同一个密钥进行加密及解密,缺点是秘钥存容易暴露,优点是算法比较简单,加密速度快,可以处理大文件数据,主流算法是AES
非对称加密是指 客户端、服务端可以通过公钥加密,私钥解密、或者是私钥加密公钥解密,缺点是计算量大,优点秘钥不容易泄露,加密安全,主流算法是RSA
在服务器上有一套数字证书,数字证书会生成公钥、私钥,如证书的颁发机构,过期时间、服务端的公钥,第三方证书认证机构(CA)的签名,服务端的域名信息等内容。
服务器先安装数字证书后一下是HTTPS的解释
1 在客户端请求访问的时候服务器会把 数字证书的公钥,颁发机构,过期时间等信息给到客户端(先做非对称加密),
2 客户端解析证书,这部分工作是由客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,验证没有问题就生成一个随机数 例如:123456+公钥 进行加密,把加密的串传给服务器
3 服务器端拿到加密串用私钥进行解密后得到123456随机数。
4 当客户端传访问的数据时把第二步生成的 随机数 123456+data数据进行对称加密,加密后的字符串发送到服务端。
5 服务端接收到加密字符串进行对称解密,把第三步根据私钥解密到的123456随机数 对称解密后就会得到 data数据。