黑客业务

黑客服务,入侵网站,网站入侵,黑客技术,信息安全,web安全

攻击服务器软件(服务器 攻击)

背景

在APP海量时代,很多APP都进行过证书预埋检查功能设置。当预埋的APP更新服务器

端证书时,发现部分客户出现证书更新之后,APP无法正常通信等情况出现。经过技术排

查发现由于APP中进行了证书预埋检查,并预埋了服务器证书(公钥)文件等信息,导致

证书更新后新证书无法通过APP预埋检查验证,提示网络中止连接。

如果您的APP做了以下的预埋,都会存在隐患:

1.在APP中预埋了服务器证书(公钥)做证书检查;

2.在APP中预埋了服务器证书的指纹值做证书检查;

3.在APP中预埋了中级证书文件或者根证书文件做证书检查;

4.在APP中预埋了中级证书指纹值或者根证书指纹值做证书检查;

证书预埋检查存在哪些隐患:

1 服务器证书(公钥)存在有效期限制,目前最高3年有效期,未来CA/B组织会逐渐缩短证书最长生命周期。如果将服务器证书进行APP预埋证书检查,当服务器证书因为生命周期终止导致证书更新时,经过预埋的APP会出现无法正常通信等情况。

2 根证书和中级证书也会存在失效、策略变更或者过期,如果将根证书或者中级证书进行APP预埋,一旦根证书和中级证书发生了更新,经过预埋的APP会出现无法正常通信等情况。

虽然在大多数情况下,检查机制能够防御中间人攻击。因为当黑客窃听通信时,他提供的拦截证书多为自签名证书,TrustManager不能识别这个证书,于是拒绝 HTTPS 连接。但是,一旦预埋的这张证书由于证书生命周期的终止,触发服务器端进行证书更新替换机制时,APP应用端将无法验证请求证书的有效性,从而导致业务中断。

攻击服务器软件(服务器 攻击)

天威诚信建议:

为了APP业务灵活性和可续性,天威建议使用系统默认的系统信任库来做证书认证,并且开启域名强验证来增强APP安全性。

对服务器证书域名进行强校验(仅供开发人员参考):

展开全文

实现HostnameVerifier的verify()方法:

由于SSL证书本身存在生命周期基本属性,加上中级CA和根证书存在可变更的因素,一旦应用中添加了证书检查功能之后,在后期业务发展过程中势必会带来不可预估的影响。在此,天威诚信技术团队建议您,在安全策略允许的情况下取消证书检查功能,改为使用系统自带信任库方式验证,并配合使用其他比如域名强验证,使用Proguard混淆代码,使用编译库等手段来确保您的APP安全。

如果您有任何相关疑问,可以通过以下方式联系我们技术团队——邮箱:support@itrus.cn技术热线:4006-365-010

相关知识分享:

TLS/SSL证书链

保证通信安全至少要使用 HTTPS 协议,也就是说使用安全传输层协议(TLS)或是它的前身安全套接层协议(SSL)加密的通信。

1.SSL 证书链结构关系

公网可信SSL 证书(至少)包括三个证书:

l根证书:这是由证书认证机构(CA)颁发的,也就是一个可以确保整个通信时安全的值得信任的组织。

l中级证书:一个根证书下有多个中级证书。它们建立服务器证书和根证书的信任桥梁,是连接服务器证书和根证书的证书链,由根证书签名的证书。

l服务器证书:服务器证书是绑定最终请求域名的证书,为最终的加解密证书文件。

攻击服务器软件(服务器 攻击)

2.证书检查

(1)Certificate Pinning

其实Certificate Pinning是OkHttp 实现的一个类似于HPKP的技术,目的是为了使客户

端可以有主动的信任CA的权利,它的工作原理就是使用预先设置的证书指纹和服务器传过

来的证书链中的证书指纹进行匹配,只要有任何一对指纹匹配成功,则认为是一次合法的连

接,否则禁止本次链接。

(2)预埋证书

把数字证书以文件或者字符串的形式写在本地,在SSL握手的时候用本地预埋的证书和服务器传过来的证书进行匹配,如果匹配不成功则禁止本次通信。

(3)Certificate Pinning和预埋证书做法的比较(以OkHttp为例)

l 预埋证书的写法

首先定义一个类实现类实现X509TrustManager接口,实现对客户端证书链的校验方法

和服务端证书链的校验方法,不写的话表示不做任何校验,默认信任所有证书链中的证书。

由于证书存在生命周期和可变性,证书更新和证书链变更都会导致这种预埋失效,从而带来业务中断风险。

l Certificate Pinning的写法

范例代码:

pinner就是证书指纹,sha256表示的是哈希值得一种算法,pinner也可以是 sha1/* ,具体pinner要根据购买证书所支持的配置,证书指纹可以在证书详细信息中点击查看。在SSL握手的时候,会检查配置中的指纹和服务端传过来的证书证的指纹是否相匹配,只要有一个指纹匹配,则进行下一步,否则直接抛出异常,禁止本次连接。

证书在使用过程中会存在不可避免的证书续期和替换更新,每次操作都会导致证书的指纹发现不可逆的变化,一旦使用了Certificate Pinning方式,都会在证书更新之后带来业务中断等情况。

  • 评论列表:
  •  余安劣戏
     发布于 2022-10-26 17:35:12  回复该评论
  • ificate Pinning方式,都会在证书更新之后带来业务中断等情况。

发表评论:

Powered By

Copyright Your WebSite.Some Rights Reserved.