LinuCレベル1 Version 4.0 102試験の例題と解説
110.3 暗号化によるデータの保護
■例題
OpenSSHサーバで公開鍵認証を行うために必要な手順に関する説明の中で正しいものを選びなさい
1. 公開鍵と秘密鍵をssh-keygenコマンドで作成する。
2. 接続先サーバには、作成した公開鍵、秘密鍵の両方を必ず保存する必要がある。
3. 接続先サーバに公開鍵を配置する際には、公開鍵ファイルのパーミッションを700に変更する必要がある。
4. 公開鍵認証でSSHログインを行う際には、接続先サーバのユーザパスワードを入力する必要がある。
※この例題は実際の試験問題とは異なります。
解答と解説
答えは「1. 公開鍵と秘密鍵をssh-keygenコマンドで作成する。」です。
その他の解説は以下の通りです。
「2. 接続先サーバには、作成した公開鍵、秘密鍵の両方を必ず保存する必要がある。」
「ssh-keygen」コマンドで作成した公開鍵と秘密鍵の内、接続先サーバ側で認証に使用するのは公開鍵のみです。そのため、接続先サーバには、公開鍵のみを保存します。
「3. 接続先サーバに公開鍵を配置する際には、公開鍵ファイルのパーミッションを700に変更する必要がある。」
OpenSSHサーバで公開鍵認証を行う場合、公開鍵ファイルのパーミッションは必ず600、つまり所有者のみが参照できる状態である必要があります。
「4. 公開鍵認証でSSHログインを行う際には、接続先サーバのユーザパスワードを入力する必要がある。」
ユーザパスワード情報を使い認証を行うのは、パスワード認証方式です。
パスワード認証方式では、/etc/passwd等のユーザデータベースに記録されたパスワードとログイン時に入力されたパスワードの比較を行い、認証が行われます。
対して公開鍵認証のパスフレーズは、秘密鍵を取得するために利用されます。
公開鍵認証を使った場合、大まかに以下のような流れで認証が行われます。
a. SSH接続時にクライアントが入力したパスフレーズで秘密鍵を復号化する
b. サーバ側では、公開鍵でランダムなデータを暗号化してクライアントに送信する
c. クライアントは暗号化されたデータを、秘密鍵で復号化し、再度サーバに送信する
d. サーバは元々のデータと、クライアントから受けとったデータを比較して一致するか検査する
また、上記2つの認証方式には、それぞれ特徴があります。
パスワード認証方式は、比較的手軽に利用できますが、総当り攻撃でパスワードを解析され、第三者の不正侵入を許す危険性があります。
対して公開鍵認証は、秘密鍵が流出しない限り、総当り攻撃ではログインはできません。
そのため、パスワード認証よりも、セキュリティレベルは高くなります。
ただし、設定に手間がかかることや、鍵を持っていないとログインができない、という不便な面もあります。
SSHの認証についての設定は、システムの安全性に直接的な影響を及ぼします。
その他のセキュリティ関連の設定と合わせて、しっかりと押さえておきましょう。
◆例題作成者
株式会社デージーネット システム設計部 森 彰吾 氏 株式会社デージーネット ソリューション開発部 丸吉祐也 氏