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

【開発技術】設計とテストを同時に走らせる!「Wモデル」|情報処理問題1000本ノック

「テストは開発が終わってからやるもの」という常識を覆し、超早期からバグを潰しにいく。Vモデルを進化させた現代的なプロセス「Wモデル」を攻略しましょう。

1. 【 問題 】:開発とテストの並行プロセスモデル

【 問題 】 ソフトウェア開発における「Wモデル」の特徴に関する記述として、最も適切なものはどれでしょうか?

① 開発工程の成果物が完成した後に、初めて対応するテスト工程の準備を開始するモデルである。
② 開発工程(要件定義・設計など)とテスト工程(テスト設計・テストケース作成など)を同時並行で進め、上流工程の段階から仕様の矛盾や不備(バグ)を早期に発見・修正していくモデルである。
③ ソフトウェアの機能を細切れに分割し、1週間から数週間という短い周期(スプリント)の開発を何度も繰り返すモデルである。
④ プログラムのコードを書く前に、まずテストコードを先に作成してから実装を始める開発手法である。

2. 正解:

正解: ② 開発工程とテスト工程を同時並行で進め、上流工程の段階から仕様の矛盾や不備を早期に発見・修正していくモデルである。

3. 解説:コードを書く前に、設計書を「テスト」する

従来のVモデルでは、左側の「設計」が終わってから、右側の「テスト」に進んでいました。しかし、これだと「要件定義や基本設計の段階で埋め込まれた勘違い(バグ)」が、開発の最後(システムテストなど)になるまで見つからないという大問題がありました。これを解決するのがWモデルです。

【Wモデルの同時並行の仕組み】

Wモデルでは、2つのV(開発のV、テストのV)を最初から同時に走らせます。

・システムエンジニアが「要件定義(開発のV)」をしている横で、テストエンジニアは「システムテストの計画・設計(テストのV)」を始めます。
・テストエンジニアが「この仕様だと、こういうパターンでテストできませんよ?」と突っ込むことで、コードを1行も書く前の「設計書の段階」でバグ(矛盾や考慮漏れ)を見つけて直すことができます。
→ これをテストの世界では「シフトレフト(テストの左前倒し)」と呼び、Wモデルはその代表例です。
[ 選択肢のひっかけポイント ]
★ ①:これは従来の「Vモデル」の説明です。
★ ③:これはアジャイル開発(スクラムなど)の説明です。
★ ④:これは「TDD(テスト駆動開発)」という、実装テクニックの説明です(Wモデルはプロジェクト全体のプロセスを指します)。

1. 理解のコツ: 「映画の撮影」に例えてみましょう。台本(設計書)が完成して、撮影(コーディング)が終わってから、最後に編集(テスト)で「あれ?このシーン、前後の繋がりがおかしいぞ!」と気づいたら、俳優を呼び戻して大がかりな再撮影(手戻り)になります。そうではなく、台本を作っている段階から編集者(テスト担当)も一緒に読み合わせをして、その場で矛盾を直していく。これがWモデルです。
2. 試験対策の視点: 「開発とテストを同時並行(並行して進める)」「上流工程からテスト活動を行う」「手戻りの削減」といったフレーズがあればWモデルが正解です。Vモデルとの違いを明確に突いてくるため、2つの違い(終わってからやるV、同時にやるW)を意識して覚えておきましょう。


4. まとめ

「設計とテスト設計をパラレル(同時並行)で走らせ、超早期にバグを刈り取るモデル」。これがWモデルです。バグは下流で見つけるほど修正コストが何倍にも膨らむため、上流で潰せるWモデルは、品質管理・コスト削減において極めて強力なアプローチです。


PR

【データベース】2回目も絶対に同じ値!「Repeatable Read」|情報処理問題1000本ノック

Read Committedからさらに防御力を高め、「データの書き換わり」まで完全にロックするレベルです。何が防げて、何が防げないのかの境界線を見極めましょう。

1. 【 問題 】:トランザクション分離レベルの識別

【 問題 】 データベースのトランザクション分離レベルのうち、「ダーティリード」だけでなく、同一トランザクション内で同じデータを繰り返し読み込んだときに値が変わってしまう「ノンリピータブルリード(非反復読み取り)」の発生まで完全に防止されるものはどれでしょうか?
ただし、他のトランザクションが新しい行を挿入することによって、2回目の検索時に1回目にはなかったデータが出現する「ファントムリード」の発生は許容されるものとします。

