iOS 14でDNS暗号化に対応 重要性と暗号化方式を解説

Apple製品
この記事は約10分で読めます。

今回はDNS暗号化の重要性、DNS over TLSとDNS over HTTPSの違い、とiOS 14でDNSを暗号化する方法などを解説します。あっ、念のためはじめに言っておきますがステマではないのでご安心くださいね!

iOS 14では、ウィジェットが追加できるようになったことや、デフォルトのメールアプリやブラウザを変更できるようになったことなどが注目を集めていますが、実は裏でひっそりiOS 14ではDNSの暗号化をネイティブサポートしていたのです。

 

DNSの危険性と暗号化の重要性

WWDC 2020でAppleはこのように述べています。

Enable encrypted DNS

Your devices are using DNS every time you access the internet. When your app accesses a website, the system asks a question, a DNS query, to turn that name into a set of addresses. Generally, the question is sent to a DNS server configured by your local network. So where does privacy come into the picture? One concern is that DNS questions and answers are usually sent over an unencrypted transport, UDP. That means that other devices on the network can not only see what names you’re looking up, but they can even interfere with the answers. The other privacy concern is that you may not trust the DNS resolver on your local network. If you’ve joined a public Wi-Fi network, your internet usage could be tracked or blocked.

(WWDC 2020より)

日本語に意訳するとだいたいこのようになります。

暗号化されたDNSを有効にする
デバイスでは、インターネットにアクセスするたびにDNSを使用しています。アプリがWebサイトにアクセスすると、システムはその名前(ドメイン情報)をIPアドレスに変換するための質問「DNSクエリ」を要求します。通常なら、この質問はローカル ネットワークによって設定されたDNSサーバーに送信されますが、DNSの質問と回答は基本的に暗号化されていないトランスポート「UDP」で送信されます。つまり、他のデバイスは、あなたが調べている名前を見ることができるだけでなく、回答を妨害・改ざんする可能性があるのです。また、公共のWi-Fiネットワークに参加している場合など、ローカルネットワーク上のDNSリゾルバを信頼できない可能性もあります。この場合インターネットの使用状況が追跡されたり、ブロックされたりする可能性があります。
簡単にまとめると、「DNSは暗号化されていないから、情報が覗き見されたり、改ざんされたり、ブロックされたりすることがある。だから暗号化しよう!」ということです。

改ざんされる危険性

DNSサーバーとの通信が改ざんされてしまうと、なんと別のサーバーに接続させることが可能になってしまいます。例えば、「この”Parity-Blog.info”にアクセスしようとしたらDNSが改ざんされてウィルスサイトに飛ばされてしまった!」なんてことも……。

Webサイトは暗号化、DNSは平文

この場合「平文」とは、暗号化されていない文(通信内容)のことを指します。

