全3364文字
PR

 テレワークの普及やクラウドサービスの利用拡大に伴い、リモートアクセスの重要性が以前にも増して高まっている。リモートアクセスとは、遠隔地に配置した機器やクラウド環境に構築したサーバーに、インターネットなどのネットワーク経由でアクセスすることだ。リモートアクセスを実現するためのプロトコルは複数あるが、定番はSSHである。

 SSHの最大の特徴は、クライアントとサーバーの間で暗号化した通信路(セッション)を確立し、その通信路を使ってデータをやりとりすることだ。インターネットを介したリモートアクセスでは、第三者に通信を盗聴(傍受)される恐れがある。このため安全な通信の実現には暗号化が不可欠だ。SSHは通信を暗号化するので、たとえ盗聴されたとしても通信内容が流出する危険性は低い。

データを暗号化して流出を防ぐ
データを暗号化して流出を防ぐ
[画像のクリックで拡大表示]

 一方、SSHと同じくリモートアクセスに使われるプロトコルであるTelnetは基本的に通信内容を暗号化しない。平文でやりとりする。このため盗聴されると、通信内容を第三者に知られてしまう。IDやパスワードも平文で送るので、これらを盗まれて不正ログインされる危険性も高まる。いわゆるなりすましである。

 インターネットの登場時はリモートアクセスにTelnetが使われることが多かった。だが前述のようにセキュリティー上の問題があるとして、近年ではSSHが使われるようになっている。

 SSHを利用するには、クライアントとサーバーのそれぞれに専用のソフトウエアをインストールする必要がある。さまざまなSSHソフトがあるが、広く使われているのはOpenSSHである。Windows 10ではOpenSSHを拡張機能としてインストールできる。

通信相手の認証が不可欠

 前述のように、SSHは通信内容を暗号化する。ただ、これだけでは安全な通信は実現できない。正当な通信相手になりすました攻撃者などに接続したら、通信を暗号化していても意味がない。

 そこで通信相手が正当かどうかの確認作業、すなわち認証が不可欠になる。SSHでも、実際の通信を開始する前の準備段階で、クライアントとサーバーの両方がお互いを認証する。

 SSHの大まかな流れは次の通り。暗号化通信を始める前に「暗号アルゴリズムなどの共有」「鍵情報の共有」「暗号化鍵の作成」「サーバーの認証」を実施。ここまでに問題がなければ暗号化通信を開始して「クライアントの認証」を実施後、データのやりとりを開始する。

SSHの大まかな流れ
SSHの大まかな流れ
[画像のクリックで拡大表示]