iPhoneのすべてのアプリからありとあらゆる広告を消し去る魔法のアプリ「AdBlock」の仕組み

  1. 公開日:2016/10/08
  2. 更新日:
  3. iPhone
  4. 2
34
SHARES
B!

iPhoneで「広告除去」といえば、iOS 9で実装されたSafariのコンテンツブロッカーが有名ですが、「Safariの」とあるように、Safariでしか広告を除去できません。そのため、Safari以外のアプリを開くと広告は通常通り配信されてしまいます。

しかし、iPhoneで、Safari以外でも広告を除去してくれる夢のようなアプリケーションがあります。それが、「AdBlock」です(セール期間等で無償になることはありますが、通常は有償アプリケーションです。購入時には価格にご注意ください)。

AdBlock
AdBlock
Price: ¥240

「たったワンタップの設定で広告が除去できる」、水素水は体に良い、保護フィルムを貼るとiPhoneの寿命が伸びる、iPhoneをレンジでチンするとスクリーンショットの音が消える、など、都市伝説のようにきこえますね。いかがわしいことを裏でやってるんじゃないの?そう思わずにはいられませんよね。そこで、 まずは、簡単に「AdBlock」の設定方法からご紹介し、その後、「AdBlock」の仕組みを簡単にご説明します。

AdBlockの設定方法と仕組み

AdBlockの設定方法(といっても非常に簡単です)と仕組みをご紹介します。

AdBlockのインストール

まずは、「AdBlock」をインストールしましょう。App Storeには類似の名称のアプリが多数あります。販売元が「FutureMind」となっていることを確認してください。また、作者のページからApp Storeのリンクをタップすることもできます。

https://www.AdBlockios.com

AdBlockの設定

AdBlockは、他のコンテンツブロッカー同様に、インストールしただけでは機能しません。設定を有効化する必要があります。

AdBlockを開くと、このような画面が表示されます。初期セットアップ時には、何やらバックグラウンドで通信しています。こちらについては後述します。これが重要な役割を果たしています。画面の指示通り「上にスワイプ」します。

早速、怪しいダイアログが登場します。「AdBlock」を使用するためには、「VPNプロファイル」をインストールする必要がある、と述べられています。また、「個人情報はサーバに収集することはない」とも述べられています。後者は、「AdBlock」の作り方次第であるため、何とも言えない箇所ではあるのですが、作者がそう謳っているので信じるしかありません。ここでは「Continue」をタップします。

「Allow」をタップします。

「設定」→「一般」→「VPN」の項目に自動的に遷移し、プロファイルを設定して良いかどうかを問われるため、Touch IDなりパスコードで認証します。怪しい雰囲気になってきましたね!

何とこれで設定完了です。たったこれだけのステップで、「AdBlock」が使用できる状態になりました。確かにワンステップで終わりましたね。

AdBlockを使ってみた

では、この状態で何が変わったのか、早速使ってみましょう。まずは、定番のSafariで弊サイトを表示してみます。

確かに、本来広告が表示されるべき箇所が真っ白になっています。スペースが除去されるわけではなく、真っ白になってしまうのは、もともと広告を配信していたスペースのHTMLタグやスタイルシートの関係で真っ白になっているだけであって、「AdBlock」のせいではありません。

では、続いて、禁断のSafari以外のアプリで開いてみましょう。今回は、老舗の2ちゃんねる専用ブラウザである「BB2C」を実験に使います。2ちゃんねるの仕様変更により、2ちゃんねる専用ブラウザで同サイトを閲覧する場合は、必ず2ちゃんねるの収益に繋がる指定された広告を表示する必要があります。煩わしいですね。早速開いてみましょう。

本来、広告が表示されていた箇所が、綺麗サッパリなくなっています。Safariのように真っ白なスペースが作られないのは、アプリ側の仕様(広告表示の方法)です。「AdBlock」が素敵なわけではありません。

AdBlockの仕組み

