見出し画像

[図解]IPアドレスだけでは(一般的には)個人が特定されないという話

noteで記事投稿者のIPアドレスが他者から確認できる不具合について発表がありました。

これを受けて個人情報が特定されるのではと不安に思うnote投稿者もいるのではないでしょうか。

公式発表でもIPアドレスだけでは個人が特定されない旨のアナウンスは出ているものの、ネットの誹謗中傷訴訟や事件操作で「IPアドレスを元に投稿者を特定し」というような情報を目にする機会も増えてきていて、「なぜ個人が特定されないと言えるのか」と疑問に思う人もいると思います。

これはインターネットの仕組みを知っていれば、なぜ(一般的に)個人が特定されないのか、どういうケースやどういう手段で特定が可能なのか理解が出来ます。

本記事では、インターネットの仕組みとIPアドレスについて図解で説明します。

※ 僕はネットーワークの専門家ではないので間違いや誤解を生みそうな表現があればコメントでご指摘ください

ブラウザにURLを入力して表示されるまでに何が起きているのか?

画像1

パスワードを入力してWifiに接続したりLANケーブルを挿して、ブラウザにURLを入力すると誰でも簡単にインターネットに接続が出来ます。

画像2

ユーザーがURLを入力したとき、ブラウザは、「HTTPリクエスト」という情報を作り送信します(Google Chromeだと「デベロッパーツール」から誰でも確認出来ます)。これは、接続先の情報や取得したい情報についてコンピュータが分かるように整形して送るものです。

画像3

リクエストを受け取ったサーバーは、リクエストに応じて「HTTPレスポンス」を返します。この情報をブラウザが解釈して表示をします。

画像4

では、このリクエストとレスポンスのやり取りはどのように実現されているのでしょうか?

コンピュータ同士が会話をするための共通言語=プロトコルが必要

画像5

コンピュータ(PCやスマホ)からコンピュータ(サーバー)がリクエストとレスポンスのやり取りをするためには共通言語が必要です。

画像8

このコンピュータ同士が会話するための共通言語を「プロトコル」と言います。

特にインターネットでは、「TCP/IP」というプロトコルが肝になります。

ちなみに、上述の「HTTP」もプロトコルの1つで、HTTPはHyper-Text Transfer Protocolの略称です。その名の通り、Hyper-Text(テキスト+その表現方法)をTransfer(伝達)するためのProtocol(取り決め/言語)です。

画像8

画像9

コンピュータ同士が会話をするためには、伝送したい情報に、いくつかの層が情報(ヘッダ)を付加していきながら、最終的には電気信号に変換し、伝送路に電気信号を流します。サーバー側はリクエストを受け取ったらクライアント側と同様に各層を通ってレスポンス返します。

各層でやっていることを、ものすごくザックリ説明すると以下のようなイメージ。

1. アプリケーション層:
ブラウザがユーザーの要求をHTTPリクエストという情報に変換

2. トランスポート層:
データを小さな断片(パケット)に分割して、後でくっつけられるようにするための情報としてTCPヘッダを付加

3. インターネット層:
メッセージを届けたい宛先(宛先IPアドレス)と、返送してもらうための自分自身に関する情報(送信元IPアドレス)としてIPヘッダを付加

4. ネットワークインターフェース層:
次にパケットを中継するコンピュータ(ルーター)の情報(宛先MACアドレスや送信元MACアドレス)としてイーサヘッダを付加して電子信号に変換

やっと、IPアドレスが出てきました。笑

しかも、送信元である自分自身に関する情報である、と。なんか他人に知られるとあまり良くなさそうな気配が漂います。

この先は、「ルーター」の仕組みを理解する必要があります。

インターネットはルーターを経由して世界中のコンピュータに繋がっている

画像11

もし世界にコンピュータが2台しか存在しなければ、直接情報をやり取りすれば良いのですが、現実の世界には無数のコンピュータがネットワークに参加しています。

そのコンピュータ同士が各々接続をして通信をしようとするとシッチャカメッチャカになりそうなことは容易に想像出来ます。

画像9

そこで、コンピュータ同士が直接接続して情報をやり取りするのではなく、ルーターという中継用のコンピュータを経由しながら届けることで効率よくコンピュータ同士を繋げます。

画像10

