基本情報技術者 2013年 秋期 午後 問04
VPN(Virtual Private Network)に関する記述を読んで、設問1〜3に答えよ。
A社は、関東のN事業所で利用している営業支援システムを、関西のM事業所でも利用することにした。営業支援システムのサーバはN事業所のコンピュータセンタに設置されている。M事業所でN事業所の営業支援システムを利用するために、システム部が中心となってIPsecを利用したVPNの導入を検討し、報告書を作成した。
〔報告書の内容(抜粋)〕
(1) ネットワーク構成
M事業所からN事業所の営業支援システムに接続するためのネットワーク構成を図1に示す。VPNの実現には、VPNルータを利用する。

(2) IPsecの説明
IPsecは、暗号技術を用いてインターネットでデータを安全に送受信するための規格である。IPsecには、暗号化に利用する鍵を安全に交換する仕組みや、相手のVPNルータを認証する仕組みがある。
(3) IPsecの要素技術の説明
① 暗号化に利用する鍵を安全に交換する仕組み
IPsecでは、VPNルータ間で暗号化に利用する鍵を、安全に交換する仕組みの一つとして、Diffie-Hellman鍵交換法(以下、DH法という)を利用している。DH法の例を図2に示す。DH法で作成された鍵(以下、DH鍵という)を暗号化に利用する。
↩設問1
↩設問1 ② 相手のVPNルータを認証する仕組み
IPsecでは、データ受信側のVPNルータがデータ送信側のVPNルータを認証する仕組みの一つとして、RSAアルゴリズムを用いたディジタル署名を利用している。その仕組みを図3に示す。
(4) IPsecを利用したVPNの導入効果
IPsecは、d層でセキュリティを実現するプロトコルであるので、アプリケーションを変更せずに通信のセキュリティを担保できる。そして、パケットを暗号化することによってeを行い、RSAアルゴリズムを用いたディジタル署名を利用することによってf及び改ざんの検知を行っている。
設問1:
問題文を見る 図2でZ = 11, X = 7, Y = 5の場合、DH鍵として正しい値を、解答群の中から選べ。
解答群
ア:2
イ:5
ウ:7
エ:10
オ:13
模範解答
エ
解説
解答の導き方
図2では、M事業所VPNルータとN事業所VPNルータが、それぞれ別の値を作って交換し、最後に同じDH鍵を計算します。DH法(Diffie-Hellman鍵交換法)は、鍵そのものを相手に送らず、双方で同じ鍵を作る方法です。
まず、M事業所VPNルータが作る鍵Aを計算します。図2の式は「をで割った余り」です。ここで、なので、
です。をで割ると、余りはです。したがって、鍵Aはです。
次に、N事業所VPNルータが作る鍵Bを計算します。なので、
です。したがって、鍵Bはです。
M事業所VPNルータは、受け取った鍵Bを自分の乱数乗して、で割った余りをDH鍵にします。
ここでは、はで割った余りがとも考えられます。よって、
となります。したがって、DH鍵はです。解答群では、値がのエを選びます。
N事業所VPNルータ側でも確認できます。受け取った鍵Aを自分の乱数乗すると、
となり、同じDH鍵になります。鍵Aと鍵Bは交換しますが、最終的なDH鍵は両方のルータで同じ値になります。
誤りやすいポイント
- 鍵Aや鍵Bを、そのままDH鍵だと考えないようにします。鍵Aと鍵Bは交換する値で、DH鍵は受け取った値を自分の乱数乗してから求めます。
- 「」は、で割った余りを求めることです。累乗した結果をそのまま答えにせず、最後に余りを確認します。
- M事業所VPNルータの計算では、鍵Bを使います。鍵Aを使ってしまうと、図2の手順と異なります。
FAQ
Q: M事業所VPNルータとN事業所VPNルータで、なぜ同じDH鍵になるのですか?
A: M事業所VPNルータは鍵Bを乗し、N事業所VPNルータは鍵Aを乗します。鍵Aと鍵Bの作り方から、どちらもをで割った余りになるため、同じ値になります。
A: M事業所VPNルータは鍵Bを乗し、N事業所VPNルータは鍵Aを乗します。鍵Aと鍵Bの作り方から、どちらもをで割った余りになるため、同じ値になります。
Q: 鍵Aと鍵Bを交換するのは、DH鍵を送るのと同じですか?
A: 違います。鍵Aと鍵Bは、DH鍵そのものではありません。それぞれが自分の乱数を使って計算するための値です。
A: 違います。鍵Aと鍵Bは、DH鍵そのものではありません。それぞれが自分の乱数を使って計算するための値です。
関連キーワード: Diffie-Hellman鍵交換法、鍵交換、剰余、共通鍵
設問2:
問題文を見る 図3中のに入れる適切な答えを、解答群の中から選べ。
a〜cに関する解答群
ア:共通鍵
イ:受信側の公開鍵
ウ:受信側の秘密鍵
エ:送信側の公開鍵
オ:送信側の秘密鍵
模範解答
a:オ、b:ア、c:エ
解説
解答の導き方
この設問では、図3の「データを暗号化する鍵」と「ディジタル署名を作る・確かめる鍵」を分けて考えます。
VPN(Virtual Private Network:インターネットなどを使って仮想的な専用ネットワークを作る仕組み)で使うIPsec(Internet Protocol Security:IP通信を保護する規格)では、図3のように、暗号化とディジタル署名を組み合わせています。ディジタル署名は、データを送った相手を確かめたり、データが途中で変更されていないかを調べたりするための仕組みです。
-
データを暗号化する鍵を考えます。
図3では、送信側で「共通鍵で暗号化」し、受信側で[b]を使って復号した後にデータを取り出しています。共通鍵暗号は、暗号化と復号に同じ鍵を使う方式です。したがって、[b]に入るのは暗号化に使った共通鍵で、選択肢はアです。 -
送信側で署名を作る鍵を考えます。
送信側はデータからハッシュ値を計算し、その値を使って署名を作ります。ハッシュ値は、データの特徴を表す値です。データが変更されると、通常はハッシュ値も変わります。
RSA(Rivest–Shamir–Adleman:公開鍵と秘密鍵の組を使う方式)によるディジタル署名では、署名の作成に送信側の秘密鍵を使います。送信側の秘密鍵は、送信側だけが持つ鍵だからです。よって、[a]はオです。 -
受信側で署名を確かめる鍵を考えます。
受信側は、受け取ったデータから計算したハッシュ値と、署名から取り出したハッシュ値を比べます。図3では、[c]で署名を処理してハッシュ値を取り出し、データから計算したハッシュ値と一致するかを確認しています。
署名を作った送信側の秘密鍵に対応する、送信側の公開鍵を使って署名を検証します。したがって、[c]はエです。受信側の公開鍵では、送信側が作った署名を検証できません。
誤りやすいポイント
-
データの暗号化に使う鍵と、署名に使う鍵を混同しないようにします。
図3では、データ自体の暗号化・復号には共通鍵を使います。一方、署名の作成・検証には送信側の秘密鍵と公開鍵を使います。 -
署名を作るのは送信側の秘密鍵です。
受信側の公開鍵を使うのは、受信側だけが復号できるようにデータを暗号化する場面などです。この設問の署名作成には使いません。 -
署名の検証には、署名を作った側の公開鍵を使います。
秘密鍵で作られた署名を、対応する公開鍵で確かめることで、送信側が作った署名かどうかを確認します。 -
共通鍵は署名用の鍵ではありません。
図3では、共通鍵はデータの暗号化と復号に使われます。署名の作成や検証に使う鍵とは役割が異なります。
FAQ
Q: ディジタル署名だけで、データの内容を他人に読まれないようにできますか?
A: いいえ。図3では、データの内容を読まれにくくするために共通鍵で暗号化しています。ディジタル署名は、送信側の確認や改ざんの検知に使います。
A: いいえ。図3では、データの内容を読まれにくくするために共通鍵で暗号化しています。ディジタル署名は、送信側の確認や改ざんの検知に使います。
Q: 受信側は、なぜ送信側の公開鍵を使うのですか?
A: 送信側の秘密鍵で作られた署名を、対応する送信側の公開鍵で検証するためです。受信側の公開鍵は、送信側が受信側に秘密のデータを送る場合などに使う鍵で、送信側の署名を検証する鍵ではありません。
A: 送信側の秘密鍵で作られた署名を、対応する送信側の公開鍵で検証するためです。受信側の公開鍵は、送信側が受信側に秘密のデータを送る場合などに使う鍵で、送信側の署名を検証する鍵ではありません。
Q: 2つのハッシュ値が一致したら、何が分かりますか?
A: 署名から取り出したハッシュ値と、受信したデータから計算したハッシュ値が一致すれば、データが途中で変更されていないことを確認できます。また、送信側の公開鍵で署名を検証できるため、送信側が作成した署名であることも確認できます。
A: 署名から取り出したハッシュ値と、受信したデータから計算したハッシュ値が一致すれば、データが途中で変更されていないことを確認できます。また、送信側の公開鍵で署名を検証できるため、送信側が作成した署名であることも確認できます。
関連キーワード: ディジタル署名、共通鍵暗号、公開鍵暗号、ハッシュ値、改ざん検知
設問3:
問題文を見る(4)のIPsecを利用したVPNの導入効果に関する記述中のに入れる正しい答えを、解答群の中から選べ。
dに関する解答群
ア:アプリケーション
イ:データリンク
ウ:トランスポート
エ:ネットワーク
e, fに関する解答群
ア:DoS攻撃の対策
イ:ウイルス感染の検知
ウ:セキュリティホールの修正
エ:送受信するデータの圧縮
オ:盗聴の対策
カ:なりすましの検知
模範解答
d:エ、e:オ、f:カ
解説
解答の導き方
この設問では、IPsec(Internet Protocol Security:IP通信を保護する仕組み)を使ったVPN(Virtual Private Network:インターネット上に仮想的な専用通信路を作る仕組み)について、どの層で働くか、暗号化やディジタル署名が何を守るかを考えます。
まず、dはIPsecが働く層です。本文には「アプリケーションを変更せずに通信のセキュリティを担保できる」とあります。アプリケーションごとにセキュリティ機能を追加するのではなく、アプリケーションより下の層で通信を保護する、ということです。
IPsecは、IPパケットを扱うネットワーク層で働きます。ネットワーク層は、データを宛先まで届けるための通信を扱う層です。そのため、特定のアプリケーションに手を加えなくても、通信全体を保護できます。よってdは「ネットワーク」です。
次に、eはパケットを暗号化する効果です。暗号化すると、通信を途中で見られても、内容をそのまま読み取ることが難しくなります。これは通信内容を盗み見られることへの対策なので、eは「盗聴の対策」です。暗号化は、ウイルス感染やセキュリティホールを見つける機能ではありません。
最後に、fはRSAアルゴリズムを用いたディジタル署名の効果です。ディジタル署名は、送信者が作った署名と、受信側で計算したハッシュ値(データから計算する、内容の照合に使う値)を確認する仕組みです。図3では、受信側が署名を確認し、データから計算したハッシュ値と照らし合わせています。
署名が正しく確認できれば、送信元を確かめる助けになります。また、データが途中で変更されていれば、二つのハッシュ値が一致しなくなります。したがって、ディジタル署名は「なりすましの検知」と「改ざんの検知」に使われます。fには「なりすましの検知」が入ります。
誤りやすいポイント
- 「アプリケーションを変更せずに」という記述から、アプリケーション層ではなく、その下で通信を保護することが分かります。IPsecが働く層はネットワーク層です。
- 暗号化の主な役割は、通信内容を第三者に読まれにくくすることです。つまり、盗聴への対策です。
- ディジタル署名は、暗号化と同じものではありません。署名は主に送信元の確認や改ざんの検知に使われ、データの内容を隠す目的ではありません。
- 署名とハッシュ値が一致するかを調べることで、データの改ざんを検知できます。暗号化だけでは、送信元が正しいかどうかを確認できません。
FAQ
Q: DH法は、何のために使われますか?
A: VPNルータどうしが、暗号化に使う鍵を安全に共有するための方法です。本文では、DH法で作成したDH鍵を暗号化に利用すると説明されています。
A: VPNルータどうしが、暗号化に使う鍵を安全に共有するための方法です。本文では、DH法で作成したDH鍵を暗号化に利用すると説明されています。
Q: 暗号化とディジタル署名の違いは何ですか?
A: 暗号化は、通信内容を第三者に読まれにくくするためのものです。ディジタル署名は、送信元の確認や、データが変更されていないかの確認に使います。
A: 暗号化は、通信内容を第三者に読まれにくくするためのものです。ディジタル署名は、送信元の確認や、データが変更されていないかの確認に使います。
Q: ハッシュ値が一致しない場合、何が分かりますか?
A: 受信したデータが送信時の内容と異なる可能性が分かります。通信中に改ざんされた場合などは、送信側と受信側で計算したハッシュ値が一致しません。
A: 受信したデータが送信時の内容と異なる可能性が分かります。通信中に改ざんされた場合などは、送信側と受信側で計算したハッシュ値が一致しません。
関連キーワード: IPsec、ネットワーク層、VPN、暗号化、ディジタル署名、ハッシュ値




