情報セキュリティ (2025 年度後期)

1. URL

2. 担当者

中村 遼
E-mail: r-nakamura[atmark]fukuoka-u.ac.jp
居室: 14 号館 3 階 313
オフィスアワー: 月曜日 1 限

3. スケジュール (予定)

          1. スタートアップ授業 / 情報セキュリティの概要・暗号技術の基本
25/ 9/18  休講
25/ 9/25  2. 共通鍵暗号
25/10/ 2  3. 公開鍵暗号
25/10/ 9  4. 暗号技術の応用: ハイブリッド方式とデジタル署名
25/10/16  5. 暗号技術の応用: PKI (Public Key Infrastructure)
25/10/23  6. インターネットセキュリティ: SSL/TLS
25/10/30  7. インターネットセキュリティ: IPsec
25/11/ 6  休講
25/11/ 8  3 限 8. 前半の総復習
25/11/13  9. サイバー攻撃の概要
25/11/20  10. サイバー攻撃の詳細 
25/11/27  11. サイバー攻撃への対策
25/12/ 4  12. なりすましメールへの対策: SPF および DKIM
25/12/11  休講
25/12/18 13. バッファオーバーフロー攻撃とその対策
26/ 1/ 8 2 限 (予定) 14. DoS 攻撃と DDoS 攻撃
26/ 1/ 8 3 限 (予定) 15. 後半の総復習 / 授業アンケート FURIKA の実施

注: 補講日の割当によって、スケジュールは前後します。確定のタイミングはシステムからの通知の時点です。

4. 到達目標

  • [O1] 共通鍵暗号および公開鍵暗号の原理を理解し、説明できるようになる
  • [O2] 公開鍵暗号に基づくデジタル署名、および、公開鍵の正当性を保証す るための PKI (Public Key Infrastructure) を理解できるようになる
  • [O3] インターネットにおける情報セキュリティを実現する SSL/TLS および IPsec の基本的な仕組みを理解できるようになる
  • [O4] DDoS 攻撃に代表されるサイバー攻撃およびその対策を理解できるよう になる
  • [O5] バッファオーバーフロー攻撃の原理およびその対策を理解し、説明で きるようになる

5. 成績評価

平常点を 20%、定期試験の得点を 80% で重み付けした得点と、 定期試験の得点を 100% とした得点とのうち、 大きいものを最終的な成績とします。

6. 参考書

  1. 石井 夏生利・稲葉 宏幸・上原 哲太郎・越前 功・岡崎 美蘭・岡田 仁志・岡本 栄司・小松 尚久・白勢 政明・瀬戸 洋一・高倉 弘喜・土井 洋・村上 康二郎, "情報セキュリティの基礎", ISBN 9784320123021
  2. 八木毅・秋山満昭・村山純一, "コンピュータネットワークセキュリティ", ISBN 4339024953

7. 確認テスト

  • 問題は、確認テストを実施する直前に公開されます。
  • 持込はなしです。 ただし、確認テストの問題を閲覧するために、 PC・タブレット・スマートフォンを用いるのは構いません。 確認テストを解いている間はこれらの機器を他の用途には用いないでください。
  • 答案用紙には手持ちのノート・ルーズリーフなどを用いてください。 所持していなければ、紙を配布します。
  • 確認テストを終えた後には採点してください。 できれば、周りの人と答案を交換し相互に採点してください。
  • 採点された答案を撮影し、 以下のフォームから提出してください。 提出の期限は、 確認テストを実施した当日の 11:59pm (JST) です。
Microsoft Forms (学内関係者限定)
https://forms.office.com/r/ip3yT3cbje
  • (余程のことがない限り、) 確認テストの解答例を公開すること、 若しくは確認テストを解説することはありません。

8. 連絡

  • 期末試験の持込許可品目はありません。

9. 第 1 回: スタートアップ授業 / 情報セキュリティの概要・暗号技術の基本

10. 第 2 回: 共通鍵暗号

