応用情報技術者試験

応用情報・セキュリティを解く(H26春)前編

こんにちは。今回は、平成 26 年度(2014 年度)春期の「応用情報技術者試験」の過去問(午後 問1 情報セキュリティ)を解いていきます。今さら、こんな古い過去問を解く人いねー。

私は、過去問を解きながら(アウトプットしながら)知識を入れていく(インプットしていく)スタイルをおススメします。
何でこのスタイルがおススメなのかは、別のエントリで書きます。

さて、平成 26 年度 春期は、「情報セキュリティ」が必須となった、最初の年です。
大方の予想通り、きわめて基本的な問題でした。ただ、問題が易しいときは、他の人もできます。午後の試験に関しては、たぶん点数の調整がかかるので、易しいからといって、特にラッキーではないと思います。
この難易度だと、感覚的に 8 割くらいできていないと、合格ラインにのってこないのではないかと思います。

では、さっそくいきましょう。

  • IPA の情報処理技術者試験 過去問題のページから、問題冊子をダウンロードしておいてください
  • 二重カッコ『 』は、問題文や解答からの引用を表します
  • このエントリでは、設問 1、設問 2、設問 3 (1)、設問 4 を解説します。残りは、次回にまわします

解説

設問 1

SSL を用いると、通信の「盗聴、改ざん、なりすまし」を防ぐことができます。このことを知っていれば、MAC の知識がなくても正解できます。

  • 盗聴 ~ 暗号化により「機密性」を確保する
  • 改ざん ~ MAC により「完全性」を確保する
  • なりすまし ~ ディジタル証明書により認証する

答えは、a. 盗聴、b. 改ざん となります。ここは、「機密性(漏洩していない)」、「完全性(改ざんされていない)」という用語とセットでおさえるところです。
セキュリティは、CIA を維持することだと言われています。CIA とは、機密性(Confidentiality)完全性(Integrity)可用性(Availability)のことです。この知識(枠組み)は、色々な場面で使えるので、必ずおさえておきましょう。

MAC(Message Authentication Code)とは、メッセージの認証を行う技術の 1 つです。まんまです。次のような仕組みになります。

  • 共通鍵とメッセージから、データ(タグと呼ばれる)を出力する
  • 共通鍵を持っている人は、タグを使って、メッセージの改ざんを検出できる

設問 2

とにかく、クライアント証明書がないと、営業支援サーバにアクセスできないようにしたいわけです。

  • 『クライアント証明書をインストールした IC カードや USB トークンを利用する』
    → IC カードや USB トークンを持っている人であれば、どの PC を使っても、アクセスできる
  • 『クライアント証明書を PC に直接インストールする』
    → PC を持っていれば、アクセスできる

ここでは、後者を採用した「目的」が問われています。
後者を採用したのは、きっと、あまりお金がかからないからですよね。

私は、人を認証するのか、PC を認証するのか、その比較が問われていると思ったので「サーバの利用者を限定するのではなく、利用 PC を限定するため(29 字)」としました。IPA の解答例は、『営業支援システムを利用できる PC を制限するため』となっています。こっちかー。

設問 3 (1)

「案 1 でも、案 2 でも必要となる」作業で、「営業支援サーバにアクセスするすべての PC に対する」作業ときたら、「クライアント証明書をインストールする(18 字)」作業しかありませんね。IPA の解答例も、『クライアント証明書のインストール』となっています。

設問 4

これは、知っていないと書けないと思います。
解答例は、『当該 PC のクライアント証明書を失効させる』となってます。

長くなってしまったので、解説の続きは、別のエントリに書きます。

整理

ここで、「ディジタル証明書」と「SSL」の知識を整理しておきましょう。

ディジタル証明書

ここで言う「ディジタル証明書(電子証明書、デジタル証明書)」とは、公開鍵と、その所有者の情報などを、結びつけたデータのことです。ま、この図の真ん中の絵だと思ってください。
つまり、「P 社の公開鍵」に、お役所である「認証局(CA)」が、「この公開鍵は、確かに P 社のものです」と、ハンコを押してくれた(ディジタル署名をしてくれた)データのことです。
少々雑ですが、慣れるまでは「公開鍵+認証局の署名」とイメージしておけばよいと思います。

※ この「ディジタル署名」は、認証局(CA)の秘密鍵で、所有者の情報などから算出した固有の値(ハッシュ値)を暗号化したイメージです

