Webサイトの閲覧、メールの送受信やzoomのような最近増えているオンライン会議など、今やネットワークを介してさまざまなサービスが利用できるようになっています。
ネットワークを利用する上で欠かせないのが「通信の安全性」です。
もし、盗聴や不正アクセスなどによって重要な情報が外部に流出してしまうと大きな問題ともなります。
今回は、こういったセキュリティリスクを避けるための、ネットワークで安全な通信を行う仕組みであるSSHについて解説します。
目次
SSHとは
SSH(Secure Shell)とは、コンピューターで通信のために使われるプロトコルの一つです。
まずは、SSHが生まれてきた背景とSSHの概要について解説します。
必要になったセキュアな通信
一般的にコンピュータで通信を行う際に使われる通信サービスには、従来からTelnetやFTPなどがあります。
これらに共通していることは「暗号化がされていない」ということです。
暗号化されていないということは、以下のようなリスクがあります。
- IDやパスワード、その他の重要な情報が盗聴される
- 情報流出
- 他人のなりすまし
こういった問題を解決するために開発されたのが、通信を暗号化して読み取ることができないようにする仕組みです。
SSHとは
SSHとは、「通信内容を暗号化する」「鍵認証など高度な認証方法を使う」などのセキュアな方法を使うことで安全な通信を行うことができるようにする仕組みです。
認証の仕組みとしては、「パスワード」「認証鍵」などの方法が使えますが、SSHでもっともポイントとなるのは「通信を暗号化することで読み取られない」ようにしたことです。
これにより今や多くのWebサービスやリモートサービスがSSHを採用するようになっています。
SSLとの違いとは
SSHと同じようにセキュアな通信を実現する仕組みとしてよく取り上げられるものとしてSSL(Secure Socket Layer)があります。
このSSLとSSHの違いはどういったところにあるのでしょうか。表に整理してみます。
SSH | SSL | |
---|---|---|
目的 | ・接続先がなりすましでないかの証明 | ・接続先がなりすましでないかの証明 ・クライアントの認証 ・通信内容の盗聴の防止 |
ユーザー認証 | 公開鍵による認証 | 証明書による認証 |
このようにSSLとSSHは同じように通信を暗号化して安全に送受信を行うためのプロトコルですが、いくつかの異なる点があることが分かります。
SSHによる通信の仕組み
代表的な暗号化通信の仕組みであるSSH。
SSHでセキュアな通信が行われるためにはどういった仕組みになっているのでしょうか。
SSHでセキュアな通信を行うためのポイントとなるのが「公開鍵によるユーザー認証」です。この認証は、以下のような流れで行われます。
- 端末側で秘密鍵と公開鍵のペアを作成する
- 接続する相手のサーバーに公開鍵を設置しておく
- 端末側で秘密鍵を使って署名(Signature)を作成してサーバーに設置する
- 通信の際には作成した鍵のペアを照合することで認証を行う
このように、SSHによる通信を行う場合は、公開鍵による認証が必要となります。
SSHを使う
具体的にSSHを使うには、どうすれば使えるのでしょうか?
早速、実際にSSHを使ってみましょう。
実際にSSHを使ってサーバーに接続するには、いくつかの方法があります。
一般的には「サーバーを操作する」あるいは「サーバーからファイルを送受信する」といったケースで使われることが多いのですが、これらについて解説します。
<サーバー操作:Telnet → SSH>
コンソールでサーバー操作をする場合、暗号化通信を活用するのであれば、Telnetでなく、SSHコンソールを使います。TeratermPro with SSH(Windows)やTerminal(Mac)を使います。
<ファイル送受信:FTP → SCP, SFTP>
暗号化した安全なファイルの送受信はSFTPやSCPを使います。
これには、WinSCP(Windows)や、Cyberduck(Mac)といったツールが使えます。
いずれにしろ、暗号化による通信は、上記のようなツールを使うことで簡単に利用することができます。
まとめ
年々巧妙化かつ悪質化するサイバー犯罪。
システムの脆弱性やバグなどを悪用した不正アクセスや盗聴などが急増する中、セキュリティレベルの向上は必須となっています。
そんな中、従来からサーバー管理などでよく使われるTelnet。
ファイル送受信を行うためのFTP。
これらは通信が暗号化されないために情報の漏洩などのリスクがあります。
これを解決するのが、今回解説したSSHです。
SSHは、公開鍵を使ったユーザー認証を用い、通信内容を暗号化することができるセキュアな通信プロトコルです。
暗号化通信を使うSSHコンソールやSCPなどはツールで簡単に利用することができます。
セキュリティレベルの高いSSH、今回の記事を参考にして、ぜひ活用しましょう。