わさっきhb

大学(教育研究)とか ,親馬鹿とか,和歌山とか,とか,とか.

SSHの正誤判定問題

いきなりですが問題です.以下の文が正しいか正しくないか,理由をつけて答えてください.

SSHプロトコルでは,暗号化情報の交換のあとに行われるホスト認証により,サーバ(リモートホスト)から見てクライアント(ローカルホスト)が適切な計算機であることおよびその逆を検証する.

昨日の1限に試験を実施し,今年度の情報セキュリティの授業は終了しました.早速,採点に取りかかりまして,まず赤ペンを入れたのは大問1の空欄適語問題のみです.学生ごとの得点のばらつきが大きいなあと感じています.
さて,上記の問題は,大問3の1問として用意したもので,タイトルにあるとおり正誤判定をしてもらいます.なお,「正しい」「正しくない」だけで,理由の書かない答案について,採点の対象としないことは,第15回の授業で「おさらい問題」として同形式の出題をし,解説しました.
授業の内容を踏まえていれば,上の文は「正しくない」となります.SSHの接続処理において,ローカルホスト(自分の計算機)から見て,ログインしてコマンドを実行したりしたいリモートホスト(接続先の計算機)が真正であるか,確認するのが不可欠です.その一方で,「サーバから見てクライアントが適切な計算機であること」を検証する必要はありません.それよりもユーザ認証,すなわちリモートホストから見て,このユーザを(あるユーザ名で)ログインしてもらってコマンドを実行させたりしていいのか,そこのところのチェックを行わないといけません.
なのですが,「ホストベース認証」のことをすっかり忘れていました*1.これはユーザ認証のための一手段*2ですが,やっていることは「サーバから見てクライアントが適切な計算機であること」の検証と見なして,差し支えありません.
ということで問題文を変更しまして,実際の試験では以下のとおりとしました.

SSHのユーザ認証の方法には,大きく分けてバージョン1とバージョン2があるが,フリーで提供されているバージョン1は安全性に問題があり,安全性が重視される環境で使うべきではない.

これも「正しくない」のですが,どこが正しくないかを言うには,大きく2種類があります.「ユーザ認証」をそのままにして,その分類はバージョン1/2ではないという考え方と,「バージョン1とバージョン2」はユーザ認証ではなく,SSHプロトコルバージョンに関するものだ*3という考え方です.公開済の解答例には,両方の理由を書きました.もう一つの正誤判定問題も,答案を眺めたところ,複数の「正しくない」理由が書けそうなので,改訂しておくとします.

*1:https://users.miraclelinux.com/support/?q=node/142, http://unicus.jp/jir/archives/150

*2:http://www.atmarkit.co.jp/ait/articles/0906/12/news114.html

*3:「フリーで提供されているバージョン1」も,間違いです.SSHプロトコル仕様はRFCとしてフリーで読めますし,有償・無償を問わずSSHのソフトウェアはどちらのバージョンにも対応しています.