メインコンテンツへ
ネットワークネットワーク応用

SSHの公開鍵認証の仕組みに関する記述として、最も適切なものはどれか。

ア.クライアントの公開鍵をサーバの ~/.ssh/authorized_keys に登録しておき、認証時にサーバが送ったチャレンジをクライアントが秘密鍵で署名して返すことで、パスワードを送らずに本人確認を行う。正解
イ.サーバの公開鍵をクライアントが保持し、クライアントが送ったパスワードをサーバの公開鍵で暗号化して送ることで盗聴を防ぐ。
ウ.同じ秘密鍵をクライアントとサーバが共有しておき、チャレンジ/レスポンス方式で認証する共通鍵方式である。
エ.公開鍵認証では公開鍵と秘密鍵の両方をネットワーク経由で送るため、盗聴対策としてさらにTLSで保護する必要がある。

解説

SSH公開鍵認証は「印鑑登録方式」。あらかじめサーバに公開鍵という印影を登録しておき、認証時はサーバが渡した白紙にあなたの秘密鍵(印鑑そのもの)で押印して返す。印鑑は決して郵送しません。

なぜ ア が正解か

アが正解。SSH公開鍵認証の手順:(1)クライアントは事前にssh-keygenで秘密鍵と公開鍵のペアを生成し、公開鍵をサーバの~/.ssh/authorized_keysに登録。(2)接続時、サーバがランダムなチャレンジ値をクライアントへ送る。(3)クライアントが秘密鍵でチャレンジを署名して返送。(4)サーバが登録済み公開鍵で署名検証→OKなら認証成功。秘密鍵もパスワードもネットワークに流れない安全な方式。

なぜ イ は間違いか

パスワードを公開鍵で暗号化送信するのは公開鍵認証ではなく、SSHのパスワード認証(暗号化通信路上で平文送信)とも違う独自方式の説明。SSH公開鍵認証はパスワード自体を送らない。

なぜ ウ は間違いか

同じ秘密鍵を共有するのは共通鍵暗号方式であり、公開鍵認証ではない。公開鍵認証の本質は「公開鍵と秘密鍵という異なる鍵ペア」を使うこと。

なぜ エ は間違いか

公開鍵認証では秘密鍵は絶対にネットワーク送信しない。公開鍵自体は事前にサーバに配置されているため認証時にも送る必要がなく、安全性が成立する。

出典: AI生成問題(学習用)