web-dev-qa-db-ja.com

IPアドレスを2要素認証のコンポーネントにすることはできますか?

私はインターネットで管理したいLinuxマシンをたくさん持っています。私は現在SSH鍵を使用していますが、2要素認証を使用するよう勧められています。 SSHキーはあなたが知っているものです。 IPアドレスはあなたが持っているものですか? (はい、IPは偽装される可能性がありますが、生体認証もATMカードも偽装できます)。

SSHをロックして自分のIP範囲からの接続のみを許可することはできますか?それは、SSHキーと組み合わせて2要素と見なされますか?

28
Mike

IPアドレスは、3要素認証の一部である従来の「知っているもの」、「持っているもの」、「あるもの」ではなく、「どこかにいる」と考えます。

IPアドレスはスプーフィングに取るに足らないものですが、TCP接続はそうではなく、SSHはTCPの上に構築されたプロトコルです。TCP接続のIPアドレス- is直接接続している人の信頼できる指標。

SSH接続をオフィスのIPアドレスのみに制限するとします。攻撃者は次のいずれかを実行する必要があります。

  1. 私のオフィスの中または近く(彼がワイヤレスに割り込む場合)
  2. 私のオフィスとサーバーの間の経路にいる(たとえば、ISPの内部にいる)。
  3. オフィス内のマシンを制御します。

ポイント3.攻撃者は世界中のどこにでもいることができますが、攻撃の難易度が高くなります。

ポイント1.と2.は、成功した人の数を大幅に減らします使用他の要素(SSHキーやパスワードなど)が取得できた場合、その価値があると私は考えています。

ここでは、IPアドレスのqualityが大きな要因です。上記の例としてオフィスを使用しましたが、動的IPアドレスを持っている場合、ISPが所有する範囲全体を信頼しますか?攻撃者がこれらのIPアドレスの1つを取得するのがいかに簡単かには、どのような影響がありますか? NATの背後に隠れている10台のマシンがあることがわかっている場合、IPアドレスの信頼性は変わりますか?2,000台のマシンと100台のワイヤレスアクセスポイントがある場合はどうなりますか?

IPアドレスはそれ自体の要素とは見なしません。

24
Ladadadada

適切に行われれば、セキュリティプロトコルにいくらか役立つ追加になる可能性があります。ただし、IPアドレスは秘密情報ではないため(アクセスするすべてのWebサイトにそれを提供します)、IPを取得する方法/場所に応じて、認証で既存の要素を置き換えるためにそれを使用することは非常にためらいます。からのアドレス、なりすましにはささいなことができます。ただし、TCP接続からのIPアドレスを、保存された安全なhttp専用Cookieと組み合わせて使用​​すると、セキュリティを強化できます。具体的には、IPアドレスが変更されるたびにCookieを無効にします(ISPがIPを再割り当てするなどの害のない理由で変更される可能性があります)だけでなく、悪意のある理由(攻撃者がCookieを手に入れました)。

Ladadadada が言ったように、TCP接続のIPアドレスは簡単に偽装されなくなりました。TCPはランダムに取得するためにハンドシェイク手順が必要です情報を交換する前のサーバーからの32ビットのシーケンス番号。ハンドシェイク手順を開始するときに完全に偽のランダムなIPアドレスを偽造すると、パケットはインターネット経由でコンピューターにルーティングされないため、完了できません。ハンドシェイク。ただし、他の場所にルーティングされたパケットをキャプチャできる同じローカルネットワークの1つにあるISPまたはコンピューターで中間ルーターを制御している場合を除き、ランダムなIPアドレスを偽造する可能性があります。

ただし、Webアプリを設計してIPアドレスを記録する場合は、注意が必要です。ロードバランサーまたは他のプロキシの背後にある2つのWebサーバー(動的コンテンツ用と静的コンテンツ用の1つなど)を備えたWebアプリがあるとします。試行錯誤の結果、クライアントのIPアドレスがHTTPヘッダーX-Forwarded-Forにのみ存在することがわかります。ただし、このフィールドは簡単に変更できます。たとえば、telnet www.whatismyip.org 80X-Forwarded-Forの行の有無にかかわらず、次のように入力します(最後の行の後にEnterキーを2回押して、HTTPリクエストの終わりを示します)。

GET / HTTP/1.1
Host: www.whatismyip.org
X-Forwarded-For: 1.2.3.4

