認証の定義
サイバー セキュリティの観点でいう認証とは、リソースや情報へのアクセス権限を付与する前に、ユーザー、デバイス、またはシステムのIDを検証・確認するプロセスを指します。これは、個人またはエンティティが、認証済みの機密情報へのアクセスや特定の操作だけを行える仕組みであり、基本的なセキュリティ対策とされています。
認証の主な目的は、不正アクセスを防ぎ、アプリケーション、データ、システムなどのデジタル資産をID盗難、情報漏洩、ランサムウェア攻撃といった悪意のある行為から保護することです。また、認証に関する各種ポリシーの実装・適用に用いるシステムでは、コンプライアンス対応もサポートします。
サイバー攻撃に対抗する認証の役割とは
認証は、組織の環境内に存在するほぼすべてのデジタル資産を保護する目的で使用されます。データの保護、システムの維持、さらに内部ポリシーや外部規制に対するコンプライアンスを確保する上で重要な役割を果たします。以下では、組織全体のセキュリティ体制において、認証が重要な要素とされる主な理由を紹介します。
以下、それぞれ解説します。
不正アクセスを防止
認証は、認証済みのユーザーだけがシステム、アプリケーション、データへアクセスできるようにする仕組みです。これは、未認証の個人やサイバー攻撃者による不正アクセスからデジタル資産を保護する上で基本となる要素です。
機密データを保護
多くの組織では、人事部門が収集する個人を特定できる情報(PII)、経理部門が扱う財務情報、組織の各部門によって作成・利用される知的財産など、さまざまな機密データを作成、保管、処理しています。
認証の仕組みは、アクセス権限を付与する前にIDを検証することで、不正アクセスや潜在的な漏洩からこうした情報を保護します。
セキュリティ リスクを低減
認証を通じてユーザーやエンティティのIDを検証することで、ID盗難、金銭的損失、オペレーションの停止、情報漏洩につながるサイバー攻撃のリスクを低減します。また、レイヤー化されたアプローチで管理される強力なアクセス制御によって、これらの脅威およびその他の攻撃から防御します。
説明責任をサポート
認証ツールは、すべてのアクセス状況を詳細に記録したログを生成できます。どの個人またはエンティティが、いつ、どのリソースへアクセスしたかを追跡し、特定の操作を特定のユーザーやデバイスへ遡って関連付けることが可能です。これは、潜在的な問題の監視、監査や調査の実施、さらにセキュリティ インシデント発生後のレポート作成において重要な役割を果たします。
コンプライアンスをサポート
認証は、GDPR、HIPAA、PCI DSS、SOX法、FISMA、GLBA、ISO/IEC 27001をはじめとする多くの規制や標準のコンプライアンス確保において求められる要件です。これらの規制では、機密データの保護とプライバシーの確保を目的として、組織が堅牢な認証対策を実施・維持することを義務付けています。
信頼性を高める
強力な認証メカニズムは、各種法規制や標準へのコンプライアンスを確保するとともに、ユーザー、顧客、パートナーとの信頼も構築します。堅牢な認証を採用することは、組織がセキュリティを重視し、自社データの保護に取り組んでいる姿勢を示すものです。
ソーシャル エンジニアリングのリスクを低減
ソーシャル エンジニアリングとは、心理的な操作を攻撃ベクトルとして用いて悪意のある行為を実行する手法です。攻撃者は不正な誘導によって、個人が自分自身や組織のセキュリティ プロトコルを破るように仕向け、犯罪行為に利用します。
多要素認証(MFA)などの高度な認証手法を使用することで、被害を受けたクレデンシャル といった単一障害点から、サイバー攻撃者によるアプリケーション、システム、データへの不正アクセスを防ぎます。レイヤー化された認証アプローチを採用すると、いずれかのレイヤーが侵害された場合でも他のレイヤーが引き続き機能するため、攻撃者がアクセスを成功させることが飛躍的に困難になります。こうした検証ステップを追加することは、不正アクセスの阻止において極めて効果的であることが実証されています。
ID管理をサポート
認証は、アイデンティティ アクセス管理(IAM)において重要な役割を果たします。認証済みのユーザーだけがシステムやデータへアクセスできるようにすることで、組織はユーザー アイデンティティの管理とリソースへのアクセス制御が可能になります。ID管理システムは、アクセス権限を付与する前にユーザーのIDを検証するため、多要素認証(MFA)などの認証手法を使用します。また、アイデンティティ サービス プロバイダー(IdP)は、MFAやシングル サイン オン(SSO)といった認証システムをサポートするために広く利用されています。
認証の種類と特徴を比較
認証には、関連付けられた要素に基づいて、「知識」「所持」「生体」の3つの主要な種類があります。それぞれに長所と短所がありますが、組み合わせて使用することで、不正アクセスに対する強力な保護を実現できます。
それぞれ解説します。
知識ベース認証(知っている情報)
知識ベース認証は、ユーザー名とパスワードの組み合わせや個人情報といった、ユーザーが知っている情報を使用して本人のIDを検証し、次の操作に進むことを許可します。知識ベース認証が提供するセキュリティ レベルは、使用される種類によって異なります。知識ベース認証には、静的と動的という2つの種類があります。
静的な知識ベース認証は、認証システムに保存され、事前に選択された情報を使用します。クレデンシャルに加え、静的な認証要素の例としては、最初に飼ったペット、好きな色、母親の旧姓といったセキュリティ質問があります。静的な検証は、仕組みがシンプルであるという利点がありますが、質問内容が一般的であることから、サイバー攻撃者が回答を特定しやすいという弱点があります。
動的な知識ベース認証は、ランダムな質問を生成してユーザーを認証します。これにより、事前に回答を調べることが困難になり、セキュリティが向上します。動的な知識ベース認証ではその場で質問が生成されるため、サイバー攻撃者はセキュリティ システムを回避するために必要な情報を予測できません。これらの質問は、クレジット履歴、財務情報、公開記録など、さまざまなデータ ソースから生成されます。
所持ベース認証(所持しているもの)
所持ベース認証では、ユーザーが所持している特定の物理的なオブジェクトやデバイスを用いて本人のIDを検証します。これらのデバイスには、ハードウェア トークン、スマート カード、USBキー、スマートフォンをはじめとするモバイル デバイスが含まれます。デバイスは個々のユーザーに登録され、そのユーザーのIDと紐付けることで、ユーザーとデバイスの間に一意の関連付けが形成されます。
設定すると、そのデバイスは認証プロセスの一部として使用できます。ユーザーがリソースへのログインを試行すると、対象のオブジェクト、またはそのオブジェクトに関連付けられた一意の識別子を提示するよう求められます。例えば、トークンやスマートフォンであれば一意のセキュリティ コードを提示でき、スキャナーであれば本人の指紋を取得できます。所持要素は、サイバー攻撃者がデバイスを入手したり偽造したりすることが難しいため、強化された保護を提供します。
生体ベース認証(本人の特性)
生体ベース認証は、ユーザーの指紋、声、虹彩といった、複製や偽造がほぼ不可能な固有の生体的特性を用いて本人のIDを検証します。これは非常に安全性の高い認証方法ですが、いくつかの制約もあります。
生体ベース認証に関する最大の懸念の1つはプライバシーで、このアプローチでは個人の特徴を収集し、保存する必要があります。その他の欠点は実装面にあります。この認証方式では、データを取得して処理するための専用デバイスが必要となり、これらのシステムをサポートするには高コストかつ複雑になる場合があります。
セキュリティを強化する4つの認証方式
認証は、権限のないユーザーによるデータベースやネットワークなどのリソースへのアクセスを阻止するための有効な手段です。多くの場合、「要素」と呼ばれるクレデンシャルの検証カテゴリーを利用して、ユーザー アイデンティティを確認します。ここでは、認証手法の例をいくつか示します。
それぞれ解説します。
単一要素(プライマリ)認証
単一要素(プライマリ)認証は歴史的に最も一般的な認証方式で、必要とされる要素が1つだけであるため、最も安全性が低い方式でもあります。ユーザー名とパスワード、PIN番号、またはその他の単純なコードが該当します。ユーザーフレンドリーではありますが、単一要素認証システムは、フィッシング、キー ロギング、推測などによって比較的容易に侵入されてしまいます。このアプローチには追加の認証ゲートが存在しないため、攻撃に対して非常に脆弱です。
二要素認証
二要素認証は、2つの要素によって本人確認を行うことで、セキュリティレベルを向上させます。ログインしようとしている人物がユーザー本人であることを2段階で確認するため、セキュリティ強度が高まります。ユーザーは、プライマリ認証としてクレデンシャル(前述したユーザー名とパスワードなど)の入力を、次に2つ目の認証情報の入力を求められます。
一般的に、2つ目の要素は1つ目の要素よりも難易度が高く、該当するシステムとは無関係であり、かつユーザー本人のみがアクセスできる情報を入力する必要があります。例えば、認証アプリを利用したワンタイムパスワード、電話番号、デバイスを利用したプッシュ通知やSMSコードの受け取り、指紋などの生体認証(Touch ID)、顔認証(Face ID)、音声認識などが挙げられます。
二要素認証を活用すれば、権限のないユーザーが両方の要素情報を把握する可能性は低いので、システムやリソースのセキュリティ侵害リスクを最小限の抑えることができます。そのため、二要素認証の導入が進んでいますが、ユーザーの利便性を確保することが課題となっています。
シングル サイン オン(SSO)
シングル サイン オン(SSO)を使用すると、ユーザーは1つのアプリケーションにログインするだけで、他の多くのアプリケーションへアクセスできます。この方式は、複数のクレデンシャルを保持する必要がなくなるため、ユーザーにとっては利便性が高く、操作セッション全体を通してよりシームレスな利用体験を実現します。
組織では、メインのドメイン(理想的にはIAMシステム)を特定し、リソース間に安全なSSOリンクを作成することで、これを実現できます。このプロセスにより、ドメインで監視されたユーザー認証が可能になり、シングル サインオフを併用することで、有効なユーザーがセッションを終了した際に、連携されたすべてのリソースやアプリケーションから確実にログアウトできます。
多要素認証(MFA)
多要素認証は、本人確認のために、システムとは無関係な要素を複数提示することをユーザーに要求するため、セキュリティレベルが非常に高い認証方式となっています。二要素認証と同様に、生体情報、デバイスを活用した確認、追加のパスワード、位置情報、ユーザー行動情報(キーストロークパターンや入力速度など)といった要素を利用して、ユーザーのアイデンティティを確認します。二要素認証は常に2つの要素のみを利用しますが、多要素認証では、2つか3つの要素を組み合わせることができ、セッション間で要素の組み合わせを変更することも可能なので、推測または窃取しにくい要素を追加して、権限のないユーザーによるアクセスを確実に阻止できます。
認証要素の多様化と分類を整理
各認証要素は、特定のセキュリティ対策のカテゴリに属します。セキュリティ アナリストは、要件、可用性、コスト、実装の容易さなどの要件に基づいて、各カテゴリから要素を選択します。異なるカテゴリの要素を組み合わせることで、攻撃者が複数の要素を入手したり偽造したりすることが困難になるため、全体的なセキュリティ体制が大幅に強化されます。以下に、認証要素の主なカテゴリを示します。
それぞれ解説します。
パスワード
パスワードは、知識ベース認証に分類されます。ユーザーは、IDの検証に必要なユーザー名とパスワードの組み合わせで構成されるクレデンシャルを入力する必要があります。クレデンシャルは、ユーザーのクレデンシャルを格納したデータベースと照合することで検証されます。
クレデンシャルは、ITチームやセキュリティ チームによって発行される場合と、ユーザーがサービスへ初めてアクセスする際に設定される場合があります。機密性の高いシステムやデータ向けのクレデンシャルは通常ITチームまたはセキュリティ チームによって発行されますが、アカウント(銀行、ストア、サービスなど)向けのクレデンシャルは、多くの場合ユーザー自身が設定します。
クレデンシャルを格納するデータベースの保護に加え、認証手段としてのパスワードの安全性は、パスワード ポリシーの策定と適用に基づいて成り立ちます。これらのポリシーの中でも重要なのが、強力なパスワードの使用です。
CISA(米国サイバー セキュリティ・社会基盤安全保障庁)は、強力なパスワードとして、理想的には16文字以上の長さを確保することを推奨しています。また、大文字と小文字のアルファベット、数字、記号を組み合わせてランダム性を持たせるか、パスフレーズ(例:SharkIceCardPurple)を使用することも推奨しています。さらに、CISAは、アカウントごとに異なるパスワードを使用し、パスワードを一意にすることも推奨しています。
PIN
PIN要素は、ユーザーの本人確認を行うために数値コードまたはパスワードを使用します。PINは、所持ベース認証の一部として使用されることがよくあります。PINは動的に生成され、デバイス上に表示され、ユーザーが認証プロセスの一環として入力します。知識ベース認証としてのPINの一般的な利用例としては、ATMやモバイル デバイス(スマートフォンやタブレットなど)が挙げられます。
セキュリティ トークン
セキュリティ トークンは、所持ベース認証で使用されます。これらにはハードウェアベースのものとソフトウェアベースのものがあります。ハードウェアベースのセキュリティ トークンの例としては、USBトークン、スマート カード、時間制限付きコードを表示する携帯デバイス、非接触認証向けのNFCトークン、そしてデバイスに近接した際にペアリングして認証を行うBluetoothトークンなどがあります。ソフトウェアベースのトークンには、モバイル認証アプリ、SMSやメールで送信されるワンタイム コード、ログイン試行の確認をユーザーに要求するプッシュ通知、そしてWebベースの認証向けにワンタイム パスワードを生成・管理するブラウザ拡張機能などが含まれます。
生体認証
生体認証は、個人に固有の身体的または行動的特性を用いて本人のIDを検証するため、パスワードやPINよりも強力な認証要素と考えられています。こうした特性は偽造や盗用が困難です。
生体認証に用いられる要素には、指紋、顔認識、手の形状、虹彩認証、網膜スキャン、声紋認識、歩容分析、静脈パターン、DNA照合、耳介形状認識などがあります。ユーザーは認証プロセスにおいて自身の生体情報を提示し、それを事前に登録した記録と照合します。
生体認証は、さまざまなアクセス制御のユース ケースで使用されています。例としては、スマートフォンへのアクセスに用いられる顔認証、コンピューター システムへのアクセスに用いられる指紋認証、セキュリティ保護された建物やエリアへの入場に使用される網膜スキャンや手の形状スキャン、さらには電話からアカウント情報へアクセスする際に使用される声紋認識などが挙げられます。
位置情報
位置情報は、IPアドレス、GPS、およびネットワーク情報を利用して、ユーザーのアクセス権限の申請が想定された、または信頼された場所から発生しているかどうかを判断することで、認証要素として使用できます。位置情報ベース認証では、通常のログイン場所の基準が確立され、異常が検出された場合にはフラグが立てられ、追加の認証がトリガーされます。
行動
行動認証は、継続的なID検証をサポートする点で、他の種類の認証とは異なります。ユーザー行動の基準値を確立し、ユーザーがデバイスやアプリケーションとどのようにやり取りしているかを監視して、その逸脱を検出します。例えば、キーストローク分析では、キーを押す速度や圧力など、ユーザー独自のタイミング パターンを検出できます。マウスの動きについても、ユーザーが画面をどのように操作するかといった特徴を追跡・分析できます。行動解析ツールは、ユーザーがデバイスをどのように保持し、どのように動かしているか(握る強さや角度など)を追跡することも可能です。
標準化された認証プロトコルの基礎知識
認証プロトコルとは、エンドポイント(ノートパソコン、デスクトップ、モバイルデバイス、サーバーなど)やシステム間の通信を実行したり、通信状況を確認するための規格です。ユーザーがアクセスするアプリケーションの数や種類が増えるほど、こうした規格やプロトコルも増加します。安全な事業運営と互換性の確保を実現するためには、自社に最適な認証プロトコルを選択することが不可欠です。
組織に適した認証プロトコルを選択することは、セキュアなオペレーションを維持し、各種システムとの互換性を確保する上で重要です。ここでは、広く利用されている認証プロトコルの一部を紹介します。
それぞれ解説します。
パスワード認証プロトコル(PAP)
PAPは一般的な認証プロトコルですが、暗号化通信に対応していないため、セキュリティレベルは最も低くなっています。基本的には定期的なログインプロセスであり、特定のシステムにアクセスしようとするユーザーに対してユーザー名とパスワードの入力を要求し、これらのクレデンシャルを確認します。現在では、サーバーとデスクトップまたはリモートデバイス間の通信を実行する際の最後のオプションとして使用されることが多いです。
チャレンジ ハンドシェイク認証プロトコル(CHAP)
CHAPは、「秘密情報」を3段階で交換することにより、より高度な暗号化基準を使用してネットワークにアクセスしようとするユーザーの本人確認を行うID検証プロトコルです。まず、ローカルルーター側がリモートホスト側に「チャレンジ値」を送信します。次に、ホスト側は受け取ったチャンレンジ値にユーザー名とパスワードを合わせて、ハッシュ関数「MD5」によって「レスポンス値」を算出し、返送します。ルーター側は、受け取ったレスポンス値(ハッシュ値)と手元にあるハッシュ値が一致することを確認し、一致すれば認証成功(ハンドシェイク)となり、一致しなければ認証失敗でアクセスを拒否します。PAPの認証は通信開始時のみ行われますが、ルーター側はセッション(通信)中に何度もチャレンジ値が送信されるため、PAPよりも高いセキュリティレベルを実現できます。
拡張認証プロトコル(EAP)
拡張認証プロトコル(EAP)は、ワンタイム パスワードからスマート カードに至るまで、様々な認証方式に対応しています。任意のアクセス ポイントやリモート デバイスを使用して、ビルトイン暗号化による相互認証を実行できるため、無線LAN通信において最高水準のセキュリティを実現します。ユーザーをアクセス ポイントに接続して、クレデンシャルを要求し、認証サーバーを介してIDを確認します。その後、別のユーザー アイデンティティ情報を要求し、認証サーバーを介して確認します。認証プロセスで送信されるメッセージは、すべて暗号化されます。
ケルベロス
ケルベロスは、ネットワーク認証に使用されるプロトコルです。暗号鍵を用いてチケットを生成し、発行されたチケットは、ネットワーク セッション中にクライアントやサーバーのIDをパスワードの代わりに検証するために使用されます。大規模な環境でSSOをサポートする目的で利用されることが多いプロトコルでもあります。
LDAP
LDAPは、認証サーバーなどのディレクトリ情報を管理・維持するために使用されるオープンな標準プロトコルです。アプリケーションが認証に必要なユーザー情報を迅速に問い合わせできるため、組織のユーザー クレデンシャルを管理する用途で広く利用されています。
OAuth 2.0
OAuth2.0は、ユーザーに代わって、あるWebサイトやアプリケーションが他のWebアプリケーション上にホストされているリソースへアクセスできるようにする、業界標準の認可フレームワークです。アクセスは、ユーザーごとに認証済みの操作に限定されます。OAuth 2.0が広く利用されている理由は、クライアント アプリがユーザーに代わって操作を実行できる点に加え、処理がアプリケーション プログラミング インターフェース(API)を介して行われ、認証トークンがやり取りされるため、ユーザーが自身のクレデンシャルを共有する必要がない点にあります。
RADIUS
RADIUSは、集中管理された認証とアカウンティングを提供するネットワーク プロトコルです。リモート ユーザーがVPNサーバーへアクセスできるようにし、VPNサーバーはリモート ユーザーからの要求を受け付け、プライベート ネットワークへのセキュアな接続を確立します。
SAML
SAMLは、アイデンティティ プロバイダー(IdP)とサービス プロバイダー間で認証および認可データを交換する際に用いる、XMLベースのオープンな標準プロトコルです。複数のサービス プロバイダー間でシングル サイン オン(SSO)認証を実現します。
まとめ
認証は、サイバー セキュリティの一要素というだけではなく、その最前線を担う重要なプロセスです。その目的は、当該ユーザーであると主張する人の真正性を確認することにあります。その後の段階である認可プロセスとは異なり、認証はデジタル アイデンティティを検証し、ユーザーが遂行しようとしているアクセスまたは業務に必要な権限レベルを有していることを確認するための手段です。
パスワードから指紋認証に至るまで、様々な認証テクノロジーを活用して、ユーザーのアクセスを許可する前にそのIDを確認できます。これにより、セキュリティ対策が強化され、データ侵害などのセキュリティ侵害を阻止することが可能になります。一般的に、複数の認証テクノロジーを組み合わせて、潜在的な脅威に対応できるよう保護体制をさらに強化することが推奨されます。