SSL操作では、信頼できるサードパーティ(サーバーからクライアントに提示された公開鍵を検証する認証局)を使用する必要があります。
一方、SSHは、他の手段(たとえば、サーバーから物理的にアクセスし、クライアントで保存するなど)によってサーバーの公開鍵を持つクライアントに依存しています。
なぜこれらのプロトコルは操作メカニズムにそのような違いがあるのですか?つまり、どちらもサードパーティのアプローチを使用できるということです。これは、私にとっては、よりユーザーフレンドリーで、おそらくより安全な方法です。
使い方が違うから。 HTTPSで一般的に使用されているTLS/SSL x509証明書は、パブリックシステム、つまり多数の人がアクセスするシステムに接続するために使用されます。
一方、SSHは、システムに事前にアクセスしてサーバーキーをセットアップした少数のサーバー管理者や、システムへのその他の形式の帯域外アクセスを確認するために、主にプライベートシステムにアクセスするために使用されます。サーバーキーのフィンガープリント。
接続する前に、サーバーによって提示されたキーフィンガープリントが予期したものと一致することを確認しないと、SSHモデルは安全ではないことに注意してください。 TLSでは、キーフィンガープリントの所有権をチェックする責任が認証局(CA)にオフロードされます。
TLSは、自己署名証明書、またはSSHと同様の信頼モデルで機能するプライベートCAでも使用できます。
接続しているユーザーに対してサーバーを認証するために、観察した実装の違いは実際には技術的な違いではありません。特に:
SSLでは、信頼できるサードパーティを使用する必要はありません。自己署名証明書でSSLを使用できます(これは、SSHキー認証の仕組みと同等です)。
SSHは、人間による検証に依存しないサーバー認証方式を使用できます( Kerberos を参照)。
違いは、2つのプロトコルがどのように、何のために、誰によって使用されるかです。
現在のグローバルSSL PKIインフラストラクチャは、技術に精通していない膨大な数のユーザーを対象としており、公共サービスを検証する方法を提供しています。
比較すると、SSHの使用は非常に制限されており、一般の人々を対象としたものではありません。中央の信頼を確立する負担(小規模な組織ではKerberosでさえ)は、得られる価値に比べて大きくなります。