支持Crittercism弱SSL密码套件,并且缺少证书固定

时间:2019-09-06 06:00:11

标签: react-native encryption crittercism certificate-pinning

我们的安全团队已对我们的移动应用程序进行了安全扫描,发现了以下漏洞:

Vulnerability Name: Weak SSL Cipher Suites are Supported
Vulnerability Type: attWeakCipherSuites
Calling Method: com.crittercism.internal.ca.a(com.crittercism.internal.bz):com.crittercism.internal.cb
Method Signature: javax.net.ssl.SSLParameters.setCipherSuites(java.lang.String[]):void
Location: (Unknown)
Issue Validation Parameter - Name: cipherSuites
Issue Validation Parameter - Value: [TLS_ECDHE_ECDSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_RSA_WITH_CHACHA20_POLY1305_SHA256,TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256,TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384,TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA,TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA,TLS_RSA_WITH_AES_128_GCM_SHA256,TLS_RSA_WITH_AES_256_GCM_SHA384,TLS_RSA_WITH_AES_128_CBC_SHA,TLS_RSA_WITH_AES_256_CBC_SHA,TLS_EMPTY_RENEGOTIATION_INFO_SCSV]

Vulnerability Name: Lack of Certificate Pinning
Vulnerability Type: attSSLCertificatePinning
Calling Method: com.crittercism.internal.ca.a(com.crittercism.internal.bz):com.crittercism.internal.cb
Method Signature: java.net.URL.openConnection():java.net.URLConnection
Location: (Unknown)
Issue Validation Parameter - Name: this
Issue Validation Parameter - Value: https://5-8-10-android.appload.ingest.crittercism.com/v0/config

有人可以帮助我解决上述问题吗?

  

平台:Android
  框架:React-native

1 个答案:

答案 0 :(得分:0)

您的问题

第一个问题

  

漏洞名称:支持弱SSL密码套件   漏洞类型:attWeakCipherSuites

您只需要传递推荐的最新密码套件,就可以了解Mozilla site中的密码套件。

目前最安全的是推荐给Modern Compatibility的那些

TLS_AES_128_GCM_SHA256:TLS_AES_256_GCM_SHA384:TLS_CHACHA20_POLY1305_SHA256

第二个问题

  

漏洞名称:缺少证书固定   漏洞类型:attSSLCertificatePinning

使用React Native之后,您可能需要尝试使用react-native-cert-pinner软件包:

  

此程序包管理Android和iOS的react-native TLS证书固定。

您应该阅读软件包的自述文件以获取详细说明,但是作为快速入门,这可能会起作用:

npm install react-native-cert-pinner --save

随后是自动安装:

react-native link react-native-cert-pinner

否则,您应该从README中尝试Android的manual installation

走额外的里程

如果您想了解为什么要使用证书固定,请阅读以下两个部分的this blog post

什么是证书固定?

它将简要说明它是什么,以及它在更高层次上如何工作以及如何固定。

  

证书固定是一种将域名与预期的SSL / TLS证书(在技术上更准确地称为X.509证书)相关联的机制。

我们为什么需要证书固定?

此处解释了为什么需要使用它来防止基于信任的假设并防止在敌对环境中使用。

  

尽管https为您提供了移动应用程序与API服务器之间的通信通道的机密性,完整性和真实性,但是证书固定将保护这一保证不受破坏。