web-dev-qa-db-ja.com

公開鍵/秘密鍵を使用してWebサイトで認証する方法は?

私は SSH公開/秘密キーのしくみ を読んでいて、それらがどれほど便利であるかを理解しました(方程式から安全性を取り除きます)。そして、なぜウェブサイトが同じものを実装しないのか疑問に思い始めましたか?

私がこれに興味を持っている理由を説明しましょう。Webサイトに登録すると、パスワードがどうなるかわからないので、DBにプレーンテキストとして保存されている可能性があります。すべての管理者は、ユーザー名とパスワードの組み合わせ(および電子メールまたはその他の情報)を確認し、他のサービスetvoilàで試して、クリーンなアクセスを行うことができます。電子メール、Facebook、Stackoverflowなど。パスワードは、保存されていなくても、暗号化されていない状態でサーバー経由でサーバーに送信され、途中で男によって警告されます。これはすべて、たとえばSSHによって実装されるようなアプローチを使用して簡単に解決できます(またはサービスごとに異なるパスワードを使用しますが、私のメモリには厳しい制限があります)。

したがって、Webサイトにログインするためのこのような戦略を実装するにはどうすればよいですか?ブラウザの拡張機能やその方法の説明が見つかりませんでした。とりあえず、私が目標としているのは、〜10人(同じネットワーク内の同僚)にサービスを提供し、追加の作業(拡張機能のインストールやキーペアの生成など)を行うよう説得できるWebサイトを用意することです。

8

証明書はその目的で使用できます。証明書の一般的な用途はTLS/SSL接続用ですが、クライアント証明書を発行して双方向認証を処理できます。証明書は基本的に、「信頼ネットワーク」の層が追加された公開鍵です。

これを適切に行う場合は、PKIを実装して証明書の要求、作成、および取り消しを処理する必要があります。しかし、別の方法として、使用したい公開鍵証明書をアップロードするようユーザーに依頼することもできます。

最近の多くのブラウザーは、Webサイトに接続すると、証明書要求(秘密鍵/公開鍵)をその場で生成することもできます。次に、証明書がブラウザプロファイルに保存されます。

4
M'vy