Mitmproxyはバージョン11をリリースし、トランスペアレントおよびリバースプロキシモードでのHTTP/3のフルサポートを含むいくつかのアップグレードを導入した。HTTP/3の改良と並行して、このリリースはDNS関連の様々な改善、プライバシー機能の強化、最新のウェブプロトコルのハンドリングの改善をもたらす。
HTTP/3の進化とともに、mitmproxy 11はDNS関連の複数の改良をもたらした。以前のバージョンでは、mitmproxyのDNS機能はgetaddrinfo APIを使用するA/AAAAクエリ(IPv4/IPv6アドレス用)に限られていた。しかしRustベースのHickory DNSライブラリの導入により、mitmproxyはHTTP/3サポートを示すHTTPSレコードを含む広範なクエリタイプをサポート可能になった。このアップグレードにより、モダンDNS要件により良く適合し、ネットワーク分析に対してmitmproxyをより多用途化している。
さらに、新バージョンはDNS-over-TCPをサポートし、単一UDPパケットに収まらない大きなDNSレスポンスを処理するためのクリティカルな機能拡張になっている。Mitmproxyはまた、ユーザーがカスタムDNSサーバーを指定できるdns_name_servers
オプションや、柔軟性を高めるためにシステムのhostsファイルをバイパス可能にするdns_use_hosts_file
のようなオプションも導入している。これらの機能により、ユーザーはDNSハンドリングをよりよく制御可能になり、さまざまなユースケースに対応可能になる。
このリリースのもう1つの改善点は、TLSハンドシェイク中にパッシブな観察者からターゲットドメインを隠すために設計された新しいプライバシー機能、Encrypted Client Hello (ECH)のハンドリングである。ECH はプライバシーを強化する一方で、傍受したコネクションの証明書を生成するmitmproxyの能力を複雑にする。これに対処するため、mitmproxy 11は DNS HTTPSレコードからECHキーを取り除き、ターゲットドメインの可視性を維持しながらプロキシを機能できるようにしている。
このアップデートはコミュニティーの議論にも火をつけた。ユーザーOnavo氏は次の質問を投げかけた。
HTTP/3をリバースプロキシのみサポートし、Webサーバー基盤がサポートしていない場合でも、HTTP/2とHTTP/3はベネフィットを提供するでしょうか?最も主流のJS/Python/Rubyフレームワークは新しいHTTP標準をサポートしていません。リバースプロキシされたコネクションに対してWebサーバーがボトルネックにならないでしょうか?
AgentMEは明確に答えた。
はい。HTTP/2またはHTTP/3は、クライアントとリバースプロキシ間の接続の信頼性を向上させるからです。リバースプロキシとWebサーバー基盤とのコネクションは通常、非常に高速かつ信頼性が高いので、この部分はHTTP/2やHTTP/3にアップグレードされることによるベネフィットは少ないでしょう。
これらのアップデートはHoneynet Projectの下でGoogle Summer of Codeにより支援されている大規模な取り組みの一部である。これらはMaximilian Hils氏のメンターシップの下で働いた学生コントリビューターのGaurav Jain氏によって開発された。
新バージョンはMitmproxy公式ウェブサイトから直接ダウンロードできる。