SSHとSSLという用語は、よく聞く用語であるものの、両者にどのような違いがあるのかを正しく理解できない人は多いのではないでしょうか?
セキュリティ上、両者の特徴、そして違いを把握しておくことはとても重要です。
本記事ではSSHとSSLの特徴と違いについてご紹介します。しっかりとセキュリティ対策を行い、万が一の場合に備えましょう。
「Secure SHell」、通称SSHは、ネットワークに接続された機器を安全にコントロールするためのソフトウェア、もしくはプロトコルを指します。ネットワークに接続されたコンピュータにログインした後、暗号化された通信の中で利用されるため、安全性が保たれたセキュリティ内で遠隔操作をすることが可能です。
SSHは、主にコンピュータを遠隔操作する際に用いられます。一般的にVPSなどの各種サーバ機器は、操作主と物理的に離れた場所に設置されています。VPSがある場所へ何度も行って帰って来るわけにはいかないため、SSHが用いられます。
「直接VPSの場所に赴かなければ、何か被害が生じることはないのでは?」「VPSの場所へ行ってVPSを直接操作しない限り、VPSが何か被害を被ることはありえないのでは?と考える方がいらっしゃるかもしれませんが、それは大きな間違いです。VPSには遠隔操作でアクセスできる可能性があるため、安全性確保のためにSSHが必要となるのです。
なお、パソコンを遠隔で操作する手法については以下の記事も併せてご覧ください。
SSHでは、安全性を担保するためにサーバへのログインが「パスワード認証」または「公開鍵認証」によって管理されます。「パスワード認証」ではその名の通り、パスワードによってログインを管理します。これに対し、「公開鍵認証」では鍵が付与された人以外は原則ログインすることができません。「パスワード認証」の方が導入ハードルは低いものの、その分安全性が低くなります。安全性を担保するためには、「公開鍵認証」を行うことがオススメです。
導入ソフトはOpenSSHなどが一般的です。なお、Windows10にはSSHサーバーが標準化されています。各ソフトをインストールし、必要項目を入力及び設定し、接続が可能になっているか確認して、SSHの導入は完了します。
続いて、SSLについて見ていきましょう。「Secure Sockets Layer」、通称SSLは、インターネット上においてブラウザとサーバー間のデータ通信を暗号化し、送受信するプロトコルを指します。サーバー証明書によって認証を行い、安全性を担保する仕組みです。
現在インターネット上では、多くの情報が行き交っています。以前はメールなどのテキスト情報を入力する機会が多かったものの、ネットショッピングなどの普及に伴い、近年は個人情報やカード情報などを入力する機会が増えました。このような情報は、常に第三者に狙われているため、セキュリティを担保したネットワーク上で情報を送信および受信することが重要です。
その際、「このサイトへの入力は安全かどうか?」の判断に役立つのがSSLです。上述した通り、ブラウザとサーバー間のデータ通信が暗号化されるため、仮に第三者に盗み見された場合でも、内容は分かりません。
サーバーの送信先が未知で不特定の相手であれば、どれだけ通信を安全にしても意味がありません。そこで用いられるのが、サーバー認証です。サーバー側は接続を要求されたとき、証明書をもとにして本当に信頼できるサイトか否かを判断します。
サイトを見ただけでは、SSL化されているかは分かりません。
しかしSSL化されたサイトは、一目で見分けることが可能です。ポイントはURLです。今見ているサイトは、「http://…」「https://…」のどちらから始まってますか?「https://…」で始まっている場合、そのサイトはしっかりSSL化対応されています。その証拠に、Google Chromeの場合はURLの左に鍵マークが付いているはずです。鍵マークが付いているサイトは、通信が暗号化されているサイトです。
SSLを導入するにはCSR(証明書署名要求)を作成した後、サーバー証明書を申し込みます。その後認証手続きを行い、先ほどのサーバー証明書をインストールする流れが一般的となっていますが、基本的には使用しているサーバーから独自のSSLを設定することができます。Xサーバーやロリポップなど、自身が使用しているサーバーのHPへログインし、設定を行いましょう。
ここまで、SSHとSSLについてご紹介しました。英単語上では一文字しか違いがありません。しかし、詳しく見ていくと両者の内容は全く異なると言っていい、と理解できたのではないでしょうか。改めて、両者の違いを詳しく解説します。
最も大きな違いは、インターネット上で利用するのか、リモート用として利用するのか、という点です。SSLはインターネット上で利用されるのに対し、SSHはリモート用として利用されます。
言い換えると、ご自身のコンピュータから不特定多数のサーバー、すなわちサイトへアクセスする場合に利用されるのがSSLであり、一方、ご自身のコンピュータから特定のサーバーへアクセスし、遠隔操作する際に利用されるのがSSHです。通信を暗号化し、第三者からの不正アクセスを防ぐという目的は共通しているものの、防ぎ方にそれぞれ特徴があります。
SSHでは「パスワード認証」もしくは「公開鍵認証」によって不正アクセスを防止するのに対し、SSLではサーバー証明書が発行され、証明書によって安全性を認証することで不正アクセスを防止します。セキュリティ面でやや不安がある「パスワード認証」でも実行できるという点は、SSHの特徴かもしれません。
SSLにおいてセキュリティの優劣はほとんどありません。導入するか否かといった点が重要になります。ただし、SSLでは安全性を担保するために発行されるサーバー証明書には優劣があります。そもそもサーバ証明書を発行する認証局が信用できなければ、認証局の安全性が判断できないためです。最上級の証明書は、ルート証明書と呼ばれる証明書です。発行時に詳細を確認することが重要です。
以上のように、類似しているように見えるSSH、SSLですが、両者は全く異なることが理解いただけたのではないでしょうか。SSHやSSLは、サイトや通信のセキュリティ確保として非常に重要な役割を果たしています。SSHやSSLを正しく理解することによって、インターネット利用におけるセキュリティに関してより深い知識を持つようにしましょう。
その他セキュリティに関しては以下の記事も参考にしてくださいね。