このWebアプリは、IPアドレスが1.2.3.4に変更されたと認識していることがわかります。したがって、必ず十分にテストしてください。全体的に見て、特に自分でIPアドレスを頻繁に変更するユーザーを苛立たせる可能性があるため、自分でこれを行うことは、その価値よりも手間がかかると思います。

編集:私はこれを書いた後、タイトルの質問に答えましたが(「IPアドレスは2要素認証のコンポーネントですか?」)、ssh管理に関する特定の部分ではないことに気付きました。sshパスフレーズ保護キーは基本的に二要素認証:持っているもの(sshキー)と知っているもの(パスフレーズのキー)。

8
dr jimbob

技術的にはそうですが、偽造するのが簡単な2番目の要素を追加しても、セキュリティはそれほど向上しません。

何らかのリスク評価でより強力な認証が必要であると示唆されたために2要素を使用するようにアドバイスされていると想定すると、より適切な制御を検討する必要があります。

(ただし、IPホワイトリストも実行します。それほど強力ではありませんが、実行に1〜2分しかかかりません。なぜでしょうか。)

重要なのは、「2ファクター」は安全を確保する魔法のフレーズではないということです。リスクを理解し、適切に強力な制御を実装する必要があります。

7
Graham Hill

通常、2要素認証は、「知っている」ものと「持っている」ものを指します。 「知っている」はパスワードで、「持っている」はSSHキーです。これらは、現在使用している方法、または何らかのスマートカードやドングル(sshdはGSSAPIを使用してアクセスします。man sshd_configを参照)で使用できます。

2要素認証の使用を依頼した人は、キーとパスワードの使用を求めていると思います(誰かがキーを盗んだとしても、パスワードを知らないので問題ではありません)。

IPアドレスは、あなたが言ったように、なりすましの可能性があるため、実際には「所有」するものではありません。 MACアドレスについても同様です。ただし、sshサーバーへの嫌がらせをより困難にする手段として、特定のIPアドレス/範囲へのsshdアクセスをロックすることができます。たとえば、インターネットのデフォルトポートでsshdを実行すると、多くの人がブルートフォースパスワードなどを試みます。 IPアドレスを制限することは、IPを偽装するためにより多くの永続性と設定が必要になるため、これに役立ちます。次のような行を/etc/hosts.denyに入れます

sshd,sshdfwd-X11:ALL

これは/etc/hosts.allowにあります

sshd,sshdfwd-X11: 192.168.0.0/255.255.255.240
sshd,sshdfwd-X11: 127.0.0.1

(上記のIPアドレス/サブネットマスクはアドレスの範囲を定義します。これは単なる例です)。

このような変更を行うときは、サーバーを誤ってロックアウトしたくないので、常に再確認してください。テスト中は常にセッションをログインしたままにしておきます(これらの変更は新しいログインにのみ影響するため)。

6
webtoe

ここで意味論は関連していますか?あなたが「2要素認証の使用を勧められている」ということは、誰かがあなたからこれを期待していることを示唆しています。そのため、何が許容可能であると期待されるかを期待している人から調べることは、より意味がありませんか?

5
symcbean

いいえ。多くのセキュリティを提供するためにIPアドレスに依存するべきではありません。誰かがオープンワイヤレスネットワークを介して(たとえば、スマートフォンから、または公共の喫茶店のラップトップから)接続する場合、中間者攻撃を仕掛けたり、IPアドレスを偽装することは簡単です。これらのユーザーの場合、IPアドレスによってセキュリティが強化されることはありません。

したがって、2要素認証を使用するようにアドバイスされた場合は、クライアントのIPアドレスを2番目の要素として扱わないでください。一部のユーザーにとって、これは基本的に役に立たないでしょう。

制限されたIPアドレス範囲からの接続のみを許可するようにSSH接続をフィルタリングしても問題ないと思います。これは多少増加する可能性があります。ただし、これを2番目の要素として数えないでください。 2要素認証が必要な場合は、2つの実際の要素を使用します。偽の第2要素で「速いものを引っ張る」ことを試みないでください。

