对抗AndroidSSLPinning.PDF

  1. 1、本文档共5页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
对抗AndroidSSLPinning

前沿技术 对抗Android SSL Pinning 武汉分公司徐华峰 在移动客户端安全测试中,需要代理客户端与服务器之间的HTTP(S) 流量,才能测 试其业务功能的安全漏洞。若客户端安全性较高,在验证服务器身份时使用了HTTPS + SSL Pinning (SSL 证书绑定)特性,就会造成代理软件无法正常使用,从而不能继续进行 业务功能的测试。本文则试图解决该问题。 引言 信安全上,通过加密通信(HTTPS 协议 + “Android 应用程序”)。 动客户端的安全测试大概可以分为三 SSL Pinning 特性),以期能够掩盖客户端 一、什么是SSL Pinning 移个部分:客户端安全、通信安全、服 应用在其他方面的安全问题,尤其是在数据 HTTPS 协议验证服务器身份的方式通 务器端安全。客户端安全包括组件暴露、敏 安全、业务安全等方面。然而,HTTPS 协 常有三种,一是根据浏览器或者说操作系统 感数据存储等;通信安全包括通信加密、校 议 + SSL Pinning 特性模式并不是无敌的。 (Android)自带的证书链;二是使用自签名 验等;服务器端安全包括数据安全(注入等)、 本文通过绕过SSL Pinning,来证明该模式 证书;三是自签名证书加上SSL Pinning 特 业务安全等。 的脆弱性,以及通过该模式掩盖其他安全问 性。第一种需要到知名证书机构购买证书, 根据以往的客户端测试经验发现,有较 题的不可行性(本文仅测试Android 平台, 需要一定预算。第二种多见于内网使用。第 大数量的移动客户端应用,把重点放在了通 对于IOS、WP 其他平台类似,后文统称为 三种是安全性最高的,但是需要浏览器插件 67 前沿技术 或客户端使用了SSL Pinning 特性。 会调用一个验证证书的B 函数,在A 调用B 函数的同时,会传个密钥库C 参数到B 函数, Android 应用程序在使用HTTPS 协议 根据B 函数的返回结果,A 函数决定程序是否继续下去。 时也使用类似的三种方式验证服务器身份, 根据上述过程,若想改变证书验证结果,可以从3 个点着手:1、改变A 函数,使得无 分别是系统证书库、自带证书库、自带证书 论B 函数返回什么结果,程序都能继续运行下去;2、改变B 函数,使得其总返回TRUE;3、 库+ SSL Pinning 特性。 将代理的证书导入C 密钥库。 所 以SSL Pinning, 即SSL 证 书绑 下面将从这3 个点依次绕过SSL 证书绑定。 定,是验证服务器身份的一种方式,是在 ( 二) 实战 HTTPS 协议建立通信时增加的代码逻辑, 1. 准备 样例A PK : 它通过自己的方式验证服务器身份,然后决 定通信是否继续下去。它唯一指定了服务器 测试环境:Android 手机安装该APK,使用无代理网络访问 时,返回 的身份,所以安全性较高。 服务器的响应包,如图1 ;而使用代理网络访问时,SSL 验证出错,服务器没有响应包。如 二、绕过SSL Pinning 图2。 ( 一) 对策分析 客户端绑定了SSL 证书,不能简单地 通过导入代理的证书来绕过,但可以通过修 改客户端源码,改变其验证证书的逻辑。 分析可知,验证证书的逻辑会分为3 个 点(A , B, C),形式为A .B(C),即在A 中调 用B 函数,而B 函数会加载C 参数。当然 也可能是2 个点,B(C) 形式。从软件架构角 度看,多为形式A .B(C)。通俗的讲,在客户 端启动时,会执行初始化A 函数,A 函数中 图1

文档评论(0)

ldj215323 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档