传送证书
这个证书其实就是公钥,只是包含了很多信息,如证书的颁发机构,过期时间等等 。
客户端解析证书
这部分工作是由客户端的TLS来完成的,首先会验证公钥是否有效,比如颁发机构,过期时间等等,如果发现异常,则会弹出一个警告框,提示证书存在问题 。如果证书没有问题,那么就生成一个随机值 。然后用证书对该随机值进行加密 。就好像上面说的,把随机值用锁头锁起来,这样除非有钥匙,不然看不到被锁住的内容 。
传送加密信息
这部分传送的是用证书加密后的随机值,目的就是让服务端得到这个随机值,以后客户端和服务端的通信就可以通过这个随机值来进行加密解密了 。
服务端解密信息
服务端用私钥解密后,得到了客户端传过来的随机值(私钥),然后把内容通过该值进行对称加密 。所谓对称加密就是,将信息和私钥通过某种算法混合在一起,这样除非知道私钥,不然无法获取内容,而正好客户端和服务端都知道这个私钥,所以只要加密算法够彪悍,私钥够复杂,数据就够安全 。
传输加密后的信息
这部分信息是服务端用私钥加密后的信息,可以在客户端被还原 。
客户端解密信息
客户端用之前生成的私钥解密服务端传过来的信息,于是获取了解密后的内容 。整个过程第三方即使监听到了数据,也束手无策 。
07.Https代理作用HTTPS代理的作用是什么?代理作用:提高访问速度、Proxy可以起到防火墙的作用、通过代理服务器访问一些不能直接访问的网站、安全性得到提高
文章插图
08.Https真安全吗【网络编程之 Https 详细分析,超详细知识点】charles抓包原理图
文章插图
大概步骤流程
第一步,客户端向服务器发起HTTPS请求,charles截获客户端发送给服务器的HTTPS请求,charles伪装成客户端向服务器发送请求进行握手。
第二步,服务器发回相应,charles获取到服务器的CA证书,用根证书(这里的根证书是CA认证中心给自己颁发的证书)公钥进行解密,验证服务器数据签名,获取到服务器CA证书公钥 。然后charles伪造自己的CA证书(这里的CA证书,也是根证书,只不过是charles伪造的根证书),冒充服务器证书传递给客户端浏览器 。
第三步,与普通过程中客户端的操作相同,客户端根据返回的数据进行证书校验、生成密码Pre_master、用charles伪造的证书公钥加密,并生成HTTPS通信用的对称密钥enc_key 。
第四步,客户端将重要信息传递给服务器,又被charles截获 。charles将截获的密文用自己伪造证书的私钥解开,获得并计算得到HTTPS通信用的对称密钥enc_key 。charles将对称密钥用服务器证书公钥加密传递给服务器 。
第五步,与普通过程中服务器端的操作相同,服务器用私钥解开后建立信任,然后再发送加密的握手消息给客户端 。
第六步,charles截获服务器发送的密文,用对称密钥解开,再用自己伪造证书的私钥加密传给客户端 。
第七步,客户端拿到加密信息后,用公钥解开,验证HASH 。握手过程正式完成,客户端与服务器端就这样建立了”信任“ 。
在之后的正常加密通信过程中,charles如何在服务器与客户端之间充当第三者呢?
服务器—>客户端:charles接收到服务器发送的密文,用对称密钥解开,获得服务器发送的明文 。再次加密,发送给客户端 。
客户端—>服务端:客户端用对称密钥加密,被charles截获后,解密获得明文 。再次加密,发送给服务器端 。由于charles一直拥有通信用对称密钥enc_key,所以在整个HTTPS通信过程中信息对其透明 。
总结一下
HTTPS抓包的原理还是挺简单的,简单来说,就是Charles作为“中间人代理”,拿到了服务器证书公钥和HTTPS连接的对称密钥,前提是客户端选择信任并安装Charles的CA证书,否则客户端就会“报警”并中止连接 。这样看来,HTTPS还是很安全的 。
相对安全
从抓包的原理可以看出,对Https进行抓包,需要PC端和手机端同时安装证书 。
既然这么容易被抓包,那Https会不会显得很鸡肋?其实并不会,能抓包,那是因为你信任抓包工具,手机上安装了与之对应的证书,你要不安装证书,你抓一个试试 。而且安全这个课题,是在攻防中求发展,没有最安全,只有更安全,所以将攻击的成本提高了,就间接达到了安全的目标 。
推荐阅读
- 马陵之战的作战双方 马陵之战用的是什么计谋
- 行走茶山之南盆老寨,贺开古茶园古树茶
- 美味之榨菜滚肉片汤
- 著名书法家王羲之的简介 王羲之是东晋著名的书法家
- 电影|国产科幻之光!《流浪地球2》宣布已基本杀青:吴京、刘德华主演
- 宁夏之役明朝兵力 万历宁夏战役
- 澶渊之盟是在哪位宋朝皇帝在位时订立的 简述澶渊之盟的影响
- 曹丕作为一位政治家,有何成就? 曹丕诗歌代表作之一
- 康熙十几岁收拾鳌拜 康熙14岁除鳌拜
- 周幽王叫啥 周幽王之后的王是谁