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

【セキュリティ】送信元を偽装する!「IPスプーフィング」の仕組み|情報処理問題1000本ノック


ネットワーク通信の信頼性を揺るがす「なりすまし」。その代表格であるIPスプーフィングの仕組みと、攻撃の狙いを正しく理解しましょう。

1. 問題:IPアドレスを偽装する攻撃

【 問題 】 攻撃者が自分のコンピュータのIPアドレスを、信頼されている他のコンピュータのIPアドレスなどに偽装し、不正なパケットを送りつける攻撃手法はどれでしょうか?

① DNSポイズニング   ② IPスプーフィング   ③ ボットネット   ④ インジェクション

2. 正解:ネットワークセキュリティに関する正解

正解: ② IPスプーフィング

3. 解説:「なりすまし」による信頼の突破

スプーフィング(Spoofing)とは「なりすまし」という意味です。IPスプーフィングは、IPパケットの送信元IPアドレスを偽り、標的のシステムを欺く手法です。これにより、特定のIPアドレスからの通信しか許可していないファイアウォールなどを突破しようとします。

【図解:IPスプーフィングのイメージ】

[攻撃者] --- (偽の送信元: 192.168.1.10) ---> [標的サーバ]

・標的サーバは「あ、信頼している端末(1.10)からの通信だ」と誤解して受け入れてしまいます。
・主に**DDoS攻撃の踏み台**や、**DoS攻撃の身元隠蔽**、**セッションハイジャック**の下準備として使われます。
[ 他の選択肢の整理 ]
DNSポイズニング:DNSサーバに偽の情報を覚え込ませ、偽サイトへ誘導する攻撃。
ボットネット:ウイルス感染により乗っ取られた大量のコンピュータ群。
インジェクション:SQLなどの命令文を注入し、データベースを不正操作する攻撃。

1. 理解のコツ: 犯人が「偽造した名刺」を使って、ガードマン(フィルタリング)を通り抜けるようなイメージです。現代では、TCPの3ウェイ・ハンドシェイクを完了させるのは難しいですが、UDPを用いたDDoS攻撃(リフレクション攻撃)などで依然として悪用されています。
2. 試験対策の視点: 「IPアドレスを偽装」「なりすまし」というキーワードが出たらIPスプーフィングです。対策として「入口対策(外部から内部IPを名乗るパケットを捨てる)」や「出口対策(内部から外部へ、自組織以外のIPを名乗るパケットを外に出さない)」も併せて出題されます。


4. まとめ

「送信元IPアドレスを偽り、信頼された通信を装う」。これがIPスプーフィングです。ネットワークの基本的な信頼関係を逆手に取った攻撃であることを押さえておきましょう!



PR

【セキュリティ】文字をずらして作る古典暗号!シーザー暗号(シフト暗号)|情報処理問題1000本ノック


歴史上最も有名な暗号の一つ、シーザー暗号。アルファベットを一定の数だけ「ずらす」というシンプルなルールですが、現代の暗号理論の基礎となる考え方が詰まっています。

1. 問題:アルファベットを指定数だけ移動させる暗号

【 問題 】 暗号化の方式のうち、アルファベットなどの文字を、あらかじめ決めておいた一定の数だけ順方向に、あるいは逆方向にずらす(シフトさせる)方式を何と呼ぶでしょうか?

① 転置式暗号   ② シーザー暗号(シフト暗号)   ③ ワンタイムパッド   ④ 公開鍵暗号

2. 正解:暗号化方式の分類に関する正解

正解: ② シーザー暗号(シフト暗号)

3. 解説:ずらすだけのシンプルなルール

シーザー暗号は、古代ローマの軍事指導者ジュリアス・シーザーが使用したとされる暗号です。例えば「3文字ずらす」というルールなら、「A」は「D」に、「B」は「E」に変換されます。このように、特定の規則で文字を置き換えるため、大きな分類では「単一換字式暗号」に属します。

[ シーザー暗号のポイント ]
仕組み:文字をアルファベット順に一定数(鍵の値)だけ移動させます。末尾の「Z」を超えた場合は「A」に戻ってループします。
脆弱性:ずらすパターンは25通り(英文字の場合)しかないため、すべて試す「総当たり攻撃」で簡単に解読されてしまいます。

[ 関連用語の整理 ]
ROT13:シーザー暗号の一種で、ちょうど半分の「13文字」ずらすもの。2回施すと元の文に戻る性質があります。
総当たり攻撃(ブルートフォース攻撃):考えられるすべての鍵を片っ端から試す解読手法。

