web-dev-qa-db-ja.com

SSHとIPsecの違いは何ですか?

両方に同様の暗号化が行われているようです。どちらも最初の鍵交換に非対称(RSA、楕円曲線など)を使用してから、対称(AES、Blowfishな​​ど)のプロトコルを使用します。ここの誰かが、2つの違いと、ユーザーにどのように異なるように見えるか(速度、存在するアプリケーションなど)を説明する瞬間があるのではないかと思います。

16
stackuser

@ graham-hillの答えは一般的には正しいですが、短くて見た目が正しくないので、詳しく説明します。

SSHはアプリケーションレベルです。SSH/ TCP/IP、またはSSH-over-TCP-over-IPと考えることができます。 TCPはこのミックスのトランスポート層、IPはインターネット層です。他の「アプリケーション」プロトコルには、SMTP、Telnet、FTP、HTTP/HTTPSなどがあります...

IPSecは、2つの個別のトランスポートを使用して実装されます-ESP( Encapsulating Security Payload for encryption)およびAH( Authentication Header authentication and integer))。たとえば、Telnet接続がIPSecを介して行われているとしましょう。通常、Telnet/TCP/ESP/AH/IPとしてそれを想定できます。

(面白くするために、IPSecにはトランスポート(上記で概説)とトンネルの2つのモードがあります。トンネルモードでは、IP層はIPSec内にカプセル化され、(通常は)別のIP層を介して送信されます。したがって、最終的にTelnet/TCP/IP/ESP/AH/IP!)

だから-あなたは「2つの違いを説明してください」と尋ねます-

SSHはアプリケーションで、IPSecはトランスポートです。したがって、SSHは「1つの」タイプのトラフィックを伝送し、IPSecは「任意の」タイプのTCPまたはUDPトラフィックを伝送できます。

あなたは「彼らがユーザーにどのように異なって見えるか」と尋ねます-

IPSecはトランスポート層であるため、ユーザーには見えません。これは、TCP/IP層がWebブラウザのユーザーに見えないのと同じです。実際、IPSecが使用されている場合、WebブラウザとWebサーバーのwriterからは見えません-心配する必要はありません。 IPSecを設定するかどうか。それはシステム管理者の仕事です。これとは対照的に、サーバーは秘密鍵と証明書が適切に有効化され、SSLライブラリがコンパイルされ、コードが記述されている必要があります。クライアントブラウザには、SSLライブラリがコンパイルされ、コードが記述されており、適切なCA公開鍵を持っているか、存在しない場合は大声で(アプリケーションに侵入して)叫びます。

IPSecを設定すると、トランスポート層で動作するため、問題なく複数のアプリケーションをサポートできます。 2つのシステム間でIPSecを構成すると、1つのアプリケーションで作業する場合と50のアプリケーションで作業する場合の違いはごくわずかです。同様に、IPSecは、FTP(制御とデータが別々の接続である場合があります)またはH.323(複数の接続だけでなく、複数のトランスポート(TCPおよびUDP)!)などの複数の接続を使用するプロトコルの簡単なラッパーを作成します。

ただし、管理者の観点から見ると、IPSecはSSHやSSLよりも重いです。アプリケーションレベルではなくシステムレベルで魔法を使うため、より多くの設定が必要です。各関係(ホストからホスト、ホストからネット、またはネットからネット)は、個別に設定する必要があります。一方、SSHとSSLは一般に便宜的-PKI(CA)またはWeb of Trustモデルのいずれかを使用して、接続のもう一方の端を信頼することを合理的に簡単にします事前に多くの設定をせずに。 IPSecは便宜的にすることができますが、IPSec接続の構成には試行錯誤が必要になることが多いため、通常はそのようには使用されません。異なるベンダー(Linux、チェックポイント、シスコ、ジュニパーなど)間の相互運用性はシームレスではありません。 Cisco <-> Checkpointの作成に使用される構成は、Cisco <-> Juniperの作成に使用される構成とは異なる可能性があります。 SSHとは対照的です-OpenSSHサーバーは、PuTTY、OpenSSH(* nixまたはCygwin)SSH、またはTectia SSHのどちらを実行しているかを気にしません。

速度に関する限り-与える適切な数値はありませんが、答えの一部は「依存する」です-IPSecが関係している場合、実際のIPSec処理はファイアウォールまたはVPNコンセントレータにオフロードされる可能性があります専用の高速ハードウェアを使用して、サーバーのオペレーティングシステムとアプリケーションを実行している同じ汎用CPUを使用して常に暗号化するSSHよりも高速にします。ですから、それは本当はリンゴ同士ではありません。 2つのオプションのどちらかがより速いユースケースを見つけることができると思います。


*これは厳密には真ではありません。 SSHは、ターミナルアプリケーション、ファイルコピー/ ftpアプリケーション、およびTCPトンネリングアプリケーションです。ただし、実質的には本当にリッチなアプリケーションであり、トランスポートではありません-そのトンネリングはIPトランスポートの代替ではありません。

22
gowenfawr

SSHはTCP/IPのアプリケーションレベルであり、IPSECはトランスポートレベルです。

2
Graham Hill

TCP接続がTCP SSHのようなベースのトンネルと、IPsecのような保証されていないパケット配信システムで大きなパケット損失が発生する場所で実行されている場合)を実行すると、大きな違いが生じる可能性があります。 。詳細と実際の例については、 http://sites.inka.de/bigred/devel/tcp-tcp.html を参照してください。

サイドノート-私は数十年の間、TCP SSH経由で実行しましたが、便利で問題が発生していないため、パケット損失をより適切に処理するが困難なソリューションにスワップします必要な場合にのみソリューションをセットアップします。

0
iheggie