郵便ポストに手紙を投函したら配達員が直接配るのでなく、集荷センターを経由して届くようなイメージです。

画像12

ルーターは、IPヘッダに書かれているIPアドレスを元に宛先を判断して、サーバー(Y)が接続されているルーターまでリレーしながら運んでいきます。

IPヘッダには宛先と送信元の住所しか書かれていないので、イーサヘッダに書かれたMACアドレス(機器固有のID情報)を頼りにデータを中継していきます。

画像13

ちょっと乱暴に例えると、IPアドレスは送信元と宛先の住所で、MACアドレスは建物固有の名称。

各集荷センター(ルーター)は、自分が提携している集荷センターの中から宛先住所(IPアドレス)に一番近い集荷センターの建物名を配送伝票(イーサヘッダ)に書き込んで、次の集荷センターに送ります。各集荷センターが同様の処理をしていって最終的に宛先住所(サーバー)の最寄りの集荷センターに到着すると、ようやく相手にメッセージが届きます。

受け取ったサーバーは、パケットのTCPヘッダーを確認して小分けに分割されたデータが全部到着するのを待ち、バラバラになったデータをつなぎ合わせて、リクエストを受領します。

リクエストに対する処理が完了したら、送信元IPアドレスを頼りに返送し、同じくルーターを経由しながらクライアントにレスポンスが返ってきます。

あれ、IPアドレスが漏洩すると個人情報が漏洩しそうな気がしてきますね。次に、ローカルエリアネットワーク(LAN)とインターネットについてもう少し解説していきます。

LANとインターネットとIPアドレス

IPアドレスはコンピュータの住所情報と説明しましたが、実は全てのコンピュータが重複のない固有の住所を持っているわけではありません。

インターネットが普及し始めた当時、爆発的な通信可能なコンピュータの増加に伴って各コンピュータに固有のIPアドレスを付けてしまうと急速に枯渇してしまうという問題に直面していました。

画像17

そこで、独立したネットワークの中では、別のネットワーク上のコンピュータと同じIPアドレスが存在しても大丈夫になるようにローカルエリアネットワーク(LAN)という概念が生まれました。

ネットワーク(LAN)をまたいだコンピュータは重複するIPアドレスを持つことが出来ます。このLAN内で利用されるIPアドレスを「プライベートIPアドレス」と言います。こうすることで、限られたIPアドレスを有効活用することが出来るようになります。

一方で、インターネットに接続されたコンピュータ(ルーター)が持つ固有のIPアドレスを「グローバルIPアドレス」と言います。

だいぶ核心に近づいてきました。それではネットワーク(LAN)をまたがるような通信はどのように実現されるのでしょうか。

画像17

コンピュータがネットワークにメッセージを流す時、IPヘッダの送信元IPアドレスには自分のプライベートIPアドレスを書き込みます。

宛先IPアドレスが自分のネットワーク内にいないとき、ルーターは別のルーターを経由してネットワークにデータを中継します。

この時、ルーターは、送信元のIPアドレスを、リクエストを要求したコンピューターのプライベートIPアドレスから、ルーター自身が持つグローバルIPアドレスに書き換えます。これを「アドレス変換」と言います。

こうするとこで、宛先のコンピューターは、返信するときにインターネット上に公開されている住所情報で送信元を探すことが出来るようになります。

この時、送信元のルーターは、返信をちゃんと元のコンピューターに返せるようにするために、接続元コンピュータを「ポート」という接続口を分けることで管理します。

図の例だと、[192.168.0.1]というプライベートIPアドレスを持つコンピューターの通信は、[Port=1]の窓口でやり取りをすることで、グローバルIPアドレス宛に返ってきたデータを確実に元のコンピューターに届けることが出来ます。

画像16

同じことを郵便の例でもう説明し直します。

管理する集荷センターをまたいだら宛先住所(IPアドレス)が重複することを許容します。東京集荷センターは自分の管理化に「三丁目の田中さん」が1人しかない状態が担保されていれば、大阪にも「三丁目の田中さん」がいても気にしません。この地元でだけ通じる「三丁目の田中さん」のことが「プライベートIPアドレス」に相当します。

そして、集荷センター(ネットワーク)を越えた郵送(通信)をしたいときは、「三丁目の田中さん」は集荷センターにある自分専用の窓口(ポート)に手紙を投函します。

