こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

iフィルターの実現方法って?

お世話になります。
単なる技術的な興味からなのですが、最近知ったアプリケーションの技術について知りたくて質問しました。
iフィルター(http://www.daj.jp/cs/ifpe5/)というフィルタリングソフトがあるのですがこのアプリの実現方法について教えてください。(関係者からの回答は望めないと思いますので正解に限りなく近い推測の答えしか出せないとは思いますがそれで十分です)

このフィルタリングソフトは不適切なサイトを見ないようにフィルタリングを行うソフトなのですがどうやってパケットの中継をしているのかその仕組みがわかりません。(有害なサイトをどうやって判定しているかには興味ありません。知りたいのはパケットの中継方法です。)

このソフトが不思議なのは使用するに当たってブラウザーにプロキシー登録する必要がないということです。
不適切なサイトを表示しようとした時にブラウザーにエラー画面を表示させることからプロキシーとして動作していることは間違いないと思うのですが、どうやってブラウザーからのHTML取得要求を中継しているのか知りたいのです。
このソフトはいくつかのサービスを起動していますのでこれがプロキシーとなっていると思うのですが、ブラウザーからの要求をフックする方法があるのでしょうか?
試しにtelnetコマンドで取得エラーとなるはずのページを直接取得してみたら本来のページが取得できてしまいますます混乱してしまいました。

このソフトの技術がわかれば何時か役に立ちそうな気がするので、どうやって実現しているのか教えて頂けないでしょうか?

投稿日時 - 2009-04-06 18:41:08

QNo.4857917

暇なときに回答ください

質問者が選んだベストアンサー

> もう少し詳しく知りたいのですが、解説ページや実現するためのコード例等、どこかにありませんでしょうか?
 うううん。やっぱり企業のノウハウですからね。そうカンタンにはネット上に転がってないかと。

 ANo.1では透過プロキシーと書きましたが、正確には違うもの(透過プロキシーのプロキシー機能自体は一般的に応用層で行う)です。・・・・ところで、ご存知の通りTCP/IPはソフトウェアで実現しています。Windowsでもよほどの事が無い限りMicrosoft製のTCP/IPスタックを使用しています。それと、LANカード(普通のIEEE802.3?やIEEE802.11?を実装するもの)もNDISミニポートドライバなどのソフトウェアで制御している事でしょう。これが何を意味しているかというと、「全ての通信はあるレイヤのソフトウェアが完全に掌握している」という事です。それらのソフトウェアを丹念にホジホジしてやる事(完全に置き換えても良いし、フックしてバイパスするものでも良い)で理論上あらゆる通信を制御できる事になりますよね。
 他にも、OpenVPNなんかはレイヤ2 over レイヤ3の典型例ですね。ソースは公開されていませんがSoftEtherもレイヤ2 over レイヤ3です。すなわち、ソフトウェアで完全にイーサネットの動作を構築します。PPTP(L2TP)のようにレイヤ2 over レイヤ2の技術もあります。ADSLなんかもPPPoAやPPPoEという名称でレイヤ2 over レイヤ2の実装で実現しています。

 まとめると、パーソナルファイアウォールに代表される通信制御は下位のレイヤをなんとかしているというのが一つのヒントになりそうですね。私もOpenVPNのソースを見た事はないのですが、見てみると何か分かるかも知れません。

投稿日時 - 2009-04-12 03:23:46

お礼

お礼が大変遅くなり申し訳ありませんでした。
教えて頂いた内容をヒントにもう少し色々と調べてみます。

投稿日時 - 2009-06-11 21:25:07

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

 ごくごく普通のパーソナル透過プロキシーですよね。特に難しい技術を使っている訳ではないと思います。

 Windowsでは出る・入る問わずIP通信をあるプログラムが全て横取りする事ができますので、当然それを別の場所にリダイレクトすることも可能です。この時、特定のイメージ(フルパスを覗いたファイル名(iexplore.exeなど))やプロセスIDを元にフィルタの内容を切り替える事もできます。
 Windows XP標準のパーソナルファイアウォールもEXE名によるフィルタが行えますよね。それと技術的にはほぼ同じようなものです。

投稿日時 - 2009-04-08 01:03:06

お礼

>IP通信をあるプログラムが全て横取りする事ができます

WIRESHARK等、横から覗くことができるのは知ってましたが透過プロキシーとして間に割り込むことができるのは知りませんでした。
そういえばウイルスバスターでメールのチェックをする時、以前のバージョンではメールボックスの指定画面でメールサーバーとしてウイルスバスターのサービスを指定していましたが、最近のバージョンでは本来のメールサーバーを指定してもチェックされるのでどうやって実現しているのか不思議に思っていました。
もう少し詳しく知りたいのですが、解説ページや実現するためのコード例等、どこかにありませんでしょうか?

投稿日時 - 2009-04-09 11:19:35

あなたにオススメの質問