① Read Uncommitted
② Read Committed
③ Repeatable Read
④ Serializable

2. 正解:

正解: ③ Repeatable Read(反復可能読み取り)

3. 解説:「自分が触った本には、鍵をかける」世界

Repeatable Read(リピータブル・リード)は、その名の通り「同じ読み取り(Read)が反復(Repeat)できる」ことを保証するレベルです。

【どうやってノンリピータブルリードを防いでいる?】

・このレベルでは、自分が1回データを読み込むと、データベースはそのデータに対して「トランザクションが終わるまで、他人は変更しちゃダメ」という強力なロック(共有ロック)を維持します。
・そのため、他人が途中で値を書き換えてコミットしようとしても、自分の処理が終わるまで待たされることになります。
・結果として、自分が2回目に同じ場所を読んだとき、1回目と1の位まで完全に同じ値であることが保証されます。
【しかし、なぜ「ファントムリード」は防げない?】

・Repeatable Readがロックするのは、あくまで「自分が既に読み込んだ既存の行」だけです。
・まだ存在していない、空いているスペース(隙間)まではロックしていません。
・そのため、他人がその隙間に「新しい行をポロッと追加してコミットする」ことは禁止できません。その結果、2回目の範囲検索(例:歳が20歳以上の人を全件取得)をしたときに、1回目にはいなかったメンバーが幻(ファントム)のように現れてしまうのです。

1. 理解のコツ: 図書館の席に例えてみましょう。「自分が一度手に取って机に置いた本(既存のデータ)」は、席を立つまで誰にも触らせないようガッチリ抱え込んでいます(ノンリピータブル防止)。しかし、「隣の空いている席に、誰かが新しい本を新しくポンと置いていく(ファントムリード)」ことまでは防げない、というイメージです。
2. 試験対策の視点: 問題文に「リピータブルリード(非反復読み取り)は防止される」かつ「ファントムリードは許容される(発生する)」とあれば、100%この Repeatable Read が正解になります。英語名そのままで問題文に出ることが多いので、言葉の意味さえ掴めば一瞬で解けるサービス問題です。


4. まとめ

既存データの書き換えを絶対に許さない、非常に堅牢な分離レベルがRepeatable Readです。
※ちなみに、MySQL(InnoDB)という有名なデータベースでは、このRepeatable Readをさらに独自の技術で強化し、ファントムリードまで裏でこっそり防いでくれる仕組み(MVCC)が搭載されており、これがデフォルト設定になっています(実務知識として知っておくとカッコいい豆知識です!)。


【情報セキュリティ】言語の「癖」を見抜いて解読!「頻度分析」|情報処理問題1000本ノック

暗号文を1文字も読めなくても、使われている文字の「統計(カウント)」をとるだけで、パズルのように暗号が解けてしまう。古典暗号破りの王道、頻度分析を攻略しましょう。

1. 【 問題 】:古典暗号の解読技術

【 問題 】 単一換字暗号の解読に用いられる「頻度分析(Frequency Analysis)」の説明として、最も適切なものはどれでしょうか?

① 暗号化に使用された可能性のある鍵を、既知の単語リスト(辞書)を使って片っ端から試していく手法である。
② 暗号文の中に登場する各文字の出現確率(頻度)を数え上げ、平文(元の言語)の文字の出現確率の統計データと比較することで、文字の対応関係を推測する手法である。
③ 暗号文の一部と、それに対応する平文の一部のペア(既知平文)を分析することで、暗号化アルゴリズムそのものを特定する手法である。
④ 平文を構成するビット列に特定のノイズを混入させ、暗号化されたデータのパリティビットを検証することで鍵を特定する手法である。

2. 正解:

正解: ② 暗号文の中に登場する各文字の出現確率(頻度)を数え上げ、平文(元の言語)の文字の出現確率の統計データと比較することで、文字の対応関係を推測する手法である。

3. 解説:隠しきれない「言語の指紋」

頻度分析は、9世紀頃にアラビアの学者アル・キンディーによって考案された、世界最古の組織的暗号解読法です。人間が自然な言語(英語や日本語)で文章を書く限り、特定の文字が使われる割合には必ず「偏り」が生じるという性質を利用します。

【頻度分析の具体的なステップ(例:英語の暗号文)】

