忍者ブログ
情報処理技術者試験の合格を目指す全受験者のための、1問1問「徹底解説」ブログです。単なる過去問の暗記ではなく、なぜその答えになるのかを本質的に理解できるよう解説します。書籍などでは学べない最新用語やトレンドを踏まえてご紹介します。

【情報セキュリティ】データの繋ぎ方で強固にする!「ブロック暗号のモード」|情報処理問題1000本ノック

AESなどのブロック暗号は、一度に処理できるデータ長(ブロック)が決まっています。長いメッセージを暗号化する際、どのようにブロックを繋いで処理していくかという「アルゴリズムの運用形態」を攻略しましょう。

■ 代表的な5つのブロック暗号モード

同じ鍵を使っても、モードによって暗号文の性質や安全性が大きく変わります。

モード特徴とセキュリティ上の性質
ECB
(Electronic Codebook)
各ブロックを独立して暗号化する最も単純な方式。
【弱点】 同じ平文ブロックからは同じ暗号文が出るため、パターンを推測されやすく現在は推奨されません。
CBC
(Cipher Block Chaining)
前のブロックの暗号文と、次の平文をXOR(排他的論理和)してから暗号化する。現在の主流の一つ。
・最初のブロックにはIV(初期化ベクトル)を使用します。
CFB
(Cipher Feedback)
前の暗号文ブロックを暗号アルゴリズムへの入力に戻す方式。
・ブロック暗号をストリーム暗号(逐次処理)のように利用できます。
OFB
(Output Feedback)
暗号アルゴリズムの出力を、次の入力にフィードバックする方式。
・伝送路でビットエラーが発生しても、そのエラーが後続に波及しない特徴があります。
CTR
(Counter)
ブロックごとにカウントアップする数値を暗号化し、平文とXORをとる方式。
【利点】 各ブロックを独立して計算できるため、並列処理が可能で非常に高速です。

エンジニアが押さえるべき重要ポイント

  • IV(初期化ベクトル)の役割:同じ鍵・同じ平文でも、毎回異なる暗号文を生成するために不可欠な「使い捨ての乱数」です(ECB以外で使用)。
  • パディング:データの末尾がブロック長に足りない場合、特定のルールでデータを埋める作業が必要です(CTRなど一部モードでは不要)。
  • 認証付き暗号 (AEAD):最近では暗号化と同時に改ざん検知も行うGCM(CTRモードの発展形)が広く普及しています。

※ECBは「そのまま並べるだけ」、CBCは「前の結果を次に繋ぐ数珠つなぎ」、CTRは「番号を振って並列処理」というイメージで整理すると、それぞれの特性(特に速度と安全性)の違いが見えてきます。


PR

【情報セキュリティ】脅威を分類して対策を練る!「STRIDE」モデル|情報処理問題1000本ノック

セキュリティ対策は、壁を作って防ぐことだけではありません。システムに潜む「どのような脅威があるか?」をあらかじめ分類し、漏れなく対策を講じることが、設計段階における鉄則です。

■ セキュリティ脅威の分類:STRIDEモデル

マイクロソフトが提唱した「STRIDE」は、脆弱性がどのように悪用されるかを6つのカテゴリに分類したフレームワークです。

脅威の分類概要とリスク代表的な対策例
S: なりすまし
(Spoofing)
正当な権限を持つユーザーやシステムに化ける ・多要素認証 (MFA)
・デジタル署名
T: 改ざん
(Tampering)
データやプログラムを不正に書き換える ・ハッシュ値による検知
・アクセス制御 (ACL)
R: 否認
(Repudiation)
「やっていない」と操作の事実を否定・主張する ・操作ログ、監査ログ
・デジタル署名
I: 情報漏洩
(Information Disclosure)
機密情報が第三者にさらされる・盗まれる ・データの暗号化 (SSL/TLS)
・最小権限の原則
D: サービス拒否
(Denial of Service)
過負荷を与え、システムの利用を妨害する ・WAF、CDNによる防御
・レートリミット(制限)
E: 特権昇格
(Elevation of Privilege)
一般ユーザーが管理者権限を不正に奪取する ・特権管理 (PAM)
・入力値のバリデーション

試験対策の重要キーワード

  • 脅威モデリング:設計段階でSTRIDEなどを用いて、「どこにどのような攻撃のリスクがあるか」を洗い出す作業です。
  • CIAとの関係:機密性(C)は情報漏洩、完全性(I)は改ざん、可用性(A)はDoS攻撃と、それぞれのセキュリティ特性に密接に関係しています。
  • デフォルト・セキュア:設計段階からこれらの脅威を想定し、初期設定から安全な状態(権限最小化など)を維持する考え方です。

※STRIDEは、エンジニアが「漏れ」なく脅威を特定するための共通言語です。開発の初期段階からこれらを意識することで、後からの修正コストを大幅に削減できます。



【知識:セキュリティ】被害を最小限に抑える!「セキュリティ対策の3段階」

セキュリティ対策は、壁を作って防ぐことだけではありません。「もし破られたら?」という事態を想定し、多層的に対策を講じることが、現代のサイバーセキュリティの鉄則です。

■ セキュリティ機能の分類と具体策

脅威の「発生前・発生時・発生後」の時系列で整理すると、それぞれの対策の役割が明確になります。

分類目的と振る舞い代表的な対策例
1. 防止 (Prevention) 脆弱性をなくし、脅威そのものを発生させない、あるいは侵入を食い止める。 ・ファイアウォール ・パスワード設定、MFA ・パッチ適用(脆弱性修正)
2. 検知 (Detection) 侵入や異常な挙動をいち早く見つけ出し、管理者へ通知する。 ・IDS / IPS(侵入検知・防止) ・ウイルススキャン ・ログ監視、SIEM
3. 対応 / 回復 (Response / Recovery) 被害の拡大を防ぎ、システムを正常な状態へ復旧・回復させる ・バックアップからの復元 ・インシデント対応(CSIRT) ・再発防止策の策定

試験対策の重要キーワード

  • 多層防御:「防止」が破られることを前提に、「検知」や「対応」を組み合わせて被害を最小化する考え方です。
  • レジリエンス:事故が起きても、迅速に事業を継続・復旧させる「回復力」のこと。
  • PDCAサイクル:「対応」のフェーズで行う見直し(再発防止)が、次回の「防止」レベルを向上させます。

※100%の「防止」は困難です。近年のセキュリティ設計では、いかに速く「検知」し、迅速に「回復」させるかに焦点が移っています。