見出し画像

Cloudflare ResolverとHTTPS Everywhereが原因でArchive.todayにアクセスできなかった話

昨年の冬、Firefoxでのみ「Archive.today」にアクセスできない現象が発生した。結論としてはDNS over HTTPS用の「Cloudflare Resolver」と、Firefoxアドオンの「HTTPS Everywhere」が原因であった。

Archive.todayとは

Archive.todayはWebページのアーカイブサービスである。

一部では著作権上の問題(複製権及び公衆送信権の侵害)が指摘されているが、Web魚拓(株式会社アフィリティー)やWeyback Machine(Internet Archive)、Googleやbingの検索キャッシュなどの是非にも関わる問題のため、今回その違法性についての議論は横に置く。

そのような背景からArchive.todayは規制回避のためサーバを転々としながら複数のドメインを持っている。

archive.today: 現在のサービス名、現在はarchive.foへ転送される
archive.is: 旧来のサービス名、転送はされない
arcive.fo: 規制回避用の予備ドメイン、転送はされない
archive.li: 規制回避用の予備ドメイン、転送はされない

この他にも多数の規制回避用の予備ドメインがあるが仔細は省略する。

Cloudflare Resolver

Cloudflare Resolver」(https://cloudflare-dns.com/dns-query)は米Cloudflare社が無償で提供しているDNS over HTTPS(DoH)対応のキャッシュDNSサーバである。

Mozilla Firefoxでは昨年からDoHに対応すると共に、Mozilla専用契約の「Cloudflare Resolver for Firefox」(https://mozilla.cloudflare-dns.com/dns-query)をDoH標準リゾルバとして採用しており、ネットワーク設定から簡単に有効化することができる。

だが、これを有効化した状態でArchive.today関連ドメインにアクセスしようとすると、次のようにError 1001(archive.is)や403 Forbidden(archive.today?)が返って来ることがあった。

なお、これらのスクリーンショットは2019年2月25日に撮ったもので、4月11日現在は若干挙動が変わっており、通常のDNSへのフォールバックが働き、無事アクセスできるという状態になっている。

これに気付いたのは昨年12月頃。その時はFirefox標準のCloudflare Resolver for Firefoxでは名前解決できなかったが、本家Cloudflare Resolverでは名前解決できるという状況であったため、本家の方を手動設定して様子を見ていたが、それも今年1月頃には駄目になってしまったので、GoogleのDoH対応DNSリゾルバに切り替えていた。

徹底してプライバシーの保護を掲げる米Cloudflare社は政府要求に屈しないことで知られている。Cloudflare Resolver for FirefoxにおいてはMozillaと協議の上で対処にあたるとしており、本家とfor Firefoxでドメインブロックの判断が異なることも有り得るが、本当に法的問題なのだろうか。

If Cloudflare were to receive written requests from law enforcement and government agencies to block access to domains or content through the Cloudflare resolver for Firefox, Cloudflare would, in consultation with Mozilla, exhaust our legal remedies before complying with such a request.
(抄訳:CloudflareがCloudflare Resolver for Firefoxを通してドメインまたはコンテンツへのアクセスをブロックするよう法執行機関および政府機関からの書面による要求を受け取った場合、CloudflareはMozillaと協議の上、そのような要求に従う前に法的救済措置を尽くします。)

どういった経緯でこのような挙動となっていたのか気になるところ。

4/12追記

その経緯について調べたので別記事にまとめた。

HTTPS Everywhere

HTTPS EverywhereはブラウザにHTTPS接続を強制する拡張機能である。

よく知られたHTTPS対応サイトをリストアップ、ルールセットを配信し、HSTS Preloadingのような働きをする。Archive.today関連ドメインのルールセット(Archive.is.xml)も配信されており、HTTP接続をしようとするとHTTPS接続に切り替えることで中間者攻撃を防いでくれる。

だが、これを有効化した状態でArchive.today関連ドメインにアクセスしようとすると、次のように証明書エラーが返って来ることがあった。

なお、これらのスクリーンショットは2019年2月25日に撮ったもので、4月11日現在は若干挙動が変わっており、無事アクセスできるという状態になっている。

Archive.todayは以前Clodflareを利用していたことがあるが、その時のサーバ証明書が残っていたのだろうか。Archive.today関連ドメインのルールセットにはarchive.isからarchive.foに転送するルールも記述されており、それが意図しない挙動を誘発していた可能性がある。