というわけで、至れり尽くせりな感じの「AdBlock」ですが、どのような仕組みで実現されているのでしょうか。Safariのコンテンツブロッカー以外の広告除去アプリで多く採用されている仕組みが、「VPN」と呼ばれるものを使用しています。

「VPN」とは「Virtual Private Network」と呼ばれるものです。文字通り、「仮想プライベートネットワーク」です。このままでは意味がわかりませんが、家庭のWi-Fiネットワークに接続されたiPhoneをVPN接続すると、通常とは異なる経路でインターネットに発信されると言えばわかりやすいでしょうか。わかりにくいですね。VPNについて勉強されたい方は、他の技術系サイトを読まれることをおすすめします。

この「異なる経路」を経由することが重要です。「異なる経路」を経由する際に、広告配信と思われるネットワークからの通信要求(パケット)を拒否し「経由地」で応答を返さないようにするのです。そうすることによって、あたかもiPhoneからインターネットに接続した場合に、いつも通りのブラウジングをしているつもりが、「異なる経路」を通る途中でノイズが除去され、結果的に広告と思われる箇所だけ通信されず、画面上広告が除去されたように見えるのです。広告ネットワークとの通信自体が拒否されるわけですから、広告が表示されないのもごもっともですね。

Opera VPN
Opera VPN
Price: Free+

大手で有名なVPN接続アプリが「Opera VPN」です。無料でVPN接続を解放しています。ただし、接続先(経由地)にアジア圏がないため、欧米諸国を一旦経由してブラウジングすることになり、通常よりも転送速度が遅く感じられることがあります。また、常にiPhoneの画面上部に「VPN」という表示がちらつきます。さらに、欧米諸国をいったん経由することから、「ソースIPアドレス」(通信元のIPアドレス)も国外のIPアドレスとなり、例えば前述の2ちゃんねるでは、確かに広告は除去される可能性はありますが、そもそも海外からのIPアドレスによる書き込みが禁止される場合は、閲覧しかできなくなります。

AdBlockは他のVPNアプリと何が違うのか

「Opera VPN」を使用した場合に、画面上部に常に「VPN」が表示されるのに対して、「AdBlock」を使用した場合は「VPN」が表示されません。実は「AdBlock」もこのVPNを応用しているのですが、発想の転換をしています。「AdBlock」によってインストールされたVPN構成プロファイルは、「設定」→「一般」→「VPN」の「AdBlock Configuration」から参照することができます。

「タイプ」に「IPSec」とあります。平たく言えば通信を暗号化し、改竄を防止したり、秘匿機能を提供するためのプロトコルです。今回は読み進めてもらって構いません。問題は「サーバ」です。よく見てください。無茶苦茶です。デタラメです。「255.255.255.255」です。このようなIPアドレスは、「ブロードキャストアドレス」と呼ばれるもので、一般的にIPv4でTCP/IPプロトコルで通信する機器に設定できるIPアドレスではありません。この「デタラメ」とも思われる「IPアドレス」指定が重要です

「AdBlock」の設定を見ると、除外される広告リストが常に更新されていることがわかります(冒頭の初期起動時にバックグラウンドで通信しているのは、この広告リストを更新するためです)。設定をたどっていくと、「Global Adservers」に「Google Adsense」という項目があります。こちらの詳細を除くと「googletagservices.com」や「gooleadservices.com」といった「Google Adsense」の配信に使用されるドメインが指定されています。

そろそろ勘の鋭い方は気付かれたと思いますが、「Opera VPN」が常時VPN接続し、サーバ側でノイズを除去しているのに対して、「AdBlock」は設定に指定されたドメインと通信する場合のみ、随時VPN接続(オンデマンド接続)するように作られているわけです。このリストに入っているドメイン(ワイルドカード指定はできません、ドメイン単位で指定してください)と通信する場合のみVPN接続するようiPhoneに要求します。すると、iPhoneは先ほど設定されたVPN構成プロファイルに従って「255.255.255.255」に接続しようと試みますが、もちろん通信できません。よって、リストに指定されたドメインとは結果的に通信できないため、登録されている広告は配信されないという仕組みです。

