QUIZ 30分

クイズの説明

Step 4で学んだ内容の理解度をチェックします。

  • 全8問
  • 合格ライン: 80%(7問正解)
  • 不合格の場合は復習してから再挑戦してください

問題

Q1. AES-256-GCMの「GCM」が提供する機能として正しいものはどれですか?

  • A) データの圧縮機能
  • B) 暗号化と認証(改ざん検知)の両方
  • C) 鍵の自動生成機能
  • D) データの分割処理機能
答えを見る

正解: B

GCM(Galois/Counter Mode)はAEAD(Authenticated Encryption with Associated Data)の一種で、暗号化と認証(改ざん検知)の両方を提供します。認証タグ(Auth Tag)により、暗号文が改ざんされていないことを検証できます。


Q2. パスワードのハッシュ化にMD5やSHA-1を使用してはいけない理由として最も適切なものはどれですか?

  • A) ハッシュ値が長すぎてデータベースに保存できないから
  • B) 計算速度が速すぎてブルートフォース攻撃に弱いから
  • C) ハッシュ値が可逆的で元のパスワードに戻せるから
  • D) 衝突耐性がなくなったから
答えを見る

正解: B

MD5やSHA-1は汎用ハッシュ関数であり、高速に計算できるよう設計されています。パスワードハッシュには計算コストが意図的に高い(遅い)アルゴリズム(bcrypt, Argon2id, scrypt)を使用する必要があります。高速なハッシュはGPUで大量のパスワード候補を試行できるため、ブルートフォース攻撃に弱くなります。


Q3. エンベロープ暗号化の説明として正しいものはどれですか?

  • A) データを二重に暗号化する方式
  • B) DEK(データ暗号化キー)でデータを暗号化し、KEK(マスターキー)でDEKを暗号化する方式
  • C) 公開鍵でデータを暗号化し、秘密鍵で復号する方式
  • D) データをハッシュ化した後に暗号化する方式
答えを見る

正解: B

エンベロープ暗号化は、ランダムなDEK(Data Encryption Key)でデータを暗号化し、KEK(Key Encryption Key / マスターキー)でDEKを暗号化する二層構造です。大量データの暗号化に効率的で、鍵のローテーションも容易になります。


Q4. シークレット管理のアンチパターンとして最も危険なものはどれですか?

  • A) 環境変数でシークレットを渡すこと
  • B) APIキーをソースコードにハードコードしてGitにコミットすること
  • C) シークレットの有効期限を設定すること
  • D) シークレットを暗号化して保存すること
答えを見る

正解: B

APIキーなどのシークレットをソースコードにハードコードしてGitにコミットすることは、最も危険なアンチパターンです。Gitの履歴に永久に残り、公開リポジトリの場合は即座に漏洩します。シークレット管理ツール(Vault、AWS Secrets Manager等)を使用して管理すべきです。


Q5. データ分類でLevel 4(最高機密)に該当するデータはどれですか?

  • A) 商品の価格情報
  • B) ユーザーの表示名
  • C) クレジットカード番号
  • D) 公開ブログ記事
答えを見る

正解: C

クレジットカード番号はLevel 4(最高機密)に分類されます。PCI DSS(Payment Card Industry Data Security Standard)の対象であり、漏洩すると重大な経済的損害と法的責任が発生します。フィールドレベル暗号化とトークナイゼーションが必要です。


Q6. mTLS(mutual TLS)の特徴として正しいものはどれですか?

  • A) サーバーのみが証明書を提示する
  • B) クライアントとサーバーの両方が証明書を提示して互いに認証する
  • C) 証明書の代わりにパスワードで認証する
  • D) TLSの暗号化を無効にして高速化する
答えを見る

正解: B

mTLS(mutual TLS)は、通常のTLS(サーバーのみが証明書を提示)に加えて、クライアントも証明書を提示してサーバーに認証される方式です。マイクロサービス間の通信でゼロトラストを実現するために使用されます。


Q7. HSTSヘッダーの役割として正しいものはどれですか?

  • A) クロスサイトスクリプティングを防止する
  • B) ブラウザにHTTPSのみでの接続を強制する
  • C) SQLインジェクションを防止する
  • D) CORSポリシーを設定する
答えを見る

正解: B

HSTS(HTTP Strict Transport Security)は、ブラウザに対してHTTPSのみでの接続を強制するセキュリティヘッダーです。一度HSTSヘッダーを受信すると、指定された期間中はHTTPでのアクセスを自動的にHTTPSにアップグレードします。


Q8. シークレットのローテーションの目的として最も適切なものはどれですか?

  • A) パフォーマンスを向上させるため
  • B) 漏洩した場合の影響範囲を限定し、リスクを低減するため
  • C) 暗号化アルゴリズムを最新版に更新するため
  • D) データベースの容量を節約するため
答えを見る

正解: B

シークレットのローテーション(定期的な更新)の主な目的は、万が一シークレットが漏洩した場合の影響範囲を時間的に限定し、リスクを低減することです。古いシークレットは自動的に無効になるため、漏洩が発覚する前でも被害を最小化できます。


結果

7問以上正解の場合

合格です。おめでとうございます。

Step 4「データ保護と暗号化」を完了しました。 次は Step 5「セキュリティ運用とDevSecOps」に進みましょう。

6問以下の場合

もう少し復習しましょう。

間違えた問題の内容を、該当するセクションで復習してください:

問題復習セクション
Q1, Q2step4_1 暗号化の基礎
Q3step4_1 エンベロープ暗号化
Q4step4_3 シークレット管理
Q5step4_2 データの分類と保護
Q6, Q7step4_4 通信の保護
Q8step4_3 シークレットのローテーション

次のステップへ

Step 5: セキュリティ運用とDevSecOps(4時間)

データ保護の設計を学んだ次は、SBOM、脆弱性管理、セキュリティテストの自動化など、継続的なセキュリティ運用を学びます。


推定所要時間: 30分