10.2. 確認演習

演習 1 および演習 2 は DES に関する問いである。

演習 1

以下に示す 64 ビットのビット列を初期転置することで得られるビット列の、 4 ビット目・24 ビット目・48 ビット目の値を、 2 進数でそれぞれ答えなさい。 転置規則は講義資料中に記載されている。

11000100
01101011
11001011
01111000
01100111
11011110
10101100
10010110

上記では、見やすさのために、8 ビットごとに改行を挿入している。

演習 2

6 ビットのビット列 110111 に S1 関数を適用することで得られるビット列を、 2 進数で答えなさい。 S1 関数で用いる表 S1 は講義資料中に記載されている。

演習 3

トリプル DES によって平文を暗号化する手順を説明しなさい。

10.3. 略解

演習 1

  • 4 ビット目: 1
  • 24 ビット目: 1
  • 48 ビット目: 0

演習 2

1110

演習 3

(講義資料を参照すればよいので) 省略

11. 第 3 回: 公開鍵暗号

11.2. 確認演習

以下は RSA 暗号に関する問いである。 また、以下で用いる数学記号の定義は講義資料内の記載に準ずるものとする。

演習 1

(p, q) = (3, 7) とし、n = 21 とした時の、鍵対 e および d を求めなさい。 ただし、e != 1 および d != 1 であり、e != d である。

演習 2

演習 1 で得られた鍵対を用いて、 何らかのメッセージ M を暗号化し、暗号文を元のメッセージ M に復号できる、 という一連の流れを示しなさい。

11.3. 略解

演習 1

(e, d) = (17, 5)

演習 2

M = 3 とすると、鍵 e = 17 で暗号化すると、3^17 % 21 = 12 から、暗号文 C = 12 が得られる。この暗号文 C = 12 を鍵 d = 5 で復号すると、12^5 % 21 = 3 から、メッセージ 3 が得られる。このメッセージは元のメッセージで ある M = 3 と一致していることから、題意は示された。

12. 第 4 回: 暗号技術の応用: ハイブリッド方式とデジタル署名

12.2. 確認演習

演習 1

以下の文章が説明しているのは、 Alice から Bob へ暗号文を配送する一連の流れである。 ここでは、暗号化・復号には、 公開鍵暗号と共通鍵暗号とを併用した方式を用いている。

  1. Alice は、メッセージを、[ ア ] 暗号で、暗号化する
  2. Alice は、1. の暗号化で用いた鍵 (共通鍵) を [ イ ] 暗号で暗号化する。鍵には、[ ウ ] の [ エ ] を用いる。
  3. Alice は、1. と 2. で暗号化したもの一式を Bob に送る
  4. Bob は、[ オ ] を [ カ ] 暗号で復号する。鍵には、[ キ ] の [ ク ] を用いる。
  5. Bob は、4. で復号した鍵を用いた [ ケ ] 暗号で、暗号文を元のメッセージに復号する

この文章における空欄に当てはまる適切な語句を、 語群から選択し記入しなさい。

語群: 共通鍵、公開鍵、秘密鍵、Alice、Bob

演習 2

送信者から受信者に何かしらのメッセージを送るときに、 そのメッセージが配送の過程で改ざんされていない、 ということを、検証する手順を説明しなさい。 ただし、説明には「ダイジェスト」および「ハッシュ関数」という語句を用いること。

演習 3

Alice から Bob に何かしらのメッセージを (電子的に) 送ったときに、 メッセージを受け取った Bob が、 メッセージの送り主が真に Alice であるかどうかを、 検証する手順を、説明しなさい。

12.3. 略解

