ITパスポート 2024年 問77
問題文
出所が不明のプログラムファイルの使用を避けるために、その発行元を調べたい。このときに確認する情報として、適切なものはどれか。
選択肢
ア:そのプログラムファイルのアクセス権
イ:そのプログラムファイルの所有者情報
ウ:そのプログラムファイルのデジタル署名(正解)
エ:そのプログラムファイルのハッシュ値
🔒 解説は解答すると表示されます
出所が不明のプログラムファイルの発行元を調べるときに確認する情報【ITパスポート 解説】
正解の理由
出所(発行元)を確認するには、ファイルの「誰が作ったか」を証明する情報が必要です。これを示すのがデジタル署名(digital signature:ファイルの作成者や配布元を暗号的に証明する仕組み)です。デジタル署名は発行元の身元を証明すると同時に、配布後に改ざんされていないか(完全性)も確認できます。したがって選ぶべきは ウ の「デジタル署名」です。
解法ステップ
- 問題の目的を確認:発行元(誰が作ったか)を調べたい。
- 各選択肢が何を示すかを短く考える。
- ア:アクセス権(access permissions)は「誰がそのファイルを扱えるか」。発行元とは無関係。
- イ:所有者情報はファイルを所有するユーザー名。配布元の証明にはならない。
- ウ:デジタル署名は発行元の身元を証明する仕組み。
- エ:ハッシュ値(hash value)はファイルの「指紋」。改ざん検出に有効だが単独では発行元を示さない。
- 発行元を示すのはデジタル署名だと判断して ウ を選ぶ。
- 実務的には、署名の発行者名や証明書の発行元(CA)を確認する。必要なら証明書の有効性(失効リストなど)も確認する。
(実際に署名を確認する方法の例)
- Windows:ファイル右クリック → プロパティ → デジタル署名タブ。
- macOS:ターミナルで
codesign -dv --verbose=4 ファイル名や Gatekeeper を確認。 - Linux:配布元がGPG署名を付けていることが多い。提供ページの手順に従う。
選択肢別の誤答解説
-
ア: そのプログラムファイルのアクセス権(access permissions)
- 説明:誰がそのファイルを読み書き・実行できるかを示す情報です。
- なぜ誤りか:ローカルの扱い方を決める情報で、作成者(発行元)情報ではありません。
-
イ: そのプログラムファイルの所有者情報(owner information)
- 説明:ファイルシステム上の「所有者ユーザー名」です。
- なぜ誤りか:例えばダウンロードしたファイルはダウンロードしたユーザーが所有者になるため、発行元とは一致しません。ローカルのメタデータにすぎません。
-
ウ: そのプログラムファイルのデジタル署名(digital signature)
- 説明:公開鍵暗号を使って発行元がファイルに署名したデータ。署名に含まれる証明書で発行元を特定できます。
- なぜ正しいか:署名は作成者(あるいは配布者)を証明する仕組みで、改ざんの有無も検出できます。
-
エ: そのプログラムファイルのハッシュ値(hash value)
- 説明:ファイルの内容から作る短い固定長の値(指紋)。同じ内容なら同じハッシュになります。
- なぜ誤りか:ハッシュは「内容が変わっていないか」の検査には使えますが、ハッシュ自体から誰が作ったかは分かりません。発行元が別途そのハッシュを公式に公開していて、その公開先を信頼できれば発行元の確証に近づきますが、ハッシュだけでは発行元の証明になりません。
よくある誤解
-
「ハッシュ値があれば発行元が分かる」
- 誤解の内容:ハッシュが一致すれば発行元のファイルだと考える。
- 正しい理解:ハッシュは改ざん検出に有効ですが、そのハッシュをどこから得たか(公式サイトか不正な場所か)を確かめないと発行元の証明にはならない。
-
「ファイルの所有者欄が作成者を示す」
- 誤解の内容:ファイルシステムの所有者が配布元だと思う。
- 正しい理解:所有者はファイルを扱うローカルユーザーを示すだけで、配布元情報ではない。
-
「デジタル署名があれば絶対に安全」
- 誤解の内容:署名付き=無条件で安全と考える。
- 正しい理解:署名は信頼できる証明書か、署名者が正当か、証明書が失効していないかなども確認する必要があります。盗まれた証明書で署名されているリスクもゼロではありません。
補足コラム
- デジタル署名の仕組み(簡単に)
- 発行元は自分の秘密鍵でファイルに署名します。検証側は公開鍵を使って署名を確認します。公開鍵は通常、証明書(certificate)という形で配布され、証明書は信頼された認証局(CA:Certificate Authority)によって発行されていることが望まれます。これにより「この企業がこのファイルに署名した」と連鎖的に信頼できる仕組みが作られます。
- 実務上の注意点
- 署名が無ければ、公式サイトからダウンロードするか、配布元が公式に公開したハッシュをHTTPSで確認するなどの追加確認が必要です。
- 署名付きでも、署名者や証明書の情報(会社名、発行日時、有効期限、失効状況)を確認してください。タイムスタンプ(timestamp)があれば、証明書期限切れ後も署名が有効だった証拠になります。
FAQ
Q1: デジタル署名の確認方法が分かりません。どうすればいいですか?
A1: まずはOSの簡単な確認機能を使います。Windowsならファイルを右クリック → プロパティ → デジタル署名タブ。macOSやLinuxは配布元の説明に従うか、ターミナルコマンド(codesignやgpg)を使います。公式の手順を参照するのが安全です。
A1: まずはOSの簡単な確認機能を使います。Windowsならファイルを右クリック → プロパティ → デジタル署名タブ。macOSやLinuxは配布元の説明に従うか、ターミナルコマンド(codesignやgpg)を使います。公式の手順を参照するのが安全です。
Q2: ハッシュが公式の値と一致すれば安全ですか?
A2: ハッシュ一致は「改ざんされていない」ことを示しますが、公式サイト自体が改ざんされている可能性もあります。可能ならハッシュはHTTPSで保護された公式ページから取得するか、デジタル署名で確認してください。
A2: ハッシュ一致は「改ざんされていない」ことを示しますが、公式サイト自体が改ざんされている可能性もあります。可能ならハッシュはHTTPSで保護された公式ページから取得するか、デジタル署名で確認してください。
Q3: 署名が自己署名(self-signed)でした。どう判断すればいい?
A3: 自己署名は第三者の認証がないため信頼度は低くなります。企業や有名ベンダーなら公開鍵の配布方法や公式な証明手段があるはずです。自己署名だけで実行するのは避けてください。
A3: 自己署名は第三者の認証がないため信頼度は低くなります。企業や有名ベンダーなら公開鍵の配布方法や公式な証明手段があるはずです。自己署名だけで実行するのは避けてください。
関連キーワード: デジタル署名、コード署名、ハッシュ値、証明書、公開鍵暗号、CA、タイムスタンプ

\ せっかくなら /
ITパスポートを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

