简单说下
公钥可解私钥
私钥可解公钥
公公或私私不能解
此为非对称加密
公钥公开可知
私钥由客户密码计算得出
私钥 一般存于服务器内部 不暴露于网络中
客户端请求,服务器发送公钥给客户端,客户用公钥加密数据传输,服务器用私钥解密,服务端使用私钥加密返回数据,客户端使用公钥解密
-----
因容易被拦截 所以不安全 引入第三方证书机构
首先服务器用域名和身份信息去第三方机构注册认证,认证方法为在域名上传第三方指定文件或更改指定域名配置信息等
然后使用域名和服务器的公钥生成证书,再用第三方机构的私钥对证书加密,传回服务器备用。
当客户端请求时,服务器发送加密证书,由于该证书为第三方的私钥加密所以只有第三方的公钥可以解密,该公钥为每个客户系统内置,客户端使用该公钥解密,
即可获得服务器域名以及服务器公钥,使用服务器公钥再对数据加密传输,服务器使用私钥解密。
如此当拦截发生时,拦截到服务器传客户的加密证书,可以使用第三方公钥解密查看获得服务器公钥,但不能对证书进行篡改,因篡改后不知第三方的私钥为何,无法再对证书加密,客户端就不能使用第三方的公钥解密,因此保证客户端收到服务器公钥的正确性。
并且拦截到客户传服务器的数据包,由于不知服务器私钥所以也不能进行查看和篡改,也保证了客户传服务器的安全性和私密性 ,而服务器返回客户端的私钥加密数据的数据由于可用服务器公钥解开 依旧存在安全风险,因此。。
---------
因为以上风险,以及非对称加密效率低下等原因,采取加密数据传输,客户端第一次传输给服务器的加密数据为安全数据 ,将该数据设定为一串随机密码,由此服务器获知该密码,以后所有数据由此密码加密进行传输,(对称加密),以此保证数据安全。
-----