認証とは何ですか?

認証は、個人の同一性を確認するプロセスです。パスワード、ハードウェアトークンなど、その他いくつかの方法を使用することが必要です。

学習目的

この記事を読み終えると、以下のことができるようになります。

  • 認証の定義
  • 認証がいつ使用されるのか、またその仕組みを説明する
  • さまざまな認証の種類を識別する

関連コンテンツ


さらに詳しく知りたいとお考えですか?

是非、Cloudflareが毎月お届けする「theNET」を購読して、インターネットで最も人気のある洞察をまとめた情報を入手してください!

当社がお客様の個人データをどのように収集し処理するかについては、Cloudflareのプライバシーポリシーをご確認ください。

記事のリンクをコピーする

認証とは何ですか?

認証とは?- 例図:ユーザーがパスワードを入力してアクセス、2人目のユーザーが誤ったパスワードを入力

サイバーセキュリティにおいて、認証とは、人物または人物以外の同一性を確認するプロセスです。認証は通常、パスワード、ハードウェアトークン、または同一性を証明するその他の情報を確認することで行われます。航空会社の職員が飛行機に搭乗する乗客のパスポートや身分証明書をチェックして本人確認をするのと同じように、コンピュータシステムもその人物を名乗る人が本当にその人であることを確認する必要があります。この認証プロセスによって、空港では、航空券を持った人だけが飛行機に乗れるようにし、デジタルシステムでは、データが正しい人によって閲覧・使用されるようにします。

認証は、人物であるユーザーを確認することだけに適用されるわけではありません。コンピュータシステムでは、サーバー、ソフトウェア、API、その他のコンピュータなどをチェックし、それらが「名乗る」通りのものであることを確認する必要があります。

セキュリティコンテキストでの認証の使用方法は?

認証は、 IDおよびアクセス管理(IAM)の重要な部分であり、誰がデータを閲覧でき、そのデータを使って何ができるかを規定します。しかし、認証は以下のようなセキュリティの他の多くの領域にも適用されます。

  • TLS:現在、ほとんどすべての主要なWebサイトがTransport Layer Security(TLS)に対応しています。TLSは、他の機能と組み合わせて、ユーザーデバイスが偽のWebサイトを読み込まないようにするために、Webサーバーの同一性を認証します。
  • API:近年ほとんどのWebアプリケーションは、機能するためにAPIに依存しています。適切に保護されたAPIは、API統合の双方のエンドポイントを認証してこれらのAPIに向けられた攻撃を防ぎます。
  • メール:メールは、DomainKey Identified Mail(DKIM)と呼ばれるプロセスを使用して認証されます。DKIMは、メールの送信元がドメイン(例:@cloudflare.com)の使用を許可されているサーバーから送信されていることを保証します。認証されていないメールの場合、スパムフォルダに移動される可能性があります。

認証の仕組みとは?

コンピュータは、人間のように、人物や他のコンピュータを「認識」できないため、認証のプロセスは、コンピュータが測定できる客観的な基準に依存します。客観的な基準の1つに、対象となる人物またはコンピュータが所有しているはずの何らかの性質をチェックするというものがあります。別の基準に、公開鍵暗号方式と呼ばれる技術を使用した同一性の証明があります。

認証要素による本人確認

このタイプの認証では、同一性の測定が可能な特性を、対応するデジタル記録と照合します。認証システムが確認する特性は、「要素」と呼ばれます。現在、3つの一般的な認証要素が広く使用されています。

1. そのユーザーが知っている事柄

この認証要素は、本人だけが所有しているはずの秘密の知識の一部を確認するものです。ユーザー名とパスワードの組み合わせは、この認証要素の典型的な例です。秘密の質問やPINコードもその一例です。

2. そのユーザーが持っている物

この認証要素は、その人物に対して発行された、あるいは所有していることが分かっている物理的なアイテムを所持しているかどうかを確認するものです。多くの人がこの認証要素を、金属製の鍵で解錠できる家やアパートに住む形で日常的に使用しています。この鍵を所持していることで、その建物に入る権限があることが証明され、入室が可能になります。

デジタルシステムでは、この認証要素は昔ながらの施錠と鍵を使用するわけではありません。しかし、物理的なトークンを確認することで、同様の原理を使用しています。トークンには、ソフトトークンとハードトークンの2種類があります。

