web-dev-qa-db-ja.com

アダルトコンテンツフィルタリング/ダンスガーディアン/スクリプト言語/ SSLの復号化なし

たくさんのウェブページを読んで、次のような結論に達しました。

twitterのようなhttpsサイトからアダルトコンテンツをフィルタリングするには(完全にブロックしない)、Ubuntuプロキシボックスにdansguardian/squidなどを設定して、SSLの中間者の傍受を実行する必要があります。

私のUbuntuプロキシで次のようなことができるかどうか誰もが知っていますか?

  1. bash/phpなどの言語を使用して、ユーザーが要求したTwitterなどの特定のhttpsサイトの「コンテンツ」を取得します(つまり、SSLを壊しません)。これは、ブラウザーでctrl-a/ctl-cを押すようなものです。

  2. dansguardianに渡されるファイルに内容を書き込みます。

  3. dansguardianは、キーワードフィルタリングに応じてページを許可またはブロックします。

私はすでにOpenDNS/hostsファイルリダイレクトを使用しています。これは良い仕事をしますが、Twitterのようなサイトには適していません。

Untangle/K9 Web Protectionなどのテクノロジーを検討しましたが、理想的には、プロキシに配置できる無料のソリューションを探しています。 SSLをそのままにしておくことができれば、サポートコールが簡単/安全/サポートが少なくなるようです。

ありがとう!

2
bananaman

SSLをハッキング/悪用/破壊せずにMITMを実行することは可能です( これがCloudflareの仕組みです )、トリックは2つの接続を使用することです。

すべての要求/接続を受け入れる(したがって、ユーザーからの暗号化されていないコンテンツにアクセスできる)Webサーバーを(プロキシボックスで)ホストします。

プロキシを使用しているユーザーがリクエストを行うとき。
Webサーバーは要求を受け入れ、ユーザーとのSSLセッションを確立できます。
コード(PHPなど)内で、要求されたサーバーへの2番目のSSL接続を作成するクライアントインスタンスを作成します。
クライアントインスタンスは、この2番目の接続で応答を取得します。
Webサーバーは、最初のSSL接続で、その応答(クライアントインスタンスによって受信された)をユーザーに再送信します。

これを行う方法のコード例を必要とする場合、これは質問が広すぎる(多すぎる、長い/良い回答が可能)につながると思われます。

0
NGRhodes

ご回答いただきありがとうございます。私はhttpsのフィルタリングに関する初心者であり、おそらく混乱を招く質問をしました。 Twitterのようなサイトが、Googleセーフ検索のようなコンテンツの安全なURLバージョンを提供していないのは残念です。危険なコンテンツをフィルタリングする場合を除き、SSLは素晴らしいようです:)

0
bananaman

bash/phpなどの言語を使用して、ユーザーがリクエストしたTwitterなどの特定のhttpsサイトの「コンテンツ」を取得します(つまり、SSLを壊さない

HTTPSを使用すると、完全なURLが暗号化され、TLSハンドシェイク内でホスト名のみがクリアテキストで送信されます。つまり、最初にURLを取得することで、ユーザーが要求した内容を把握するためには、SSLの中間者である必要があります。

0
Steffen Ullrich