Webサイトはこのサイトも含め、大多数のサイトがSSL/TLSという暗号化システムを導入しており、もはやSSL/TLSを使っていないサイトは「危険」であると表示されるようになりました。(サイトのURLが”https://”から始まるのは暗号化システムを導入してるからです。)

一方、DNSに関してはほとんどの場合に暗号化されておらず、平文で通信されています。

Apple以外も暗号化の重要性を感じている

Appleは「ユーザーのプライバシーを第一に」という姿勢を貫いており、過剰すぎるほどの保護機能を製品に搭載しています。しかし、このDNS暗号化は「Appleの過保護なセキュリティ機能のひとつ」ではなく、Apple以外もDNS暗号化の重要性を感じています。

Microsoftは将来的にWindowsでDNS暗号化に対応させると宣言していますし、世界で高いシェア率を誇るブラウザ「Chrome」を開発するGoogleは、「Chrome 78」からDNSの暗号化機能(DNS over HTTPS)の実装検証を開始すると発表しました。

「Firefox」を開発するMozillaは、以前よりDNS暗号化の重要性を意識しており、以前からDNS暗号化(DNS over HTTPS)を実装する計画を進めてきましたが、ついに2020年2月25日にアメリカ国内のFirefoxユーザーに対してDNS暗号化をデフォルトで有効化すると発表しました。
このように、DNSの暗号化はもはや世界の常識になろうとし始めているのです。

DNS暗号化方式

ではどのようにDNSを暗号化するのでしょうか。DNSの暗号化には2種類あります。

DNS over HTTPS(DoH)

まず、Webサイトなどと同じように「HTTPS」を使う方法です。名前が長いので「DoH」と略されることがあります。

この方法では、通常のWebサイトと同じような経路(もう少し細かく言うと443番ポート)でやりとりするため、その通信内容がDNSなのかWebサイトとのやりとりなのか判別することができません。

また、HTTPSはかなり普及してきており、ほとんどのハードウェア・ソフトウェアでサポートされているため、比較的すんなりDNS暗号化を導入することができます。

DNS over TLS(DoT)

次に、セキュリティ通信プロトコルである「TLS(Transport Layer Security)」を使う方法です。こちらは「DoT」と略されることがあります。GoogleやCloudflareが提供しているDNSサービスではすでに導入されていますが、こちらにはいくつか問題点があります。

DNS over HTTPSではWebサイトなどと通信する経路(443番ポート)と同じ経路を使ってDNSサーバーと通信しますが、DNS over TLSはWebサイトなどとは別の経路(853番ポート)を利用します。

つまり、通信を監視している人から見れば「853ポート使ってる……DNSとやりとりしてるんだ!」とわかってしまうのです。

また、このTLSは送信者と受信者の両方がTLSに対応している必要があります。しかし、サポートしているハードウェア・ソフトウェアはまだまだ普及しておらず、暗号化に失敗して結局平文で通信してしまうことがあります。

このことから、「詰めが甘いのでは」という指摘を受けています。

 

iOS 14でDNSを暗号化する方法

iOS 14でDNS暗号化をネイティブサポートしたことで、「280blocker」や「AdGuard」がiOS 14を対象に暗号化されたDNSサービスを提供しています。

ただし、280blockerはこの機能を現時点では「試験的な導入」としており、正式にサポートするかどうかはわかっていません。

一方、AdGuardではすでに正式サービスを開始しており、すでに使い方の記事を掲載しています。

現時点では正式サービスを開始しているAdGuardのDNSを使用する方法がおすすめです。

AdGuardのDNSを使用する方法

利用するにはプロファイルをインストールする必要があるのですが、ダウンロードの待ち時間もない上に数ステップしかないのですぐに完了します。

AdGuardのDNSを利用するには、大きく2つの方法があります。ひとつめはアプリを利用する方法です。自分はアプリを使う方法をおすすめします。また、AdGuardも現時点ではアプリの方がいいと公式サイトで述べています。

AdGuardアプリでもDNSを設定できますが、アプリ内で設定する方法と比較して、直接iOSにDNSを設定する方法にはいくつかの重要な欠点があります。

  • お使いのデバイス上アプリがどのようなリクエストを送信しているのかを正確に確認することができません。
  • また、DNSフィルタリングを使用したり、どのサーバーをブロックしてどのサーバーにアクセスを許可するかを手動で管理することもできません。

(AdGuard公式サイトより)

詳細なログやDNSフィルタリング(広告ブロックとかできる機能)を使いたい場合はアプリを使用するのがいいでしょう。逆に、「ログやフィルタリングはいらない」という方は2つめの方法がもっと簡単でシンプルですので、そちらがおすすめです。

また、iOSのみですが「AdGuard Pro」というものもあります。こちらは別のライセンス形態になっているので注意してください。Android用のアプリもあります。

対応OSiOSAndroid
価格無料(有料版あり)
DNSフィルタリングを設定することで広告をブロックことができます。アプリの広告もブロックすることができるので非常におすすめです。

2つめの方法は、下記のサイトでインストールする方法です。先のサイトにはプロファイルのダウンロードリンクと設定方法が記載されています。

280blockerのDNSを使用する方法

280blockerのDNSサービスは「試験的な導入」を行っている段階であり、正式なものではありません。そのため、本記事では上記のAdGuard DNSを推奨していますが、トラブルに対処できる知識を持っていてチャレンジ精神旺盛な方は、280blockerのDNSを利用してみるのもアリかもしれません。

まず、280blockerをインストールする必要があります。Android用はないみたいです。

対応OSiOS
価格500円(記事掲載時)

インストールしたら、「その他」→「高度な設定」をタップして「DNSブロックサーバーを利用」をONにします。あとはアプリの指示に従ってDNSの設定を行ってください。

280blockerのDNSは広告をブロックすることができます。アプリの広告もブロックすることができます。

デメリットやリスクもある

DNSサーバーとの通信を暗号化してしまうと、当然ほかの人には何の通信が行われているのか把握することが出来ません。これがDNS最大のメリットなのですが、実はこれが仇となる場合があります。

それは「ペアレンタルコントロール」や「フィルタリングサービス」が利用できなくなる恐れがあるということです。これらのサービスは、DNSサーバーとの通信を見ることでWebサイトの閲覧を制限するかどうか判断している場合があります。

DNS暗号化をしてしまうとペアレンタルコントロールやフィルタリングサービスを回避できてしまうので注意が必要です。

ただし、AdGuardなどではファミリー向けのDNSサーバーを提供しています。ファミリー向けのDNSサーバーを選択することで不適切なWebサイトの閲覧を制限することができます。(AdGuardアプリを利用している場合はアプリ内から複数のDNSサーバーを選択できます。)

過信は禁物

DNSを暗号化したからと言って、通信が100%安全になることはありません。DNS暗号化はあくまで通信経路のごく一部を暗号化しただけですので、くれぐれも過信しないようにしましょう。

端末がコンピュータウィルスに感染していないか、アクセスしているサイトがHTTPS(SSL/TLS)を利用しているか、接続しているWi-Fiは安全かなど、セキュリティの基本をしっかり理解して実践していくことが大切です。

 

まとめ

プライバシーの保護に注目が集まっている中、DNSの暗号化が必須となるのはほぼ時間の問題になってきています。しかし、DNSの暗号化にはまだ課題も多く残されています。またDNS以外でも、まだまだインターネットは安全性を高める余地は多く存在します。

DNSの暗号化で油断せず、ユーザーひとりひとりが日頃からセキュリティーやリスクについて意識を高めておき、しっかりと知識を身につけたり、対策を講じたりすることが重要です。

購読する
Notify of
guest
0 コメント
Inline Feedbacks
すべてのコメントを読む
タイトルとURLをコピーしました