ソフトトークン:ソフトトークンは、スマートフォンなどのデバイスにコードを送信し、ユーザーにそのコードを入力してもらうことで、デバイスを所有していることを確認するものです。コードは、テキストメッセージとして送信されるか、ランダムなコードを生成するアプリを通じて送信されます。

ハードトークン:ハードトークンは、BluetoothやUSBポートなどを介してコンピュータやモバイル機器に接続する小型の物理的な製品です。ユーザーは、このトークンをデバイスに差し込んで、本人確認を行う必要があります。

セキュリティ専門家の中には、ハードトークンの方がソフトトークンよりも安全だと考える人もいます。攻撃者は、ユーザーのスマートフォンに送信されるコードを遠隔から傍受し、そのコードを使ってユーザーになりすますことが可能です。しかし、ハードトークンの場合、攻撃者はトークンに物理的にアクセスする必要があるため盗むのは遥かに難しくなります。

3. その人物が誰であるかを示す何か

この認証要素は、その人の本質的な資質を評価するものです。現実世界では、その人物の習慣など、例えば、2人の友人が外見や話し方で互いを認識することがあります。コンピュータは、顔や網膜をスキャンしたり、親指の指紋を確認したり、声の周波数を測定したり、血液検査の結果を調べたりすることで同様のことが可能です(もっとも、最後のものはかなり稀なケースです)。

追加の認証要素

セキュリティ業界の一部では、上記の3つの認証要素に加えて追加の認証要素を提案または採用しています。2つの追加要素とは、場所(ユーザーがどこにいるか)と時間(ユーザーがシステムにアクセスしている時間)です。

電子証明書による本人確認

上記の認証要素に加え、既知の信頼できるエンティティが電子証明書を発行することもできます。実生活において身分証明書が個人の身元を確認するための情報を含むのと同様に、デジタル証明書は同一性を確認するための情報を含む小さなデジタルファイルです。

パスポートやIDカード、紙幣には、偽造でないことを証明する透かしがあるように、電子証明書には、それを発行した機関から真正性を証明する電子署名が入ります。

電子証明書には、公開鍵と呼ばれるランダムな値の文字列も含まれます。公開鍵は、別途保管される秘密鍵に対応します。証明書を保有するエンティティは、これらの鍵を使ってデータに電子署名を行い、秘密鍵を所有していること、したがって本物であることを証明することができます。

現在、電子証明書は個人の身元確認に使われることはあまりありません。しかし、ほとんどの人が気づかないうちに、日々電子証明書に頼っています。

HTTPSHTTPのセキュアバージョン)を使用する Web サイトを誰かが読み込むたびに、TLSプロトコルはWebサイトの電子証明書( SSL証明書またはTLS証明書と呼ばれます)を使用してWebサイトを認証します。DKIM(メール送信者を認証するもの)も、認証要素をチェックする代わりにこの方法を使用する技術の一例です。DKIMは、メールプロバイダがスパムメールを分類およびブロックするのに役立ちます。

多要素認証(MFA)とは?

多要素認証(MFA)は、1つの認証要素だけでなく、2つ以上の認証要素を確認することによって、個人の同一性を確認するプロセスです。MFAは、1つの認証要素を偽造するよりも、2つの認証要素を偽造する方がはるかに難しいため、1要素認証よりも強力な認証の一種です。

攻撃者が(おそらくフィッシング攻撃によって)ボブのユーザー名とパスワードを盗むことは可能かもしれません。しかし、ボブが自分の顔もスキャンしなければならない場合、攻撃者はボブと同じ顔に見せることができないため、攻撃者はボブとの同一性を偽ることができません。あるいは、ボブがパスワードの入力に加えて、ハードトークンをコンピュータに差し込まなければならない場合、攻撃者はこのトークンも盗まなければなりません。可能ではありますが、このような盗難ははるかに困難であり、アカウント乗っ取りの可能性は低くなります。

真のMFAでは、別の要素をチェックする必要があります。1つの要素を複数回評価することは、MFAとは言えません。例えば、アプリケーションでユーザがパスワードを入力し、秘密の質問に答えて認証する場合、これはまだ一要素認証です。パスワードの入力と秘密の質問は、どちらも「ユーザーが知っていること」の要素を評価するものです。

セキュリティの強化につながるため、MFAはZero Trustセキュリティの中核的な原則となっています。プライベートネットワークにアクセスするすべてのユーザーとデバイスに対して同一性の確認を要求するセキュリティモデルです。

二要素認証(2FA)とは?

