スポンサーリンク

【応用情報技術者試験】セキュリティの基礎を固めよう!      ~第4章~改ざん防止に関する技術

情報セキュリティは、個人や企業が保有する機密情報、個人情報、知的財産などを、不正アクセス、漏洩、改ざん、ウイルス感染などの脅威から守るために非常に重要です。適切な対策を怠ると、信用の失墜、金銭的な損失、法的責任、事業継続の危機につながるリスクがあります。情報セキュリティは、事業継続と企業の信頼維持に不可欠な要素のためしっかり学習しておきましょう。

画像参照:https://group.gmo/security/security-all/information-security/

メッセージダイジェスト関数

メッセージダイジェスト関数は、ハッシュ関数の一種です。また、一方向ハッシュ関数とも呼ばれ、任意の文字列から固定長の擬似乱数(ハッシュ値)を生成するアルゴリズムのことを指します。メッセージダイジェスト関数は、次のような特徴を持っています。

  • 入力値のサイズと関係なく一定サイズの出力値が得られる。
  • 入力が異なれば、同じ出力値が出る可能性は極めて少ない。
  • 出力値から入力を求めることが極めて難しい。
  • すでに与えられている出力値と同じ出力値となる別の入力を見つけることが極めて難しい。

ポイント
メッセージダイジェスト関数を利用する場合、出力値が同じであれば入力は同じと判断できるため、出力値は文書の「指紋」の役割を果たします。

画像参照:https://45kaku.com/itpassport_text_63-05/

デジタル署名

デジタル署名は、メッセージダイジェストを署名者の秘密鍵で暗号化したものです。
デジタル署名は、次の手順で付与します。

付与手順

  1. メッセージをメッセージダイジェスト関数に入力してメッセージダイジェストを作成する。
  2. メッセージダイジェストを署名者Aの秘密鍵で暗号化し、デジタル署名とする。
  3. メッセージとデジタル署名をまとめて1ファイルとして送信する。

デジタル署名が付与されている文書を受け取った人は、デジタル署名を検証することで下記内容を満たしていることを確認する。

  • 内容が第三者によって改ざんされていないこと
  • 文書の作成者が署名を行った本人であること

検証手順

  1. ファイルからメッセージ部分を取り出して、メッセージダイジェスト関数に入力してメッセージダイジェストを作成する。
  2. ファイルからデジタル署名を取り出して、署名者Aの公開鍵で復号しメッセージダイジェストを入手する。
  3. 1のメッセージダイジェストと2のメッセージダイジェストを比較し、一致することを確認する。

3の工程でメッセージダイジェストを比較した際に、同じであれば改ざんされていない正しい文書と言えます。しかし、比較した際に異なっていた場合、文書が改ざんされているか文書の作成者が署名を行った本人でないことになります。正しい文書ではないため、再度Aさんに文書を送り直してもらうようにしましょう。

デジタル署名を付与してもメッセージが暗号化されるわけではありません。メッセージを第三者に読まれないようにするためには、デジタル署名を付与した上で、さらにメッセージを暗号化する必要があります。

公開鍵証明書と認証局(CA)

Aさんのデジタル署名を検証するには、Aさんの公開鍵が必要です。公開鍵のためAさんからもらうことが可能なものの、Aさんだと思っていた人物が実はBさんであり、そのAさんになりすましたBさんから偽物の公開鍵をもらってしまう可能性があります。

上記のような状況を避けるために、中立的な第三者が公開鍵の正当性を保証する必要があります。これから紹介する「公開鍵証明書」および「認証局(CA)」が公開鍵の正当性を保証する技術および組織になります。

公開鍵証明書

公開鍵証明書とは、一般的に「公開鍵」とその所有者の情報を結びつける「証明書」という、暗号技術を指す名称です。 ネットワーク上におけるユーザー同士の通信では、第三者が当事者になりすますリスクを伴います。 そのため身元が証明されたユーザーのみで通信ができるよう、物理的な鍵をかけるようにデータを暗号化する必要があります。

認証局(CA)

認証局(CA)とは、ウェブサイト、企業、個人に対して電子証明書を発行する、信頼されている組織です。 TLS/SSL 証明書を発行するとき、認証局はウェブサイトのドメインを認証し、証明書のタイプによってはその運営元組織も認証します。

SSL/TLS証明書(サーバー証明書)
Webサイトの運営者情報の「実在証明」と通信の「暗号化」を行う電子証明書です。

よく出る問題

■ 典型問題①:署名の目的はどれか

❓問題例

デジタル署名の目的として適切なものはどれか。

⭕️正解

  • 本人確認(認証)
  • 改ざん検知(完全性)
  • 否認防止

👉 ポイント

  • 機密性は含まれない(ここが超頻出のひっかけ)

■ 典型問題②:処理の流れ

❓問題例

送信者が行う処理として正しいものはどれか。

⭕️正解の流れ

  1. メッセージをハッシュ化
  2. ハッシュ値を秘密鍵で暗号化(=署名)

👉 受信側

  • 公開鍵で復号 → ハッシュ比較

👉 ポイント

  • 「秘密鍵で暗号化=署名」
  • 「公開鍵で検証」

■ 典型問題③:どの鍵を使うか

❓問題例

署名の生成・検証に使う鍵の組み合わせはどれか。

処理
署名作成秘密鍵
署名検証公開鍵

👉 ポイント

  • ここは丸暗記レベルで頻出

■ 典型問題④:問題点を問う

❓問題例

デジタル署名の課題として適切なものはどれか。

⭕️よくある正解

  • 秘密鍵の漏えいリスク
  • 公開鍵の正当性保証が必要

👉 ポイント

  • 「万能ではない」ことを問う問題

■ 典型問題⑤:公開鍵の信頼性

❓問題例

公開鍵が正しいことを保証する仕組みはどれか。

⭕️正解

  • 認証局(CA)
  • 電子証明書
  • PKI

PKI(Public Key Infrastructure:公開鍵暗号基盤)
インターネット上で安全な通信を行うための技術基盤です。公開鍵と秘密鍵のペア、および電子証明書を用いて、「誰が」「何を」送信したかを認証し、通信の暗号化によって盗聴・改ざん・なりすましを防ぎます。 

👉 ポイント

  • 「なりすまし防止=証明書」

■ 典型問題⑥:暗号との違い

❓問題例

デジタル署名と暗号化の違いはどれか。

項目デジタル署名暗号化
目的認証・完全性機密性
鍵の使い方秘密鍵→公開鍵公開鍵→秘密鍵

👉 ポイント

  • 目的の違いを問う問題は超頻出

試験で狙われる「ひっかけ」

よく落とされるポイント👇

  • 「署名=暗号化」→ ❌
  • 「公開鍵で署名」→ ❌
  • 「機密性を保証」→ ❌
  • 「公開鍵はそのまま信用できる」→ ❌

超重要まとめ(これだけ覚える)

  • 署名の役割 → 本人確認・改ざん防止・否認防止
  • 仕組み → ハッシュ+秘密鍵
  • 注意点 → 公開鍵の信頼性(証明書)

ワンポイント(得点差がつく)

応用情報では少し踏み込んで👇

CRL(Certificate Revocation List:証明書失効リスト)
認証局(CA)が有効期限内のデジタル証明書(SSL/TLS等)を失効させた場合に、そのシリアル番号と失効日をまとめたリストです。

OCSP(Online Certificate Status Protocol)
デジタル証明書(SSL/TLSなど)が有効期限内に失効していないか、リアルタイムで確認する通信プロトコルです。

コメント