好了,接下来最重要的一步来了:根据之前协商好的加密方式,以及3个随机数,客户端、服务端各自产生出通信密钥,该密钥称为Master Secret,简称MS,也称Session Key。这个密钥虽然是各自产生的,但是产生后是一致的。
第四阶段:加密信道已经建立
客户端,服务端各自产生了通信密钥后,就用这个相同的MS对往后的所有通信信息进行加密。而这个密钥,第三方是不知道的,第三方尽管去窥探,但是他们看不懂信息,所以效果相当于,客户端&服务端在一个加密信道中通信。
从上面可以看出,https通信过程是对称与非对称加密混合的
中间人攻击与https抓包
一个针对SSL的中间人攻击过程如下:

中间人其实是做了一个偷梁换柱的动作,核心是如何欺骗客户端,从而让客户端能够放心的与中间人进行数据交互而没有任何察觉。我们来看Charles如何做到HTTPS抓包的,网上有很多fiddlers如何抓HTTPS包的教程,几步就搞定了,其中最核心的就是:
将私有CA签发的数字证书安装到手机中并且作为受信任证书保存
当私有的CA证书添加到系统信任证书后,就可以完成证书链验证过程
fiddler抓包过程,详情可见:www.cnblogs.com/afeng2010/p…<

本文详细介绍了HTTPS的工作原理,包括客户端和服务端如何建立加密信道,以及Android 7.0之后对用户CA的限制。讨论了中间人攻击的实施过程,并提供了防止此类攻击的方法,如在Android应用中内置服务器公钥证书进行验证。此外,还提到了Android面试中可能涉及的相关知识点。
最低0.47元/天 解锁文章

892

被折叠的 条评论
为什么被折叠?