演習 1

  1. Alice は、メッセージを、[ 共通鍵 ] 暗号で、暗号化する
  2. Alice は、1. の暗号化で用いた鍵 (共通鍵) を [ 公開鍵 ] 暗号で暗号化する。鍵には、[ Bob ] の [ 公開鍵 ] を用いる。
  3. Alice は、1. と 2. で暗号化したもの一式を Bob に送る
  4. Bob は、[ 共通鍵 ] を [ 公開鍵 ] 暗号で復号する。鍵には、[ Bob ] の [ 秘密鍵 ] を用いる。
  5. Bob は、4. で復号した鍵を用いた [ 共通鍵 ] 暗号で、暗号文を元のメッセージに復号する

演習 2

(講義資料を参照すればよいので) 省略

演習 3

(講義資料の『デジタル署名』を参照すればよいので) 省略

13. 第 5 回: 暗号技術の応用: PKI (Public Key Infrastructure)

13.2. 確認演習

演習 1

以下の一連の文章は、 PKI にもとづく、Bob が Alice の公開鍵の真正性を検証 する仕組みを、説明している。この文章の空欄に当てはまる適切な語句を記入しなさい。 ただし、[ イ ] および [ エ ] には、Alice・Bob・電子認証局のいずれかの語句が 当てはまる。

  • Alice は、[ ア ] の発行を、電子認証局に申請する。
  • 電子認証局は、[ イ ] の [ ウ ] による署名を付与した [ ア ] を発行する。
  • Bob は、Alice の公開鍵の真正性を、[ ア ] の署名を [ エ ] の [ オ ] で検証することで、確認する。

演習 2

上位認証局・下位認証局から成る階層型の認証局モデルを考える。 下位認証局は上位認証局に申請し、上位認証局から公開鍵証明書を発行されて いるものとする。このとき、以下の問いに答えなさい。

  1. 下位認証局が発行する公開鍵証明書に署名しているのは誰か?
  2. 上位認証局が発行する公開鍵証明書に署名しているのは誰か?
  3. 上位認証局自身の公開鍵証明書に署名しているのは誰か?

13.3. 略解

演習 1

  • Alice は、[ 公開鍵証明書 ] の発行を、電子認証局に申請する。
  • 電子認証局は、[ 電子認証局 ] の [ 秘密鍵 ] による署名を付与した [ 公開鍵証明書 ] を発行する。
  • Bob は、Alice の公開鍵の真正性を、[ 公開鍵証明書 ] の署名を [ 電子認 証局 ] の [ 秘密鍵 公開鍵 ] で検証することで、確認する。

演習 2

  1. 下位認証局
  2. 上位認証局
  3. 上位認証局

14. 第 6 回: SSL/TLS

14.2. 確認演習

演習 1

(あなたが) 日常的に訪問する Web サイトとの通信に用いられているプロトコルが、 HTTP と HTTPS のどちらであるか、 を確認しなさい。

演習 2

以下の文章は SSL/TLS を説明している。 この文章における空欄に当てはまる適切な語句を記述しなさい。

  • SSL/TLS は、上位層である [ ア ] 層から渡されるデータを暗号化し、 下 位層である [ イ ] 層に渡す。
  • SSL/TLS が有効である HTTP を [ ウ ] と呼ぶ。
  • SSL/TLS におけるデータの単位は [ エ ] であり、その構造は、ヘッダ部と データ部と [ オ ] である。[ オ ] は、レコード内のデータが改ざんされ ていないことを検証するために用いる。

演習 3

以下の A. 〜 E. は、SSL/TLS ハンドシェイクの手続きを 順序性を失わせた上で記述している。 ハンドシェイクが成立するように、 A. 〜 E. を適切な順序に並び換えなさい。

  • A. クライアントとサーバ間で、鍵の生成源となる pre_master_secret を共有する
  • B. クライアントは公開鍵の真正さを検証する
  • C. クライアントは、利用可能なアルゴリズム一式と乱数をサーバに送る
  • D. サーバは、公開鍵を含めた公開鍵証明書をクライアントに送る
  • E. サーバは、使用するアルゴリズムと乱数をクライアントに送る

14.3. 略解

演習 1