1. 元の言語の統計を知る
・一般的な英文では、最も多く使われる文字は「E」(約12%)、次いで「T」「A」「O」の順になることが統計的に分かっています。

2. 暗号文の中身をカウントする
・解読したい暗号文を調べたら、文字「X」が圧倒的に多く、全体の約12%を占めていたとします。

3. 謎を紐解く
・「ということは、この暗号文の『X』は、元の『E』のことだな!」と推測できます。これを手がかりに、2番目に多い文字、3番目に多い文字…と当てはめていくことで、1文字も読めなかった暗号がドミノ倒しのように解けてしまいます。
[ 選択肢のひっかけポイント ]
★ ①:これは「辞書攻撃(ディクショナリアタック)」の説明です。
★ ③:これは「既知平文攻撃(Known-Plaintext Attack)」の説明です。
★ ④:これは現代暗号に対する高度な数学的解読法(差分解読法など)の文脈に近く、古典的な頻度分析とは関係ありません。

1. 理解のコツ: 「声のトーンや話し方の癖」で人物を特定するようなものです。仮に顔をマスクで隠して(暗号化して)いても、その人が「〜じゃん」「ぶっちゃけ」といった口癖(頻度の偏り)を連発していれば、「あ、これはAさんだ」とバレてしまいます。文字を別の文字に変えただけの単一換字暗号は、この口癖(言語の癖)が丸見えになってしまうため、頻度分析に耐えられません。
2. 試験対策の視点: 「出現確率」「統計データと比較」「単一換字暗号の解読」というワードがあれば、迷わず頻度分析を選んでください。小説『黄金虫』や『踊る人形』などのミステリー作品でもトリックとして使われる有名な手法であり、セキュリティの歴史を問う問題として鉄板です。


4. まとめ

「言語が持つ文字の出現比率の偏りを利用して、暗号を破る統計的アプローチ」。これが頻度分析です。この頻度分析を突破(克服)するために、暗号の歴史は「1文字を毎回違う文字に化けさせる仕組み(多表換字暗号など)」へと進化していくことになります。



【情報セキュリティ】文字を1対1で置き換える!「単一換字暗号」|情報処理問題1000本ノック

暗号の歴史の出発点であり、文字の置き換えルールによって秘密を守る。しかし「言語の癖」によって解読されてしまう古典暗号、単一換字暗号を攻略しましょう。

1. 【 問題 】:古典暗号の仕組みと脆弱性

【 問題 】 暗号技術の一種である「単一換字暗号」に関する記述のうち、適切なものはどれでしょうか?

① 平文の文字の並び順(位置)を一定の規則で並び替えることによって暗号化を行う。
② アルファベットの各文字を、あらかじめ定めた別の1文字に1対1で置き換える方式であり、シーザー暗号もその一種である。
③ 暗号文に含まれる各文字の出現頻度を調べる「頻度分析」を用いても、解読することは不可能である。
④ 1文字ごとに異なる暗号化鍵(文字の対応表)を次々と切り替えて使用するため、現代のPCでも解読に膨大な時間がかかる。

2. 正解:

正解: ② アルファベットの各文字を、あらかじめ定めた別の1文字に1対1で置き換える方式であり、シーザー暗号もその一種である。

3. 解説:「A」はいつでも「X」になる

単一換字暗号(Monoalphabetic Cipher)は、文字そのものを別の文字に「換(か)える」方式です。鍵となるのは「どの文字をどの文字に変換するか」を記した1枚の対応表です。

【単一換字暗号の特徴と弱点】

■ 仕組み:1対1の固定変換
・例えば「A→X」「B→P」「C→M」というルールを決めたら、文章中のすべての「A」は例外なく「X」に変換されます。
・文字を3つ後ろにずらすことで有名な「シーザー暗号(カエサル暗号)」も、単一換字暗号の最もシンプルな一例です。

■ 致命的な弱点:頻度分析(ひんどぶんせき)
・文字を入れ替えただけなので、「元の言語が持つ文字の出現確率の偏り」がそのまま暗号文に残ってしまいます。
・例えば英語の文章では「e」や「t」が最も多く使われます。暗号文の中で一番多く登場する文字を数え上げれば、「これが元々の『e』だな」と推測され、パズルのように芋づる式に解読(頻度分析)されてしまいます。
[ 選択肢のひっかけポイント ]
★ ①:文字の位置を入れ替えるのは「転置(てんち)暗号」の説明です(換字とは対になる概念です)。
★ ③:文字の出現パターンがそのまま残るため、頻度分析に非常に弱いです。
★ ④:1文字ごとに対応表を切り替えるのは「多表(たひょう)換字暗号」の説明です。単一換字は1枚の対応表をずっと使い続けます。

