2012年12月28日

広告除去アプリ WiFi AdBlocker のユーザ向け解説

自作のAndroidアプリWiFi AdBlockerのユーザ向け解説

(追記) GooglePlayストアからAdAwayなどの広告ブロックアプリが一斉削除されたため配布・アップデート用のリンクを作成しました。  http://causeless.seesaa.net/article/347357563.html

このアプリは AdawayAdblock Plus といった著名な広告除去アプリと同様に、広告やユーザー追跡を除去することを目的としたアプリです。 ブロック方式が異なるため、WiFi限定ながら、root権やプロキシ設定ができなくても利用できます。

使い方
・Playストアからアプリをダウンロードする
・アプリを起動する
・「AdBlock機能 無効」ボタンをタップして 広告除去を起動する
・WiFi経由でインターネットへ接続する

あとは設定不要。アプリのメニュー「設定をテスト」から正しく適用できているかチェックできます。


動作原理
Android端末は、『ドメイン名』(example.comなど)をサーバーの『IPアドレス』(10.2.3.4など)に変換する機能を、プロバイダが運用する『DNSサーバー』に頼っています。
多くのプロバイダ・通信事業者はDNSサーバーをカスタマイズして、不正なサイトなどユーザーに有害なドメイン名を、接続不可能なIPアドレスに変換することで、遮断しています。これはDNSフィルタリングなどと呼ばれ、ユーザーの通信内容を盗聴することなく容易に行えるフィルタリング手法です。

このアプリは、Android端末のWiFi接続設定のうち、DNSサーバーの項目を書き換えて、広告除去用にカスタマイズされたDNSサーバーに自動設定します。たとえば、 koukoku.exmaple.com というドメインを ウェブサーバが存在しないアドレスに変換すれば、そのドメインにはアクセスできなくなり、広告配信やプライベート情報のアップロードも行われなくなります。


利点
・root権限が不要(保証外になるroot化は必要ありません)
・プロクシ設定が不要(ブラウザに関係なく利用できます。また、Androidアプリ内広告にも効果があります)
・インターネットアクセス権限が不要(このアプリは一切ネットとやり取りせず、端末内の電話帳などを送信することはあり得ません)
・個別の設定不要(基本的に全てのWiFiアクセスポイントで利用できるはずです。動作しない環境があればお知らせください)
・端末への負荷がほとんど無い

制限
DNSによる広告フィルタを利用するため、DNSサーバーを通信事業者提供のものから、作者がカスタマイズしたサーバーに変更する必要があります。Android端末ではWiFi接続以外でDNSサーバーを変更することは出来ないため、3G/LTE接続では残念ながら効果がありません。自宅のWiFiアクセスポイント利用時や、モバイルWiFiルーターでのテザリング運用時にご利用ください。
(root化すれば可能ですが、そういう人はAdAwayなどを使うことをおすすめします)

AndroidOSにはアンインストーラで環境をもとに戻す機能がないため、アンインストール前に機能を無効にしてください。誤って削除してしまった場合、再インストールして、メニューから強制再設定をすればもとに戻ります。その後アンインストールが可能です。



安全性と危険性
広告フィルタ用のDNSサーバーはアプリ作者が管理しています。万一、作者がドメイン名を悪意あるサーバーのアドレスに変換するようにした場合、あなたの暗号化されていない通信は読み取られる可能性があります。
しかしこれは、作者にかぎらず、プロバイダやGoogleなどの運用するDNSサーバーを利用した場合にも、DNSポイズニングなどの攻撃手法で同じことが起こりえます。

重要な通信を行う場合は、HTTPSなどの暗号化され、通信相手を検証可能な手法でアクセスしてください
HTTPSなどの暗号化通信で通信対象サーバーを証明すれば、万一DNSサーバーが嘘をついていてもそれを検出し、接続を遮断することができ、通信内容が作者などの第三者に漏洩することはありません。

このアプリに関わらず、普段からHTTPSを使うことは非常に重要です。Gmailなど常時接続することが多く、HTTPSに対応しているサービスは日頃からHTTPSで接続することを強くおすすめします

なお、このWiFiAdblockerアプリは実際の通信を中継するのではなく、通信の接続先を変更する(ための設定を行う)だけのアプリなので、アプリが通信内容を読み取ることはありません



他のアプリとの違い


Adaway
端末がドメイン名をDNSサーバーに問い合わせる前に、端末内蔵のドメイン名データベースであるhostsファイルを優先することを利用して、広告用ドメインをブロックします。端末のroot化が必要です。
hostsファイルが大きくなるため僅かにメモリやCPUを消費しますが、高速に動作し、他のネットワーク接続に影響を与えることはありません。


Adblock Plus
HTTP通信を中継するプロクシサーバーを端末内で起動し、他のアプリがAdblock Plusアプリを経由して通信するように設定することで、広告をhtmlファイルの要素レベルでブロックします。
ページ内に直接埋め込まれた広告なども除去できますが、通信内容を解析するために常時端末のメモリ・CPUを消費します。
アプリがメモリ不足などで停止すると、ウェブサイトにアクセスできなくなります。また、一部の端末やウェブサービスはプロクシサーバー経由の接続を禁止していることがあります。

WiFi AdBlocker (本アプリ)
端末が利用するDNSサーバー(ドメイン名をIPアドレスに変換する機能を持つサーバ)を書き換えることで、広告用ドメインをブロックします。
基本的に端末のメモリ等を消費することはありませんが、WiFi接続が変化した際設定変更を行うため、一時的に起動し終了します。
フィルタ用のDNSサーバーがダウンすると、(設定をもとに戻すまで)ウェブサイトなどに接続できなくなる場合があります。


家庭用ルータの設定は不要?
このアプリは家庭用ルーターからDHCPで自動的に割り当てられるIPアドレスを利用して端末を再設定します。基本的にルーター側の設定は要りません。
気になる場合は、該当Android端末にDHCPで固定IPアドレスを割り当てるとよいかもしれません。

何故無償?
アプリ作者が自分で利用したいがために作ったアプリです。アプリやDNSサーバーの利用は無保証ですのでご自身の判断でご利用ください。


その他の詳細は以前のエントリにて
http://causeless.seesaa.net/article/306520220.html
posted by ko-zu at 01:12| Comment(1) | TrackBack(0) | Android | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
広告が劇的になくなりなした。ありがとうございます。そのかわり、あらゆる ブラウザがプロキシエラーで機能しなくなりました。改善方法を教えてください。ハードはSHF31、Androidは4.4.4です。
Posted by gurinyan11 at 2016年10月22日 00:40
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック