こうすりゃ解ける! 平成30年度春期 基本情報技術者試験の午後問題を徹底解説

皆さん、こんにちは。矢沢久雄です。

4月16日(日)に実施された平成30年春期基本情報技術者試験の中から、必須問題である 問1 を徹底解説します。こうすりゃ解ける! というコツをつかんで頂けたら幸いです。

出題分野は「問1 情報セキュリティ」で、テーマは「Webサービスを利用するためのパスワードを安全に保存する方法」です。

 

試験問題ページ
平成30年 春期 基本情報技術者試験 午後問題 問1

 

午前問題の知識が十分なら午後問題も解ける

午後問題の問1~問7は、俗に「午前知識の応用問題」と呼ばれます。

試験の出題範囲を示すシラバスの内容は、午前問題と午後問題に分けられていません。

同じ出題範囲で、午前問題は用語や概念などの基礎知識を問い、午後問題は知識を応用する能力を問います。

そのため、午後問題は、「A社では・・・」や「B社のシステムでは・・・」という事例(架空の事例)になっています。この問題も「A社が提供するWebサービスを利用するには・・・」という書き出しになっています。

 

午後問題は、説明が長くて、図も多用されているので、見かけは難しそうなのですが、設問で問われる知識は、午前問題と同様なので心配する必要はありません(これは、問1~問7のことです。問8以降は、大いに心配してください)。

 
以下は、この問題の設問に示された選択肢に示された主な用語です。

午前問題には、これらの用語の意味を単独で問う問題が出題されます。

午後問題では、事例の中に複数の用語を登場させた問題が出題されます。知らない用語がないかどうか、チェックしてみてください。

 

□ AES
□ Diffie-Helman
□ RSA
□ TLS
□ ハッシュ値
□ SHA-256
□ パスワードファイル
□ ハッシュ化
□ 秘密鍵
□ ソルト

 

用語の意味が80%以上わからないと午後問題は解けない

チェック結果は、いかがでしたか。

もしも、知らない用語が多いなら、午前問題の学習が不十分です。午前問題の過去問題を数多く解いてから、午後問題の学習に進むようにしましょう。

先ほど示した用語の意味を以下に示します。試験の合格圏は、100点満点中60点以上ですが、用語の知識が60%ギリギリでは応用できないでしょう。80%以上を目指してください。

つまり、午前問題で80点以上を取れるようでなければ、午後問題で60点以上を取るのは難しいのです。

 

【用語】AES(Advanced Encryption Standard)
代表的な共通鍵暗号方式
【用語】Diffie-Helman(2人の考案者の人名)
他者に知られないように共通鍵を交換する方式
【用語】RSA(3人の考案者Rivest、Shamir、Adelmanの頭文字)
代表的な公開鍵暗号方式
【用語】TLS(Transport Layer Security)
インターネットで利用されているセキュアなプロトコルで、認証、改ざんの検出、暗号化の機能がある。
【用語】ハッシュ値
何らかのデータから得られた固有の数値のこと。データが異なればハッシュ値も異なり(同じになる可能性は極めて低い)、ハッシュ値から元のデータに逆変換できないという特徴がある。データをハッシュ値に変換する計算方法をハッシュ関数と呼ぶ。
【用語】SHA-256(Secure Hash Algorithm 256bit)
代表的なハッシュ関数
【用語】パスワードファイル
パスワードを保存したファイル。たとえば i*ejEf/3as というパスワードをそのまま保存すると情報が漏洩してしまうので、ハッシュ関数を使って a4bde8ac02f7・・・のようなハッシュ値に変換して保存するのが一般的である。
【用語】ハッシュ化
何らかのデータ(この問題ではパスワード)をハッシュ値に変換すること。
【用語】秘密鍵
公開鍵暗号方式で使われる2つの鍵のうち、公開せずに秘密に保持される鍵
【用語】ソルト
悪人が、様々なパスワードをハッシュ値に変化したもの(辞書と呼ばれる)を用意すれば、ハッシュ値からもとのパスワードを知ることができる場合がある。これを防ぐために、パスワードにランダムなデータ(これをソルトと呼ぶ)を付加してからハッシュ化する方法がある。ソルト(salt)とは、セキュリティを強化するために振りかけられた「塩」という意味である。

 

 