Web ブラウザで Web サイトに訪問し、 URL に、 「http」という文字列が含まれていればプロトコルは HTTP であり、 「https」という文字列が含まれていれば HTTPS である。

演習 2

  • SSL/TLS は、上位層である [ アプリケーション ] 層から渡されるデータを暗号化し、 下 位層である [ トランスポート ] 層に渡す。
  • SSL/TLS が有効である HTTP を [ HTTPS ] と呼ぶ。
  • SSL/TLS におけるデータの単位は [ レコード ] であり、その構造は、ヘッ ダ部とデータ部と [ MAC ] である。[ MAC ] は、レコード内のデータが改 ざんされていないことを検証するために用いる。

演習 3

C → E → D → B → A

15. 第 7 回: インターネットセキュリティ: IPsec

15.2. 確認演習

演習 1

(IPsec を用いず) 単に IP プロトコルに基づいてパケットを配送することで生じる問題を、 情報セキュリティの観点で、 述べなさい。

演習 2

IPsec を構成するプロトコルである AH・ESP・IKE それぞれの役割を 一文で説明しなさい。

演習 3

Diffie-Hellman (DH) 鍵共有法に従って、 鍵 K を二者間 (Alice と Bob の間) で共有できることを示しなさい。 ただし、 DH 鍵共有法における変数の値は次の通りとする; p = 7, g = 3, a = 4, b = 5。

15.3. 略解

演習 1

(講義資料を参照すればよいので、) 省略

演習 2

  • AH: パケットの完全性を検証する役割を担う
  • ESP: 暗号化によるパケットの機密性と、MAC によるパケットの完全性とを担う
  • IKE: インターネット上での通信機器間の鍵交換を担う

演習 3

  1. Alice は ya = 3^4 mod 7 = 4 を求め、4 を Bob に送る
  2. Bob は yb = 3^5 mod 7 = 5 を求め、5 を Alice に送る
  3. Alice は、鍵 K として、5^4 mod 7 = 2 を得る
  4. Bob は、鍵 K として、4^5 mod 7 = 2 を得る

16. 第 8 回: 前半の総復習

16.2. 確認テスト

ありません。

17. 第 9 回: サイバー攻撃の概要

17.2. 確認演習

演習 1

ウイルスとワームとの違いを説明しなさい。

演習 2

ランサムウェア攻撃の特徴を簡単に説明しなさい。

演習 3

次に示すア〜エの文は、 フィッシング攻撃・ドライブバイダウンロード攻撃・XSS (クロスサイトスクリプティング) 攻撃・ゼロディ攻撃のいずれかを、 簡単に説明している。 各文に対して、適切な攻撃の名称を、答えなさい。

  • ア. まだ公になっていない脆弱性を狙った攻撃
  • イ. Web サイトを訪問した時に、ユーザの同意を得ることなく、マルウェアをダウンロードさせる攻撃
  • ウ. 真正な Web サイトに似せた Web サイトに誘導し、 ID やパスワードなどの個人情報を入力させることで、 これらの情報を詐取する攻撃
  • エ. クライアントの Web ブラウザ上で悪性スクリプトを実行させることで、 クッキーなどの情報を奪い取る攻撃

17.3. 略解

演習 1

ウイルスはファイルのような寄生先を必要とし、 その感染が、ファイルの実行と同時に、他のファイルに広がる。 これに対して、ワームは、寄生先を必要することなく、 自ら感染を広めることができる。

演習 2

情報へのアクセスを制限するマルウェアを感染させ、 その制限を解除するための身代金として金銭を要求する攻撃。

演習 3

  • ア. ゼロディ攻撃
  • イ. ドライブバイダウンロード攻撃
  • ウ. フィッシング攻撃
  • エ. XSS 攻撃

18. 第 10 回: サイバー攻撃の詳細

18.1. 資料

新たに配布する資料はありません。

18.2. 確認演習

演習 1

DoS 攻撃は、個人情報などの機密情報を詐取するサイバー攻撃とは、 どのように異なるかを、 説明しなさい。

