web-dev-qa-db-ja.com

認証のためにIPアドレスの所有権を検証するにはどうすればよいですか?

デジタルコンテンツがペイウォールの背後にあるWebサイトがあります。ユーザーがIPアドレスでアクセスできることを確認します。私たちの顧客はすべて静的IPアドレスを持つ大企業です。したがって、ユーザーが会社のネットワーク内にいる場合、ユーザーは自動的にサイトにアクセスできます。問題は、企業が実際に提供するアドレスのリストにあるすべてのアドレスを所有していることを検証する方法がないことです。

企業が提供しているIPアドレスを実際に所有していることを確認する方法については、誰もが考えています。

2
Randy

物理的に誰かを会社に送って、簡単な「ifconfig」でIPを確認できます。これは馬鹿げたソリューションであり、米国に拠点を置いており、会社がAUSにある場合はかなり悪いです。他のことを考えることもできますが、ポイントは、IPベースの認証をまったく避けるべきだということです。誰かがあなたの会社とあなたの顧客の1人を知っていて、侵入テストを行い、IPアドレスを発見できたとしたら、IPスプーフィングを使用してシステムをだますことができます。

ある種の非対称チャレンジ/レスポンスシステムを実装するX.509証明書ベースのソリューションについて考える必要があると思います。否認防止の観点から保護を強化するには、対称ではなく非対称技術を使用することが重要です。もちろん、クライアントが有効な証明書を持っている必要があります...あなたの会社は証明書を発行する認証局として機能できます...そして顧客は秘密鍵を適切に保護する必要があります。適切な解決策は、2048ビットキーと署名用のSHA-1を使用したRSA(たとえばTwitterで使用)です。

一般に、アドレスベースの認証は常に避けてください

1
user33338

簡単な答えは、彼らがあなたにIP番号のリストを与えているだけなら、それらがすべて会社によって所有されていることを確認する方法はありません。ただし、大企業の場合、IP範囲でwhoisルックアップを実行し、所有者を決定できます。 http://whois.arin.net/ui

たとえば、8.8.8.8と入力すると、8.8.8.0〜8.8.8.255がさまざまな詳細と連絡先情報とともにGoogleに割り当てられていることが返されます。

ただし、会社から提供されたIPアドレスのリストには、CEOのホームIPが含まれている可能性があり、これは間違いなく(たとえば)VerizonまたはComcastまたは他のプロバイダーによって制御されます。会社のメンバーは会議に旅行する場合があり、ホテルのIPからアクセスする必要があります。

より良い解決策は、 OAuth または別のWebサービスを介して企業の認証スキームを利用するか、ユーザーが不明なIPから接続を試み、有効な企業の電子メールを要求し、ユーザーにリンクを電子メールで送信することです確認のため。

1
Digital Chris