1. 理解のコツ: 子供の頃に遊んだ「秘密の暗号表(あ→★、い→◆…)」と同じです。誰でも作れる手軽さがありますが、長い暗号文を作れば作るほど、文字の使い方の癖(特徴)がバレてしまうため、現代のコンピュータなら一瞬で破られてしまいます。
2. 試験対策の視点: 「文字を1対1で置き換える」「シーザー暗号」「頻度分析で解読できる」というキーワードがセットで出題されます。また、現代の共通鍵暗号(AESなど)の内部でも、この「換字(Sボックス)」と「転置(Pボックス)」という2つの仕組みを何重にも複雑に組み合わせることで、強固な暗号を作り出しています。


4. まとめ

「文字を別の文字へ固定で1対1に置き換える古典暗号」。これが単一換字暗号です。暗号としての歴史的価値だけでなく、現代暗号の基礎となる「データを形骸化させる(換字)」という重要な概念の原点として、試験に登場します。


【情報セキュリティ】誰?と何ができる?は違う!「認証」と「認可」|情報処理問題1000本ノック

情報セキュリティを学ぶ上で、避けて通れないのが「認証」と「認可」の区別です。言葉は似ていますが、役割は全く異なります。今回はその決定的な違いを攻略しましょう。

1. 【 問題 】:アクセス制御の基本

【 問題 】 情報セキュリティにおける「認証」と「認可」の説明として、適切なものはどれでしょうか?

① 認証は「本人であるか」を確認することであり、認可は「特定の操作を許可する権限」を与えることである。
② 認証は「特定の操作を許可する権限」を与えることであり、認可は「本人であるか」を確認することである。
③ 認証と認可は同じ意味であり、どちらもパスワードの入力によって完了するプロセスを指す。
④ 認証はシステムの「可用性」を高めるための手続きであり、認可は「機密性」を高めるための手続きである。

2. 正解:

正解: ① 認証は「本人であるか」を確認することであり、認可は「特定の操作を許可する権限」を与えることである。

3. 解説:「Who are you?」と「What can you do?」

この2つは独立した概念ですが、システムでは基本的に「まず認証して相手を特定し、その後に認可を行って権限を与える」という順番で処理されます。

【認証と認可の明確な違い】

■ 1. 認証(Authentication)
・目的:「あなたは誰(本人)か?」を確認する。
・手段:ID/パスワード、指紋や顔(生体認証)、ワンタイムパスワードなど。

■ 2. 認可(Authorization)
・目的:「あなたに何を許可するか(権限)?」を決める。
・手段:閲覧のみ/編集可能といった「アクセス権限(ACL)」の割り当て、管理者ロールの付与など。
[ 現実世界の身近な例:ホテルの宿泊 ]
認証:フロントで身分証を見せて「予約した本人」だと証明する手続き。
認可:渡された「ルームキー」。これにより、自分が予約した「301号室」のドアだけを開けられる(スイートルームや他人の部屋は開けられない)権限。

1. 理解のコツ: 英語のフレーズで覚えるのが最も確実です。認証は「Who are you?」、認可は「What can you do?」。この2文を頭に叩き込んでおけば、試験で絶対に迷わなくなります。
2. 試験対策の視点: 選択肢②のように、説明をあべこべ(逆)にして受験生を引っかける問題が定番です。また、近年は異なるWebサービス間で安全に「認可」の情報を渡すプロトコルである「OAuth(オーアース)」などの応用技術とも結びついて出題されます。


4. まとめ

「相手が誰かを確かめるのが認証」、「その相手に許可する行動を決めるのが認可」。これがアクセス制御の鉄則です。この2つが正しく組み合わさることで、初めて安全なセキュリティ環境が実現します。


【情報セキュリティ】バグや矛盾を許さない!「信頼性」|情報処理問題1000本ノック

情報セキュリティの7要素を解説するシリーズ、いよいよ最終回です!今回は、システムが期待通りに正しく機能し続けることを指す「信頼性」を攻略しましょう。

1. 【 問題 】:セキュリティの付加特性