-PR-

 

 

設問1 空欄a

それでは、設問ごとに問題の解法を説明しましょう。

設問1の空欄aは、SHA-256が代表的なハッシュ関数であることを知っていれば、瞬時に解けます。用語の意味を知ることの重要性をしみじみと感じますね。

 

もしも、SHA-256という用語を知らないなら、ハッシュ関数でないと判断できる選択肢を消して、残った選択肢の中から、それっぽいものを選びましょう。

たとえば、AES、Diffie-Hellman、SRAを知っていれば、答えをエとオに絞れます。

SHA-256とTLSのどっちがハッシュ関数っぽいでしょう。「ハッシュ(hush)のHがあるからSHA-256かなあ」はい、それで正解です!

 

設問1 空欄b

ハッシュ関数の特徴に関する問題です。選択肢を見ると、用語ではなく文書になっています。この手の選択肢は、一気に正解を選ぶことが難しいものです。

それなら、消去法でやってみましょう。「選べなかったら、消去法」これを、標語のように覚えて実践してください。

 

消去法は、◯と × だけでなく、誤りがないなら○、微妙なら △ 、間違いなら × 、判断できないなら ? を付けてください。

基本情報技術者試験には、滅多に ひっかけ問題 は出題されないので、最も無難な選択肢を選べばOKです。

たとえば、 △ 、 × 、 ? 、 × なら、 △ を付けた選択肢が正解です。

? 、 × 、 × 、 × なら、?を付けた選択肢が正解です。? は、正解かどうか判断できませんが、他が明らかに × だからです。

 


  • パスワードが異なれば同じハッシュ値になる可能性は極めて低いので、これは×です。

  • 同一のパスワードは同じハッシュ値になるので、これは○です。

  • ハッシュ値から元のパスワードに逆変換できないので、これは×です。

  • ハッシュ化に秘密鍵は関係ないので、これは×です。

 

筆者は、講師のはしくれですから、× 、◯ 、 × 、 × という消去法で、確実にイが正解だとわかりました。

もしも、他の印を付けた場合も、最も無難な選択肢を選んでください。たぶん、それで正解できたはずです。

 

設問2 空欄c

長い説明文と、複雑そうな図に戸惑うかもしれませんが、ソルトの役割を問うだけの問題です。

パスワードにソルトを付加してからハッシュ化するのですから、パスワードだけをハッシュ化したときとは異なるハッシュ値が得られます。したがって、正解はイです。

 

もしも、事前にソルトという用語を知らず、問題の説明を読んでもソルトの役割がわからなかったらどうなるでしょう。

選択肢のア、ウ、エは、長さに関することで、選択肢イだけが仲間外れの内容です。したがって、選択肢のア、ウ、エの中からイチかバチかで選んで不正解になってしまうでしょう。それは、仕方のないことです。

合格圏は、100点満点中60点なのですから、少しぐらい不正解があっても気にしないことです。それが、楽しく学習を続けるコツです。

 

設問2 空欄d

この設問もソルトの役割がわかっていれば、簡単に正解できると思いますが、念のため消去法を使ってみましょう。

基本情報技術者試験の問題は、午前問題も午後問題も、すべて選択問題です。消去法を使えば、うっかりミスを防ぐことができます。

 


  • 攻撃者はソルトの値を知らないので、一覧表を作れません。したがって、×です。

  • パスワードファイルからソルトを入手できないので、これは○でしょうか。いやいや、早合点してはいけません。選択肢だけでなく、問題文もよく見てください。ソルトが「事前計算による辞書攻撃の対策として効果がある」理由を選ぶのですから、ちょっと違うでしょう。△にしておきましょう。

  • パスワードファイルの入手が困難になるかどうかは、ソルトと無関係なので、これは×です。

  • ソルトが使われると、攻撃者は、様々なパスワードと様々なソルトで事前に辞書を作る必要があります。これは、あまりにも膨大な数になるので、現実的に不可能です。したがって、これは○でしょう。

 

