TrustKit-Android can’t support multi <domain> under the same <domain-config>

オープン
#78 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
35/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
停滞
技術スタック
android, java
領域
mobile, security

調査の方向性

issueで参照されているテストリソースである trustkit/src/androidTest/res/xml/network_security_config.xml から始め、既存の複数ドメインのケースを確認します。1つの domain-config 配下に複数のドメインがある場合のカバレッジを追加し、その後、最後のドメインだけでなく google.com、yahoo.com、verizon.com に pinning が適用されることを確認します。

索引モデルが issue の本文から書いたものです。

説明

Is your feature request related to a problem? Please describe.
TrustKit-Android can’t support multi under the same
This means it only deploys SSL public key pinning at the last domain, for example

<domain-config>
  <domain includeSubdomains="true">google.com</domain>
  <domain includeSubdomains="true">yahoo.com</domain>
  <domain includeSubdomains="true">verizon.com</domain>
<pin-set>
    <pin digest="SHA-256">AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</pin>
    <pin digest="SHA-256">YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg=</pin>
  </pin-set>
</domain-config>

TrustKit only verifies the domain verizon.com’s certificate chain. Neither google.com nor yahoo.com

Describe the solution you'd like
Because TrustKit Android works by extending the Android N Network Security Configuration, it is good to support multi under the same

Describe alternatives you've considered
If we want to enable SSL pinning to multi domain, even the same certificate chain, we need to separate the domain-config

<domain-config>
  <domain includeSubdomains="true">google.com</domain>
  <pin-set>
    <pin digest="SHA-256">AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</pin>
    <pin digest="SHA-256">YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg=</pin>
  </pin-set>
</domain-config>
<domain-config>
  <domain includeSubdomains="true">yahoo.com</domain>
  <pin-set>
    <pin digest="SHA-256">AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</pin>
    <pin digest="SHA-256">YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg=</pin>
  </pin-set>
</domain-config>
<domain-config>
  <domain includeSubdomains="true">verizon.com</domain>
  <pin-set>
    <pin digest="SHA-256">AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=</pin>
    <pin digest="SHA-256">YLh1dUR9y6Kja30RrAn7JKnbQG/uEtLMkBgFF2Fuihg=</pin>
  </pin-set>
</domain-config>

Additional context
We can refer its test cases:
https://github.com/datatheorem/TrustKit-Android/blob/master/trustkit/src/androidTest/res/xml/network_security_config.xml

主要言語
Java
スター
604
フォーク
90
平均マージ
1時間 29分
マージ済み PR(30日)
2

コントリビューションガイド

このリポジトリのコントリビューションガイドは索引されていません

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

datatheorem/TrustKit-Android のほかの issue

datatheorem/TrustKit-Android の issue をすべて見る

似ている issue

Java の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。