1. 理解のコツ: 「ずらす数」が共通の「鍵」になります。送信者と受信者が「今回は3文字ずらそう」と事前に決めておく必要があるため、現代でいう「共通鍵暗号」の極めて原始的な形と言えます。
2. 試験対策の視点: 「単一換字式暗号」の具体例として登場します。また、暗号の強度を議論する際の例として、「鍵空間(鍵の候補数)が極めて小さいため現代では安全ではない」という文脈で引き合いに出されることが多いです。


4. まとめ

「アルファベットを一定数だけずらして作る」。これがシーザー暗号(シフト暗号)の核となる定義です。シンプルゆえに解読も容易ですが、暗号化の基本原理を学ぶには最適なアルゴリズムです。



【セキュリティ】文字を入れ替える古典暗号の王道!換字式暗号の定義|情報処理問題1000本ノック

暗号の歴史は「文字の置き換え」から始まりました。現代の高度な暗号の基礎要素でもある「換字(かんじ)式暗号」の仕組みを正しく理解しましょう。

1. 問題:対応表を用いた文字の変換

【 問題 】 暗号化の方式のうち、アルファベットなどの各文字を、あらかじめ決められた対応表に従って別の文字に置き換える方式を何と呼ぶでしょうか?(例:AをDに、BをEに変換する、など)

① 転置式暗号   ② 換字式暗号   ③ ストリーム暗号   ④ 公開鍵暗号

2. 正解:暗号化方式の分類に関する正解

正解: ② 換字式暗号

3. 解説:文字の「置き換え」による秘匿

換字(かんじ)とは「字を換える」という意味です。文字の並び順はそのままで、文字そのものを別の文字に変換します。有名な「シーザー暗号」も、アルファベットを3文字ずらすというルールに基づいた換字式暗号の一種です。

[ 換字式暗号のポイント ]
仕組み:特定の文字を、対応表(アルファベットの変換表など)に基づいて別の文字へ変換します。
特徴:文字の「種類」が変わりますが、出現する場所や頻度の傾向が残りやすい性質があります。

[ 他の選択肢との違い ]
転置式暗号:文字そのものは変えず、並べ替える(順番を入れ替える)方式。
ストリーム暗号:データを通信単位(ビットやバイト)ごとに逐次暗号化する方式。
公開鍵暗号:暗号化と復号に異なる鍵を用いる、現代の主要な暗号方式。

1. 理解のコツ: 換字式暗号は、1対1で文字を置き換える「単一換字」の場合、言語ごとの文字の出現確率を調べる「頻度分析」によって、比較的容易に解読されてしまうという弱点があります。
2. 最新トレンドの視点: 現代のブロック暗号(AESなど)の内部処理でも、Sボックスと呼ばれる「換字」の工程が含まれています。古典的な技術ですが、現代暗号においても「攪拌(かくはん)」を実現するための重要なパーツとして生き続けています。


4. まとめ

「対応表を使って文字を別の文字へ置き換える」。これが換字式暗号の核となる定義です。文字の順序を変える「転置」との違いを明確に区別できるようにしておきましょう!


【セキュリティ】単純な繰り返しの積み重ね!暗号の「ラウンド」を攻略|情報処理問題1000本ノック

高度な暗号も、中身を分解してみれば単純な処理の組み合わせです。1回では弱くても、何度も繰り返すことで鉄壁の守りを作る「ラウンド」の仕組みを理解しましょう。

1. 問題:ブロック暗号における繰り返しの処理

【 問題 】 ブロック暗号において、データの置換(入れ替え)や換字(置き換え)といった単純な変換処理を1段階の単位とし、安全性を高めるためにこれを複数回繰り返して実行します。この1回分の処理単位を何と呼ぶでしょうか?

① フェイステル   ② ラウンド   ③ イテレーション   ④ セグメント

2. 正解:暗号の処理工程に関する正解

正解: ② ラウンド

3. 解説:繰り返すほどに複雑さが増す

「1回ひねっただけの紐」は簡単に解けますが、「10回、20回と複雑にひねった紐」を元に戻すのは至難の業です。暗号も同様に、1回分(1ラウンド)の処理は単純でも、それを何度も重ねることで、平文と暗号文の関係を数学的に解析不能なレベルまで複雑にしていきます。

[ ラウンドのポイント ]
目的:攪拌(かくはん)と拡散。データの依存関係を複雑にし、解読を困難にします。
構成:各ラウンドでは、その回専用の「ラウンド鍵」が生成され、データと合成されます。