【 問題 】 情報セキュリティの要素の中で、システムや処理が、意図した通りの動作や結果を一貫して出力し、不具合や矛盾が生じない特性を指すものはどれでしょうか?

① 真正性(Authenticity)
② 責任追跡性(Accountability)
③ 否認防止(Non-repudiation)
④ 信頼性(Reliability)

2. 正解:

正解: ④ 信頼性(Reliability)

3. 解説:処理の「正確さ」と「確実性」を担保する

信頼性とは、システムが勝手に誤作動を起こしたり、計算ミスをしたり、データの間違った書き換え(処理の矛盾)を起こしたりしない状態を指します。

【 情報セキュリティの7要素:総まとめ 】

[ 基本の3要素:CIA ]
1. 機密性 (C):漏洩防止。許可された人だけが使える。
2. 完全性 (I):改ざん防止。情報が正確で最新である。
3. 可用性 (A):停止防止。必要な時にいつでも使える。

[ 付加的な4要素 ]
4. 真正性:なりすまし防止。本人が作成したと証明できる。
5. 責任追跡性:ログの証拠。誰がいつ何をしたか追跡できる。
6. 否認防止:しらばっくれ防止。後から事実を否定できない。
7. 信頼性「処理の確実性」。意図した通りに正しく動作する。 ← ココ!

「意図した通りの動作や結果」「不具合がない」は、信頼性の定義です。
[ 可用性(Availability)との違いに注意! ]
可用性(A):システムが「稼働し続けている(止まらない)」こと。
信頼性(Reliability):稼働しているシステムが「正しい結果を出す(バグらない)」こと。
→ サーバーはずっと動いている(可用性は高い)けれど、計算結果が毎回バグだらけ(信頼性は低い)という状態があり得るため、試験では明確に区別されます。

1. 理解のコツ: 「ベテランの職人さん」をイメージしてください。いつも遅刻せずに出勤してくるのが「可用性」で、いざ仕事を頼んだら、絶対にミスなく完璧な製品を仕上げてくれるのが信頼性です。
2. 試験対策の視点: 「意図した通りの動作」「不具合や矛盾が生じない」「一貫した出力」という言葉が揃ったら信頼性が正解です。また、信頼性を測定する指標として「MTBF(平均故障間隔)」などの計算問題と結びつくこともあります。


4. まとめ

「システムや処理が、バグや矛盾なく期待通りの結果を出し続ける特性」。これが信頼性です。これで情報セキュリティの7要素(CIA + 4特性)がすべて出揃いました!それぞれの違いを網羅的に押さえて、試験での確実な得点源にしましょう。


【情報セキュリティ】「やってない」とは言わせない!「否認防止」|情報処理問題1000本ノック

情報セキュリティの7要素を解説するシリーズ。今回は、操作や取引が行われた事実を後から否定させない「否認防止」を攻略しましょう。

1. 【 問題 】:セキュリティの付加特性

【 問題 】 情報セキュリティの要素の中で、事象や行動が後から否定されないように、その発生を証明する特性を指すものはどれでしょうか?

① 真正性(Authenticity)
② 責任追跡性(Accountability)
③ 否認防止(Non-repudiation)
④ 信頼性(Reliability)

2. 正解:

正解: ③ 否認防止(Non-repudiation)

3. 解説:取引の「言い逃れ」を防ぐ絶対的な証拠

否認防止とは、電子取引やデータの送受信において、「確かにその操作が行われた」という客観的な事実を証明し、当事者が後から「そんなことは知らない」と主張するのを防ぐ状態です。

【 情報セキュリティの7要素:再掲 】

[ 基本の3要素:CIA ]
1. 機密性 (C):漏洩防止。
2. 完全性 (I):改ざん防止。
3. 可用性 (A):停止防止。

[ 付加的な4要素 ]
4. 真正性:なりすまし防止。本人が作成したと証明できる。
5. 責任追跡性:ログの証拠。誰がいつ何をしたか追跡できる。
6. 否認防止「しらばっくれ防止」。後から事実を否定できない。 ← ココ!
7. 信頼性:意図した通りに正しく動作する。

「後から否定されないように発生を証明する」は、否認防止の定義です。
[ 具体的な対策例 ]
デジタル署名(公開鍵暗号の応用):送信者の秘密鍵で署名するため、「本人がそのメッセージを送った」という動かぬ証拠になり、否認を防げます。
タイムスタンプ(タイムスタンプ局の利用):ある特定の時刻に、そのデータが確かに存在していたことを第三者機関が証明します。
ブロックチェーン:取引履歴がネットワーク全体で共有され改ざんできないため、取引の事実を後から否認することが不可能です。

