「Blast Liver Tidying」Nanny シリーズ チュートリアル - Charles で遊ぶ パケット キャプチャ アーティファクト チュートリアル (5) - Charles に HTTPS セッションをキャプチャするように設定する方法

1 はじめに

 ビッグデータとインターネットの時代において、個人情報のセキュリティは特に重要であり、最近では通信詐欺事件が多発するなどネットワークセキュリティの危機が深刻化しており、国、企業、個人のインターネットセキュリティへの関心が高まっています。過去には http プロトコルで通信される Web サイトから Web サイト情報が漏洩し、ビッグデータのプールに個人情報が流出する事件が多発しており、見慣れない Web サイトに遭遇した場合には、そのセキュリティに特に注意を払うようになります。認証された SSL 証明書を介して HTTPS 暗号化プロトコルを使用して Web サイトにアクセスする方が、暗号化を使用しない HTTP プロトコルよりもはるかに安全です。近年、大手 Web サイトはセキュリティにますます注意を払い、10 年以上前にインターネット上で裸で実行されていた http プロトコルとは異なり、https プロトコルに変更しました。前の記事のホン兄弟の構成に従って構成した友人や子供たちの靴もあり、自分のスキルを誇示して百度のパッケージを手に入れたいと思っていますが、試してみると唖然とし、捕まえることさえできませんでした。 . 兄がやりました。いいえ、今日はホン兄弟が鉄は熱いうちに打って、https プロトコル セッションをキャプチャする方法を説明します。 

2.HTTP

HTTP: インターネット上で最も広く使用されているネットワーク プロトコルです。クライアント側およびサーバー側の要求および応答標準 (TCP) です。WWW サーバーからローカル ブラウザにハイパーテキストを送信するために使用されます。ブラウジングが可能になります。サーバーの効率が向上し、ネットワーク送信が削減されます。

3.HTTPS

HTTPS: セキュリティを目的とした HTTP チャネルです。簡単に言うと、HTTP のセキュア版、つまり HTTP の下に SSL 層を追加したものです。HTTPS のセキュリティ基盤は SSL であるため、詳細な暗号化内容は必要ありませんSSL。

HTTPS プロトコルの主な機能は、データ送信の安全性を確保するための情報セキュリティ チャネルを確立することと、Web サイトの信頼性を確認することの 2 つに分類できます。

4. HTTPとHTTPSの違い

Http はハイパーテキスト転送プロトコルであり、情報はプレーン テキストで送信されます。https は安全な ssl 暗号化転送プロトコルです。
httpとhttpsでは接続方法もポートも全く異なり、前者は80、後者は443です。
http接続は非常にシンプルでステートレスであり、HTTPSプロトコルはSSL+HTTPプロトコルで構築され、暗号化通信と本人認証が可能なネットワークプロトコルであり、httpプロトコルよりも安全です。
httpsプロトコルはCAに証明書を申請する必要があり、一般に無料の証明書が少ないため、一定の料金が必要となります。

5.Charles は HTTP パケットをキャプチャします

charles に証明書がインストールされていない場合、デフォルトで http タイプの URL のパッケージ情報を取得できます。ホン兄弟のこの部分については、前の記事で触れました。以下に示すように:

 インターフェイス自動テストを学習したい場合は、ここで一連のビデオをお勧めします。このビデオは、ステーション B のネットワーク全体でナンバー 1 のインターフェイス自動テスト チュートリアルであると言えます。同時に、オンラインの数はユーザーが 1,000 人に達し、メモを収集して使用することができます。各種マスターの技術交流: 798478386    

【更新】B局が教えるPythonインターフェースの自動テストの最も詳しい実践チュートリアル集(実戦最新版)_哔哩哔哩_bilibili 【更新】Pythonの自動テストの最も詳細な実践チュートリアル集B局が教えるインターフェース(実戦編) 最新版)には以下の動画が合計200本あります: 1. 【インターフェース自動化】ソフトウェアテストの市場状況とテスターの能力基準。, 2. [インターフェイスの自動化] Requests ライブラリとその基礎となるメソッド呼び出しロジックに精通した、3. [インターフェイスの自動化] インターフェイスの自動化戦闘と正規表現と JsonPath エクストラクターの適用など。さらにエキサイティングなビデオについては、注目してください。 UPアカウント。https://www.bilibili.com/video/BV17p4y1B77x/?spm_id_from=333.337&vd_source=488d25e59e6c5b111f7a1a1a16ecbe9a 

6. Charles が HTTPS を取得する原理

Charles の主な動作原理は、クライアントに対してはサーバーとして偽装し、サーバーに対してはクライアントとして偽装することです。

1. クライアントがサーバーに対して HTTPS リクエストを開始します。

2. Charles はクライアントのリクエストを傍受し、クライアントになりすましてサーバーにリクエストを送信します。

3. サーバーはサーバーの CA 証明書を「クライアント」 (実際には Charles) に返します。

4.Charles はサーバーの応答を傍受し、サーバー証明書の公開キーを取得し、自分で証明書を作成し、サーバー証明書を置き換えてクライアントに送信します。

5. クライアントは「サーバー」(実際には Charles) 証明書を受信した後、対称鍵を生成し、Charles の公開鍵で暗号化し、「サーバー」(Charles) に送信します。

