generated at
proxy
透過proxy
NW管理者が強制的にproxyさせる
PCのブラウザ設定は無関係に強制的にproxyする
>仕組みとしては、インターネットへの通信経路上に透過プロキシの設定をしたプロキシサーバを配置するのみです。
>「インターネットへの通信経路上」といっても、デフォルトルートの経路上に配置してしまうと、smtp や pop, imap 等の他のプロトコルがインターネット通信できなくなってしまいます (http 等の一部のプロトコルのみ、透過型プロキシサーバで取り次がれますので)。
> なので、透過型プロキシサーバは、経路の少し横に配置し、ルータやL3スイッチの PBR (ポリシーベースルーティング) 機能により http 通信だけを曲げるのが一般的です。
http通信だけを強制的にproxyさせるということ
> また、firewalld のポートフォワード機能により、tcp:80 で来た通信を 8080 等のプロキシ待受ポートに変換させたりします。
MITM攻撃と同じ
>この透過型プロキシは、通信ジャックと同じことですので、https 通信についても透過型プロキシ経由にしようとすると、ブラウザに SSL/TLS の警告が表示されてしまいます。
> これを避けるためには、プロキシサーバにて動的に各サーバへの証明書を作成 (例えばクライアントが www.yahoo.co.jp へアクセスする際には CN=www.yahoo.co.jp の証明書をその場で作成しクライアントへ提示) することに加え、クライアント側にはそのプロキシサーバのルート証明書のインストール (信頼設定) が必要です。
>他の回避策としては PBR で tcp:443 は曲げず、直接インターネットへ通信させる。https でのプロキシログは取れなくなってしまうが、Palo Alto 等の UTM の URL フィルタ機能があれば、https 通信開始時のデジタル証明書の CN (Common Name) を見てログを取得できるため、補完できる。
Encrypted SNIになったらこの方法は使えなさそう
>Encrypted SNIではServer Nameヘッダが暗号化され、閲覧サイトの特定がさらに困難になります。 TLS1.3ではサーバ証明書のやり取りも暗号化されますので、証明書のCommon Nameも第三者は見られなくなります。
この記事では実際にWiresharkでパケットキャプチャしてServer Nameが秘匿されていることを見ている
公開proxy(1段のproxy)
透過proxyの利用者がブラウザの設定で指定する版
普通、proxyといったらこれ
匿名proxy(多段のproxy)
例:Tor
欠点:多段なので遅い