ITパスポート 令和6年度 問77:securityに関する問題
出所が不明のプログラムファイルの使用を避けるために、その発行元を調べたい。このときに確認する情報として、適切なものはどれか。
- aそのプログラムファイルのアクセス権
- bそのプログラムファイルの所有者情報
- cそのプログラムファイルのデジタル署名正答
- dそのプログラムファイルのハッシュ値
AI解説(初心者・標準・上級)
理解度に合わせて3レベルの解説を無料で読めます。
答えは c「デジタル署名」 です。
手紙に“本人のサイン”がついていれば「確かにこの人が書いた」と分かりますよね。プログラムにも同じように、作った会社が電子的なサインをつけられます。これがデジタル署名です。これを見れば「どこの誰が作ったか(発行元)」と「途中で中身がすり替えられていないか」が分かるので、あやしいファイルを避けられます。
👉 覚え方:「署名=サイン=作った人が分かる」。
ほかの選択肢:a アクセス権=誰が開けるか読めるかの権限(ドアの鍵みたいな)/b 所有者情報=今このファイルを持っている人で、作った会社とは限らない/d ハッシュ値=中身が変わってないかの“指紋”だが、それだけでは誰が作ったかは分からない。
なぜこれが正解か
正解は c デジタル署名。デジタル署名は発行元(作成者)が自分の秘密鍵で署名し、利用者は対応する公開鍵(認証局が発行した証明書に含まれる)で検証する。これにより「誰が発行したか(発行元の真正性)」と「改ざんされていないか(完全性)」の両方を確認できる。出所不明プログラムの発行元を調べるという目的に直接合致する。
各選択肢の解説
- a アクセス権:そのファイルを誰が読み書き実行できるかの権限設定。発行元とは無関係。
- b 所有者情報:OS上でファイルを所有するユーザー。作成・配布した発行元を示すとは限らない。
- d ハッシュ値:改ざん検知用の値。中身が変わっていないかは分かるが、誰が作ったかは特定できない。
覚え方・ひっかけ注意
ハッシュ値(d)と混同しやすい。「ハッシュ=改ざん検知のみ/署名=発行元+改ざん検知の両方」と整理する。発行元を知りたい問題なら答えはデジタル署名。
理論的背景
デジタル署名(Digital Signature)は非対称暗号(公開鍵暗号)を応用したファイル発行元認証・完全性検証の仕組みである。署名生成プロセス:発行者はファイルのハッシュ値(SHA-256等のダイジェスト)を生成し、自身の秘密鍵で暗号化したものを「デジタル署名」としてファイルに添付する。検証プロセス:受信者は発行者の公開鍵で署名を復号してハッシュ値Aを得る。次に受信ファイルから独自にハッシュ値Bを計算し、A=Bであれば「この署名の持ち主が生成したファイルであり、改ざんされていない」と確認できる。コードサイニング(Code Signing)はソフトウェアにデジタル署名を付与する仕組みで、Microsoftの「Windows Authenticode」・AppleのGatekeeper・Android APK署名・Linux RPM/DEB署名として各プラットフォームに実装されている。発行元がCA(認証局)が発行したコードサイニング証明書を取得することで、ユーザーはOSによる検証を通じて発行者の実在性と改ざんなしを確認できる。
実務での使われ方
コードサイニングはサプライチェーンセキュリティの重要な防御層として機能する。2020年のSolarWinds攻撃では正規の署名付きアップデートにマルウェアが埋め込まれたことで問題の複雑性が明らかになり、現在ではコードサイニング証明書の管理強化(HSM:Hardware Security Moduleでの秘密鍵保護・短有効期間証明書への移行)が求められている。DevSecOpsパイプラインでは、CIビルド成果物(コンテナイメージ・バイナリ)の署名を自動化しSBOM(Software Bill of Materials:ソフトウェア部品表)と組み合わせた信頼の連鎖(Supply Chain Trust)を構築する実践が普及している。Sigstore(Google・RedHat・Purdue大学共同プロジェクト)はオープンソースのコード署名インフラとして急速に採用が進み、npm・PyPI・Homebrewなどのパッケージマネージャーで採用されつつある。
試験での位置づけ
デジタル署名・コードサイニングはITパスポートの「テクノロジ系/セキュリティ(認証・証明)」で頻出の重要テーマ。本問の「発行元確認」という用途を正確にデジタル署名と結びつけることが問われており、他の選択肢(アクセス権・所有者情報・ハッシュ値)との役割の違いを正確に理解していることが必要。近年の傾向として、単なる「デジタル署名とは何か」を問うだけでなく、「どの目的のためにどの仕組みを使うか」という用途ベースの問題形式が増加している。基本情報技術者(FE)では署名生成・検証の数学的プロセス(RSA署名・ECDSA署名)・証明書チェーン(Root CA→中間CA→End-entity)・証明書失効(CRL・OCSP)まで問われる。
選択肢の発展補足
選択肢aのアクセス権(ファイルパーミッション:読み取り/書き込み/実行権限)はファイルシステムレベルでOSが管理する操作制限であり、誰がファイルを実行できるかを制御するが発行元の正当性は保証しない。選択肢bの所有者情報(ファイルオーナー)はOSが記録するファイル所有ユーザーのメタデータであり、改ざんや偽装が容易なため信頼性は低い。選択肢dのハッシュ値はファイルの完全性(改ざん有無)検証には使えるが、発行元の正当性(誰が作ったか)は保証しない——ハッシュ値自体が攻撃者によって偽造される可能性があるため。SHA-256ハッシュによるファイル整合性検証(チェックサム)とデジタル署名の根本的な違いは「発行元の身元保証があるかどうか」であり、この区別が本問の核心。発展として、Merkleツリー(ハッシュツリー)を使ったブロックチェーンやGit(コミットハッシュの連鎖)はハッシュを利用した改ざん検知の別応用形態として理解しておくと実務・上位資格に有用。
出典:IPA(情報処理推進機構)公式 ITパスポート試験 令和6年度 問77/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。