午後問題は問題分が長いので、全文については割愛させていただきます。必要に応じて引用します。全文が手元にない方は応用情報技術者試験ドットコム様のページ(クリックかタップで飛びます)などからご入手ください。
それではさっさく解説していきます。
設問1の解説
設問1は穴埋め問題です。本文中の空欄[a]~[d]の中に入る適切な語句を選びます。
[新規発行]のところを見ると(1)に「[a]と[b]の対を生成する」とあることから、[a],[b]は公開鍵と秘密鍵が入るんだろうなと予測をつけます。認証の目的は「社員Aが間違いなく本人であることを示す」ことなので、社員A特有の秘密鍵が必要となります。したがって[a]か[b]は「キ 社員Aの秘密鍵」となります。もう一方は社員Aの秘密鍵と対になる「オ 社員Aの公開鍵」となります。
次に(2)を見てみましょう。「認証局サーバは、(中略)[d]を生成する」とあります。認証局が生成するものといえばディジタル証明書(公開鍵証明書)です。選択肢を見てみると「カ 社員Aの公開鍵証明書」と「サ 認証局の公開鍵証明書」があります。認証局の役割は「公開鍵証明書を発行し社員Aを認証する際に用いる公開鍵が正当であることを証明する事」なので、dは「カ 社員Aの公開鍵証明書」であるとわかります。認証局のお墨付きがもらえたことにより、社員Aの公開鍵が正当なものであることが保証され、安心して検証が行えます。
(2)によると、「[b]と社員名や有効期限などを結びつけた情報に[c]で署名し、」とあります。[b]は「キ 社員Aの秘密鍵」か「オ 社員Aの公開鍵」でした。公開鍵の正当性を署名することがこのプロセスの目的なので、ここで用いるのは公開鍵の方です。したがって、[b]は「オ 社員Aの公開鍵」であることがわかります。となれば[a]は「キ 社員Aの秘密鍵」であることも確定します。
[c]は「シ 認証局の秘密鍵」です。公開鍵証明書を発行するには認証局しか知らない情報を用いて証明書を作成しなければなりません。誰でも知ってる情報で署名しても、それは誰にでも作れるものなので有り難みがありません。
設問2の解説
設問2は選択肢を正しい順番に並べる問題です。電子メールを受信する電子署名を使用して改ざんの有無をチェックするプロセスについて問われています。
<<送信側>>の(5)を見ると、送りつけられてきたメールはすべてが暗号化されています。「メッセージと電子署名を暗号化」とありますが、おそらく送信者名なども暗号化されているはずです。私たちの普段の生活からイメージすると「メッセージ=本文」なのですが、メッセージには送信者名など本文以外の情報も含まれます。
となると、受信者Bからすれば復号するまでメールの送信者が誰なのかすらわかりません。なので真っ先にメールを復号する必要があります。したがって、「社員Bに秘密鍵で複合する」とあるイがeに当てはまります。
復号化すると送信者がAであることがわかります。そうなれば、「このメールの署名検証に必要なのはAの公開鍵証明書だな」と分かるため、公開鍵証明書が格納されているディレクトリサーバから証明書を取得し署名の検証に用いる公開鍵の正当性を確認、そして署名の検証を行えるわけです。
順番としては「公開鍵証明書の取得」 → 「署名の検証」です。したがって、ア → ウの順番になります。つまり[f]はアで[g]はウです。
まとめると「(1)PCサブシステムにアクセス」→「(2)データの復号化(イ)」 → 「(3)公開鍵証明書の取得(ア)」 → 「(4)署名の検証」というのが受信側の処理の流れとなります。
設問3の解説
問題のシステムで実現できることと、できないことがあります。選択肢を見てどこまでの機能を実現できるのかを判断する問題です。選ぶのは「防止できない事象」です。一つずつ選択肢を見ていきます。
ア 社員Aが自分のICカードとPINを利用して、社員Bになりすますこと
社員Bになりすますためには、社員Bの情報が必要です。社員BのICカードを盗み、PINコードも知っていればなりすますことができますが、この選択肢の場合自分のものしかありませんから、なりすましは不可能です。したがってアは×。
イ 社員Aが自分のICカードを紛失してしまうこと
ICカードの紛失はこのシステムでは防ぎようがありません。したがってイは正解です。
紛失を防ぐのであれば、ICカードに入っている情報をサーバ側に格納して、PCサブシステムにアクセスする際には生体認証を用いるなどが必要となります。
ウ 社員Aが社員Bあてに送信した暗号化メッセージを、社員Cが解読すること
社員Aが社員Bあてに送信した暗号化メッセージは社員Bの公開鍵で暗号化されています。したがって、メッセージを読むためには社員Bの秘密鍵が必要となります。社員Bの秘密鍵は社員Bしか知らない情報なので、社員Cがメッセージを読む(解読する)ことはできません。
したがって、これは防止可能な事象なのでウは×です。
エ 社員Aが社員Bあてに送信した電子署名付きメッセージを、社員Aが否認すること。
「社員Aが否認すること」というのは「そのメールを送ったのは俺じゃねーよ」などと主張することです。
社員Aが送ったメールに付いている電子署名は、社員Aしか知らない秘密鍵を用いて署名されています。したがって、社員Aは否認できません。ということで、エは防止可能なので×となります。
オ 社員Aが社員Bあてに送信した電子署名付きメッセージを,社員Bが改ざんしてその内容を変更すること
暗号技術はメッセージが送信されて相手に届くまでの間に悪いことができないようにする技術です。メッセージが届いて復号化された後ならば改ざんできます。したがって、この事象は防げないのでオは正解です。
カ 社員Aが社員Bの電子署名を偽造すること
「偽造する」という事をどのように捉えるかにもよりますが、ここではおそらく「正規品の生成手順とは別な方法で、正規品と同じものをつくること」なのだと私は解釈しています。モロバレの不出来な偽物も「偽造品」に含めるとめんどくさくなります。
社員Bの電子署名の正規品とは社員Bの秘密鍵を用いて署名された電子署名のことです。したがって「社員Bの電子署名を偽造する」とは「社員Bの秘密鍵を用いずに社員Bの電子署名を作成すること」と言えるでしょう。これは不可能です。したがってカは×。
ただ偽造するだけなら可能とも言えるかもしれませんが、「まともな偽造」を行うことはできません。
設問4の解説
社外の人間Dにこのシステムを用いてメールを送ると、不都合なことが起きるのはなぜかを答える問題。
メールは暗号化されているため復号化する必要がありますが、その際には社員Aの公開鍵が必要となります。社員Aの公開鍵を手に入れるには、公開鍵証明書を入手する必要があります(このシステムでは公開鍵は公開鍵証明書に結び付けられているため)。
公開鍵証明書はディレクトリサーバに格納されていますが、「社内業務システムの概要」という図を見てみると、ディレクトリサーバには外部から簡単にアクセスできないようになっていることがわかります。
したがって、正解は「公開鍵証明書を社外からは取得できないため(19文字)」などとなるはずです。
模範解答では「社外では公開鍵証明書の取得と検証ができないから」とあります。取得ができなければ検証もできないのは自明なので、「検証ができない」の部分は余分な気もします。「文字数をもっと25文字に近づけたいな」と思うなら書いてもいいと思います。