本問では、こうして作成したディジタル証明書を、P 社のサーバ(営業支援サーバや、リバースプロキシサーバ)に配備します。
つまり、P 社のサーバに、お役所お墨つきの公開鍵が置かれたということです。

ここで、ディジタル証明書のライフサイクルについて、簡単に見ておきます。
始まりは、図の左の絵ように、鍵ペア(秘密鍵と公開鍵)を作成し、ディジタル証明書を発行したところです。終わり方は、2 通りあるので、おさえておきましょう。

  • 失効(P 社の秘密鍵、あるいは CA の証明書が信頼できなくなった)
  • 有効期限切れ

では次に、P 社のサーバに配備された「ディジタル証明書」が、SSL でどのように用いられるのか、みていきましょう。

SSL

この図は、平成 18 年度 秋期 の「テクニカルエンジニア ネットワーク(現、ネットワークスペシャリスト)」からひっぱってきたものに、私が説明を加えたものです(点線のボックスの箇所)。

SSL は、このようなシーケンスで通信を行います(実際には、もっとたくさんのやりとりがあります。こんなに大胆に削ってしまって、大丈夫なのかと心配です)。右側の SSL-VPN という箇所が、本問でいうところの、P 社のサーバになります。

簡単に解説しておきます。絵を見て、なんとなくわかった方は、以下の解説は読まなくても OK です。

最終的には、共通鍵暗号を用いた通信を行います(公開鍵暗号は、処理が重たくなるので、大きなデータの暗号化通信には用いません)。ということは、「共通鍵」を共有しなければなりません。図の(ⅰ)~(ⅳ)は、そのためのやりとりになります。

まずは、PC 側で、サーバの公開鍵を GET します。サーバからディジタル証明書を送ってもらい、認証局の証明書を使って、サーバの公開鍵が本物(お墨つきを得ているもの)であることを確認します。どのように確認するかというと、認証局(CA)のディジタル証明書を使います。では、認証局(CA)のディジタル証明書は、どこで手に入れるかというと、PC にプリインストールされています(その他、安全な方法で配布してもよいです)。
この段階では、まだ安全な通信が確立されていないため、改ざんされていないか、しっかりチェックする必要があるのです。偽物をつかまされたら、その後の通信が安全ではなくなってしまうからです。

そう。本物の公開鍵を GET するために、ディジタル証明書を、P 社のサーバに配備したというわけです。

次に、PC 側で、共通鍵の基となるデータを作成します。これを、先ほど GET したサーバの公開鍵を使って、暗号化し、PC からサーバに送ります。
サーバでは、自分の秘密鍵を使って、そのデータを復号し、共通鍵の基となるデータを GET します。

これで、共通鍵の基となるデータが共有できました。これを基に、PC 側、サーバ側で、共通鍵を生成します。めでたく、共通鍵を共有することができました。
通信のたびに、共通鍵を異なったものにするため、このような手順になっています。

SSL と呼ばれていますが、実際には TLS というプロトコルのことです。かつて、SSL というプロトコルが広く使われていたため、今でも SSL と呼ぶことがあります。
しかし、今(2020 年 2 月 22 日時点)では、SSL は脆弱であり、使ってはいけません。その後継が TLS というプロトコルです。
その TLS についても、バージョン 1.0 と 1.1 は、今後廃止の方向なので、使わない方がよいです。TLS 1.2 または 1.3 を使いましょう。

復習

それでは、本エントリで学んだことを、簡単におさらいしておきましょう。

おさらい
  • SSL を用いると、通信の「盗聴、改ざん、なりすまし」を防げる
  • セキュリティの CIA とは、機密性(Confidentiality)、完全性(Integrity)、可用性(Availability)のこと
  • MAC は、メッセージの認証を行う技術
  • ディジタル証明書とは、「公開鍵」に、お役所である「認証局(CA)」が、「この公開鍵は、あなたのものです」と、ハンコを押してくれた(ディジタル署名をしてくれた)データのこと
  • ディジタル証明書のライフサイクルは、「失効」または「期限切れ」で終わる
  • SSL では、公開鍵暗号方式によって共有したデータから、共通鍵を生成し、暗号化通信を行う。公開鍵暗号で使う公開鍵は、サーバから送付される。認証局の証明書を用い、それが本物であることを検証する

このエントリはここまでです。次回に続きます。

COMMENT

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です