【ITニュース解説】Privacy for subdomains: the problem
2025年09月25日に「Dev.to」が公開したITニュース「Privacy for subdomains: the problem」について初心者にもわかりやすく解説しています。
ITニュース概要
TLS証明書発行時、サブドメイン名が公開ログに記録される。自宅サーバなどへ割り当てたサブドメインが公開されると、DNS経由で自宅IPアドレスが特定され、プライバシーが漏洩する恐れがある。対策としてCloudflare Tunnelやワイルドカード証明書があるが、一度記録された情報は削除できないため注意が必要だ。
ITニュース解説
インターネットでウェブサイトを閲覧したり、サービスを利用したりする際、私たちは無意識のうちに多くの技術の恩恵を受けている。その中でも特に重要なのが、ウェブサイトがどこにあるかを示す「ドメイン」と「IPアドレス」、そして通信を安全にする「HTTPS」という仕組みだ。システムエンジニアを目指す上で、これらの基本的な知識とその裏に潜むプライバシーの問題は避けて通れないテーマである。
まず、インターネット上のウェブサイトやサービスは、それぞれ固有の住所を持っている。これが「IPアドレス」で、数字の羅列で表現される。例えば、あなたのスマートフォンやパソコンがインターネットに接続されているように、自宅に設置したNAS(ネットワーク接続ストレージ)やスマートホームを制御するデバイス(Home Assistantなど)も、インターネットとつながることで外部からアクセスできる状態になることがある。この時、それらの機器はあなたの家のルーターを介して、インターネットプロバイダーから割り当てられたパブリックIPアドレスを持っている。このIPアドレスは、言わばあなたのインターネット上の「家の住所」であり、欧州連合(EU)では法的に個人データとみなされ、その漏洩は重大な犯罪となりうる。
しかし、数字の羅列であるIPアドレスを毎回覚えて使うのは大変なので、私たちは「ドメイン名」を利用する。これは example.com のような、人間が覚えやすい名前に変換されたもので、電話帳のようにドメイン名とIPアドレスを結びつける仕組み(DNS、Domain Name System)によって、正しいIPアドレスにたどり着けるようになっている。さらに、ウェブサイトの多くは、一つのドメイン名の下に blog.example.com や shop.example.com のように、特定のサービスや機能を指し示す「サブドメイン」を持っている。もしあなたが自分のドメインを持ち、そのサブドメインの一つを自宅のNASやスマートホームに割り当てていたとすると、そのサブドメインはあなたの家のIPアドレスを指し示すことになる。
次に、ウェブサイトの通信を安全にするために必須となっているのが「HTTPS」である。これは、ウェブサイトとあなたのブラウザの間でやり取りされるデータを暗号化し、盗聴や改ざんから守るためのプロトコルだ。HTTPS通信を実現するには、「TLS証明書」というデジタル証明書が必要になる。この証明書は、そのウェブサイトが本物であることを証明し、安全な通信を確立するための鍵の役割を果たす。以前は有料が一般的だったが、近年ではLet's Encryptなどのサービスが無料でTLS証明書を提供しており、個人でも手軽にHTTPSを導入できるようになった。これにより、多くのウェブサイトでセキュリティが向上し、ユーザーは安心してインターネットを利用できるようになったのだ。
しかし、この手軽さが新たなプライバシー問題を引き起こす可能性がある。Let's Encryptを含むほとんどの公開TLS証明書発行機関は、証明書の発行リクエストに関する情報を「Certificate Transparency(CT)」と呼ばれる公開レジストリに記録している。これは、証明書が正しく発行され、不正な証明書が流通していないかを確認するために設けられた仕組みで、インターネットの透明性とセキュリティを高めることを目的としている。CTログは誰もがアクセス可能であり、例えば crt.sh のようなウェブサイトを使えば、特定のドメインに対してどのような証明書が発行されたかを調べることができる。
このCTログに記録される情報には、証明書が発行されたサブドメインの名前が含まれる。ニュース記事の例でも、フランスの有名新聞社のドメイン lemonde.fr に対して発行された証明書のログが公開されており、そこから redaction.lemonde.fr や infos.lemonde.fr といった多数のサブドメインが簡単に特定できる様子が示されている。もしあなたが、自宅のNASやスマートホームなど、外部に知られたくないサービスに特定のサブドメインを割り当て、そのサブドメインのために公開TLS証明書を発行していた場合、そのサブドメインの情報はCTログに記録され、誰でも閲覧できる状態になる。そして、そのサブドメインのDNSレコードを調べれば、それが指し示すIPアドレス、つまりあなたの家の「インターネット上の住所」が特定されてしまうのだ。一度このようにしてIPアドレスが特定されてしまえば、その情報を使ってあなたの家を物理的に特定しようとする悪意のある第三者にとって、手がかりを与えてしまうことになる。これは、自宅の場所をインターネット上で公開するに等しい、非常に深刻なプライバシーの漏洩と言えるだろう。さらに恐ろしいことに、一度CTログに記録された情報は、永久に消えることがない。何年も前の情報が今も残っていることから、一度漏洩した情報は取り返しがつかないことを示唆している。
では、このプライバシー問題に対してどのような対策が考えられるだろうか。
一つは、自宅に紐づくサブドメインを「削除する」ことだ。しかし、これでは外部からのアクセスができなくなり、せっかくの便利さが失われてしまう。
「HTTPSを無効にする」という選択肢は、通信が暗号化されなくなるため、セキュリティ上のリスクが極めて高く、現実的ではない。
「サブドメインを難読化する」として、 home.yourdomain.com の代わりに xyz.yourdomain.com のような意味不明な文字列にしても、サブドメインの数は有限であるため、総当たりで試されれば特定される可能性がある。
有効な解決策として提示されているのは、主に二つある。 一つ目は、「Cloudflare Tunnel」のようなサービスを利用する方法だ。これは、自宅のサーバーとCloudflareのネットワークの間にセキュアなトンネルを構築する仕組みで、外部からのアクセスは全てCloudflareを経由する。記事の筆者がHome Assistantで利用した際、その証明書リクエストはCTログに見当たらなかったという。これは、Cloudflareがワイルドカード証明書(後述)を使用しているか、あるいは内部的な仕組みで証明書が発行されるため、公開ログに記録されないためかもしれない。この方法のメリットは、設定が比較的簡単で、Cloudflareがセキュリティを肩代わりしてくれる点にある。デメリットは、Cloudflareという外部サービスに強く依存することだ。
二つ目は、「ワイルドカード証明書」を利用する方法である。これは *.yourdomain.com のように、特定のドメインの全てのサブドメイン(アスタリスクの部分)に適用できる証明書だ。ワイルドカード証明書自体の発行リクエストはCTログに記録されるが、そのログには個々の具体的なサブドメイン名(例:home.yourdomain.com)は含まれないため、個別のサブドメイン情報を秘匿できる。例えば、*.yourdomain.com というワイルドカード証明書を発行すれば、CTログには *.yourdomain.com という情報が記録されるだけで、あなたが nas.yourdomain.com や smart-home.yourdomain.com といったサブドメインを使っていることは外部からは分からない。この方法のメリットは、特定のサービスに依存せず、自分で管理できる点にある。デメリットとしては、ワイルドカード証明書の設定にはある程度の知識が必要で、やや複雑になること、そして一つの証明書が全てのサブドメインに適用されるため、もしその証明書の秘密鍵が漏洩した場合、全てのサブドメインのセキュリティが危険にさらされるというリスクがある。
記事の筆者は、これらのメリットとデメリットを考慮し、最終的にLet's Encryptを利用したワイルドカード証明書を選択した。これは学習の機会にもなり、問題が発生した際の修正も比較的容易であると判断したためだ。システムエンジニアとして、このような技術的な選択を行う際には、自分の状況や許容できるリスクを考慮して、最適な方法を選ぶことが重要になる。
まとめると、公開TLS証明書発行機関から証明書をリクエストすると、その情報、特にサブドメイン名が公開のCTログに永久に記録される。自宅の機器に紐づくサブドメインを使用している場合、その情報はあなたの家のIPアドレス特定につながり、深刻なプライバシー漏洩の原因となる。この問題への対策として、Cloudflare Tunnelの利用やワイルドカード証明書の導入が有効な解決策となるが、それぞれに利点と欠点があることを理解し、慎重に選択する必要がある。もしすでに情報が漏洩してしまっている場合、物理的に引っ越すか、インターネットプロバイダーを変更して新しいIPアドレスを取得する以外に、その情報を完全に消し去る方法は現在のところないということも心に留めておくべきだろう。