令和5年の応用情報を解く (問一)

久しぶりに情報処理技術者試験を受けた。
受けたのは高度だが復習のためにも、同じタイミングで行われていた令和5年秋期の応用情報技術者試験を解いてみる。

:::note
応用情報を持っている人が解いているだけなので、解答の保証はないのであしからず
:::

問題の冊子は以下のIPA公式サイトから確認できる。
+ [問題冊子・配点割合・解答例・採点講評（2023年度、令和5年度）](問題冊子・配点割合・解答例・採点講評（2023年度、令和5年度）)
+  [午後問](https://www.ipa.go.jp/shiken/mondai-kaiotu/ps6vr70000010d6y-att/2023r05a_ap_pm_qs.pdf)
# 問1
電子メールセキュリティ対策に関する問題。この問題は必須なのでみんな解いているはず。
いわゆる [PPAP](https://ja.wikipedia.org/wiki/PPAP_%E3%82%BB%E3%82%AD%E3%83%A5%E3%83%AA%E3%83%86%E3%82%A3)に関する問題で起こりうる問題～対策、関連技術の確認になっている。
詳細な問題に関しては各自上のリンクから確認してください。

### 設問1 現在のメール運用の問題点と対策
#### (1) 下線①によって発生するおそれのある、情報漏えいにつながる問題を40字以内。
下線①は以下
> 本文メールの宛先を確認せずに，本文メールと同じ宛先に対してPWメールを送信している従業員が多い。

ここで問題なのは
>**本文メールを同じ宛先** に **確認せず** **PWメールを送信** している従業員が多い 

という部分。つまり、本文メールで誤送信した場合、そのままPWメールも同じ誤送信先に送ってしまうことになる。
よって、パスワードをかける意味もなく中身が漏れてしまう。
以上をまとめて解答すると

__*誤送信によって、意図しない受信者にPWが漏れてしまい情報が漏洩する恐れがある。*__ (39文字)

#### (2) 下線②について，盗聴による情報漏えいリスクを低減させる運用上の改善策を，30字以内。
下線②は以下
> L主任は(2)の問題点の改善策を考えた
>> (2)ほとんどの従業員が，PWメールを本文メールと同じシステムを使用して送信している。したがって，本文メールが通信経路上で何らかの手段によって盗聴された場合，PWメールも盗聴されるおそれがある。

ここでは、改善策を上げる問題となっている。ただ1点注意することは
>運用上の改善策

であること。結構問題に集中していると、運用上でない改善策を上げてしまうことがある。(システム的な対策など)
その場合は1発で0点になるはずなので、気を付けてください。
今回の問題は、盗聴されるときに**同じ経路**であることが問題として大きい。
そのため、本文のメールとPWのメールを別の経路で送れば、本文メールだけが盗聴されても、一応安全は確保できているということになる。(まあもちろん絶対安全ではないが。)
以上をまとめて解答すると

__*本文メールとPWメールは別システムで送信するようにする。*__ (28文字)


### 設問2 [S/MIMEの調査] について答えよ
少し説明しておくと [S/MIME](https://ja.wikipedia.org/wiki/S/MIME)は電子メールの暗号化とデジタル署名の規格の一つ。詳しいことはリンク。
#### (1) 下線③が検知される手順はどれか。表1,2中の手順から答える。
下線③は以下
> メール内容の改ざん

メール内容の改ざんの検知を行える手順を考える。
以下の表が今回の対象となる。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211048/68fea65e-479c-3df9-b2c4-76a5280c061e.png)
この表だと 表1では電子署名による改ざんのチェック。表2では内容の暗号化による内容の秘匿化が主だとわかる。
今回の問題の検知対象は **改ざん** なので、表1から選ぶことになる。
また改ざんの検知を行えるのは、受信した側なので、必然的に 1.4 - 1.6 の間から選ぶ。
1.4は伏字がついているが、ハッシュ値の復号。1.5はメール内容からのハッシュ値の生成。1.6は比較となっている。
比較した結果が同じであれば、対処のメール内容は改ざんされていない。逆に異なっていれば、経路上のどこかで改ざんされた可能性があることがわかる。よって改ざん検知の手順は __*1.6*__ になる。

#### (2) 表1,2中の a ~ d を解答群から埋める。
解答群は以下。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211048/bf35e881-c175-a559-e192-5a912e4b0ff4.png)
    a : **送信側** が**暗号化**して電子署名に用いるものなので、 __*カ 送信者の秘密鍵*__
    b : **受信側** が**複合化**してハッシュを取り出すので __*オ 送信者の公開鍵*__
    c : **送信側** が**共通鍵を暗号化**して受信側に使ってもらいたいので __*ウ 受信者の公開鍵*__
    d : **受信側** が**共通鍵を復号化**してメールを復号したいので __*エ 受信者の秘密鍵*__

まとめると a,bとc,dでそれぞれ対になっている必要がある。
aでは送信側が自身の署名に用いるもの(他人からはまねできないこと)を示さないといけないので、送信側(自身)の秘密鍵。bは受信側が知っている情報から復号するので、先ほどに対応するような公開鍵になる。
cではさっきの逆の動きみたいなもので、送信側は秘密で共通鍵を受信者に渡したい。暗号化したものを開けられるのは特定の人だけなので、特定の人(今回だと受信者)が公開している公開鍵で暗号化する。dは送信側が該当の鍵で暗号化してくれているので、単純に自分の持っている秘密鍵で開ければよい。ということになる。

細かい説明はググったりしてもらえると図付きのものがあるので、それを見て勉強するとよいかも？

#### (3) 表2中の下線④について、メール内容の暗号化に公開鍵暗号でなく、共通鍵暗号を利用する理由を20文字以内。
上の画像にもあるが下線は以下
> 共通鍵でメール内容を暗号化する。

これはずばり知っているかの問題になるのですが、共通鍵と公開鍵のメリット/デメリットによります。
この二つの方式には諸々メリット/デメリットがあって

|  | 公開鍵 | 共通鍵 |
|:-:|:-:|:-:|
|鍵の数(n人に対して)|2n|n*(n-1)|
|鍵の管理コスト|低|高|
|計算量|多い|少ない|

みたいな感じになっています。多少は違いますがこんな感じです。(詳しくは[自分で調べて](https://www.google.co.jp/search?client=ubuntu&channel=fs&q=%E5%85%AC%E9%96%8B%E9%8D%B5+%E5%85%B1%E9%80%9A%E9%8D%B5+tigai&ie=utf-8&oe=utf-8&hl=ja)見てください)
ここで問題になるのは、なぜ今回共通鍵暗号を利用するのか、ですがここでは
__*共通鍵暗号のほうが高速に処理できるため*__ (19文字)
とかでよいでしょう。基本的には公開鍵のほうが安全で管理コストもかからないのですが、公開鍵は複雑な演算を使っているので、暗号化などが遅くなってしまう弱点があります。
今回のようにメールの内容を暗号化するとかになると少しコストが大きく感じる？ので**使い捨ての共通鍵**をメールの内容を**高速に暗号化**するために使用して、メールと一緒に送って受信側で高速に復号してもらう。みたいな考えになります。(そこまでは書いてない気はしますが)

### 設問3 下線⑤について、電子証明書の正当性の検証に必要となる鍵の種類を解答群から選べ
下線は以下です。
> 受信したメールに添付されている電子証明書の正当性について検証する。

解答群は以下です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/211048/c270c1a8-9361-0859-edbf-5927db9a691c.png)

まず解答を書くと __*ア CAの公開鍵*__ になります。
今回のキモとなるのは、**正当性の検証** に必要なものを選ぶことです。
じゃあまずCAとは何かというと Certification Authority の略で日本語訳すると [認証局](https://ja.wikipedia.org/wiki/%E8%AA%8D%E8%A8%BC%E5%B1%80)になります。
認証局の役割は、ほかの人に対して、デジタルの証明書を発行すること。です。
つまりは使われている証明書の正当性を担保してくれるようなものですね。
ここまで書けば、問題で問われていること = CAの公開鍵のこと。となんとなくわかるかと思います。

以上で、問一は終わり。

気が向いたら問二以降も解説してみます。