1. 理解のコツ: 現実世界の「契約書と実印(またはサイン)」をイメージしてください。実印が押された契約書が残っていれば、後から「私はそんな契約結んでいません」と言い張っても通用しませんよね。この法的・客観的な証拠能力をデジタル上で持たせるのが否認防止です。
2. 試験対策の視点: 「後から否定されない」「発生(事実)を証明する」「しらばっくれ防止」というフレーズがあれば否認防止(ノンレピュディエーション)が正解です。特に「デジタル署名」の目的としてセットで出題されるケースが非常に多いです。


4. まとめ

「事象や行動が後から否定されないように、その発生を証明する特性」。これが否認防止です。インターネット上の電子商取引(ネットショッピングや電子契約)において、ビジネスを安全に成立させるための根幹となる要素です。


【情報セキュリティ】行動の足跡を見逃さない!「責任追跡性」|情報処理問題1000本ノック

情報セキュリティの7要素を解説するシリーズ。今回は、システム内での行動を後から辿れるようにする「責任追跡性」を攻略しましょう。

1. 【 問題 】:セキュリティの付加特性

【 問題 】 情報セキュリティの要素の中で、ある実体の動作が、その動作から元となる実体まで一意に追跡できることを確実にする特性を指すものはどれでしょうか?

① 真正性(Authenticity)
② 責任追跡性(Accountability)
③ 否認防止(Non-repudiation)
④ 信頼性(Reliability)

2. 正解:

正解: ② 責任追跡性(Accountability)

3. 解説:デジタル上の「指紋」と「足跡」を残す

責任追跡性とは、システムで発生したイベント(ログイン、ファイル操作、設定変更など)を、それを行ったユーザーやプログラムと正確に紐づけて後から検証できる状態のことです。

【 情報セキュリティの7要素:再掲 】

[ 基本の3要素:CIA ]
1. 機密性 (C):漏洩防止。
2. 完全性 (I):改ざん防止。
3. 可用性 (A):停止防止。

[ 付加的な4要素 ]
4. 真正性:なりすまし防止。
5. 責任追跡性「ログの証拠」。誰がいつ何をしたか一意に追跡できる。 ← ココ!
6. 否認防止:しらばっくれ防止。後から事実を否定できない。
7. 信頼性:意図した通りに正しく動作する。

「一意に追跡できる」「動作の元を辿れる」は、責任追跡性の定義です。
[ 具体的な対策例 ]
詳細なアクセスログの取得:操作日時、IPアドレス、実行ユーザーIDなどの履歴を厳重に記録する。
アカウントの個別化:1つのID(例:admin)を複数人で使い回さず、1人1IDを徹底することで「動作の元」を特定可能にする。
タイムスタンプの同期(NTP):複数の機器でログの時間を一致させ、一連の行動のタイムラインを正しく追跡できるようにする。

1. 理解のコツ: 防犯カメラが回っている「お店」をイメージしてください。誰かが商品を動かしたとき、カメラの映像(ログ)を巻き戻せば、どの人物(実体)が動かしたのかがバッチリ特定できますよね。この「犯人探しや原因究明ができる状態」が責任追跡性です。
2. 試験対策の視点: 「一意に追跡できる」「元となる実体まで辿れる」「ログの管理」という表現が出たら「責任追跡性(アカウンタビリティ)」を選びましょう。次回解説する「否認防止(後からやってないと言わせない)」と非常に深い関係にあります。


4. まとめ

「システム内の行動を、その実行者まで確実に遡れる状態」。これが責任追跡性です。万が一のインシデント(セキュリティ事故)発生時に、被害の拡大を防ぎ、迅速な原因究明を行うために不可欠な要素です。


【開発技術】変化のルールを可視化!「状態遷移図(ステートマシン図)」|情報処理問題1000本ノック

システムやオブジェクトが「今どんな状態で、何が起きたら次の状態へ移るのか」。その振る舞いのルールを記述する図法を攻略しましょう。

1. 【 問題 】:UMLによる振る舞いの表現

