httpのバッグについて話します

1623 ワード

前言


tlsは第三者の盗聴、編纂、再生を防止することができる.しかし、通信双方、すなわちaliceとbobはすべての内容を知っている.したがって、https、すなわちtlsはバッグをつかむことができる.以下、いくつかのよく見られるバッグのつかみ方をまとめた.

暗号化されたトラフィックを表示する方法


chrome inspect


ブラウザでのデバッグはもちろんパケットをつかむ一種である.ブラウザ自体がaliceで、alice自身はもちろん自分が何を言っているのか知っています.chromeでF 12を押してnetworkラベルページにカットすればいいです.ウェブ版のappの多くは、このような方法で通信プロトコルを表示することができる.変数名から多くの情報を得ることができる.特筆すべきは、携帯電話もこのようなデバッグをサポートしていることだ.

SSLKEYLOGFILE


Firefox、chromeはすべて通過をサポートします
export SSLKEYLOGFILE=$HOME/sslkeylog.log

ログ形式:https://developer.mozilla.org...
You can tell Wireshark where to find the key file via_Edit→Preferences→Protocols→SSL→(Pre)-Master-Secret log filename_.

仲介者


httpのパケットを検索すると、ほとんどの結果はfiddler、charlesの仲介者パケットなどである.これも自然に、ブラウザがなければ、tlsの両端にinspect能力がない場合、仲介者は唯一の選択肢である.仲介者がかばんをつかむ必要がある場合は、まず仲介者を信用しなければならない.例えば、fiddlerはfiddlerの証明書をルート証明書に追加することを要求する.コードを変更できる場合は、クライアント_プロファイルを構成項目とする.ここでは非常に実用的なバッグをつかむ方法を提案します.

逆プロキシ


サービスaはhttp方式のみを提供すると仮定し、nginxをサービスaの逆エージェントとする.httpサービスも同時に提供する.クライアントからnginxまでのtrafficを捕まえる.nginx構成:
server {
    listen *:80;
    listen [::]:80;
    server_name local.reverse.proxy.com;

    location / {
        proxy_pass https://www.google.com/;
        proxy_set_header X-Real-IP $remote_addr;
        proxy_set_header X-Real-Port $remote_port;
        proxy_set_header Connection "";
        proxy_http_version 1.1;
    }
}