SSL と SSH の違い
SSL と SSH はどちらも安全な暗号化通信プロトコルです。OSI 参照モデルでは、両方ともアプリケーション層で確立されますが、用途と適用シナリオが異なります。ただし、どちらもネットワーク伝送をより安全にすることを目的としています。
SSL
SSL(Secure Sockets Layer)は、ネットワークセキュリティに使用される暗号化プロトコルで、現在はそのアップグレード版である TLS(Transport Layer Security)に置き換えられています。主に、安全な Web サイト伝送(HTTPS)、電子メール、インスタントメッセージングなどのネットワーク通信の保護に使用されます。さらに、HTTPS を使用している Web サイトは SEO スコアが加点されることもあります。通常、サーバーの 443 ポートを使用します。
SSL はアルゴリズム暗号化技術を使用して、ネットワーク伝送中の機密データが覗かれたり改ざんされたり(中間者攻撃)するのを防ぎます。SSL 暗号化技術は主に公開鍵暗号化と秘密鍵復号化の方法を使用しており、これによりデータは伝送中に受信者だけが復号化できるようになります。
Web サイトで SSL を使用すると、ユーザーと Web サイト間のデータ伝送中に暗号化が維持され、ハッカーによるデータの盗難や改ざんを効果的に防ぐことができます。現在、ほぼすべての Web サイトが、ユーザー名、パスワード、クレジットカード情報などのユーザーの機密情報を保護するために SSL を使用しています。
SSL サブプロトコル
SSL には、次のようないくつかのサブプロトコルがあります。
ハンドシェイクプロトコル(Handshake Protocol):SSL セッションの開始時に安全なチャネルを確立するために使用されます。ハンドシェイクプロセス中に、クライアントとサーバーは互いの身元を確認し、鍵を交換し、暗号化と復号化に使用するアルゴリズムを決定します。
暗号仕様変更プロトコル(Change Cipher Spec Protocol):対話の一方の当事者に、新しい暗号化および復号化アルゴリズムの使用を開始することを指示するために使用されます。SSL セッションの確立後、クライアントとサーバーが暗号化および復号化アルゴリズムを決定すると、これらのアルゴリズムを使用してデータの暗号化と復号化を開始できます。
証明書検証プロトコル(Certificate Verification Protocol):SSL セッションの開始時にデジタル証明書を検証するために使用されます。デジタル証明書はサーバーの身元を証明し、データ伝送のセキュリティを確保するために使用されます。
証明書データプロトコル(Certificate Data Protocol):SSL セッション中にデジタル証明書を伝送するために使用されます。デジタル証明書には、サーバーの身元を証明し、安全なチャネルを確立するために使用されるデジタル署名、公開鍵、およびその他のメタデータが含まれています。
これらのサブプロトコルは、中間者攻撃を効果的に防ぐように設計されていることがわかります。さらに、SSL 伝送プロトコルを備えたサーバーを確立するには、サーバーに SSL 証明書を配置する必要があります。
SSL 証明書
SSL(Secure Socket Layer)証明書は、信頼できる第三者機関(Comodo、Symantec、DigiCert など)によって発行されるデジタル証明書の一種で、Web サイトの身元を確認し、伝送されるデータの安全性を確保するために使用されます。SSL 証明書には通常、Web サイトの公開鍵、デジタル署名、およびその他のメタデータが含まれており、これらの情報は Web サイトの真の身元とセキュリティを証明できます。
ブラウザが SSL 証明書を使用している Web サイトにアクセスすると、ブラウザは Web サイトのサーバーにリクエストを送信し、サーバーは SSL 証明書をブラウザに送信して検証を行います。ブラウザは SSL 証明書の有効性、発行者、有効期限などの情報を確認し、証明書内の公開鍵を使用して伝送されるデータを暗号化します。これにより、伝送されるデータが盗まれたり改ざんされたりしないことが保証されます。
SSH
Secure Shell Protocol(SSH)は、安全でないネットワークで安全なデータ通信とリモートログインを行うために使用される暗号化されたネットワーク伝送プロトコルです。通常、リモートサーバー上で実行されているコンピュータシステムを管理およびリモート制御するために使用され、ファイルやデータベースのバックアップなどのデータを安全に伝送するためにも使用できます。通常は 22 ポートを使用します。
SSH プロトコルは、安全な暗号化チャネルを確立することによってデータ伝送のセキュリティを保護し、攻撃者が通信内容を覗いたり盗んだりすることを不可能にします。公開鍵暗号化と秘密鍵復号化を使用してデータを暗号化および復号化し、ネットワーク上で伝送されるデータが盗まれたり改ざんされたりしないことを保証します。
SSH では、各ユーザーは公開鍵と秘密鍵を含む一対の鍵を持っています。ユーザーがリモートサーバーにログインする必要がある場合、まず公開鍵をサーバーに送信し、サーバーはユーザーの公開鍵を自分の秘密鍵と照合してユーザーの身元を確認します。ユーザーが検証に合格すると、安全な SSH 接続を確立して、安全なデータ伝送とリモート操作を実行できます。
まとめ:SSH と SSL、どちらがより安全か?
SSL(Secure Socket Layer)と SSH(Secure Shell)はどちらもネットワークセキュリティを確保するために使用されるプロトコルですが、用途と特徴が異なるため、どちらがより安全かを直接比較することはできませんが、主にどちらも中間者攻撃を防ぐことを目的としています。
SSL は主にネットワーク上で伝送されるデータを保護するために使用され、ブラウザと Web サイト間の通信を暗号化して、機密情報が傍受されたり盗まれたりするのを防ぐためによく使用されます。SSL は通常、X.509 証明書を使用して Web サイトの身元を確認し、対称暗号化と非対称暗号化を使用してデータを暗号化します。SSL は TCP/IP ベースのプロトコルであり、トランスポート層とアプリケーション層の間にセキュリティ層を追加することで安全な伝送を実現します。
SSH は、ネットワーク通信の暗号化とリモートコマンドの実行に使用される安全なプロトコルです。SSH は、クライアントとサーバーの間に安全な暗号化チャネルを確立して、第三者の盗聴や中間者攻撃を防ぐことができます。SSH は通常、非対称暗号化を使用して双方の身元を特定し、対称暗号化を使用してデータを暗号化します。SSH は、リモートサーバー管理、ファイル転送、セキュアプロキシなど、多くのシナリオで非常に役立ちます。
したがって、SSL と SSH にはそれぞれ特定の用途と利点があり、どちらもセキュリティ保護を提供できます。具体的にどのプロトコルを使用するかは、アプリケーションのシナリオと要件によって異なります。要するに、SSL は貨物の安全保証のようなものであり、SSH は貨物輸送経路の安全保証のようなものです。
| 規格 | SSL | SSH |
|---|---|---|
| 正式名称 | Secure Socket Layer | Secure Shell |
| ポート | 443 | 22 |
| 機能 | クライアントとサーバー間の通信を暗号化するためによく使用される | 2 台のリモートコンピュータ間の通信チャネルを暗号化するためによく使用される |
| 認証 | 公開鍵と秘密鍵のペア | 公開鍵と秘密鍵のペア、またはアカウントとパスワードのペア |
| 一般的なケース | e コマース、銀行業務など | 組織内外のデータ転送 |
| 動作原理 | デジタル証明書 | 暗号化チャネル |