この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。

眺める: 16115|答える: 2

Android 7.0の不明で無効な証明書のパケットをキャッチするための解決策

[リンクをコピー]
掲載地 2019/03/18 21:38:06 | | | |
バックグラウンド

パケットキャプチャソフトウェア(例としてチャールズ)を使ってAPPのhttpsリクエストをキャプチャすると、Androidとチャールズの両方が証明書を正しくインストールしているものの、パケットキャプチャが失敗し、エラーが報告されます:

クライアントSSLハンドシェイクに失敗:証明書の処理中に不明な問題が発生しました(certificate_unknown)



原因

Android7.0以降、システムにデフォルトで追加されたCA証明書は信頼されません:

Android エコシステム全体でより一貫性が高く安全な体験を提供するため、Android Nougatをはじめ、互換デバイスはAOSPで管理されている標準化されたシステムのみを信頼します.


ドキュメントリンク:https://android-developers.googl... ed-certificate.html

つまり、SDK24以上のアプリでは、たとえスマホにパケットキャプチャツールの証明書がインストールされていても、httpsリクエストをキャプチャすることはできません。

解決

1. 公式解決策(コード修正が必要)

公式文書:https://developer.android.google... ecurity-config.html
詳細なデモンストレーション:https://blog.csdn.net/mrxiagc/article/details/75329629

2. パケットキャプチャソフトウェアの証明書をシステム証明書としてインストールする(ROOT必須)

システム証明書ディレクトリ: /system/etc/security/cacerts/

各証明書の命名規則は以下の通りです:
<Certificate_Hash>。 <Number>

ファイル名はハッシュ値で、接尾辞は数字です。

ファイル名は以下のコマンドで計算できます:


例えば、2つの証明書で計算されるハッシュ値が同じであれば、一方の証明書の接尾辞番号を0に、もう一方の証明書の接尾辞番号を1に設定できます

ステップ:

上記のコマンドを使ってパケットキャプチャソフトウェアの証明書のハッシュ値を計算し、名前を変更してシステムの証明書ディレクトリにコピーします



この時点で、設定のシステムタブ - >セキュリティ - > 暗号化&認証情報 - > 信頼できる認証情報のシステムタブで新たに追加された証明書が確認できるはずです







先の:フロントエンドJavaScript面接スキル
次に:ランディングページで検証コードの検証をどのように実装するか?????
掲載地 2019/03/19 9:13:25 |
オーナーにお聞きしてもよろしいでしょうか。一部のアプリケーションやAPPはプロキシ経由でパケットをキャプチャできなくなっていて、どう解決すればいいのかわかりません。
掲載地 2019/09/06 22:55:58 |
ボスを見ろ
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。

Mail To:help@itsvse.com