【 問題 】 UML(Unified Modeling Language)において、オブジェクトが作成されてから破棄されるまでの間に、外部からのイベントや時間の経過によって、その状態がどのように変化するかを表現する図はどれでしょうか?

① クラス図
② ユースケース図
③ 状態遷移図(ステートマシン図)
④ シーケンス図

2. 正解:

正解: ③ 状態遷移図(ステートマシン図)

3. 解説:「きっかけ」と「移り変わり」を追う

状態遷移図は、システムの「動的な側面」を表現します。特に組込みシステムや、複雑な画面遷移、注文ステータスの管理などの設計に威力を発揮します。

【構成要素のキーワード】

■ 状態(State)
・オブジェクトが置かれている状況(例:停止中、実行中、待機中)。角丸の長方形で表します。

■ イベント(Event)
・変化を引き起こす「きっかけ」(例:ボタン押下、タイムアウト)。

■ 遷移(Transition)
・ある状態から別の状態へ移ること。矢印で表します。
[ よく出るUMLの分類 ]
構造図:クラス図など(静的な形を表す)。
振る舞い図:状態遷移図、アクティビティ図など(時間の経過や動きを表す)。

1. 理解のコツ: 「全自動洗濯機」を想像してください。「給水」状態のときに「満水」というイベントが起きると「洗い」状態へ移ります。このように、勝手に別の状態へ飛ばないための「交通整理の地図」が状態遷移図です。
2. 試験対策の視点: 「イベント」「時間経過」「状態の変化」という言葉が出たら状態遷移図(ステートマシン図)が正解です。一方、メッセージのやり取りを時系列で表す「シーケンス図」との違いを問われることが多いので注意しましょう。


4. まとめ

「オブジェクトの状態変化のルールを記述した図」。これが状態遷移図です。不具合の少ない堅牢なシステムを設計するために、あらゆる「状態」と「遷移条件」を網羅することは、エンジニアにとって非常に重要なスキルです。


【情報セキュリティ】なりすましを許さない!「真正性」|情報処理問題1000本ノック

情報セキュリティの7要素を解説するシリーズ。今回は、利用者や情報が「主張通り本物」であることを証明する「真正性」を攻略しましょう。

1. 【 問題 】:セキュリティの付加特性

【 問題 】 情報セキュリティの要素の中で、利用者、プロセス、システム、情報などが、主張通り本人(本物)であることを確実にする特性を指すものはどれでしょうか?

① 真正性(Authenticity)
② 責任追跡性(Accountability)
③ 否認防止(Non-repudiation)
④ 信頼性(Reliability)

2. 正解:

正解: ① 真正性(Authenticity)

3. 解説:その「自称」は本当か?を検証する

真正性とは、情報の作成者やアクセスしようとしている人が「偽物ではない」と証明されている状態です。

【 情報セキュリティの7要素:再掲 】

[ 基本の3要素:CIA ]
1. 機密性 (C):漏洩防止。
2. 完全性 (I):改ざん防止。
3. 可用性 (A):停止防止。

[ 付加的な4要素 ]
4. 真正性「なりすまし防止」。本人が作成・アクセスしたと証明できる。 ← ココ!
5. 責任追跡性:誰が何をしたか追跡できる。
6. 否認防止:後から事実を否定できない。
7. 信頼性:意図した通りに正しく動作する。

「本人が作成したことを証明する」「なりすましではない」は、真正性の定義です。
[ 具体的な対策例 ]
デジタル署名:メールの送信者が「自称・社長」ではなく、本当に社長本人であることを証明する。
多要素認証:生体認証などを組み合わせ、ログインしているのが本人であることを確実にする。
デジタル証明書:アクセスしているWebサイトが「本物の銀行」であることを証明する。

1. 理解のコツ: ホテルのチェックインをイメージしてください。「私は〇〇です」と名乗るだけでは不十分で、免許証(真正性の証明)を見せて初めて鍵がもらえますよね。ITの世界でも、デジタル署名などが免許証の役割を果たします。
2. 試験対策の視点: 「主張通り本人であること」「なりすまし防止」「本物であることの確実性」というキーワードが出たら「真正性」を選びましょう。完全性(中身が正しい)と真正性(作成者が正しい)を混同しないように注意です。


4. まとめ

「相手や情報が、偽物ではなく本物であると保証されている状態」。これが真正性です。ゼロトラスト(何も信じない)という現代のセキュリティの考え方において、最も重要視されている要素の一つです。