httpのバッグについて話します
前言
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;
}
}
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;
}
}