[ 他の選択肢との違い ]
フェイステル:ラウンドの構造を作るための代表的な設計手法の一つ(DESなどで採用)。
イテレーション:プログラミング全般の「反復」を指す言葉ですが、暗号用語としては「ラウンド」が一般的です。
セグメント:データを分割した断片のこと。暗号の処理単位とは異なります。

1. 理解のコツ: ラウンド数は多ければ多いほど安全性が高まりますが、その分だけ計算量が増えて処理速度は低下します。安全性能と処理性能のバランス(トレードオフ)を考慮して設計されます。
2. 最新トレンドの視点: 現代の標準暗号「AES」では、鍵の長さに応じて10、12、14ラウンドと繰り返す回数が決まっています。最近の高度試験では、このラウンドの途中で発生する「サイドチャネル攻撃(消費電力や処理時間の差から鍵を推測する手法)」への対策も重要なテーマとなっています。


4. まとめ

「単純な変換を、鍵を変えながら何度も繰り返す」。これがラウンドの役割です。この「繰り返し」こそが、スーパーコンピュータでも解読に何年もかかるような強固な暗号を作り出しているのです!

【セキュリティ】ブロック暗号の弱点を突く!符号表攻撃の仕組み|情報処理問題1000本ノック

暗号アルゴリズムそのものを破らなくても、すべてのパターンを記録されたら終わりです。そんなシンプルながら強力な脅威である「符号表攻撃」の性質を整理しましょう。

1. 問題:暗号と平文の対応表による攻撃

【 問題 】 ブロック暗号において、小さいブロックサイズが使用されている場合に有効な攻撃手法で、あらかじめ平文ブロックとそれに対応する暗号文ブロックのすべての組み合わせを取得・記録しておき、その対応表(コードブック)を用いて未知の暗号文を解読する手法を何と呼ぶでしょうか?

① 符号表攻撃   ② 総当たり攻撃   ③ 差分解読法   ④ 中間者攻撃

2. 正解:暗号解読の手法に関する正解

正解: ① 符号表攻撃

3. 解説:パターンの記録が解読に繋がる

「この平文は必ずこの暗号文になる」というルールが固定されている場合、その組み合わせを辞書のように記録されると、鍵を特定しなくても中身が丸見えになってしまいます。ブロックサイズが小さいほど全パターンを網羅しやすくなるため、この攻撃の餌食になりやすくなります。

[ 符号表攻撃のポイント ]
前提条件:暗号化のブロックサイズが小さく、パターンが限られている場合に成立します。
対策:AESのように十分な長さ(128ビット以上など)のブロックサイズを使用する、または「CBCモード」のように直前の暗号化結果を次の入力に混ぜる(暗号文をランダム化する)ことで防ぎます。

[ 他の選択肢との違い ]
総当たり攻撃(ブルートフォース):可能な鍵をすべて試す攻撃。符号表攻撃は「対応表」を作るのが特徴です。
差分解読法:平文と暗号文のわずかな変化を統計的に解析する高度な攻撃。
中間者攻撃:通信の間に割り込んで情報を盗み見たり改ざんしたりする攻撃。

1. 理解のコツ: 英語では「Codebook Attack」と呼ばれます。ECB(電子符号表)モードという、各ブロックを独立して暗号化する方式では、同じ平文から常に同じ暗号文ができるため、この攻撃に対して非常に脆弱です。
2. 最新トレンドの視点: 現代のAESなどはブロックサイズが128ビットあり、そのパターン数は $2^{128}$ と天文学的です。これをすべて記録して符号表を作ることは事実上不可能なため、現代の標準的な暗号はこの攻撃に耐性を持っています。


4. まとめ

「同じ入力には同じ出力を返す」という性質を悪用するのが符号表攻撃です。これを防ぐために、現代の暗号では「ブロックサイズを大きくする」ことと「暗号化モードを工夫して出力をバラつかせる」ことが基本戦略となっています。


【セキュリティ】安全性が下がる瞬間?暗号の危殆化(きたいか)を攻略|情報処理問題1000本ノック

昨日まで安全だった暗号が、明日も安全とは限りません。計算能力の向上や解読技術の進歩によって、暗号の信頼性が揺らぐ現象を「危殆化」と呼びます。試験ではその原因や対策が問われます。

1. 問題:暗号アルゴリズムの安全性が低下する現象