弊サイトのドメインを指定するとどうなるかやってみた

「AdBlock」の「Blocking list」に弊サイトのドメインを指定みます。「USER GROUPS」の項目の「Add group」から任意の名称のグループ名を指定します。

作成したグループに対してドメイン名を入力します。弊サイトの場合は「ottan.xyz」がドメインになります。「http://」や「www」は抜いてください。末尾の「/」も不要です。

さて、この状態でSafariで弊サイトに接続するとどうなるでしょうか!結果は見えていますが…!

Oh..

まとめ

簡単ですが、「AdBlock」を含めて、一般的なVPNによる広告除外の方式と「AdBlock」の違いを述べました。「AdBlock」はLTE通信時、Wi-Fi接続時、どちらでも有効になります。特にLTE通信時、MVNO等との契約でデータ通信量が限られている場合には、余計なものは表示させないほうが、転送速度も早くなりますし、データ通信量もかかりません。「AdBlock」は通信したくないサイトだけ「偽VPN」接続を試みるだけなので、一般的なVPN接続アプリと異なり、転送速度に支障をきたすわけではありません。というわけで、画面上部のステータスバーに「VPN」が表示されることもありません。

また、当たり前ですが常時VPN接続をオンにしようとすると、上記のようにエラーが出ます。「偽VPN」なのでオンにできないのは当たり前です。気にしないようにしましょう。

後は、アプリの作成者みのぞ知るという感じですが、「AdBlock」側で「個人情報収集」は行なっていないという作者の宣言を信じるしかありません。それにしても、素敵なアプリの開発者に感謝ですね♪

AdBlock
AdBlock
Price: ¥240

本記事に対する誤り等のご指摘、ご質問やご意見は、コメント欄、@ottanxyzなどで受け付けます。

この記事が気に入ったらいいねしよう!
こちらの記事も読まれています
ご意見ボード
匿名で管理人に送信されます。※送信専用です。返信はできません。
ご指摘・ご意見
  • Tuan Le Anh

    @ottanxyz
    Adblockと同じのアプリを開発しています。
    下記のように設定していますが、タイムアウトだけが起こります。
    タイムアウトの後に通常に接続できます。
    何か不正がありますか?教えていただけないでしょうか?

    let manager = NEVPNManager.shared()
    manager.loadFromPreferences { (error: Error?) in
    if let error = error {
    return
    } else {
    let protocolIPSec = NEVPNProtocolIPSec()
    protocolIPSec.serverAddress = "255.255.255.255"
    protocolIPSec.authenticationMethod = .certificate
    protocolIPSec.identityDataPassword = "123456"
    do {
    let dataPath = Bundle.main.path(forResource: "ca", ofType: "p12")!
    let data = try Data(contentsOf: URL(fileURLWithPath: dataPath))
    protocolIPSec.identityData = data
    } catch {
    return
    }
    let arrDomains = ["google.jp"];
    let connRule = NEEvaluateConnectionRule(matchDomains: arrDomains, andAction: NEEvaluateConnectionRuleAction.connectIfNeeded)

    let ondemandRule = NEOnDemandRuleEvaluateConnection()
    ondemandRule.interfaceTypeMatch = .any
    ondemandRule.connectionRules = [connRule]

    manager.protocolConfiguration = protocolIPSec
    manager.onDemandRules = [ondemandRule]
    manager.isEnabled = true
    manager.isOnDemandEnabled = true

    manager.saveToPreferences(completionHandler: { (error) in
    if (error != nil) {
    return
    } else {
    print("Saved!")
    }
    })
    }
    }

  • AdBlockの開発者ではありませんので、ご興味がおありでしたら直接伺ってみてください。

Top