HOME»基本情報技術者平成29年秋期問題»午後問1
基本情報技術者過去問題 平成29年秋期 午後問1
⇄問題文と設問を画面2分割で開く⇱問題PDF問1 情報セキュリティ
SSHによる通信に関する次の記述を読んで,設問1~4に答えよ。
SSHは遠隔ログインのための通信プロトコル及びソフトウェアであり,通信データの盗聴対策や,通信相手のなりすましを防ぐ仕組みを備えている。SSHでは,サーバにログインしてデータをやり取りする通信(以下,ログインセッションという)に先立って,安全な通信経路の確立と利用者認証を行う必要がある。安全な通信経路の確立,利用者認証及びログインセッションを合わせてSSHセッションと呼ぶ。その流れを,図1に示す。
〔安全な通信経路の確立の概要〕
安全な通信経路の確立は,次のようにして行う。
〔利用者認証の概要〕
クライアントからサーバへのログインでは,サーバは利用者認証を行う。SSHの利用者認証の方式には,デジタル署名を用いる"公開鍵認証"とパスワードを用いる"パスワード認証"がある。
"公開鍵認証"では,クライアントの公開鍵を事前にサーバに登録しておき,この登録されている公開鍵に対応する秘密鍵をクライアントがもっていることをサーバが確認する。この確認では,クライアントがセッション識別子などに対するデジタル署名をサーバに送信し,サーバがbを用いてデジタル署名を検証する。
"パスワード認証"では,クライアントが利用者IDとパスワードを送信し,サーバは受け取ったパスワードが当該利用者のパスワードと一致していることを検証する。なお,③"パスワード認証"は,"公開鍵認証"に比べて,安全性が低いと考えられている。
SSHは遠隔ログインのための通信プロトコル及びソフトウェアであり,通信データの盗聴対策や,通信相手のなりすましを防ぐ仕組みを備えている。SSHでは,サーバにログインしてデータをやり取りする通信(以下,ログインセッションという)に先立って,安全な通信経路の確立と利用者認証を行う必要がある。安全な通信経路の確立,利用者認証及びログインセッションを合わせてSSHセッションと呼ぶ。その流れを,図1に示す。
〔安全な通信経路の確立の概要〕
安全な通信経路の確立は,次のようにして行う。
- クライアントがサーバにアクセスする。
- サーバとクライアントが,SSHセッションで使用する暗号アルゴリズムについて合意する。
- サーバとクライアントが,通信データの暗号化に使用するセッション鍵と,他のSSHセッションと区別するためのセッション識別子について合意する。
- ①クライアントがサーバ認証を行う。サーバ認証では,クライアントがあらかじめ入手して正当性を確認しておいたaを用い,サーバによるセッション識別子へのデジタル署名が正しいかどうかを検証する。
- 合意した暗号アルゴリズムとセッション鍵を用いて,②共通鍵暗号方式による通信データの暗号化を開始する。これ以降の通信は,全て暗号化される。
〔利用者認証の概要〕
クライアントからサーバへのログインでは,サーバは利用者認証を行う。SSHの利用者認証の方式には,デジタル署名を用いる"公開鍵認証"とパスワードを用いる"パスワード認証"がある。
"公開鍵認証"では,クライアントの公開鍵を事前にサーバに登録しておき,この登録されている公開鍵に対応する秘密鍵をクライアントがもっていることをサーバが確認する。この確認では,クライアントがセッション識別子などに対するデジタル署名をサーバに送信し,サーバがbを用いてデジタル署名を検証する。
"パスワード認証"では,クライアントが利用者IDとパスワードを送信し,サーバは受け取ったパスワードが当該利用者のパスワードと一致していることを検証する。なお,③"パスワード認証"は,"公開鍵認証"に比べて,安全性が低いと考えられている。
設問1
本文中の に入れる適切な答えを,解答群の中から選べ。
a,b に関する解答群
- 安全な通信経路の確立時に合意したセッション鍵
- クライアントの公開鍵
- クライアントの秘密鍵
- サーバの公開鍵
- サーバの秘密鍵
解答選択欄
- a:
- b:
解答
- a=エ
- b=イ
解説
〔aについて〕
問題文では、「サーバによるセッション識別子へのデジタル署名が正しいかどうかを検証する」ことで、サーバ認証を行うと説明されています。
デジタル署名は、データの受信者側で送信元確認と改ざん検知を行う仕組みです。具体的には下図のように、送信者がメッセージダイジェスト(本文のハッシュ値)を「自身の秘密鍵」で暗号化したものを本文に付けて送信し、受信者はデジタル署名を「送信者の公開鍵」で復号して照合を行います。検証対象のデジタル署名の送信者はサーバなので、クライアントはサーバの公開鍵を用いてデジタル署名を検証し、サーバ認証を行います。
∴a=エ:サーバの公開鍵
〔bについて〕
"公開鍵認証"では、「登録されている公開鍵に対応する秘密鍵をクライアントがもっていることをサーバが確認する」と説明されています。
公開鍵認証は上記のサーバ認証とは逆に、「クライアントが…デジタル署名をサーバに送信」することで実現します。クライアントから送信されたデジタル署名は、クライアントの秘密鍵で暗号化されているので、サーバ側ではクライアントの公開鍵を用いてデジタル署名を検証します。一対の公開鍵と秘密鍵はペアになっているので、正しく復号出来たならば、クライアントが持つ秘密鍵は登録されている公開鍵に対応するものであると判断できます。
∴b=イ:クライアントの公開鍵
問題文では、「サーバによるセッション識別子へのデジタル署名が正しいかどうかを検証する」ことで、サーバ認証を行うと説明されています。
デジタル署名は、データの受信者側で送信元確認と改ざん検知を行う仕組みです。具体的には下図のように、送信者がメッセージダイジェスト(本文のハッシュ値)を「自身の秘密鍵」で暗号化したものを本文に付けて送信し、受信者はデジタル署名を「送信者の公開鍵」で復号して照合を行います。検証対象のデジタル署名の送信者はサーバなので、クライアントはサーバの公開鍵を用いてデジタル署名を検証し、サーバ認証を行います。
∴a=エ:サーバの公開鍵
〔bについて〕
"公開鍵認証"では、「登録されている公開鍵に対応する秘密鍵をクライアントがもっていることをサーバが確認する」と説明されています。
公開鍵認証は上記のサーバ認証とは逆に、「クライアントが…デジタル署名をサーバに送信」することで実現します。クライアントから送信されたデジタル署名は、クライアントの秘密鍵で暗号化されているので、サーバ側ではクライアントの公開鍵を用いてデジタル署名を検証します。一対の公開鍵と秘密鍵はペアになっているので、正しく復号出来たならば、クライアントが持つ秘密鍵は登録されている公開鍵に対応するものであると判断できます。
∴b=イ:クライアントの公開鍵
設問2
本文中の下線①によって防ぐことができる攻撃として適切な答えを,解答群の中から選べ。
解答群
- DOS攻撃
- SQLインジェクション
- クロスサイトスクリプティング
- 総当たり攻撃
- 中間者攻撃
解答選択欄
解答
- オ
解説
中間者攻撃とは、攻撃者がクライアントとサーバとの通信の間に割り込み、クライアントと攻撃者との間の通信を攻撃者とサーバとの間の通信として中継することによって正規の相互認証が行われているようにしてセキュリティを破る攻撃手法です。
中間者攻撃では、正当なサーバになりすました攻撃者が、クライアントへ偽のサーバの公開鍵を送りつけて通信を確立しようとします。しかし①の手順ではあらかじめ入手したサーバ公開鍵を使用してサーバ認証を行うので、正当な秘密鍵をもたない攻撃者はサーバ認証を受けられません。この仕組みにより中間者攻撃を防止できます。
∴オ:中間者攻撃
中間者攻撃では、正当なサーバになりすました攻撃者が、クライアントへ偽のサーバの公開鍵を送りつけて通信を確立しようとします。しかし①の手順ではあらかじめ入手したサーバ公開鍵を使用してサーバ認証を行うので、正当な秘密鍵をもたない攻撃者はサーバ認証を受けられません。この仕組みにより中間者攻撃を防止できます。
∴オ:中間者攻撃
設問3
本文中の下線②について,通信データの暗号化に公開鍵暗号方式ではなく共通鍵暗号方式を用いる理由として適切な答えを解答群の中から選べ。
解答群
- 共通鍵暗号方式は,公開鍵暗号方式よりも暗号処理が高速である。
- 共通鍵暗号方式は,公開鍵暗号方式よりも解読に時間が掛かる。
- 共通鍵暗号方式は,公開鍵暗号方式よりも鍵の再利用が容易である。
- 共通鍵暗号方式は,公開鍵暗号方式よりも鍵の配布が容易である。
解答選択欄
解答
- ア
解説
下表は公開鍵暗号方式と共通鍵暗号方式の違いをまとめたものです。
- 正しい。共通鍵暗号方式は公開鍵暗号方式よりも暗号化/復号処理が高速で、その差は10,000倍以上もあると言われています。SSH、S/MIME、TLSなどのセキュアプロトコルでは、暗号化通信のパフォーマンスを高めるために、認証と暗号化鍵の配送を公開鍵暗号方式で行い、暗号化通信は共通鍵暗号方式で行うハイブリッド方式を採用しています。
- 復号処理も共通鍵暗号方式のほうが高速です。
- 暗号化鍵を再利用すると、通信当事者以外によって通信を復号される可能性が生じるため秘匿性が保たれません。SSHでは、セッションごとに異なる暗号化鍵を使用することで再利用を防いでいますが、暗号化鍵の生成には公開鍵暗号方式が用いられています。
- 共通鍵暗号方式では、暗号化通信に先立って暗号化鍵を安全に共有しておく必要があります。逆に公開暗号方式では鍵配送の手間がありません。SSHでは鍵の共有に公開鍵暗号方式を使用しているので記述は誤りです。
設問4
本文中の下線③のように考えられている理由として適切な答えを,解答群の中から選べ。
解答群
- "パスワード認証"では,サーバが攻撃者に乗っ取られていた場合,送信したパスワードを攻撃者に取得されてしまう。
- "パスワード認証"では,正当なサーバとは異なるサーバに接続させられてしまっても利用者が気づけない。
- "パスワード認証"では,パスワードだけを用いるが,"公開鍵認証"では,パスワードの他にデジタル署名も用いる。
- "パスワード認証"では,利用者のパスワードが平文でネットワーク上を流れるので,盗聴されるとパスワードを取得されてしまう。
解答選択欄
解答
- ア
解説
- 正しい。"パスワード認証"では利用者IDとパスワードをサーバに送信するので、サーバが乗っ取られていた場合、認証情報を攻撃者に取得され、それを用いたリプレイ攻撃を受ける可能性があります。一方"公開鍵認証"であれば、デジタル署名やクライアントの公開鍵が窃取されたとしても、(クライアント端末に格納されている)クライアントの秘密鍵が漏えいしない限りは正当なクライアントになりすまして不正ログインされる恐れはありません。
- パスワード認証に先立って行われるサーバ認証によって、通信を行うサーバの正当性は確認されています。
- "公開鍵認証"ではパスワードを使用しません。
- クライアント認証は事前に確立された安全な通信経路上(暗号化通信)で行われます。クライアントから送信されるパスワードは暗号化されているので、通信経路上における盗聴の恐れはありません。