6. Charles はクライアントの応答を傍受し、自分の秘密鍵で対称鍵を復号化し (Charles はペア鍵を取得しました)、それをサーバー証明書の公開鍵で暗号化し、サーバーに送信します。

7. サーバーは対称キーを独自の秘密キーで復号し、応答を「クライアント」に送信します (Charles)

8.Charles はサーバーの応答を傍受し、それを独自の証明書に置き換えてクライアントに送信します。

この時点で接続が確立され、Charles はサーバー証明書の公開キーとクライアントとサーバー間でネゴシエートされた対称キーを取得し、暗号化されたメッセージを復号化または変更できるようになります。

7. Charles は HTTPS パケットをキャプチャします

ホンゲは Charles をインストールした後、設定をしませんでしたが、http パッケージをキャプチャできるようになりました。その後、ホンゲは Baidu にアクセスして、何が起こるかを確認するために Baidu の https パッケージをキャプチャしようとしました。

1. ブラウザの状況: Baidu に正常にアクセスできず、次の図に示すように、証明書エラーのようなプロンプトが表示されます。

2.Charles の状況: 次の図に示すように、Baidu の https パッケージをキャプチャできず、不明なエラーが発生します。 

 

7.1 証明書のインストール

上記のエラーから、証明書に問題があることがわかります。その後、証明書をコンピュータにインストールする必要があります。具体的な操作手順は次のとおりです。

1. 以下の図に示すように、charles を開き、「ヘルプ」-->「SSL プロキシ」-->「Charles ルート証明書のインストール」をクリックして証明書をインストールします。

 

 

2. 次の図に示すように、[Charles root Certificate のインストール] をクリックした後、[証明書のインストール] をクリックします。

3. 次の図に示すように、[証明書のインストール] をクリックした後、保存場所として [ローカル コンピューター] を選択し、[次へ] をクリックします。

4. 証明書の保存場所として、「すべての証明書を次のストレージに置く」を選択し、証明書ストレージの後に「参照」をクリックし、証明書ストレージとして「信頼されたルート証明機関」を選択して、「OK」をクリックします。下の図:

5. 次の図に示すように、[次へ] をクリックします。

6. 「完了」をクリックすると、インポートが成功したことを示すメッセージが表示されます。以下に示すように:

7.2 SSLプロキシの構成

証明書をインストールした後、Charles の SSL プロキシ設定を構成する必要もあります。具体的な操作手順は以下の通りです。

1. Charles を開き、[プロキシ] > [SSL プロキシ設定] をクリックして次のポップアップ ボックスを開き、SSL プロキシ スイッチをオンにします。左側に含まれるプロキシはキャプチャする必要があるプロキシ、右側は除外する必要があるプロキシです。次の図に示すように:

2. 右側で「除外」をクリックして追加します。ホストはドメイン名、ポートはポート番号です。https をキャプチャーしたいので、「含める」で「追加」をクリックし、https をキャプチャーする必要があるホストを入力します。ポート内の 443 はい、代わりに * を使用することもできます。ホン兄弟、ポップアップタブで[SSLプロキシを有効にする]にチェックを入れて[追加]をクリックし、ホストに[*]を入力して任意のホストを受信することを示し、プロットに[443]を入力して、最後に[ok]をクリックして保存します。以下に示すように:

3. 上記の手順を完了すると、基本的には終了しますが、この時点でブラウザを開いて www.baidu.com と入力して取得します。

(1) ブラウザのステータス: 次の図に示すように、Baidu に正常にアクセスできます。

 

 

(2) Charles の状況: 次の図に示すように、Baidu の https パッケージをキャプチャできます。

 8. まとめ

実際、最初から最後まで、Https をキャプチャする Fiddler の手順に似ています。最初に証明書をインストールし、次にパケット キャプチャ ツール自体を構成し、最後に HTTPS パッケージを正常にキャプチャできます。

Q: HTTPS が安全なのはなぜですか?

A: HTTPS は通信のセキュリティを保証し、通信プロセスの監視やデータの盗難を防ぎ、Web サイトの信頼性を確認できるためです。

Q: HTTPSの送信プロセスはどのようなものですか?

A: クライアントが HTTPS リクエストを開始し、サーバーが証明書を返し、クライアントが証明書を検証します。検証に合格した後、対称暗号化アルゴリズムの変換に使用される乱数がローカルで生成され、乱数が暗号化されて送信されます。証明書内の公開キーを介してサーバーに送信され、サーバーは秘密キーで復号化して乱数を受け取り、その後のデータのやり取りは対称暗号化アルゴリズムによって暗号化および復号化されます。

Q: なぜ証明書が必要なのですか?

A: 「中間者」攻撃を防止し、同時に Web サイトの身元証明を提供します。

Q: HTTPS を使用するとキャプチャされますか?

A: パケットはキャプチャされます。HTTPS は、ユーザーが知らないうちに監視されることを防ぐだけです。ユーザーが積極的にクレジットを付与すると、「仲介者」ネットワークを構築することができ、プロキシ ソフトウェアが送信コンテンツを復号化できます。

 

おすすめ

転載: blog.csdn.net/m0_73409141/article/details/131811034