東京集荷センターは、送信元住所を、「東京集荷センター 窓口1」と書き換えます。こうすることで、他の集荷センターは、「東京集荷センター管轄にある三丁目の田中さん」の存在を知らずとも返信を届けることが出来るようになります。

IPアドレスで個人が特定出来ない理由

ようやく本題です。なぜIPアドレスで個人が特定出来ないのか。

それは、通信先コンピューター(本件でのnote.com)は、通信元が接続するルーターのグローバルIPアドレスとポート番号しか知りません。そして、今回漏洩したのはグローバルIPアドレスのみとなります。

つまり、note投稿者が接続しているルーターのグローバルIPアドレスが他者から見られる状態になっていたということになります。

このインターネット接続ルーターは、一般的に、インターネットサービスプロバイダ(ISP/プロバイダ)が管理しています。つまり、今回漏洩したIPアドレスは、あなたが利用するプロバイダのIPアドレスに過ぎません。

さらに、通常、プロバイダは複数のグローバルIPアドレスを持っていて、契約者がインターネットに接続するときに、どのグローバルIPアドレスを持つルーターに中継させるかは変動的に割り当てられます。要は、同じ場所から接続していてもグローバルIPアドレスは頻繁に変わります。

更に、接続元も自宅のWifiなのかモバイルネットワークなのか出先のWifiなのかで参加するネットワークが変わるため、当然、グローバルIPアドレスも変わります。

つまり、グローバルIPアドレスのみで個人を特定することはほとんど不可能になります。

IPアドレスで個人が特定出来るケース

とはいえ、IPアドレスで個人が絶対に特定出来ないかというとそうとは言い切れません。例えば、以下のようなケースでは個人特定が可能になる場合があります。

a) 個人でインターネット接続ルーターを保持していて、そこからnoteを投稿している

b) プロバイダでグローバルIPアドレスが固定される契約を申し込んでいてその固定IPアドレスで接続する利用者が自分自身以外にいない

c) 会社のWifi等、固定グローバルIPアドレスを保持するネットワークから投稿していて、その社内でその投稿をする可能性がある人物が自分自身以外にいない

d) 同一タイミングにIPアドレスが公開される別サービスに投稿していて、そのどちらかで個人が特定される情報を発信していて、そのIPアドレスを同時に利用する他者がいない

尚、インターネット上の一部に、d)の特性から匿名掲示板の投稿と(個人情報を公開している)note投稿者を紐付ける動きがありますが、
・同一人物である可能性は否定出来ないものの断定は出来ない
・たとえ同一人物でも特定して拡散することが違法となる可能性がある
ため絶対にしない方がいいです。

ちなみに、ネット関連事件捜査や訴訟でよく見る、IPアドレスでの個人の特定は、以下のステップを踏む必要があります。

1)問題のある投稿の投稿者の送信元グローバルIPアドレスを、サービス提供者に開示してもらうように請求する

2) そのグローバルIPアドレスを元にプロバイダに対して契約者情報を開示してもらうように請求する

「通信の秘密」は日本国憲法でも保障された大切な権利の1つでもあり、この「開示請求」は相当の妥当性を持った場合にしか認められません。

悪質な誹謗中傷や事件捜査等は、その「妥当性」が認められるイレギュラーケースであって、一般的に、IPアドレスで個人を特定することはほぼ不可能といって差し支えないと思います。

最後に:今回のnoteの不具合と対応について

今回のIPアドレスの漏洩について、IPアドレスでは(一般的には)個人が特定されないということをインターネットの仕組みという観点から解説しましたが、個人が特定されないものの、今回の不具合は大きな問題だと考えています。

インターネット上に公開される情報は、本人の意図によってのみ決定されるべきことであって、(故意ではないにしろ)それが侵害されたことは重大な問題だと思います。

一方で、不具合発覚後の今回のnote社の対応は、不具合の内容や対応状況や今後の取り組みなど積極的な情報公開も非常に迅速で、これ以上ないくらい誠実なものと感じています。

情報漏えいにまつわる問題は、その被害の多寡に関わらず、信頼を取り戻すのが非常に難しく時間がかかりますが、これからもクリエイターから愛される安全で素敵なサービスをつくっていくことで信頼回復を図ってもらえることを期待しています。

この記事が気に入ったらサポートをしてみませんか?