【 問題 】 コンピュータ의計算能力の向上や、暗号解読技術の進歩によって、暗号アルゴリズムの安全性が低下し、解読されるリスクが高まった状態を何と呼ぶでしょうか?

① 暗号の無効化   ② 暗号の危殆化   ③ 暗号の初期化   ④ 暗号の断片化

2. 正解:暗号の信頼性に関する正解

正解: ② 暗号の危殆化(きたいか)

3. 解説:暗号にも「寿命」がある

「危殆(きたい)」とは、危険が差し迫っていることを意味します。鍵そのものが盗まれていなくても、暗号の仕組み自体が弱くなることを指すのがポイントです。家の鍵で例えるなら、合鍵を作られたわけではなく「ピッキングの手法が広まって、その鍵自体が簡単に開くようになってしまった」状態です。

[ 危殆化のポイント ]
主な原因:コンピュータ(特に量子コンピュータなど)の処理能力向上、数学的な解読法の発見。
対策:より長い鍵長への移行(例:1024bit → 2048bit)や、新しいアルゴリズムへの乗り換え。

[ 他の選択肢との違い ]
無効化:意図的に使えなくすること。
初期化:設定を最初に戻すこと。
断片化:データがバラバラに分断されること(デフラグの対象など)。

1. 理解のコツ: 危殆化には、鍵の長さが足りなくなる「鍵長の危殆化」と、計算手順そのものの弱点が見つかる「アルゴリズムの危殆化」の2種類があります。
2. 最新トレンドの視点: 現在、RSA 1024bitなどはすでに危殆化したとみなされ、より強力なRSA 2048bitや、楕円曲線暗号への移行が推奨されています。また、将来的に量子コンピュータが実用化されると多くの暗号が危殆化するため、「耐量子計算機暗号(PQC)」の研究が急ピッチで進められています。


4. まとめ

技術の進歩によって暗号が「賞味期限切れ」になること、それが危殆化です。試験対策としては、過去に推奨されていた「DES」や「SHA-1」といった用語とセットで「危殆化したアルゴリズム」として覚えておくと完璧です!



【セキュリティ】 1ビットずつ暗号化!ストリーム暗号の正体|情報処理1000本ノック

ネットワーク通信など、リアルタイム性が求められる場面で活躍するのが「ストリーム暗号」です。データをまとめて処理するのではなく、流れてくる順に処理していくその仕組みを正しく理解しましょう。

1. 問題:逐次処理を行う暗号化方式

【 問題 】 データを一定のサイズ(ブロック)ごとにまとめて処理するのではなく、1ビットや1バイトといった単位で逐次(ストリーム状に)暗号化を行う方式を何と呼ぶでしょうか?

① 公開鍵暗号   ② ブロック暗号   ③ ストリーム暗号   ④ ハッシュ関数

2. 正解:暗号化の処理単位に関する正解

正解: ③ ストリーム暗号

3. 解説:データの流れを止めずに暗号化する

「荷物がトラック1台分たまったら出発する」のがブロック暗号なら、ストリーム暗号は「ベルトコンベアで流れてくる荷物をその場で一つずつ梱包していく」イメージです。待機時間が少ないため、通信の遅延を抑えることができます。

[ ストリーム暗号のポイント ]
処理単位:1ビットや1バイトずつ逐次処理。
特徴:暗号化・復号の処理速度が速く、ビットエラーの伝播が少ない。

[ 他の選択肢との違い ]
公開鍵暗号:暗号化と復号で異なる鍵を使う方式。処理は重めです。
ブロック暗号:DESやAESのように、64bitや128bitなどの「塊」で処理する方式。
ハッシュ関数:データの改ざん検知に使われるもので、暗号化(復号)とは目的が異なります。

1. 理解のコツ: ストリーム暗号は、鍵から生成した「擬似乱数列」と「平文」を排他的論理和(XOR)することで暗号文を作ります。このシンプルさが高速処理の秘密です。
2. 最新トレンドの視点: かつては無線LANのWEPで使われた「RC4」が有名でしたが、現在は脆弱性が見つかっています。最新のTLS 1.3などでは、より安全な「ChaCha20」などのストリーム暗号が注目されています。試験では「逐次処理=ストリーム」という紐付けが重要です。


4. まとめ

「データを小分けにして、流れるように処理する」。これがストリーム暗号の最大の特徴です。ブロック暗号との対比は情報処理技術者試験の定番ですので、処理単位とスピード感のイメージをセットで覚えておきましょう!