web-dev-qa-db-ja.com

認証時に、PGPおよびSSH鍵が2番目の要素として、より広範な使用を認識しないのはなぜですか?

主な今後のMFAメソッドの1つはU2Fです。これは、初期の鍵交換とチャレンジ/レスポンスメカニズムに依存しています。

これは比較的新しいプロトコルであり、特にGoogleのような大規模なWebエンティティの間で、より広く採用され始めているだけですが、これは、使いやすく、鍵を交換し、課題に対応する最初のメカニズムではありません。実際、2つは非常に簡単に思い浮かびます。

  • SSHは1995年から存在しており、2000年以降に設置された本質的にすべてのLinuxおよびBSDボックスで利用可能で、Windowsでは古いバージョンのアドオンソフトウェアと新しいバージョンの組み込みソフトウェアを介して採用が拡大しています。そして

  • PGPは1991年から存在しており、実際には一部の新しいYubikeyに含まれています(ただし、物議を醸すように、最新世代のクローズドソース実装を使用しています)および数百万のPC世界中で、多数のOS向けに、高品質でアクティブに維持されている実装とライブラリが豊富に用意されています。

これらの広く利用可能なプロトコル/標準のいずれかを(それぞれ)リモートマシンへのSSH接続や電子メールの暗号化以上のMFAメカニズムとして使用することは完全に理にかなっているようです。では、なぜU2Fが活況を呈しているのに、なぜ牽引力も得られなかったのでしょうか。

35
Jules

この目的のためにPGPとSSHが実際に提供するものを確認してみましょう。

  • PGP:
    クライアントは、ほとんどのシステムにデフォルトでインストールされていないPGPソフトウェアをインストールする必要があります。クライアントはPGP鍵ペアを作成する必要があります。次に、サーバーが後で検証に使用できるように、公開鍵をサーバーに送信する必要があります。 2FAで認証する場合、サーバーはチャレンジを送信します。クライアントはその秘密鍵で署名し、署名されたチャレンジを応答として送信する必要があります。もちろん、クライアントはキーを盗難から保護する必要があります。おそらくパスワードを使用します。
  • SSH:
    クライアントは、大部分のシステムにデフォルトでインストールされていないSSHソフトウェアをインストールする必要があります。鍵ペアを作成し、公開部分をサーバーに送信する必要があります。一部のWebサービスに対して2FAで認証する場合、クライアントは関連サーバーへのSSH接続を作成する必要があり、サーバーはSSHを使用して成功した認証とWebサイトへのログインを何らかの方法でマージする必要があります。 SSH。おっと、SSHをブロックする方法にファイアウォールがある可能性があります。そしてもちろん、クライアントはキーを盗難から保護しなければなりません。

したがって、基本的に両方のソリューションは次のように要約されます。

  • 最初にいくつかのソフトウェアをインストールします
  • 静的なキーペアを作成し、公開部分を公開します(これは、便宜上、ソフトウェアに統合されている場合がありますが、現在は統合されていません)。
  • どういうわけかサーバーからチャレンジを取得し、署名されたチャレンジを何らかの方法で送り返します。そしてどういうわけか、サーバーはチャレンジの検証を認証プロセスに統合する必要があります。 「どういうわけか」これは、Webアプリケーションで使用される認証フローとすべてを統合するこのための確立されたプロセスがないためです。
  • そしてもちろん、クライアントはそのキーを保護する必要があります

クライアントサイトのTLS証明書を使用すると、同じ手順をはるかに簡単に実行できます。これは依然として証明書の作成を主要な問題として残します(しかし、これは今日でもブラウザー内で可能です)が、少なくとも検証はすでにHTTPSプロトコルに統合されています。

さらに、これらのソリューションが既存の2FAソリューションよりも優れたユーザーエクスペリエンスまたは統合エクスペリエンスを提供する方法を確認できません。それらは使いにくい、追加のソフトウェアが必要、サーバー側と統合する新しい方法などが必要です。そしてより良いセキュリティも提供しません。 それでは、なぜ使いやすさとサーバー統合を考慮して設計された新しいソリューションを考慮しないのですか?

それとは別に、現在の安価な2FAソリューションは携帯電話を利用しています。これらは通常、現在のPCよりも優れたセキュリティアーキテクチャを提供します。これらは、ユーザーがアクセスする必要がある追加のハードウェアデバイスであり、2FAによって提供される保護を強化します。

25
Steffen Ullrich

移植性の欠如

SSHとPGPは広く使用されていますが、Webテクノロジーではありません。長年、SSLクライアント証明書という同等のWebテクノロジーがありました。ただし、これはあまり使用されません。

