Android程序员面试必须要掌握的:Https加密原理、中间人攻击到底是怎么回事

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

好了,接下来最重要的一步来了:根据之前协商好的加密方式,以及3个随机数,客户端、服务端各自产生出通信密钥,该密钥称为Master Secret,简称MS,也称Session Key。这个密钥虽然是各自产生的,但是产生后是一致的。

第四阶段:加密信道已经建立

客户端,服务端各自产生了通信密钥后,就用这个相同的MS对往后的所有通信信息进行加密。而这个密钥,第三方是不知道的,第三方尽管去窥探,但是他们看不懂信息,所以效果相当于,客户端&服务端在一个加密信道中通信。

从上面可以看出,https通信过程是对称与非对称加密混合的

中间人攻击与https抓包

一个针对SSL的中间人攻击过程如下:

中间人其实是做了一个偷梁换柱的动作,核心是如何欺骗客户端,从而让客户端能够放心的与中间人进行数据交互而没有任何察觉。我们来看Charles如何做到HTTPS抓包的,网上有很多fiddlers如何抓HTTPS包的教程,几步就搞定了,其中最核心的就是:

将私有CA签发的数字证书安装到手机中并且作为受信任证书保存

当私有的CA证书添加到系统信任证书后,就可以完成证书链验证过程

fiddler抓包过程,详情可见:www.cnblogs.com/afeng2010/p…<

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值