ドメイン名について

郵便や宅配便で手紙や荷物を送る際には相手の所在地を特定するための情報として住所を利用しますが、これと同様に、ウェブサイトを閲覧したり電子メールを送信したりする際にはドメイン名を用いて接続する相手を識別します。

みなさんが普段利用している電子メールアドレスは「alice@example.com」のように示されますが、「@(アットマーク)」以降の部分をドメイン名と呼びます。つまり、このメールアドレスの例では「example.com」がドメイン名です。

企業名やサービス名などの文字列を利用できることから、ドメイン名は人間にとって理解しやすい形式ですが、実際には、インターネット上のコンピュータにはすべて IPアドレスという数字列が割り当てられていて、コンピュータ同士が通信する際の所在地の特定は IPアドレスを使って行われます。つまり、IPアドレスとドメイン名を変換するための仕組みが存在するわけです。この仕組みのことを DNS(Domain Name System)と呼びます。

このように、人間にとって理解しやすい文字列であるドメイン名を利用するために DNS は不可欠な存在ですが、図中の「DNS キャッシュサーバ」に偽の情報を記憶させる「DNS キャッシュポイズニング」と呼ばれる攻撃手法が存在します。この攻撃は、攻撃者が攻撃対象の DNS キャッシュサーバに対して偽の IPアドレスとドメイン名の組合せ情報を記憶させることで成立します。つまり、その DNS キャッシュサーバを使っている人が、いくら気をつけてウェブブラウザの URL欄や、メール送信時のメールアドレスを確認して正しいドメイン名であることを確認しても、知らないうちに意図しない接続先のウェブサイトに接続させられたり、意図しない相手にメールを送ることになってしまったりすることになります。この攻撃に対する対策として、DNSSEC というセキュリティ拡張などが提案されていますが、DNS そのものが1980年代の技術をそのまま発展して現在も使われているため、残念ながら根本的な解決にはなっていないのが現状です。

このほかにも、本物の企業やサービス名に基づいたドメイン名の文字列と類似した偽物のドメイン名(例えば「example.com」に対して「examp1e.com」)を使ったなりすましや、本物とは異なるトップレベルドメインを用いた偽物のドメイン名(例えば「example.jp」に対して「example.tokyo」)を使ったなりすまし、さらには国際化ドメイン名を使った本物と見分けるのが難しい偽物のドメイン名(例えば「example.com」の中の”a”をキリル文字”а”に変えた「exаmple.com」)を使ったなりすまし等、様々な手段が使われています。

図/メールを送る際のDNS問い合わせの図とその解説