17

ボレー ネットワーク ライブラリで SSL ピニングを使用したいと考えています。ボレーでSSLピニングを実装する方法はありますか? Volley は、セキュリティの向上のためにこのサポートを提供しますか?

4

5 に答える 5

2

私が取り組んでいるプロジェクトについても同じことを調べました。しかし、私の立場はあなたとは異なるかもしれません。

OKHttp Network スタック ( https://gist.github.com/JakeWharton/5616899 )で Volley を使用しています。

これらを Gradle ビルドに追加します:1

compile "com.squareup.okhttp:okhttp:2.7.5"
compile "com.squareup.okhttp:okhttp-urlconnection:2.7.5"

OKHttpStack クラスを追加します。

public class OKHttpStack extends HurlStack {
    private final OkUrlFactory okUrlFactory;
    public OKHttpStack() {

        this(new OkUrlFactory( 
            new OkHttpClient.Builder()
                    .certificatePinner(
                        new CertificatePinner.Builder()
                            .add("example.com", "sha256/afwiKY3RxoMmLkuRW1l7QsPZTJPwDS2pdDROQjXw8ig=") //This is the cert
                            .build())
                    .build();
        ));
    }
    public OKHttpStack(OkUrlFactory okUrlFactory) {
        if (okUrlFactory == null) {
            throw new NullPointerException("Client must not be null.");
        }
        this.okUrlFactory = okUrlFactory;
    }

    @Override
    protected HttpURLConnection createConnection(URL url) throws IOException {
        return okUrlFactory.open(url);
    }
}

次に RequestQueue を作成するときは、次のようにします。

Network network = new BasicNetwork(new OKHttpStack());
File cacheDir = new File(context.getCacheDir(), "volley");
int threads = 4;
mRequestQueue = new RequestQueue(new DiskBasedCache(cacheDir), network, threads);

私はまだこれをテストしていないことに注意してください。現時点では固定することを考えています.

幸運を!ガブ

参考文献:

https://gist.github.com/JakeWharton/5616899 https://github.com/square/okhttp/blob/master/samples/guide/src/main/java/okhttp3/recipes/CertificatePinning.java

于 2017-04-05T00:32:16.743 に答える
1

証明書のピン留めの代わりに、公開鍵のピン留めを使用できます。

Volley Library を使用した公開鍵のピニング

于 2016-02-04T13:21:39.857 に答える
0

network_security_config.xml詳細情報を使用できます: https://developer.android.com/training/articles/security-config

于 2022-01-17T16:36:08.380 に答える