情報セキュリティ (2024 年度後期)
- 第 1 回: スタートアップ授業 / 情報セキュリティの概要・暗号技術の基本
- 第 2 回: 共通鍵暗号
- 第 3 回: 公開鍵暗号
- 第 4 回: 暗号技術の応用: ハイブリッド方式とデジタル署名
- 第 5 回: 暗号技術の応用: PKI (Public Key Infrastructure)
- 第 6 回: インターネットセキュリティ: SSL/TLS
- 第 7 回: インターネットセキュリティ: IPsec
- 第 8 回: 前半の総復習
- 第 9 回: サイバー攻撃の概要
- 第 10 回: サイバー攻撃の詳細
- 第 11 回: サイバー攻撃への対策
- 第 12 回: なりすましメールへの対策: SPF および DKIM
- 第 13 回: バッファオーバーフロー攻撃とその対策
- 第 14 回: DoS 攻撃と DDoS 攻撃
- 第 15 回: 後半の総復習 / 授業アンケート FURIKA の実施
1. URL
2. 担当者
中村 遼 E-mail: r-nakamura[atmark]fukuoka-u.ac.jp 居室: 14 号館 3 階 313 オフィスアワー: 月曜日 1 限
3. スケジュール (予定)
1. スタートアップ授業 / 情報セキュリティの概要・暗号技術の基本 24/ 9/19 2. 共通鍵暗号 24/ 9/26 3. 公開鍵暗号 24/10/ 3 4. 暗号技術の応用: ハイブリッド方式とデジタル署名 24/10/10 5. 暗号技術の応用: PKI (Public Key Infrastructure) 24/10/17 6. インターネットセキュリティ: SSL/TLS 24/10/24 7. インターネットセキュリティ: IPsec 24/10/31 8. 前半の総復習 24/11/ 7 9. サイバー攻撃の概要 24/11/14 10. サイバー攻撃の詳細 24/11/21 11. サイバー攻撃への対策 24/11/28 12. なりすましメールへの対策: SPF および DKIM 24/12/ 5 13. バッファオーバーフロー攻撃とその対策 24/12/12 14. DoS 攻撃と DDoS 攻撃 24/12/19 休講 25/ 1/ 9 2 限 15. 後半の総復習 / 授業アンケート FURIKA の実施
4. 到達目標
- [O1] 共通鍵暗号および公開鍵暗号の原理を理解し、説明できるようになる
- [O2] 公開鍵暗号に基づくデジタル署名、および、公開鍵の正当性を保証す るための PKI (Public Key Infrastructure) を理解できるようになる
- [O3] インターネットにおける情報セキュリティを実現する SSL/TLS および IPsec の基本的な仕組みを理解できるようになる
- [O4] DDoS 攻撃に代表されるサイバー攻撃およびその対策を理解できるよう になる
- [O5] バッファオーバーフロー攻撃の原理およびその対策を理解し、説明で きるようになる
5. 成績評価
定期試験で完全に評価する。
6. 参考書
- 石井 夏生利・稲葉 宏幸・上原 哲太郎・越前 功・岡崎 美蘭・岡田 仁志・岡本 栄司・小松 尚久・白勢 政明・瀬戸 洋一・高倉 弘喜・土井 洋・村上 康二郎, "情報セキュリティの基礎", ISBN 9784320123021
- 八木毅・秋山満昭・村山純一, "コンピュータネットワークセキュリティ", ISBN 4339024953
7. ミニッツペーパの回答フォーム
Microsoft Forms (学内関係者限定) https://forms.office.com/r/zu5XdiS2G2
8. 連絡事項
8.1. 出席管理
- 授業教室に設置されているカードリーダのデータにもとづいて、管理します。 ので、授業に出席したら、学生証をカードリーダにかざしてください。
9. 第 1 回: スタートアップ授業 / 情報セキュリティの概要・暗号技術の基本
9.1. 資料
講義ビデオおよび講義資料 (学内関係者限定) https://fukuoka-u.app.box.com/folder/248244846073
10. 第 2 回: 共通鍵暗号
10.1. 資料
講義資料 (受講者限定) https://www.ins.tl.fukuoka-u.ac.jp/~nakamura/lecture/infsec/2024/priv/02.pdf DATA ENCRYPTION STANDARD (DES) https://csrc.nist.gov/files/pubs/fips/46-3/final/docs/fips46-3.pdf DES Supplementary Material https://en.wikipedia.org/wiki/DES_supplementary_material
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
(講義資料を参照すればよいので) 省略
10.4. 課題 (任意)
授業内容を十分に復習した後に、 以下の Forms に記載されている設問に、回答しなさい。 回答の期限は、次回講義の開始時刻の 48 時間前とする。
Microsoft Forms (学内関係者限定) https://forms.office.com/r/zu5XdiS2G2
11. 第 3 回: 公開鍵暗号
11.2. 資料
11.3. 確認演習
以下は RSA 暗号に関する問いである。 また、以下で用いる数学記号の定義は講義資料内の記載に準ずるものとする。
演習 1
(p, q) = (3, 7) とし、n = 21 とした時の、鍵対 e および d を求めなさい。 ただし、e != 1 および d != 1 であり、e != d である。
演習 2
演習 1 で得られた鍵対を用いて、 何らかのメッセージ M を暗号化し、暗号文を元のメッセージ M に復号できる、 という一連の流れを示しなさい。
11.4. 略解
演習 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 と一致していることから、題意は示された。
11.5. 課題 (オプション)
第 2 回の課題と同様である。
12. 第 4 回: 暗号技術の応用: ハイブリッド方式とデジタル署名
12.1. 前回の質問とその回答
なし。
12.2. 資料
12.3. 確認演習
演習 1
以下の文章が説明しているのは、 Alice から Bob へ暗号文を配送する一連の流れである。 ここでは、暗号化・復号には、 公開鍵暗号と共通鍵暗号とを併用した方式を用いている。
- Alice は、メッセージを、[ ア ] 暗号で、暗号化する
- Alice は、1. の暗号化で用いた鍵 (共通鍵) を [ イ ] 暗号で暗号化する。鍵には、[ ウ ] の [ エ ] を用いる。
- Alice は、1. と 2. で暗号化したもの一式を Bob に送る
- Bob は、[ オ ] を [ カ ] 暗号で復号する。鍵には、[ キ ] の [ ク ] を用いる。
- Bob は、4. で復号した鍵を用いた [ ケ ] 暗号で、暗号文を元のメッセージに復号する
この文章における空欄に当てはまる適切な語句を、 語群から選択し記入しなさい。
語群: 共通鍵、公開鍵、秘密鍵、Alice、Bob
演習 2
送信者から受信者に何かしらのメッセージを送るときに、 そのメッセージが配送の過程で改ざんされていない、 ということを、検証する手順を説明しなさい。 ただし、説明には「ダイジェスト」および「ハッシュ関数」という語句を用いること。
演習 3
Alice から Bob に何かしらのメッセージを (電子的に) 送ったときに、 メッセージを受け取った Bob が、 メッセージの送り主が真に Alice であるかどうかを、 検証する手順を、説明しなさい。
12.4. 略解
演習 1
- Alice は、メッセージを、[ 共通鍵 ] 暗号で、暗号化する
- Alice は、1. の暗号化で用いた鍵 (共通鍵) を [ 公開鍵 ] 暗号で暗号化する。鍵には、[ Bob ] の [ 公開鍵 ] を用いる。
- Alice は、1. と 2. で暗号化したもの一式を Bob に送る
- Bob は、[ 共通鍵 ] を [ 公開鍵 ] 暗号で復号する。鍵には、[ Bob ] の [ 秘密鍵 ] を用いる。
- Bob は、4. で復号した鍵を用いた [ 共通鍵 ] 暗号で、暗号文を元のメッセージに復号する
演習 2
(講義資料を参照すればよいので) 省略
演習 3
(講義資料の『デジタル署名』を参照すればよいので) 省略
12.5. 課題 (オプション)
第 2 回の課題と同様である。
13. 第 5 回: 暗号技術の応用: PKI (Public Key Infrastructure)
13.1. 前回の質問とその回答
なし。
13.2. 資料
13.3. 確認演習
演習 1
以下の一連の文章は、 PKI にもとづく、Bob が Alice の公開鍵の真正性を検証 する仕組みを、説明している。この文章の空欄に当てはまる適切な語句を記入しなさい。 ただし、[ イ ] および [ エ ] には、Alice・Bob・電子認証局のいずれかの語句が 当てはまる。
- Alice は、[ ア ] の発行を、電子認証局に申請する。
- 電子認証局は、[ イ ] の [ ウ ] による署名を付与した [ ア ] を発行する。
- Bob は、Alice の公開鍵の真正性を、[ ア ] の署名を [ エ ] の [ オ ] で検証することで、確認する。
演習 2
上位認証局・下位認証局から成る階層型の認証局モデルを考える。 下位認証局は上位認証局に申請し、上位認証局から公開鍵証明書を発行されて いるものとする。このとき、以下の問いに答えなさい。
- 下位認証局が発行する公開鍵証明書に署名しているのは誰か?
- 上位認証局が発行する公開鍵証明書に署名しているのは誰か?
- 上位認証局自身の公開鍵証明書に署名しているのは誰か?
13.4. 略解
演習 1
- Alice は、[ 公開鍵証明書 ] の発行を、電子認証局に申請する。
- 電子認証局は、[ 電子認証局 ] の [ 秘密鍵 ] による署名を付与した [ 公開鍵証明書 ] を発行する。
- Bob は、Alice の公開鍵の真正性を、[ 公開鍵証明書 ] の署名を [ 電子認
証局 ] の [
秘密鍵公開鍵 ] で検証することで、確認する。
演習 2
- 下位認証局
- 上位認証局
- 上位認証局
13.5. 課題 (オプション)
第 2 回の課題と同様である。
14. 第 6 回: SSL/TLS
14.1. 前回の質問とその回答
なし。
14.2. 資料
14.3. 確認演習
演習 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.4. 略解
演習 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
14.5. 課題
第 2 回の課題と同様である。
15. 第 7 回: IPsec
15.1. 質問とその回答
なし。
15.2. 資料
15.3. 確認演習
演習 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.4. 略解
演習 1
(講義資料を参照すればよいので、) 省略
演習 2
- AH: パケットの完全性を検証する役割を担う
- ESP: 暗号化によるパケットの機密性と、MAC によるパケットの完全性とを担う
- IKE: インターネット上での通信機器間の鍵交換を担う
演習 3
- Alice は ya = 3^4 mod 7 = 4 を求め、4 を Bob に送る
- Bob は yb = 3^5 mod 7 = 5 を求め、5 を Alice に送る
- Alice は、鍵 K として、5^4 mod 7 = 2 を得る
- Bob は、鍵 K として、4^5 mod 7 = 2 を得る
15.5. 課題
第 2 回の課題と同様である。
16. 第 8 回: 前半の総復習
16.1. 前回の質問とその回答
なし。
16.2. 授業の流れ
1. IPsec の解説 (15 分) 2. 演習 (30 分) 3. 採点・教え合い・回答のアップロード (15 分) 4. 解説 (30 分) 注: 様子を見ながら時間を適宜調整します。
16.3. 演習
16.4. 課題 (任意)
第 2 回の課題と同様である。
17. 第 9 回: サイバー攻撃の概要
17.1. 前回の質問とその回答
なし。
17.2. 資料
17.3. 確認演習
演習 1
ウイルスとワームとの違いを説明しなさい。
演習 2
ランサムウェア攻撃の特徴を簡単に説明しなさい。
演習 3
次に示すア〜エの文は、 フィッシング攻撃・ドライブバイダウンロード攻撃・XSS (クロスサイトスクリプティング) 攻撃・ゼロディ攻撃のいずれかを、 簡単に説明している。 各文に対して、適切な攻撃の名称を、答えなさい。
- ア. まだ公になっていない脆弱性を狙った攻撃
- イ. Web サイトを訪問した時に、ユーザの同意を得ることなく、マルウェアをダウンロードさせる攻撃
- ウ. 真正な Web サイトに似せた Web サイトに誘導し、 ID やパスワードなどの個人情報を入力させることで、 これらの情報を詐取する攻撃
- エ. クライアントの Web ブラウザ上で悪性スクリプトを実行させることで、 クッキーなどの情報を奪い取る攻撃
17.4. 略解
演習 1
ウイルスはファイルのような寄生先を必要とし、 その感染が、ファイルの実行と同時に、他のファイルに広がる。 これに対して、ワームは、寄生先を必要することなく、 自ら感染を広めることができる。
演習 2
情報へのアクセスを制限するマルウェアを感染させ、 その制限を解除するための身代金として金銭を要求する攻撃。
演習 3
- ア. ゼロディ攻撃
- イ. ドライブバイダウンロード攻撃
- ウ. フィッシング攻撃
- エ. XSS 攻撃
17.5. 課題 (任意)
第 2 回の課題と同様である。
18. 第 10 回: サイバー攻撃の詳細
18.1. 前回の質問とその回答
なし。
18.2. 資料
新たに配布する資料はない。
18.3. 確認演習
演習 1
DoS 攻撃は、個人情報などの機密情報を詐取するサイバー攻撃とは、 どのように異なるかを、 説明しなさい。
演習 2
DoS 攻撃の一種である TCP SYN フラッディングを説明した以下の 文章における空欄に適切な語句を記入しなさい。
- TCP SYN フラッディングを、TCP における [ ア ] を逆手にとった攻撃である。
- 攻撃者であるクライアントは、[ ア ] を確立するための、[ イ ] を標的となるサーバに送る
- サーバはクライアントに [ ウ ] が有効となったパケットを返送する
- 正常な挙動とは異なり、攻撃者は [ エ ] 有効となったパケットを意図的に返送しない。これによって、サーバは、クライアントからの応答を待たざるをえない。
略解 1
DoS 攻撃は、サーバやネットワークの資源を枯渇させることで、 サービスの正常な提供を阻害することを目的としている。
18.4. 略解
略解 2
- TCP SYN フラッディングを、TCP における [ 3 方向ハンドシェイク ] を逆手にとった攻撃である。
- 攻撃者であるクライアントは、[ 3 方向ハンドシェイク ] を確立するための、[ SYN ] を標的となるサーバに送る
- サーバはクライアントに [ SYN-ACK ] を返送する
- 正常な挙動とは異なり、攻撃者は [ ACK ] を意図的に返送しない。これによって、サーバは、クライアントからの応答を待たざるをえない。
18.5. 課題
第 2 回の課題と同様である。
19. 第 11 回: サイバー攻撃への対策
19.1. 前回の質問とその回答
なし。
19.2. 資料
19.3. 確認演習
演習 1
スキャンのような、 ホストの情報を収集するための通信を、 遮断する方法を説明しなさい。「5 タプル」という語句を用いること。
演習 2
SYN スキャンの利点を、TCP スキャンと比較しながら、説明しなさい。
演習 3
以下の文章は、ポートスキャンを検出するためのアノマリ検知とシグネチャ検 知を説明している。この文章における空欄に適切な語句を記入せよ。
- アノマリ検知は、教師 [ ア ] 学習を用いて異常を検出する。具体的には、 通信の特徴量を抽出した [ イ ] を構築し、[ イ ] を [ ウ ] によって、 正常な通信と異常な通信とに分類することで、異常を検出する。
- シグネチャ検知は、教師 [ エ ] 学習を用いて異常を検出する。シグネチャ 検知は、事前に、攻撃者の通信を観測し、正常と異常を分類する分類器を構 築する。ここでは、攻撃者による本物の通信を観測するために、[ オ ] を 用いる。そして、学習によって訓練された分類器を用いて、異常を検出する。
19.4. 略解
演習 1
スキャンによって生じるパケットの 5 タプルを特定し、 その 5 タプルと一致するパケットをファイアウォールで破棄する。
演習 2
SYN スキャンは、対象のポートとコネクションを確立しないので、 対象にスキャンの痕跡が残らず、スキャンが検出されづらい。
演習 3
- アノマリ検知は、教師 [ なし ] 学習を用いて異常を検出する。具体的には、 通信の特徴量を抽出した [ 特徴ベクトル ] を構築し、[ 特徴ベクトル ] を [ クラスタリング ] によって、正常な通信と異常な通信とに分類するこ とで、異常を検出する。
- シグネチャ検知は、教師 [ あり ] 学習を用いて異常を検出する。シグネチャ 検知は、事前に、攻撃者の通信を観測し、正常と異常を分類する分類器を構 築する。ここでは、攻撃者による本物の通信を観測するために、[ ハニーポッ ト ] を用いる。そして、学習によって訓練された分類器を用いて、異常を 検出する。
19.5. 課題
第 2 回の課題と同様である。
20. 第 12 回: なりすましメールへの対策: SPF および DKIM
20.1. 前回の質問とその回答
なし。
20.2. 資料
20.3. 確認演習
演習 1
fukuoka-u.ac.jp
ドメインの SPF レコード (実質的には、
TXT レコード) を DNS サーバに問い合わせ、
その SPF レコードから fukuoka-u.ac.jp
ドメインが認可している IP
アドレスを答えなさい。
演習 2
fukuoka-u.ac.jp
を差出人のドメインとするメールが届いた。
この時に、メールに付与されている DKIM 署名を検証するための手続きを
説明しなさい。
20.4. 略解
演習 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
- DNS サーバに問い合わせることで、
fukuoka-u.ac.jp
ドメインの公開鍵を得る。 - 1. で得た公開鍵、メールのヘッダに記述されているアルゴリズムに従って、署名を検証する。
20.5. 課題
第 2 回の課題と同様である。
21. 第 13 回: バッファオーバーフロー攻撃およびその対策
21.1. 資料
21.2. 確認演習
演習 1
バッファフロー攻撃の流れを簡単に説明した以下の文章における 空欄にあてはまる適切な語句を答えなさい。
- まず、[ ア ] を、[ イ ] セグメントに挿入する。[ ア ] は、マルウェア 感染のきっかけとなるコードである。
- [ ウ ] によって、スタックフレームにおける [ エ ] を、[ ア ] が位置 するコードに書き換える。
演習 2
上述したバッファオーバーフロー攻撃は、 「リターンアドレスを、 シェルコードが配置されているアドレスちょうどに書き 換えなければならない」という理由から、 事実上不可能である。これを解消する方法を説明しなさい。
演習 3
バッファフロー攻撃への対策を説明しなさい。
21.3. 略解
演習 1
- ア: シェルコード
- イ: データ
- ウ: バッファオーバーフロー
- エ: リターンアドレス
演習 2
連続した NOP 命令をデータセグメントに挿入しておく。 シェルコードのアドレスそのものではなくても、 いずれかの NOP 命令が配置されているアドレスに、 リターンアドレスを書き換えると、 一連の NOP 命令が実行され、 その結果として、シェルコードが実行される。
演習 3
データセグメントに配置されているコードの実行を禁止する。
21.4. 課題
第 2 回の課題と同様である。