2要素認証で高速化した別の業界セグメントについて少しお話ししましょう。数年前、米国の銀行規制当局は、すべての米国の銀行がオンラインバンキングに2要素認証を使用することを要求する規制を可決しました。特に人々の銀行のパスワードを盗むためのフィッシング攻撃を心配している場合は、もっともらしい要件です。しかし、銀行は行き、要件をどのように実装したかについて "賢い"(そして私が良い意味でそれを意味しているわけではありません)を得ました。彼らは、あなたのオンラインバンキングパスワードが最初の要素(これまでのところうまくいく)であり、あなたのマシン上の永続的なcookieが2番目の要素(まあ、もっともらしい)だろうと決めました。しかし、どうやって彼らはあなたのマシンに永続的なクッキーを手に入れましたか?まあ、もしあなたがクッキーを持っていないなら、彼らはあなたにあなたのチャレンジ質問を尋ねます、そしてあなたが正しい答えを提供することができるなら、彼らはあなたにクッキーを与えます。つまり、最終的には、(1)パスワードと(2)別のパスワード(チャレンジ質問への回答)の2つの要素があります。これは、2要素認証の目的に反します。たとえば、フィッシャーは両方のパスワードを要求することができます。実際、一部の研究では、この2つのパスワードによる認証は、1つのパスワードによる認証よりもフィッシングに対して安全ではないことがわかっています。だから銀行のようになってはいけません。 2要素認証をゲームのできるものとして扱わないでください。セキュリティ上の利点が失われます。

5
D.W.

ある意味、はい。しかし、それはセキュリティよりも意味論の問題です。

ある意味では、IPアドレスは「あなたが何か」または「あなたが持っているもの」と考えることができます。つまり、アクセスが制限されたIPアドレスのセットのみに制限されている場合、攻撃者は攻撃を実行するためにこれらのIPアドレスのいずれかを「所有」または「所有」する必要があります。その方法はシナリオによって異なります。とテクノロジーですが、攻撃面が劇的に減少します。

セマンティクスは、これが2番目の要素としてcountsであるのか、それとも本当に優れた追加のセキュリティであるのかについての議論の一部として含まれています。技術的には、あなたはあなたのIPアドレスではありませんし、実際にはあなたのIPアドレスでもありません。他の誰かがネットワーク構造に応じてそれの制御を引き受けることができます。しかし、同じことが他の認証技術にも当てはまります。それは実装次第です。

2番目の要素としてcountsであるかどうかが本当に重要なのは、ある種のプロセス監査または大規模なフレームワークの場合のみです。この場合、適格な要素をリストする必要があります。それ以外の場合、それはオタクの主張です。

適切なポリシーが厳密に守られている限り、パスワードを要求し、IP制限を課すことは非常に合理的なセキュリティであると私は言うでしょう。パスワードだけの場合よりも確かに優れています。

4
tylerl

認証要素としてIPアドレスを使用しないでください。生体認証などの他の手段をクラックする代わりに、IPアドレスを偽装するのは簡単です。スクリプトの子供はそれを簡単に行うことができます。

VPNの使用のように、意図せずにIPアドレスの変更に対処するにはどうすればよいですか? SSHの2要素認証を使用するためのソリューションはたくさんあります。あなたはそれらをグーグルすることができます。

3
P3nT3ster

IPは、スプーフィングやサブネットに基づく推測を行うのが非常に簡単です。そこには非常に多くのオプションがあります。役に立たないとは思いません。他にも、シンプルで機能する2要素システムがたくさんあります。 LinOTPとOpenOTPを見てください。

もう1つのオプションは、スマートカードを使用するか、別の形式の2要素が既に有効になっているマシンのみにアクセスを制限することです。

2
kilrplatypus

あなたが信じるか、信じないかもしれないいくつかの実用的な答え。

私はかつて、MasterCardのマイナーサイトを作った会社で働いていました。心に留めておいてください、それはセキュリティに関連するものではなく、CC番号もトランザクションもありませんでした。小さな価格の小さなコンテスト。しかし、これはサイトにログオンメカニズムといくつかの個人情報(ログイン、電子メール、場合によっては住所)があったことを意味します。 MCの手順では、運用サーバーの管理とIPベースのフィルタリングに何らかの2FAが必須であり、1つのIPアドレス(建物からのゲートウェイ)に制限されていれば十分と考えられました。一方、このサイトはそれほど価値の低いサイトであり、私たちが言ったことを実際に確認するために迷惑をかけていません。彼らは私たちの言葉を採用しています。しかし、IPフィルターを2FAとして含めることは彼らのアイデアであり、彼らはそれを明示的に求めました。そのため、含めることは2FAの一部として考えていませんでした。

0
Torinthiel