关于HTTPS连接过程以及中间人攻击原理分解

来源:设计经验分享网
添加时间:2024年02月
一、HTTPS连接过程及中间人攻击原理:

  https协议就是http+ssl协议,如下图所示为其连接过程:

1.https请求
  客户端向服务端发送https请求;
  2.生成公钥和私钥
  服务端收到请求之后,生成公钥和私钥。公钥相当于是锁,私钥相当于是钥匙,只有私钥才能够打开公钥锁住的内容;
  3.返回公钥
  服务端将公钥(证书)返回给客户端,公钥里面包含有很多信息,比如证书的颁发机构、过期时间等等;
  4.客户端验证公钥
  客户端收到公钥之后,首先会验证其是否有效,如颁发机构或者过期时间等,如果发现有问题就会抛出异常,提示证书存在问题。如果没有问题,那么就生成一个随机值,作为客户端的密钥,然后用服务端的公钥加密;
  5.发送客户端密钥
  客户端用服务端的公钥加密密钥,然后发送给服务端。
  6.服务端收取密钥,对称加密内容
  服务端收到经过加密的密钥,然后用私钥将其解密,得到客户端的密钥,然后服务端把要传输的内容和客户端的密钥进行对称加密,这样除非知道密钥,否则无法知道传输的内容。
  7.加密传输
  服务端将经过加密的内容传输给客户端。
  8.获取加密内容,解密
  客户端获取加密内容后,用之前生成的密钥对其进行解密,获取到内容。
  中间人劫持攻击
  https也不是绝对安全的,如下图所示为中间人劫持攻击,中间人可以获取到客户端与服务器之间所有的通信内容。
  HTTPS连接过程以及中间人攻击劫持
  中间人截取客户端发送给服务器的请求,然后伪装成客户端与服务器进行通信;将服务器返回给客户端的内容发送给客户端,伪装成服务器与客户端进行通信。
  通过这样的手段,便可以获取客户端和服务器之间通信的所有内容。
  使用中间人攻击手段,必须要让客户端信任中间人的证书,如果客户端不信任,则这种攻击手段也无法发挥作用。
  二、关于Webview的HTTPS安全
  目前很多应用都用webview加载H5页面,如果服务端采用的是可信CA颁发的证书,在webView.setWebViewClient(webviewClient)时重载WebViewClient的onReceivedSslError(),如果出现证书错误,直接调用handler.proceed()会忽略错误继续加载证书有问题的页面,如果调用handler.cancel()可以终止加载证书有问题的页面,证书出现问题了,可以提示用户风险,让用户选择加载与否,如果是需要安全级别比较高,可以直接终止页面加载,提示用户网络环境有风险:
  HTTPS连接过程以及中间人攻击劫持
  三、中间人攻击的预防
  造成中间人劫持的原因是没有对服务端证书及域名做校验或者校验不完整,为了方便,直接采用开源框架默认的校验方式进行https请求
  如volley
  HTTPS连接过程以及中间人攻击劫持
  HTTPS连接过程以及中间人攻击劫持
  OKhttp3.0
  HTTPS连接过程以及中间人攻击劫持
  预防方式有两种:
1.针对安全性要求一般的app,可采用通过校验域名,证书有效性、证书关键信息及证书链的方式
  2.针对安全性要求比较高的app,可采取客户端预埋证书的方式锁死证书,只有当客户端证书和服务端的证书完全一致的情况下才允许通信,如一些银行类的app,但这种方式面临一个问题,证书过期的问题,因证书有一定的有效期,当预埋证书过期了,只有通过强制更新或者要求用户下载证书来解决。
  以volley为例,重写HTTPSTrustManager中的checkServerTrusted方法,同时开启域名强校验
  深圳()不建议直接用handler.proceed()。如果webview加载https需要强校验服务端证书,可以在onPageStarted()中用HttpsURLConnection强校验证书的方式来校验服务端证书,如果校验不通过停止加载网页。当然这样会拖慢网页的加载速度,需要进一步优化。
 

平面设计相关资讯推荐阅读:


深圳企业网页建设常见问题归结网络操作系统的安全问题自身如何创建网页有什么必须留意的事宜今年做网页开发需要了解的几个技巧!什么是谷歌熊猫更新2021年新手怎么自己制作网页定制网页建设的基本原则网页建设中,图片优化搜索排名需注意哪些问题如何策划好一个网页的用户体验软件定制开发,它有什么优势 品牌网页设计制作公司定做网页建设哪家公司好,网页制作要注意哪些细节从平庸到卓越,让网页建设从0开始网页建设页面应遵循的原则怎么做网页开发才能提高用户体验为初创企业建立网页需要考虑哪些方面深圳网页建设之网页排名不稳定的因素有哪些东莞网页建设你一定要知道的三大设计特点!怎么做好深圳企业网页建设怎样提高你网页速度品牌网页建设:如何提高网页的互动性企业网页设计的内容特点有哪些如何通过男性群体流量来转化到网页站点深圳网页建设中网页设计经验分享优化中对其他部门的沟通、培训及规范很重要网页权重受什么因素的影响网页设计该做什么和不该做什么有哪些提升单页滚动体验的高级技巧在制作网页时要考虑哪些优化细节网页建设中涉及的一些技术问题网页建设的三要素(域名、空间、程序)评述深圳微信营销的渠道策略,企业如何利用微信做好网络营销微盟的微商城怎么样 很好的网页设计公司哪家不错网页模板修改中有哪些注意事项,深圳网页制作需要多少钱如何完善企业网页用好这个,有效提升网页用户体验的高招福利:深圳网页建设的便捷工具建设网页必须常见问题有什么好的网页建设公司拥有的优势如何在网页设计中显示独特的图片建站用户自述:网页建设我较在意的五点找深圳网页建设公司做网页的三大理由seo提高蜘蛛爬行的方法影响平台网页开发周期的要素有什么深圳福田高端网页设计,高端网页设计要如何确保新颖网页建设怎样为企业实现最大营销效益深圳网页建设盘点创业的捷径企业网页的设计步骤网页优化要懂得代码吗互联网思维下的产品和服务是一个有机生命体深圳网页建设小编教你怎么写软文营销网页在用户体验和实际操作层面有哪些特性视频内容营销成功的十大技巧网页改版有哪些比较好的方法制作一个用户友好的网页网页建设页面应遵循的原则企业建站拥有独立服务器有什么好处网页建设完成之后的运营方法修改标题一定会导致惩罚吗
网站备案号:豫ICP备2024041165号