基本情報技術者(FE)対策
科目Aセキュリティ
科目Aのセキュリティは向きを問う
科目Bのセキュリティは長文の事例でしたが、科目Aのセキュリティは 4 択の知識問題です。中でも公開鍵暗号は毎回のように出て、しかも「どちらの鍵をどちらの向きで使うか」だけを問われます。ここを図で持っておけば、暗号も署名も証明書も同じ道具で解けます。
共通鍵は鍵の数で詰まる
共通鍵暗号は、暗号化と復号に同じ鍵を使う方式です。処理が速いという長所がありますが、通信相手ごとに別の鍵が必要になります。
n 人が互いに通信するために必要な鍵の数は、2 人の組合せの数なので次の式です。
鍵の数 = n x (n - 1) / 210 人なら 10 × 9 / 2 で 45 個です。100 人になると 100 × 99 / 2 で 4950 個まで膨らみます。人数が増えると鍵の管理が破綻する、というのがこの式の言いたいことです。
公開鍵暗号なら、各自が公開鍵と秘密鍵を 1 組持つだけなので、10 人でも鍵は 20 個です。この対比がそのまま出題されます。
公開鍵暗号の向きは 2 通りだけ
公開鍵暗号では、対になった 2 つの鍵のうち、片方で暗号化したものはもう片方でしか戻せません。使い道は 2 通りあります。
| 目的 | 使う鍵 | 戻すのに使う鍵 |
|---|---|---|
| 内容を秘密にする | 受信者の公開鍵 | 受信者の秘密鍵 |
| 送信者を証明する | 送信者の秘密鍵 | 送信者の公開鍵 |
秘密にしたいときは受信者の公開鍵を使います。公開鍵は誰でも手に入るので誰でも暗号化できますが、戻せるのは秘密鍵を持つ受信者だけです。
送信者を証明したいときは逆です。送信者の秘密鍵で処理したものは、送信者の公開鍵で戻せます。戻せたということは、その秘密鍵を持つ本人が作ったものだと分かります。これがディジタル署名の原理です。
署名では、文書そのものではなくハッシュ値に対して処理をします。ハッシュ値は文書から作る短い要約値で、元の文書が 1 文字でも変われば別の値になります。受信側は届いた文書からハッシュ値を計算し直し、署名から取り出した値と一致するかを見ます。一致すれば、本人が作ったことと、途中で改ざんされていないことの両方が確かめられます。秘密にすること自体は署名の目的ではない、という点が引っかけになります。
公開鍵が本物かを保証するのが証明書
公開鍵は誰でも配れるので、攻撃者が自分の公開鍵を他人の名前で配ることもできます。そこで、認証局と呼ばれる第三者が「この公開鍵は確かにこの人のものだ」と署名した書類を発行します。これがディジタル証明書で、この仕組み全体を公開鍵基盤と呼びます。
実際の通信では、速い共通鍵暗号と安全に鍵を配れる公開鍵暗号を組み合わせます。まず公開鍵暗号で共通鍵を相手へ安全に渡し、そのあとの本文のやり取りは共通鍵暗号で行う形です。
認証は 3 つの要素で分類する
本人確認の手立ては、知識、所持、生体の 3 つに分かれます。パスワードは知識、IC カードやスマートフォンは所持、指紋や虹彩は生体です。異なる要素を 2 つ以上組み合わせたものが多要素認証で、パスワードを 2 つ重ねても要素は 1 つのままなので多要素にはなりません。
使い捨てのワンタイムパスワードや、毎回異なる値を送って計算結果を返させるチャレンジレスポンス方式は、通信路を盗み見られても再利用できないようにする工夫です。盗聴した内容をそのまま送り付けるリプレイ攻撃への対策として問われます。