SSHの仕組みとプロトコル解説

SSHとは?ゼロからやさしく解説

平成30年度 第3回のウェブデザイン技能検定3級から、SSHに関する問題を解説していく。まずは、SSHとはどのようなものなのかを解説し、4つの選択肢を見ていこう。2番目のTLSだけは、3級の受験生には難し過ぎる気がするので最後に解説する。

第16問
コンピュータネットワークにおいて、SSHの仕組みを使ってファイルを転送するプロトコルはどれか。以下より1つ選択しなさい。

  1. SFTP
  2. TLS
  3. SMTP
  4. HTTP

※ 平成30年度 第3回 ウェブデザイン技能検定3級 学科試験より引用

SSH(Secure Shell)とは

問題文にSSHとあるので、まずはここから話しておこう。SSHはSecure Shellの略で、サーバーへ暗号化したプロトコル(通信を行う方法)だ。

もう少し、詳しく説明すると、あなたが会社や自宅からレンタルサーバーへデータをアップするとしよう。まず、レンタルサーバーへ接続するために「私のIDは○○です。パスワードは××です。」といった情報を送って(ログインして)からデータを送受信するだろう。その際に、暗号化されていないIDやPasswordを送ってしまうと、第三者に盗み読まれてしまう可能性がある。そこで、SSHという仕組みを使って暗号化されたIDやPasswordを送りましょうということになる。

実際に、暗号化せずとも第三者に盗み読まれることは稀だ。ただ、自分のブログの更新なら差し支えないが、クライアントから受けた仕事だと話は別になる。ウェブデザイン技能士は、クライアントから報酬を受け取ってサイト制作をするのだから、万が一のためにも暗号化しておくべきなのだ。将来のために、IDやPasswordは暗号化して送受信するということを覚えておいて欲しい。

また、Secure Shellの略なら「なぜSSではなく、SSH(三文字)なの?」と疑問に思われたかもしれない。Secureを「S」一文字に略すのは普通だが、Shellを「SH」の二文字に略するのには慣例的な理由があるのだ。

Secure Shellを訳すと「安全な貝殻」となる。この貝殻の部分はOSとユーザーの間に位置するプログラムを差し、shell(シェル)と呼ばれている。このShellは、ユーザーの「何々しなさい」といった命令を受け取り、OSへ橋渡しをする仲介役だ。

OSへ直接命令をするのではなく、Shellを介して伝える様子(OSを覆い包むような様子)から、貝殻=Shellと呼ばれていて、UNIXというOSでは慣例的に二文字でSHと略されてきた。その流れを踏襲してS+SHで三文字になっているのだ。

これまでの点をまとめると、SSHはSecure Shellの略で、離れた場所にあるOS(サーバーなど)に対して何かをしたいときに用いる暗号化された(セキュアな)プロトコルだと覚えておこう。

SFTPはSecureなFTP

SFTPの前に、ちょっとFTPを復習しておこうかな。FTPはFile Transfer Protocolの略で、訳すと「ファイルを転送するプロトコル」となる。プロトコルは、インターネット上の通信方法と考えればいい。難しい言い方だが「通信規約」と訳されたりもする。

FTPは、主にウェブサイトを制作した後、そのHTMLや画像などのファイルをレンタルサーバーへアップするために使われる通信方法だ。FTPソフトを使うとFTP(通信方法)でアップすることができる。WindowsでもMacでもフリーソフトがあるのでそれらを使えばいいだろう。

ウェブサイトを見る(ダウンロード)するのがブラウザ、ウェブサイトをアップロードするのがFTPソフトだと対にして考えると整理しやすいはずだ。

注意点として、FTPは暗号化されていない通信方法なため、IDやパスワードを送るには少し不安があるのだ。そこで、SFTP(SSH File Transfer Protocol)の出番。よく見ると先ほど学習したSSHが付いている。SFTPは暗号化されたFTPなのだ。

最近のFTPソフトはSFTPの機能が付いているから、IDやパスワードを暗号化してレンタルサーバーへファイルをアップすることが可能だ。暗号化の設定ができるはずだから、初期設定の段階で暗号化しておくことを薦めておこう。

SMTPはメールのプロトコル

