接口X509TrustManager的不安全实现-Google Play

十天

当我尝试将应用程序上传到Google Play时,我收到一条消息。“接口x509trustmanager的不安全实现”。在来自Google Play的消息中说:

为避免在验证SSL证书时出现问题,请在X509TrustManager界面中更改checkServerTrusted方法的代码,以便在检测到可疑证书时抛出CertificateException或IllegalArgumentException。

我找到的所有选项都使用checkValidity方法来验证证书,但Google还会添加:

不要使用checkValidity来验证服务器的证书。此方法检查证书的有效性,而不是其安全性。

如何正确更改checkServerTrusted方法的代码?我当前的x509TrustManager实现:

X509TrustManager trustManager = new X509TrustManager() {
        @Override
        public X509Certificate[] getAcceptedIssuers() {
            X509Certificate[] cArrr = new X509Certificate[0];
            return cArrr;
        }

        @Override
        public void checkServerTrusted(final X509Certificate[] chain,
                                       final String authType) throws CertificateException {
            try {
                chain[0].checkValidity();
            } catch (Exception e) {
                throw new CertificateException("Certificate not valid or trusted.");
            }
        }

        @Override
        public void checkClientTrusted(final X509Certificate[] chain,
                                       final String authType) throws CertificateException {
        }
    };
十天

我以这种方式更改了X509TrustManager的实现,并且该应用通过了Google Play验证:

TrustManager[] victimizedManager = new TrustManager[]{

                new X509TrustManager() {

                    public X509Certificate[] getAcceptedIssuers() {

                        X509Certificate[] myTrustedAnchors = new X509Certificate[0];

                        return myTrustedAnchors;
                    }

                    @Override
                    public void checkClientTrusted(X509Certificate[] certs, String authType) {
                    }

                    @Override
                    public void checkServerTrusted(X509Certificate[] chain, String authType) throws CertificateException {
                        if(chain == null || chain.length == 0)throw new IllegalArgumentException("Certificate is null or empty");
                        if(authType == null || authType.length() == 0) throw new IllegalArgumentException("Authtype is null or empty");
                        if(!authType.equalsIgnoreCase("ECDHE_RSA") &&
                                !authType.equalsIgnoreCase("ECDHE_ECDSA") &&
                                !authType.equalsIgnoreCase("RSA") &&
                                !authType.equalsIgnoreCase("ECDSA")) throw new CertificateException("Certificate is not trust");
                        try {
                            chain[0].checkValidity();
                        } catch (Exception e) {
                            throw new CertificateException("Certificate is not valid or trusted");
                        }
                    }
                }
        };

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Google的X509TrustManager接口的不安全实现

不安全的TrustManager的Google Play安全警报

您的应用正在使用带有Apache HTTP客户端的X509TrustManager接口的不安全实现

Google Play安全警报-您的应用使用了不安全的HostnameVerifier实现

模拟安全警报的解决方案-X509TrustManager的不安全实现

如何修复Android应用中X509TrustManager的不安全实现

您正在使用X509TrustManager的不安全实现

如何解决“ Google Play会阻止发布使用不安全的HostnameVerifier实现的任何新应用或更新的发布”?

Google Play拒绝我的应用程序使用不安全的加密模式

Google Play安全警报X509Trustmanager-我的应用程序是否会在5月17日之后从商店中删除?

Android Google Play控制台错误APK不安全地传输用户数据

Webview避免在onReceivedSslError实现时来自Google Play的安全警报

Google Charts不安全评估

没有X509TrustManager实现可用

从Google Play商店访问Google Play游戏

实施X509TrustManager

如何修复包含TrustManager的不安全实现的应用

Google Play帐单1.0无接口方法getBuyIntentExtraParams

使用Google Play应用签名时的安全注意事项

如何为Android应用实现Google Play许可?

如何在App Billing Google Play中实现自动续订

如何在开源应用中实现Google Play计费订阅?

Google Play游戏服务提醒:“检测到错误的实现”

Google Play服务

Google Play静默登录

Google Play-onReceivedSslError

Google Play权限错误

IllegalAccessError Google Play服务

Google Play支持的设备