情報セキュリティの世界において、「認証」と「暗号」は全ての基本となる土台です。私たちが安全にオンラインサービスを利用できるのは、これらの技術が目に見えないところで機能しているからに他なりません。しかし、PKI, SAML, HMAC, OTP…と、この分野は専門用語や略語が非常に多く、苦手意識を持つ受験者も多いのではないでしょうか。
情報処理安全確保支援士の午後試験では、これらの技術が「なぜ必要なのか」「どのような問題を解決するのか」という本質的な理解が問われます。単に用語を知っているだけでは、システム全体のセキュリティを評価するような応用問題には対応できません。
本記事では、複雑に見える認証・暗号技術を、「信頼」というキーワードを軸に解き明かしていきます。Webサイトの身元を保証するデジタル証明書の仕組みから、データの改ざんを防ぐハッシュ技術、そして現代的なシングルサインオンを実現するSAML認証まで、各技術がどのような役割を担っているのかを体系的に解説します。
この記事を通じて、点在していた知識が繋がり、セキュアなシステムを支える認証と暗号の全体像が明確になるはずです。
目次
認証と暗号の基礎│信頼の基盤となる公開鍵基盤(PKI)とデジタル証明書
オンラインで安全に通信を行うには、「通信相手が本物である」と確信できる仕組みが必要です。この「信頼」の連鎖を作り出す社会的なインフラが公開鍵基盤(PKI - Public Key Infrastructure)であり、その中核をなす身分証明書がデジタル証明書です。
PKIの仕組み
PKIは、特定の技術というより、デジタル証明書を発行・管理・検証するためのルールや組織全体の枠組みを指します。
身近な例え:運転免許証のシステム 🚗
デジタル証明書の仕組みは、運転免許証によく似ています。
- 申請者(あなた): 免許証が欲しいあなたは、身元を証明する書類を持って窓口(登録局 RA)に行きます。
- 発行者(公安委員会): 窓口で本人確認が済むと、信頼できる第三者機関である公安委員会(認証局 CA)が、あなたの顔写真(公開鍵)や名前が入った免許証(デジタル証明書)を発行します。
- 提示と検証: あなたが銀行などで身分証明を求められた際、相手は免許証を見るだけで、公安委員会という信頼できる組織があなたの身元を保証している、と判断できます。
デジタル証明書の中身と信頼の連鎖
デジタル証明書には、主に以下の情報が含まれています。
- 所有者の公開鍵: 通信を暗号化するために使われる鍵。
- 所有者の情報: Webサイトのドメイン名(コモンネーム)など。
- 発行者の情報: どの認証局(CA)が発行したか。
- 有効期間: 証明書が有効な期間。
- 発行者のデジタル署名: これが最も重要です。認証局が自身の秘密鍵で署名することで、「この証明書の内容は、当CAが確かに保証します」というお墨付きを与えています。
ブラウザは、このデジタル署名をCAの公開鍵(ブラウザに予めインストール済み)で検証することで、その証明書が偽造・改ざんされていない本物だと確認できるのです。
午後試験のポイント:証明書の失効
支援士試験では、証明書の有効期限切れだけでなく、「証明書の失効」も重要なトピックです。秘密鍵が漏洩した場合など、有効期限内でも証明書を無効にする必要があり、そのための仕組みがCRL(証明書失効リスト)やOCSPです。ブラウザは、証明書を検証する際にこれらの失効情報も確認しています。
データの完全性を保証するハッシュとHMACの違いとは?
デジタル証明書が「通信相手の正しさ」を保証するのに対し、「データの正しさ(改ざんされていないこと)」を保証する技術がハッシュ関数です。ここでも、単純なハッシュと、認証機能を付加したHMACの違いを理解することが重要です。
ハッシュ:データの指紋
ハッシュ関数は、どんなに長いデータ(元データ)からでも、固定長の短い文字列(ハッシュ値)を生成する計算式です。ハッシュ値は「データの指紋」とも呼ばれ、以下の重要な特徴を持ちます。
- 不可逆性:ハッシュ値から元のデータを復元することはできない。
- 一貫性:同じデータからは、必ず同じハッシュ値が生成される。
- 衝突耐性:異なるデータから同じハッシュ値が生成される可能性は、天文学的に低い。
身近な例え 🖐️
ソフトウェアのダウンロードサイトで、ファイルと一緒に「SHA-256」といった謎の文字列が公開されているのを見たことはありませんか?あれがハッシュ値です。ダウンロードしたファイルのハッシュ値を計算し、サイトの値と一致すれば、そのファイルが「改ざんされていない完全な状態」であると確認できます。
HMAC:秘密の鍵で認証を加える
しかし、単純なハッシュには弱点があります。攻撃者が元データを改ざんし、それに対応するハッシュ値を再計算してしまえば、受信者は改ざんに気づけません。つまり、ハッシュだけでは「誰が」そのハッシュ値を生成したのかを保証できないのです。
この問題を解決するのがHMAC(Hash-based Message Authentication Code)です。HMACは、ハッシュ値を計算する際に、送信者と受信者だけが知っている共通の秘密鍵を元データに加えて計算します。
身近な例え 📜
これは、手紙を封蝋で閉じるのに似ています。
- ハッシュ:ただの蝋で封をする。誰でも封を開けて、同じ蝋で再封印できてしまう。
- HMAC:送信者しか持っていない秘密の紋章(秘密鍵)がついた判子で封をする。受信者は同じ紋章の判子を持っているので、封が本物かどうかが分かる。第三者は紋章を偽造できない。
比較項目 | ハッシュ(SHA-256など) | HMAC |
---|---|---|
目的 | 完全性(Integrity)の保証 | 完全性 + 認証(Authentication) |
必要なもの | 元データのみ | 元データ + 共有秘密鍵 |
答えられる問い | 「このデータは改ざんされていないか?」 | 「このデータは改ざんされておらず、かつ正規の相手から送られたものか?」 |
午後試験では、この違いが重要になります。単なるファイルの改ざん検知ならハッシュ、通信相手の認証も含めた改ざん検知が必要ならHMAC、という使い分けを覚えておきましょう。
シングルサインオン(SSO)を実現するSAML認証の仕組みと登場人物
現代の業務では、複数のクラウドサービス(SaaS)を併用するのが当たり前です。しかし、サービスごとにIDとパスワードを管理するのは利用者にとっても管理者にとっても大きな負担です。この問題を解決するのがシングルサインオン(SSO)であり、その実現方式として広く使われている標準規格がSAML(Security Assertion Markup Language)です。
SAMLの登場人物
SAML認証を理解する鍵は、3つの登場人物の役割を把握することです。
- 利用者(User): サービスを使いたい本人。
- IdP(Identity Provider): 利用者のID情報を管理し、認証を行う専門機関。(例:Microsoft Entra ID, Okta)
- SP(Service Provider): 利用者が使いたいサービスそのもの。(例:Google Workspace, Salesforce)
身近な例え:大学キャンパスの共通ID 🎓
SAMLの仕組みは、大学の共通学生証を使った施設利用によく似ています。
- 利用者(学生)は、まず図書館(SP)に行きます。
- 図書館の受付は学生の顔を知らないので、「大学事務局(IdP)に行って、あなたが正規の学生であることを証明する『通行許可証』をもらってきてください」と指示します。
- 学生は大学事務局で学生証を見せ、本人確認を受けます。事務局は本人確認が取れると、「この学生は本人に間違いありません」と署名された通行許可証(SAMLアサーション)を発行します。
- 学生はその通行許可証を持って再び図書館に行きます。
- 図書館は、信頼する大学事務局の署名がある通行許可証を確認し、学生を中に入れます。学生は、同じ許可証を使って体育館(別のSP)も利用できます。
SAML認証の流れ (SP Initiated)
試験でよく問われる、SP(サービス提供者)を起点とした認証の流れは以下の通りです。
- 利用者がSPにアクセスする。
- SPは認証要求(SAMLリクエスト)を作成し、利用者のブラウザをIdPへリダイレクトさせる。
- IdPが利用者を認証する(ID/パスワード入力など)。
- 認証成功後、IdPは認証情報(SAMLアサーション)を生成し、利用者のブラウザに返す。
- ブラウザは、そのSAMLアサーションをSPに送信する。
- SPは、信頼するIdPのデジタル署名が付与されたSAMLアサーションを検証し、問題なければ利用者にサービスへのアクセスを許可する。
この仕組みにより、SP側はパスワードを管理する必要がなくなり、IdP側で認証を多要素認証などで強化すれば、連携する全てのサービスのセキュリティが向上します。
多要素認証(MFA)の要│ワンタイムパスワード(OTP)の種類と役割
IDとパスワードによる認証は、パスワードが漏洩すれば容易に突破されてしまいます。このリスクを軽減するために、現代のセキュリティでは多要素認証(MFA - Multi-Factor Authentication)が不可欠です。その中核をなす技術の一つがワンタイムパスワード(OTP)です。
認証の3要素
多要素認証は、以下の3種類の認証要素のうち、2つ以上を組み合わせて本人確認を行う方式です。
- 知識情報(Something You Know): 本人だけが知っている情報(パスワード、PINコード)
- 所持情報(Something You Have): 本人だけが持っているモノ(スマートフォン、ICカード)
- 生体情報(Something You Are): 本人固有の身体的特徴(指紋、顔、静脈)
ワンタイムパスワード:所持情報の証明
ワンタイムパスワードは、一度しか使えない使い捨てのパスワードで、「所持情報」を証明する代表的な手段です。たとえOTPが漏洩しても、再利用できないため安全性が高まります。
身近な例え 🎟️
これは、アイドルのコンサート会場での本人確認に似ています。
- 知識情報: ファンクラブサイトのパスワード。
- 所持情報: その日の公演でのみ有効なQRコードが表示された、あなたのスマートフォン。
入場には、パスワードを知っているだけでは不十分で、あなたのスマホという「モノ」を持っていることが必須になります。転売屋がパスワードだけを盗んでも、あなたのスマホがなければ会場には入れません。
OTPの種類
試験で重要なOTPには、主に2つの方式があります。
方式 | 名称 | 仕組み | 主な利用例 |
---|---|---|---|
時刻同期方式 | TOTP (Time-based OTP) | 現在時刻と共有鍵を基に、一定時間ごと(例:30秒)に新しいパスワードを生成する。最も広く使われている方式。 | Google Authenticator, Microsoft Authenticator |
カウンタ同期方式 | HOTP (HMAC-based OTP) | ボタンを押すなど、パスワード生成回数(カウンタ)と共有鍵を基に、新しいパスワードを生成する。 | ハードウェアトークンの一部 |
午後試験のシナリオで、ID/パスワードに加えて「スマートフォンアプリに表示される6桁の数字」を入力させるシステムが出てきたら、それはTOTPによる多要素認証を意図していると判断できます。
ハードウェアによる信頼の担保│TPM (Trusted Platform Module) の機能
これまで解説してきた認証・暗号技術は、OSやソフトウェア上で実行されるのが基本です。しかし、OS自体がマルウェアに感染してしまっては、その上で動くセキュリティ機能も信用できません。そこで、信頼の起点(Root of Trust)をハードウェアレベルで確保する技術がTPM(Trusted Platform Module)です。
TPMとは?
TPMは、PCのマザーボードに搭載されている、耐タンパー性(物理的な攻撃への耐性)を持つ特別なセキュリティチップです。このチップの内部で、暗号鍵の生成や暗号化・復号の処理を安全に実行することができます。
身近な例え 🔒
TPMは「家の土台に埋め込まれた、絶対に持ち出せない金庫」のようなものです。
- ソフトウェアによる鍵管理: 普通の金庫。泥棒(マルウェア)が家(OS)に侵入すれば、時間をかけて解錠されたり、金庫ごと盗まれたりする危険がある。
- TPMによる鍵管理: 土台に埋め込まれた金庫。泥棒は金庫を持ち出せず、こじ開けるのも極めて困難。鍵(暗号鍵)は金庫の中でしか使えず、外には決して出てこない。
TPMの主な機能と役割
TPMは、OSから独立して動作し、主に以下の3つの機能でシステムの信頼性を担保します。
機能 | 内容 | 主な利用例 |
---|---|---|
鍵の生成・保管 | TPM内部で暗号鍵を安全に生成・保管する。OSからは鍵そのものにはアクセスできず、TPMに処理を「依頼」するだけ。 | 暗号鍵の保護 |
プラットフォームの完全性測定 | PCの起動時に、BIOS/UEFIやOSのプログラムが改ざんされていないかをハッシュ値で測定し、その値を記録する。 | 起動プロセスの監視 |
シール機能 | 「特定のプラットフォーム状態でしか、鍵の利用を許可しない」という設定で、暗号鍵を封印(シール)する機能。 | WindowsのBitLocker |
仕事での利用例 🏢
BitLocker(Windowsのディスク暗го化機能)は、TPMの代表的な活用例です。ディスクを暗го化する鍵はTPM内に保管され、「正常な起動プロセス」という条件でシールされます。もしPCが盗難され、ディスクだけを取り出して別のPCで起動しようとしても、起動プロセスのハッシュ値が変わるためTPMは鍵の利用を許可しません。これにより、データの漏洩を強力に防ぎます。
まとめ:各技術の役割を理解し、セキュアなシステムを構築する
本記事では、「認証」と「暗号」に関連する重要な技術要素を解説してきました。Webサイトの身元を保証するデジタル証明書とPKI、データの完全性を守るハッシュとHMAC、組織をまたいでIDを連携するSAML、認証を強化するOTP、そしてハードウェアで信頼の根幹を支えるTPM。
これらの技術は独立して存在するのではなく、互いに連携しあって「信頼の連鎖」を構築しています。
- PKIという社会的な信頼基盤の上で、個々のサーバの正当性がデジタル証明書によって証明される。
- SAMLは、その証明書で保証されたIdPをSPが信頼することで、安全なID連携を実現する。
- HMACやOTPは、共有した秘密鍵の正当性をもって、データの完全性や利用者の本人性を証明する。
- TPMは、その全ての土台となる「計算機環境そのもの」の信頼性を物理的に担保する。
午後試験では、まさにこの「信頼の連鎖」がどのように構築され、あるいはどこに弱点があるのかが問われます。
技術と「信頼」の早見表
最後に、各技術がどのような「信頼」を保証するのかをまとめます。
技術 | 保証する主な「信頼」 | 一言でいうと |
---|---|---|
PKI / デジタル証明書 | 身元(Identity)の信頼性 | 第三者機関による身元保証 |
ハッシュ / HMAC | データ(Data)の信頼性 | データが改ざんされておらず、本物であることの証明 |
SAML / SSO | 認証結果(Authentication)の信頼性 | 専門機関の認証結果を信頼し、受け入れる仕組み |
OTP / MFA | 本人性(Possession)の信頼性 | パスワードだけでなく「持ち物」で本人らしさを強化 |
TPM | 環境(Platform)の信頼性 | ハードウェアレベルでの不正がないことの証明 |
これらの技術が担う役割を正しく理解し、問題文のシナリオの中でどの「信頼」が求められているのかを見抜くことが、合格への最短ルートです。