プロキシを使用すると、HTTP リクエストを行うときに追加のセキュリティ層と匿名性を提供できます。これは、ネットワーク内で制限またはブロックされている可能性のある Web サイトやサービスにアクセスする場合に特に便利です。プロキシを利用すると、中間サーバーを介してトラフィックを再ルーティングできます。これにより、IP アドレスがマスクされ、目的の宛先に接続できるようになります。
通信のセキュリティを強化する 1 つの方法は、 TLS (トランスポート層セキュリティ)。 TLS は 2 者間で暗号化された接続を確立し、交換されるデータの機密性と完全性を保証します。ランダム TLS フィンガープリントは、接続ごとに一意の TLS フィンガープリントを作成する技術であり、攻撃者がユーザーを特定して追跡することを困難にします。
ただし、UTLS (ユニバーサル TLS) を使用する場合、プロキシを使用すると、課題を提起します。 UTLS は、インターネットなどの信頼できない環境で使用するために設計された TLS 実装であり、そのようなシナリオでの TLS 接続のネゴシエーションと確立の複雑さを処理します。
組み込むにはプロキシを UTLS セットアップに追加するには、次の手順を実行できます。
次の手順に従うことで、UTLS を次のように設定できます。プロキシと連携して動作するため、両方のテクノロジーの利点を活用できます。
プロキシ接続を処理するカスタム DialTLS 関数を設定する方法の例を次に示します。
import ( "crypto/tls" "net" "net/url" "github.com/magisterquis/connectproxy" "golang.org/x/net/proxy" "github.com/refraction-networking/utls" ) const proxyString = "http://127.0.0.1:8080" var proxyDialer connectproxy.Dialer // DialTLS creates a uTLS connection through a proxy. func dialTLS(network, addr string, cfg *tls.Config) (net.Conn, error) { proxyURI, err := url.Parse(proxyString) if err != nil { return nil, err } switch proxyURI.Scheme { case "socks5": proxyDialer, err = proxy.SOCKS5("tcp", proxyString, nil, proxy.Direct) case "http": proxyDialer, err = connectproxy.New(proxyURI, proxy.Direct) } if err != nil { return nil, err } conn, err := proxyDialer.Dial("tcp", addr) if err != nil { return nil, err } uconn := utls.UClient(conn, cfg, &utls.HelloRandomizedALPN) return uconn, nil }
このカスタム DialTLS 機能を UTLS 設定に組み込むことで、プロキシ経由でリクエストをトンネリングし、オンライン リソースにアクセスする際のセキュリティと匿名性の両方を強化できます。
以上が安全で匿名の HTTP 1.1 リクエストに UTLS を備えたプロキシを使用するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。