二要素認証(2FA)は、ちょうど二つの要素が使われる場合のMFAの呼び名です。2要素認証の最も一般的なタイプは、「ユーザーが知っていること」+「ユーザーが持っているもの」です。例えば、多くの人は銀行口座にアクセスする前にパスワードの入力に加えて、携帯電話にコードを送信しています(この要素の「ソフトトークン」版の例です)。

現在、多くの企業がフィッシング攻撃の影響を軽減するために2FAを採用しています。例えば、Googleでは、認証にハードトークンを用いた2FAを使用することで、 アカウント乗っ取り攻撃を排除することができました。

認証と承認の違いとは?

認証が同一性の確認に関係するのに対し、承認は権限、つまり保護されたシステムやリソースにアクセスした後に何が実行できるかに関係するものです。

ボブが会社のマーケティング部門に勤務しているとします。ボブは会社のネットワークにログインするために、パスワードを入力し、顔をスキャンして、ハードトークンを挿入します。この時点で、認証が完了します。

ログイン後、ボブは会社が所有するすべてのデータファイルへのアクセス権を保有しているわけではありません。承認によって、ボブが閲覧できるものと閲覧できないものが決定されます。マーケティング担当者であるボブには、会社がマーケティングメッセージを送付する見込み客のリストのような一部のデータを閲覧できるよう承認されていますが、会社のメインコードベースや従業員の給与のリストのようなその他のデータの閲覧は承認されていません。

詳しくは当社の記事、認証と承認の対比をご覧ください。

シングルサインオン(SSO)とは?

現代の企業の従業員は、多くの異なるクラウドベースのアプリケーションに対して認証を行う必要があります。そのため、従業員は多くの認証要素をアプリケーションごとに設定する必要があります。また、これは以下のセキュリティ上の懸念が生じる可能性があります。

  • セキュリティが脆弱なアプリケーションが1つあると、攻撃者はそのアプリケーションを侵害し、その後、横方向に移動し、ユーザーの他のアプリケーションのアカウントを侵害し、組織の他の部分にまで広がる可能性があります。
  • ユーザーに複数のアプリケーションにサインインすることを要求すると、ユーザーは適切なセキュリティ対策に従わなくなります。16桁のランダム化されたパスワードを複数記憶することは困難であるため、ユーザーは脆弱なパスワードを使用したり、すべてのアプリケーションで同じパスワードを使用するようになります。

シングルサインオン(SSO)は、ユーザーに一回だけの認証を可能にするサービスです。ユーザーはSSOサービスにサインインすると、SSOサービスは必要に応じて電子認証メッセージを各アプリケーションに送信することで、この認証をすべてのアプリケーションに渡します。

また、SSOはセキュリティポリシーを適用するための単一点をITチームに提供します。すべてのアプリケーションが2FAをサポートしているわけではありませんが、SSOサービスがサポートしていれば、いずれにせよ2FAを使用することができます。また、ITチームはSSOサービスを通じて、パスワードの長さや複雑さに関する要件を強制することも可能で、ユーザーが複数のパスワードを覚える負担を軽減することができます。

Security Assertion Markup Language(SAML)とは?

SSO認証メッセージは、Security Assertion Markup Language(SAML) と呼ばれるプロトコルを使用します。SAMLは、ユーザーが本人であることを外部のアプリケーションに伝えるための標準化された方法です。

ユーザを認証するメッセージは、SAML「アサーション」と呼ばれます。アプリケーションは、ユーザのSAMLアサーションを受信すると、SSOサービスによって既に認証済みであることを認識しているため、ユーザを独自に認証する必要はありません。

SAMLとOpenID Connect(OIDC)の対比

OpenID Connect(OIDC)もまた、SSOプロバイダーによって利用が拡大している認証プロトコルの一つです。OIDCの機能はSAMLと似ていますが、データのフォーマットが異なるなどの違いがあります。SAMLがXMLでデータをフォーマットするのに対し、OIDCはJSONを使用します。

CloudflareのZero Trustプラットフォームは、効果的な認証にどのように役立つのか?

Cloudflareは、すべての主要なSSOプロバイダーで動作するZero Trustプラットフォームを提供しています。ユーザーがSSOサービスに認証されると、Cloudflareはクラウドとオンプレミスのアプリケーション間で一貫したアクセス制御を適用します。ブラウザの分離セキュアウェブゲートウェイDNSフィルタリング、およびその他のZero Trust機能を含む、このプラットフォームについて、詳しくは製品ページをご覧ください。