消去法の結果は、× 、 △ 、 × 、◯ になったので、最も無難な○を付けたエを選んでください。それで正解です!

 

設問3

午後問題には、複数の設問がありますが、ちょっと変わった問題が1問程度は出題されます。おそらく、設問ごとの難易度を変えるためでしょう。

設問3は、ちょっと変わった問題です。以下は、問題文の一部です。

 

 

「ストレッチング」とは、聞いたことがない用語です。

現時点で最新のシラバス Ver 4.0には、「ソルト」はあっても「ストレッチング」という用語はありません。以下は、シラバスの抜粋です。

 

この手の問題が出たときは、説明文を読めば答えが選べるようになっています。シラバスに示されていない用語を説明なしで取り上げるわけにはいかないからです。

 

ソルトとパスワードを連結してハッシュ化し、それによって得られたハッシュ値の後にソルトとパスワードを連結してハッシュ化することを繰り返し、その繰り返し回数を保存するという説明です。これが、きっとストレッチングなのでしょう。

空欄は、ストレッチングの効果を問うものです。選択肢を見てみましょう。ここでも、消去法を使います。


  • パスワード自体は長くならないので、これは×でしょう。

  • ストレッチとは、「伸ばす」という意味ですから、これは○のような気がします。

  • ハッシュ化の回数は増えても、比較の回数は増えないような気がします。これは、△にしておきましょう。

  • 何度もハッシュ値を求めるのですから、これは○でしょう。

 

○が2つになりました。四択ならウかエが正解である確率が高いような気がしますが、最近の試験ではアやイが正解の場合もよくあります。

え~い、それならイを選ぶことにしましょう。ブッ、ブッー! 正解は、エです。

 

もしも、消去法で、◯ が複数(ここでは2つ)になったら、それぞれをよく比べて決選投票をしてください。

ハッシュ値というものは、ハッシュ化するデータの長さに関わらず同じなんじゃないでしょうか(事実、同じです)。したがって、選択肢イは、間違いかもしれません。それに対して、選択肢イの時間が増加することは、否定のしようがありません。このような判断をすれば、正解のエを選べます。

 

最後に

午後問題を解説するのは、とても難しいことです。人によって様々な解法があるからです。

したがって、解説された解法が自分に合っていないと「問題より解説の方が難しいじゃないか!」なんてことになってしまいます。

こうして解説記事を書いておきながら、無責任なことを言わせていただきますが、午後問題は、自分流のやり方で解くものです。

そのために、自分用の解説ノートを作ることをお勧めします。このような解説記事は、解説ノートを作るための参考としてください。

解説記事の内容に十分に理解できない部分があっても、参考になる部分があるはずです。そう願っております。

 

 

※平成30年度春期基本情報技術者試験の問題と解答例は、以下から入手できます。

https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2018h30.html#30haru

 

※基本情報技術者試験のシラバスは、以下から入手できます。

https://www.jitec.ipa.go.jp/1_13download/syllabus_fe_ver4_0.pdf

 

 

『プログラムはなぜ動くのか』(日経BP)が大ベストセラー
IT技術を楽しく・分かりやすく教える“自称ソフトウェア芸人”

大手電気メーカーでPCの製造、ソフトハウスでプログラマを経験。独立後、現在はアプリケーションの開発と販売に従事。その傍ら、書籍・雑誌の執筆、またセミナー講師として活躍。軽快な口調で、知識0ベースのITエンジニアや一般書店フェアなどの一般的なPCユーザの講習ではダントツの評価。
お客様の満足を何よりも大切にし、わかりやすい、のせるのが上手い自称ソフトウェア芸人。

主な著作物

  • 「プログラムはなぜ動くのか」(日経BP)
  • 「コンピュータはなぜ動くのか」(日経BP)
  • 「出るとこだけ! 基本情報技術者」 (翔泳社)
  • 「ベテランが丁寧に教えてくれる ハードウェアの知識と実務」(翔泳社)
  • 「ifとelseの思考術」(ソフトバンククリエイティブ) など多数