演習 2

DoS 攻撃の一種である TCP SYN フラッディングを説明した以下の 文章における空欄に適切な語句を記入しなさい。

  • TCP SYN フラッディングを、TCP における [ ア ] を逆手にとった攻撃である。
  • 攻撃者であるクライアントは、[ ア ] を確立するための、[ イ ] を標的となるサーバに送る
  • サーバはクライアントに [ ウ ] が有効となったパケットを返送する
  • 正常な挙動とは異なり、攻撃者は [ エ ] 有効となったパケットを意図的に返送しない。これによって、サーバは、クライアントからの応答を待たざるをえない。

略解 1

DoS 攻撃は、サーバやネットワークの資源を枯渇させることで、 サービスの正常な提供を阻害することを目的としている。

18.3. 略解

略解 2

  • TCP SYN フラッディングを、TCP における [ 3 方向ハンドシェイク ] を逆手にとった攻撃である。
  • 攻撃者であるクライアントは、[ 3 方向ハンドシェイク ] を確立するための、[ SYN ] を標的となるサーバに送る
  • サーバはクライアントに [ SYN-ACK ] を返送する
  • 正常な挙動とは異なり、攻撃者は [ ACK ] を意図的に返送しない。これによって、サーバは、クライアントからの応答を待たざるをえない。

19. 第 11 回: サイバー攻撃への対策

19.2. 確認演習

演習 1

スキャンのような、 ホストの情報を収集するための通信を、 遮断する方法を説明しなさい。「5 タプル」という語句を用いること。

演習 2

SYN スキャンの利点を、TCP スキャンと比較しながら、説明しなさい。

演習 3

以下の文章は、ポートスキャンを検出するためのアノマリ検知とシグネチャ検 知を説明している。この文章における空欄に適切な語句を記入せよ。

  • アノマリ検知は、教師 [ ア ] 学習を用いて異常を検出する。具体的には、 通信の特徴量を抽出した [ イ ] を構築し、[ イ ] を [ ウ ] によって、 正常な通信と異常な通信とに分類することで、異常を検出する。
  • シグネチャ検知は、教師 [ エ ] 学習を用いて異常を検出する。シグネチャ 検知は、事前に、攻撃者の通信を観測し、正常と異常を分類する分類器を構 築する。ここでは、攻撃者による本物の通信を観測するために、[ オ ] を 用いる。そして、学習によって訓練された分類器を用いて、異常を検出する。

19.3. 略解

演習 1

スキャンによって生じるパケットの 5 タプルを特定し、 その 5 タプルと一致するパケットをファイアウォールで破棄する。

演習 2

SYN スキャンは、対象のポートとコネクションを確立しないので、 対象にスキャンの痕跡が残らず、スキャンが検出されづらい。

演習 3

  • アノマリ検知は、教師 [ なし ] 学習を用いて異常を検出する。具体的には、 通信の特徴量を抽出した [ 特徴ベクトル ] を構築し、[ 特徴ベクトル ] を [ クラスタリング ] によって、正常な通信と異常な通信とに分類するこ とで、異常を検出する。
  • シグネチャ検知は、教師 [ あり ] 学習を用いて異常を検出する。シグネチャ 検知は、事前に、攻撃者の通信を観測し、正常と異常を分類する分類器を構 築する。ここでは、攻撃者による本物の通信を観測するために、[ ハニーポッ ト ] を用いる。そして、学習によって訓練された分類器を用いて、異常を 検出する。

20. 第 12 回: なりすましメールへの対策: SPF および DKIM

20.2. 確認演習

演習 1

fukuoka-u.ac.jp ドメインの SPF レコード (実質的には、 TXT レコード) を DNS サーバに問い合わせ、 その SPF レコードから fukuoka-u.ac.jp ドメインが認可している IP アドレスを答えなさい。

演習 2

fukuoka-u.ac.jp を差出人のドメインとするメールが届いた。 この時に、メールに付与されている DKIM 署名を検証するための手続きを 説明しなさい。

