情報セキュリティマネジメント試験 暗号・認証技術 完全解説(PKI・TLS・多要素認証)
暗号技術と認証技術は、情報セキュリティマネジメント試験(SG)で必ず出題される最重要テーマです。 「どの鍵を使うのか」「誰が何を目的に使うのか」を整理して理解することが、 混乱なく正解できる近道です。PKI・TLS・多要素認証まで体系的に解説します。
1. 暗号方式の2分類
暗号方式は「鍵の使い方」によって大きく2種類に分類されます。 それぞれの特徴・メリット・デメリットを比較表で整理しましょう。
| 項目 | 共通鍵暗号 | 公開鍵暗号 |
|---|---|---|
| 鍵の種類 | 暗号化と復号で同じ鍵を使用 | 公開鍵(暗号化)と秘密鍵(復号)のペア |
| 処理速度 | 高速(大量データに適する) | 低速(少量データ向き) |
| 鍵配送問題 | あり(安全に鍵を相手に渡すのが困難) | なし(公開鍵は誰に配ってもよい) |
| 鍵の数 | n人が通信する場合 n(n-1)/2 個の鍵が必要 | 1人につき公開鍵・秘密鍵の2つのみ |
| 代表的な方式 | AES(128/192/256bit)・DES(旧来・現在は非推奨) | RSA・楕円曲線暗号(ECC) |
| 主な用途 | データの一括暗号化・ファイル暗号化 | 鍵交換・デジタル署名 |
ハイブリッド暗号方式
実際のTLS/HTTPS通信では、両方式の長所を組み合わせたハイブリッド暗号方式が使われています。 まず公開鍵暗号を使って共通鍵(セッション鍵)を安全に共有し、 その後の大量データのやり取りは高速な共通鍵暗号で行います。 「鍵交換=公開鍵、データ通信=共通鍵」と覚えましょう。
2. ハッシュ関数
ハッシュ関数とは、任意の長さのデータを固定長の値(ハッシュ値・メッセージダイジェスト)に変換する関数です。 暗号化とは異なり、元データへの復元(復号)ができない一方向関数です。
ハッシュ関数の3つの性質
- 一方向性:ハッシュ値から元のデータを復元することが計算上不可能
- 衝突困難性:同じハッシュ値を持つ異なるデータを見つけることが計算上困難
- 固定長出力:入力の長さに関わらず、常に同じ長さのハッシュ値が出力される
代表的なハッシュ関数はSHA-256(出力256bit)です。SHA-1・MD5は脆弱性が発見されており現在は非推奨です。 用途は、デジタル署名(メッセージの指紋として利用)、パスワード保存、ファイルの改ざん検知などです。
ソルト付きハッシュ
パスワードをハッシュ化して保存する場合、同じパスワードは同じハッシュ値になるため、 事前計算したハッシュ値のリスト(レインボーテーブル)による攻撃が有効になります。 これを防ぐため、パスワードごとにランダムな文字列(ソルト)を付加してからハッシュ化します。
3. デジタル署名とPKI
デジタル署名の仕組み
デジタル署名は「誰が作ったか(真正性)」「改ざんされていないか(完全性)」「後で否定できないこと(否認防止)」を保証します。
- 送信者はメッセージのハッシュ値を計算する
- 送信者は自分の秘密鍵でハッシュ値を暗号化する(これが署名)
- 受信者は送信者の公開鍵で署名を復号してハッシュ値を取り出す
- 受信者が自分でメッセージのハッシュ値を計算し、両者を比較して一致すれば正当と判断する
| 目的 | 使う鍵 | 誰が使うか |
|---|---|---|
| 暗号化(機密性の確保) | 受信者の公開鍵 | 送信者 |
| 復号 | 受信者の秘密鍵 | 受信者 |
| デジタル署名(作成) | 送信者の秘密鍵 | 送信者 |
| デジタル署名(検証) | 送信者の公開鍵 | 受信者 |
PKI・認証局
PKI(Public Key Infrastructure:公開鍵基盤)は、デジタル証明書を使って公開鍵の正当性を保証するための仕組みです。
- 認証局(CA:Certificate Authority):デジタル証明書を発行する信頼できる第三者機関
- デジタル証明書(電子証明書):公開鍵と所有者情報をCAの署名で保証した文書
- CRL(証明書失効リスト):失効したデジタル証明書のリスト
- OCSP(Online Certificate Status Protocol):証明書の失効状態をリアルタイムで確認するプロトコル
- タイムスタンプサービス:電子文書が特定の時刻に存在していたことを証明するサービス
4. 通信路の暗号化(TLS・VPN)
TLS/HTTPS
TLS(Transport Layer Security)は、インターネット上の通信を暗号化するプロトコルです。 WebブラウザとサーバーがHTTPS通信を行う際に使用されます。TLSハンドシェイクでは:
- サーバーがデジタル証明書(サーバ証明書)を送付してサーバの正当性を証明
- クライアントがサーバ証明書をCAのルート証明書で検証
- ハイブリッド暗号方式で共通鍵(セッション鍵)を安全に共有
- 共通鍵暗号(AES等)で通信内容を暗号化して通信
TLSの現行バージョンはTLS 1.3で、TLS 1.0・1.1は脆弱性のため廃止されています。
VPN(Virtual Private Network)
インターネットなどの公衆ネットワーク上に、暗号化によって仮想的な専用線を構築する技術です。
| 方式 | 説明 | 特徴 |
|---|---|---|
| IPsec VPN | ネットワーク層(IP層)でパケットを暗号化 | 拠点間接続に多用。すべての通信を対象にできる |
| TLS VPN(SSL VPN) | TLSを使ってアプリケーション層で暗号化 | ブラウザだけで利用可能。リモートアクセスに多用 |
5. 認証技術(多要素認証・OTP・FIDO2)
認証の3要素
認証要素は性質の異なる3種類に分類されます。
- 知識(Something you know):パスワード・PIN・秘密の質問
- 所持(Something you have):ICカード・スマートフォン・ハードウェアトークン
- 生体(Something you are):指紋・顔・静脈・虹彩
多要素認証(MFA:Multi-Factor Authentication)とは、これら異なる種類の要素を2つ以上組み合わせた認証方式です。 パスワード(知識)+スマートフォン認証(所持)の組み合わせが代表例です。 同じ種類を2つ使うのは多要素認証ではなく「多段階認証」です。
ワンタイムパスワード(OTP)
一度しか使えないパスワードで、漏えいしても使い回しができないため安全性が高い認証方式です。
- TOTP(Time-based OTP):時刻を基にOTPを生成。30秒ごとに変わる。Google Authenticatorなどが採用
- HOTP(HMAC-based OTP):カウンタ値を基にOTPを生成。ハードウェアトークンなどで利用
FIDO2・パスキー
FIDO2(Fast IDentity Online 2)は、パスワードに依存しない認証規格です。 公開鍵暗号を利用し、秘密鍵はデバイス内に保管されるためフィッシングに強い特性があります。 Webブラウザとのインターフェースを定義するWebAuthnとデバイス仕様のCTAPで構成されます。 パスキー(Passkey)はFIDO2技術を使ったパスワードレス認証の実装で、主要OS・ブラウザが対応しています。
生体認証(バイオメトリクス)の特性
- 本人拒否率(FRR):本人を誤って拒否する確率。低いほどよい
- 他人受入率(FAR):他人を誤って受け入れる確率。低いほどよい(セキュリティ上重要)
- FRRとFARはトレードオフの関係にある(片方を下げるともう一方が上がる)
6. メール認証技術(SPF・DKIM・DMARC)
なりすましメール・フィッシングメール対策として、メールの送信元を認証する技術が標準化されています。
| 技術 | 仕組み | 何を検証するか |
|---|---|---|
| SPF(Sender Policy Framework) | 送信元ドメインのDNSに、メール送信を許可するIPアドレスのリストを登録 | 送信元IPアドレスが正規のものか |
| DKIM(DomainKeys Identified Mail) | メールにデジタル署名を付与し、受信側が公開鍵(DNSに登録)で検証 | メール内容が改ざんされていないか・送信ドメインの正当性 |
| DMARC(Domain-based Message Authentication, Reporting, and Conformance) | SPFとDKIMの検証結果に基づき、失敗時の処理ポリシー(拒否・隔離・何もしない)をDNSに宣言 | SPF/DKIM検証失敗時のポリシー適用・レポート収集 |
S/MIME
S/MIME(Secure/Multipurpose Internet Mail Extensions)は、メール本文を暗号化したり、 デジタル署名を付与してメールの真正性・完全性を保証するための標準規格です。 受信者の公開鍵でメールを暗号化し、送信者の秘密鍵で署名を付与します。
7. 例題で確認
よくある質問(FAQ)
Q. 共通鍵と公開鍵の使い分けが混乱します。
A. 「速度重視なら共通鍵・安全な鍵共有なら公開鍵」と覚えてください。実際のTLS通信では両方を組み合わせたハイブリッド方式が使われます。「鍵交換=公開鍵、データ通信=共通鍵」の流れを繰り返し確認しましょう。
Q. SPFとDKIMの違いは何ですか?
A. SPFは「このIPアドレスから送ってよい」というリストをDNSに登録して、送信元IPが正当かを確認します。DKIMはメールにデジタル署名を付与して内容の改ざんとドメインの正当性を検証します。両方とも重要ですが、なりすましメール対策として近年はDMARCによる統合管理も重視されています。
Q. FIDO2とパスワード認証の違いは?
A. パスワード認証はサーバにパスワード(またはそのハッシュ)を保管するため、サーバへの攻撃やフィッシングで漏えいリスクがあります。FIDO2は秘密鍵をデバイス内にのみ保管し、公開鍵だけをサーバに登録するため、サーバが漏えいしても秘密鍵は安全です。またフィッシングサイトではチャレンジが成立しないためフィッシングに強いです。