次のSMTPは、Simple Mail Transfer Protocolの略で、メールを送信する通信方法だ。メールの設定で見たことがあるだろうか?「SMTPサーバーが〇〇、POPサーバーが□□、ポート番号が△△」といった設定をしてメールが送受信できるようになる。

蛇足となるが、Gmailなどのフリーメールは異なる通信方法なので、SMTPは使っていないのだ。(フリーメールの通信は別の問題で出題されたときに説明する)

ちなみに、先頭の「Simple」は何がシンプルなのかと言うと、先にMail Transfer Protocolが定義されたのだが、それをやめて、簡略化したものを策定した。そのような経緯があってSimpleが付いているのだ。現在、Mail Transfer Protocolは使われていないため出題されることもないだろう。

この問いのポイントは、SMTPの“S”を、先のSFTPのようにSecureの“S”と混同しないことだ。ウェブデザイン技能検定では3文字や4文字の略語が多く出題されるが、“S”はSecurityやSecureの頭文字であることが多い。つまり、安全=暗号化を意味している。ただし、今回のSMTPは暗号化通信ではなく、シンプルの“S”だから暗号化はされていない。

出題者はこの“S”をSecurityの“S”と間違うかどうかを見ている。引っかからないように注意すべきポイントなのだ。

HTTPのハイパーテキストとは

HTTPはHyper Text Transfer Protocolの略で、ハイパーテキストを転送する方法と訳すことになるのだが、残念ながらハイパーテキストにはピッタリの日本語訳がないのだ。ハイパーテキストをひとことで言うと、「インターネット上にある、リンクで結ばれた文章のこと」になる。

そのハイパーテキストを転送する方法(ウェブサイトをブラウザへ送ってもらうためのプロトコル)がHTTPだ。ブラウザの上部にURL(サイトアドレス)が書かれているが、http://www.~~のように表示されているだろう。初めの「http://」は「HTTPで送りますよ~」という意味なのだ。

インターネットでは、上記で触れたように、SFTPやSMTPなど通信方法がたくさんあり、通信を始めるときに“どのプロトコル”で通信しましょうと、相互に示し合わせる必要がある。そこで、私たちが使っているブラウザは、ウェブサーバーに対して「http://」で書き始めて、HTTPで送って欲しいと要求しているのだ。

TLSは3級で問う内容ではない

この問いの四択のうちで、このTLSの理解が最も難しいだろう。3級の受験生がWikipediaなどでTLSの説明を読んでもおそらく意味が分からないだろう。今回の問題文では2番目に書かれていた選択肢だったが、HTTPの後に説明した方が良いと考え、最後に回した。

まず、TLSはTransport Layer Securityの略で、かなり意訳させてもらうと、「OSI参照モデルのレイヤーに縛られず安全にデータを転送する仕組み」となる。わけが分からないよと聞こえてきそうだ。

1級を受験するのであれば、OSI参照モデルの理解が必要になるのだが、3級では不要だ。OSI参照モデルのことなんて全く知らなくても問題なく合格できる。

とりあえず、TLSの説明をするよりも、具体的な使用例を見てもらった方がイメージしやすいだろう。先に「http://~~」を説明したが、これが「https://~~」になっているウェブサイトを見たことがあるだろうか。このときの“s”は、Securityの“s”。「暗号化してるよ」という意味で、このときにHTTPの暗号化をサポートするのがTLSの役割なのだ。

HTTPは暗号化通信ではないため、クレジットカード番号などの入力には不安がある。そこでHTTPとTLSを組み合わせて暗号化しておこうということだ。

解答

さて、最後にもう一度、問題文を見てみよう。

第16問
コンピュータネットワークにおいて、SSHの仕組みを使ってファイルを転送するプロトコルはどれか。以下より1つ選択しなさい。

  1. SFTP
  2. TLS
  3. SMTP
  4. HTTP

※ 平成30年度 第3回 ウェブデザイン技能検定3級 学科試験より引用

この問いは、SSH(Secure Shell)を使って、ファイルを転送する仕組みはどれですか?と聞いている。答えはもちろん、SFTP(SSH File Transfer Protocol)になる。SMTPもHTTPも暗号化していない転送プロトコルだ。

間違えてしまうかもしれないTLSだが、FTPやHTTPのように「ファイルを転送するプロトコル」ではなく、転送をサポートすることがTLSの役割。

この問いの答えは、「1. SFTP」で納得してもらえただろうか。