20.3. 略解

演習 1

> dig TXT fukuoka-u.ac.jp

; <<>> DiG 9.16.42-Debian <<>> TXT fukuoka-u.ac.jp
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 55372
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1220
; COOKIE: 8eb8566154b64e126cf69df465554e394b22acd5f35a99e2 (good)
;; QUESTION SECTION:
;fukuoka-u.ac.jp.		IN	TXT

;; ANSWER SECTION:
fukuoka-u.ac.jp.	60	IN	TXT	"v=spf1 +ip4:133.100.2.94 -all"
fukuoka-u.ac.jp.	60	IN	TXT	"google-site-verification=R9S-_H0vnhobERdD5q1IR0rmMh3k3EmJA1vkpC2YCO0"

;; Query time: 0 msec
;; SERVER: 10.0.0.1#53(10.0.0.1)
;; WHEN: Thu Nov 16 08:03:21 JST 2023
;; MSG SIZE  rcvd: 195

> nslookup -type=TXT fukuoka-u.ac.jp
Server:		10.0.0.1
Address:	10.0.0.1#53

Non-authoritative answer:
fukuoka-u.ac.jp	text = "v=spf1 +ip4:133.100.2.94 -all"
fukuoka-u.ac.jp	text = "google-site-verification=R9S-_H0vnhobERdD5q1IR0rmMh3k3EmJA1vkpC2YCO0"

Authoritative answers can be found from:

における "v=spf1 +ip4:133.100.2.94 -all" から、133.100.2.94 である。

演習 2

  1. DNS サーバに問い合わせることで、 fukuoka-u.ac.jp ドメインの公開鍵を得る。
  2. 1. で得た公開鍵、メールのヘッダに記述されているアルゴリズムに従って、署名を検証する。

21. 第 13 回: バッファオーバーフロー攻撃およびその対策

21.2. 確認演習

演習 1

バッファフロー攻撃の流れを簡単に説明した以下の文章における 空欄にあてはまる適切な語句を答えなさい。

  1. まず、[ ア ] を、[ イ ] セグメントに挿入する。[ ア ] は、マルウェア 感染のきっかけとなるコードである。
  2. [ ウ ] によって、スタックフレームにおける [ エ ] を、[ ア ] が位置 するコードに書き換える。

演習 2

上述したバッファオーバーフロー攻撃は、 「リターンアドレスを、 シェルコードが配置されているアドレスちょうどに書き 換えなければならない」という理由から、 事実上不可能である。これを解消する方法を説明しなさい。

演習 3

バッファフロー攻撃への対策を説明しなさい。

21.3. 略解

演習 1

  • ア: シェルコード
  • イ: データ
  • ウ: バッファオーバーフロー
  • エ: リターンアドレス

演習 2

連続した NOP 命令をデータセグメントに挿入しておく。 シェルコードのアドレスそのものではなくても、 いずれかの NOP 命令が配置されているアドレスに、 リターンアドレスを書き換えると、 一連の NOP 命令が実行され、 その結果として、シェルコードが実行される。

演習 3

データセグメントに配置されているコードの実行を禁止する。

22. 第 14 回: DoS 攻撃と DDoS 攻撃

22.2. 確認演習

演習 1

ボットが C&C を得るためにサーバとどのように通信するのか、 を説明しなさい。

演習 2

ボットによる通信の観測を妨げる方法を説明しない。

22.3. 略解

演習 1

講義資料の p.2 を参照。

演習 2

  • ボットと C&C サーバ間と直接通信せず、C&C サーバとの通信を代理するボットを用意する。
  • 代理となるボットを複数用意し、Fast flux で切り替えるようにする。

23. 第 15 回: 後半の総復習 / 授業アンケート FURIKA の実施

Last Modified: 2025-12-18 Thu 10:29 (JST)
Copyright © 2023-, Ryo Nakamura. All rights reserved.