web-dev-qa-db-ja.com

HTTPSの乱交のようなSSH

何か作りたいのですが、見たことがありません。多分あなたは持っていますか?

マイクロコンピューターから最新のブラウザーや電話に提供されるHTML5アプリを作成したいと思います(例: [〜#〜] bbb [〜#〜] )。マイクロコンピューターはオープンアクセスポイントになります(必ずしもインターネットに接続されている必要はありません)

クライアントはAPに接続して、アプリを見ることができます。 Wi-Fi APのクリックラップEULAについて考えてみてください。しかし、それはあなたにとって便利で素晴らしいことでした。アプリ。

アプリには安全な通信が必要です。 HTTPSを使用する場合は、SSL証明書が必要です。どのドメイン名ですか?そして、各マイクロコンピューターに1つ?私はそれらを共有することができなかった、またはそれらは「妥協」されて取り消されるだろうか?それはうまくいかないようです。ユーザーは、自己署名証明書を受け入れないように訓練されています。そのトレーニングに反対して取り消すのは恐ろしいUXです。

本当に、私はSSHが持っているものが必要です:

  1. SSHを使用して新しいサーバーをセットアップすると、独自のキーになります。
  2. 新しいサーバーにSSHで接続し、新しいフィンガープリントを取得します。「これは新しいです、受け入れますか?」
  3. 別のフィンガープリントを持つ既知のサーバーにsshします:「何かが間違っています!」

この質問 話しました DANE/RFC 6698 。しかし、それにはDNS(およびインターネットへの接続)が必要であり、ブラウザーではサポートされていないようです。

私はそれがsshと同じくらい良くなりたいだけです。一元化されたIDは必要ありません。将来のバージョンでは、クライアント間でフィンガープリントを共有することでIDを管理する予定です。

ステップステップ2「新しい指紋」で、最近のブラウザは恐ろしい警告を表示します。早期導入者にとっては、最初は問題ありません。しかし、通常のユーザーの場合、私は彼らを怖がらせたり、訓練を解除したりしたくないです。私が本当に欲しいのはknown_hostsのようなキーホルダーです。

HTTPSとブラウザについて誰かがそれについて考えていますか?

ありがとう!

2
Michael Cole

あなたが説明しているのは、自己署名証明書を使用したhttpsです。

  1. SSHを使用して新しいサーバーをセットアップすると、独自のキーになります。

自己署名証明書を使用してhttpsサーバーをセットアップします。

  1. 新しいサーバーにSSHで接続し、新しいフィンガープリントを取得します。「これは新しいです、受け入れますか?」

ブラウザで新しいサーバーに接続します。警告が表示されますが、ブラウザに例外を追加するように指示できます。

  1. 別のフィンガープリントを持つ既知のサーバーにsshします:「何かが間違っています!」

ブラウザで再度接続してください。例外が一致しなくなったため、何かが間違っていることがわかります。 HSTSを使用したことがある場合は、オーバーライドするオプションすらありません。

どちらの場合も、2番目のステップは重要です。つまり、指紋を確認し、安全な方法で正しい指紋を取得した場合にのみ、サーバーからの証明書を受け入れる必要があります(サーバーのセットアップ中など)。

2
Steffen Ullrich