メインコンテンツへスキップ
Q どろっぷ
認証・セキュリティ

IP ハッシュ化とは

概要

IP ハッシュ化は、ユーザーの IP アドレスを SHA-256 などのハッシュ関数に通し、元の IP アドレスを直接読み取れない固定長の文字列に変換する技術である。変換後のハッシュ値は同一の IP アドレスからは常に同じ値になるため、「同一人物かどうか」の判定には使えるが、「誰なのか」の特定は難しい。どの程度難しいかは、後述のソルトの扱い方によって変わる。匿名性を保ちつつ不正利用を検出するという、相反する要件を両立させる手段として使われている。

ハッシュ関数の選択と実装上の注意

IP アドレスの空間は IPv4 で約 43 億通り、IPv6 でも実際に使われるプレフィックスは限られている。そのため、単純にハッシュ化しただけではレインボーテーブル攻撃 (事前に全 IP のハッシュ値を計算しておく手法) で元の IP を逆引きされるリスクがある。

この対策として、ハッシュ化の際にソルト (秘密の固定文字列) を付加する。ソルトを知らない第三者はレインボーテーブルを構築できないため、ハッシュ値から元の IP を特定することは現実的に難しくなる。ソルトはサーバー側の環境変数や秘密管理サービスに保管し、ソースコードには含めない。

匿名質問サービスでの活用

匿名質問サービスでの IP ハッシュ化には、代表的な使い道が 2 つある。第一に、同一 IP からの連続投稿を検出するレートリミットの識別子として使う。ハッシュ値をキーにしてカウンターを管理すれば、生の IP アドレスを保持せずに投稿頻度を制限できる。

第二に、匿名の投稿者に割り当てる識別子の生成に使える。ハッシュ値から生成した短い ID を投稿に添えれば、受け取る側は同一人物からの複数の投稿を紐づけて把握できる。ただし、この種の ID はあくまで目安であり、VPN やモバイル回線の IP 変動により同一人物でも異なる ID になる場合がある。

生 IP の暗号化保存との使い分け

ソルト付きの IP ハッシュ化からは元の IP を直接取り出せないため、ハッシュ値だけでは法的手続きに基づく開示請求に対応できない。そのため、IP ハッシュ化と並行して、生の IP アドレスを AES-256 などの対称鍵暗号で暗号化して保存する設計を採るサービスもある。その場合、通常運用ではハッシュ値のみを参照し、開示請求があった場合にのみ暗号化された IP を復号する運用になる。

この二重保存方式は、プライバシー保護と法的対応の両立を図るものである。ハッシュ値は日常的な不正検出に、暗号化 IP は法的対応にと、用途を明確に分離することで、不必要な個人情報へのアクセスを最小化できる。

この記事は役に立ちましたか?

関連用語

関連記事

あなたも質問箱を作ってみませんか?

メールアドレスだけで登録でき、パスワード不要で始められます。

無料で始める