- 使用SSL协议后服务器还是需要对数据 进行对应的加密的。
- 根证书:SSL协议最重要的CA机构在电脑预装的根证书,这个根证书是用于检验网站的数字证书是否正常是否是经过官网备案的防止盗版网站情况。
- 网站的数字证书数据:网站的基本信息(CA信息、网站信息),网站的公钥信息,网站基本信息和公钥信息 被 CA机构秘钥加密后的加密信息。
- CA机构的根证书数据:CA机构的基本信息,CA机构的公钥信息。
- 握手协议(Handshake Protocol)
- 客户端发送请求:当客户端向访问一个网站时,首先 客户端通过发送一个**“Client Hello”消息开始SSL握手过程**,这个消息中包含了客户端支持的SSL/TLS版本、加密算法列表、随机数等信息。
- 服务端响应请求:服务器收到客户端请求后,用一个**“Server Hello”消息响应**,确认协议版本、选择加密套件、提供会话ID(如果适用)以及发送自己的随机数。
- 证书发送:然后服务器再次发送:服务器数字证书给客户端,客户端拿着服务器的数字证书去找CA机构根证书 解密 加密信息(机构(CA)签署)。
- 证书验证:这时就要比对解密后的信息是否和网站数字证书的基本信息 和 公钥信息一致。一致就表示这个网站是官方认可的网站,可以放心访问。
- 生成会话秘钥:在访问之前还需要 和 服务器 生成一个会话秘钥,这个生成的方法是,客户端先生成一个预主密钥(Pre-Master Secret)。这个秘钥通过服务器的数字证书携带的公钥 进行 数据加密,然后发送给服务器,双方随后利用这个预主密钥和其他握手信息,通过一种商定的算法计算出会话密钥(Session Key),该密钥用于对称加密后续的通信。
- 握手完成:双方通过“Change Cipher Spec”和“Finished”消息告知对方将开始使用新密钥和算法进行加密通信,并验证密钥是否正确配置和握手过程是否无误。
- 问题:
- 假如有黑客通过一些手段,在你电脑安装了黑客自己的根证书,这时访问目标网站的数据被黑客捕获,然后发送给你假的数字证书,这时你拿着假的数字证书去找假的根证书验证,这时一定会验证成功,然后你就会和黑客建立数据的交互。这时所有的加密都没有用了。相当于你是明文传输了,应为是明文,所以黑客想怎么修改就怎么修改。修改完毕后再发送给你要访问的网站。这时网站就会执行不是你想执行的操作。导致你的金钱损失等。
- 解决方法:
- 假如我在使用数字证书公钥加密时,首先拿客户端提供的公钥进行了一次加密。这时就算黑客获取到了你的加密数据,但是黑客没有私钥解密,那么黑客只能拿着这个加密数据继续访问官网。这时他获取了服务器使用会话秘钥加密后的数据,但是黑客也没有对应的会话秘钥进行解密所以也查看不了对应数据,也只能原封不动将数据发送给客户端。
- 有人可能会想,万一黑客弄一个一模一样的网站出来,而且也安装了根证书到你的电脑,并且修改了hosts文件,导致网址也一样怎么办? 这时黑客就有了网站 公钥私钥,可以获取你的密码了。但是现在的网站一般都要短信验证了。所以黑客还需要破解你的手机获取验证码,这也是非常困难的。就算获取了了你的密码,当你发现登录后是网站的个人数据和你常用网站的个人数据不一致,这时你就应该想到这个是钓鱼网站,因该马上修改密码。