その理由は、移植性の欠如です。ホームデスクトップにSSLクライアント証明書がある場合、別の場所に移動するのは困難です。そのため、仕事用のラップトップ、義母のデスクトップなどからはログインできません。

長い間使用されており、セキュリティが非常に高いポータブルクライアント証明書ソリューションがあります。スマートカードです。秘密キーはスマートカードに保存され、解放されることはありません。ただし、これは主に、企業のオンラインバンキングなどの高セキュリティアプリケーションでの使用が見られます。

2000年代の初めには、認証に関する革新は限られていました。 Microsoft PassportやOpenIDのような大衆市場を対象とした取り組みは、実際には成功しませんでした。ほとんどの製品は、企業のVPNアクセスなどのハイエンド向けでした。これは現在変化しており、マスマーケット認証に革新が見られます。例えば:

  • Mozillaペルソナ-基本的に、クライアント証明書をクラウドに保存することで、クライアント証明書を移植可能にします。数年前はこれはクレイジーなアイデアとして拒否されていましたが、最近では脅威モデルがよりよく理解され、利点が明らかになっています。

  • 2F-スマートカードの高いセキュリティをマスマーケットにもたらします。デバイスはよりポータブルであり、1つのデバイスを多くの異なるWebサイトで使用しても安全です。つまり、U2Fは最新の使用パターンにうまく適合するテクノロジーであり、それが成功しています。

11
paj28

追加の認証要素は、理想的には帯域外である必要があるためです。電話、トークン、またはテレパシーメッセージのようなものです。

U2Fは、秘密鍵を抽出できず、署名する前にデバイスに物理的に触れる必要があるため、優れています。

4
Dave

一般の人にとって、2要素認証は2分以内に理解する必要があります。そうしないと、理解できる人がほとんどいないため、すぐに失敗します。これは一般的に、人々が既に慣れている、または非常に簡単なものを使用する必要があります。

PGPとSSHは、開発者とIT運用者が理解していることを除いて、ほとんどの人が理解できない複雑なテクノロジーです。 Stephenが指摘するように、どちらもソフトウェアをインストールするだけでなく、ファイルを生成し、サードパーティに送信する非常に複雑な方法を理解し、(さらに悪いことに)関連する基本的な概念を理解する必要があります。平均的な人にとって、これには何時間ものトレーニング、試行錯誤、そしてまったく新しいコンセプトが必要です。それでも、故障率は高くなります。

2因子で使用されるソリューションとは対照的です。テキストメッセージ、番号を表示するハードトークン、または電話。テキストメッセージや電話は、既によく知っているものです。ハードトークンは少し複雑ですが、ユーザーはシンプルであるため、これらのデバイスの使用方法を2分未満でトレーニングできます。

1
Steve Sether

EnigForm FireFoxプラグインは非常に有望なアプローチでした。また、OpenPGPスマートカードと組み合わせると、少なくともFIDO U2FAと同じくらい安全でした。それは広く採用されなかった欠点です。

0
ulrichard

2つのこと。

1.それはいつものやり方です

バイオメトリクスまたはハードウェアトークン(RSA SecurIDなど)が2FAの標準であったため、誰もが携帯電話とその後のスマートフォンを手に入れました。突然、スマートフォンやスマートフォンのアプリにメールを送信したり、古いスマートフォンにSMSを送信したりして、2つ目の要素を作成するのは簡単でした。

代わりに公開キー暗号化を使用できることは、通常パスワードの代わりに公開キーを使用したため、2番目の要素とは見なされませんでした。それは人々の認識であり、正直なところ、今まであまり考えていませんでした。

2.安全性が低い

アプリへのメッセージは、RSA SecurID(またはYubikeyまたは別のハードウェアトークン)よりも簡単に傍受されるため安全性は低くなりますが、公開キー認証の使用はおそらくそれよりも安全性が低くなります。

入力時にトークンが傍受される可能性がありますが、秘密鍵がコンピュータから盗まれることがあります。 2番目の要素のソースは、サーバー(テキストメッセージを送信する)にないか、改ざん防止モジュール(トークン)に隠されていません。多くのことに常に使用しているのはシステムです。

(スマートカードがこれを解決することに注意する必要がありますが、私は仕事の外でそれを使用する人を本当に知っています。)


また、他のほとんどの回答には、「これを誰も持っていない」という形が含まれていますが、それらは正しいです。しかし、ほとんどの人は2FAも使用しません。 SSHやPGPと2FAを使用する技術者の間の重複は重要であり、SSH、PGP、または類似のものを使用する人はいないという主張を無効にします。特にGithubのような場所では、SSHを2番目の要素として提供できます。彼らはすでにSSHキーをサポートしています(そして 人々はそれを使用します! )。

0
Luc