認証と認可の違いとは|セキュリティの強化について説明

※本記事は2021年10月21日に投稿したものの再編集版です。

パスワードでログイン制御されているWebサービスにおいて、セキュリティの手段として「認証」と「認可」という概念があります。この両者は異なる概念ですが、似た言葉であるために混同されているケースが見受けられます。認証とは何か、認可とは何か、それぞれを切り離して考え、併用することの必要性や意味についてご説明します。

認証と認可について動画解説!

認証とは

「認証」とは、通信の相手が「誰(何)であるのか」を利用者本人の確認・特定することです。英語では「Authentication」または「AuthN」と表記されます。

一例として以下のことが挙げられます。
・現実世界では、身分証明書によって人物を確認すること
・Webアプリでは、ログインやパスワードで利用者がだれか確認すること

認証の方法として、大きく3つの要素があります。

認証の3要素

知識情報による認証(対象が知っていること)

知識情報による認証の例として、パスワード認証やPINコードが挙げられます。

近年では、Webサービスにログインする際に、IDとパスワードを入力することがほとんどです。                                         これは、利用者しか知りえないパスワードを入力することで、利用者本人であることを証明しています。

生体情報による認証(対象の特徴)

生体情報による認証の例として、顔認証や指紋認証、声紋が挙げられます。

現実世界でも、顔認証は多く用いられています。皆さんも人物を見た際に、相手の「顔」を見て、誰であるかを特定しています。また、運転免許証など顔写真がある身分証明書を提示して、証明する場合もこれに該当します。
最近では、パソコンやスマートフォンの生体情報を利用した「生体情報」の技術が普及しており、Webサービスのログイン時に要求されるケースも増加しています。

生体認証についてはこちらのブログ記事で詳しく解説しておりますので、そちらもご覧ください。
パスワードレス認証で注目される「FIDO2」とは?
「生体認証の種類はいくつ?それぞれのメリットと問題点を解説」

所持情報による認証(対象が持っているもの)

所持情報による認証の例として、電話番号を使ったSMS認証や身分証明書、鍵が挙げられます。
こちらは前述の二つよりも馴染みが少ないかもしれませんが、サービスを利用する際に、所有する電話番号にSMSが送られ、受信した情報を入力することでサービスを利用できる仕組みです。本人しか持ちえないものである携帯電話(電話番号)を利用して、本人を特定します。
もっと単純な例としては、家や車の鍵も所持情報による認証といえるでしょう。所持のみに頼る場合、盗難や紛失のリスクがあるため、情報セキュリティ分野では他の手段と組み合わせて利用されることも多いです。

従来は三つの方法のうち、一つの方法のみで認証してきました。しかし、近年では、より安全に、より確実に認証するため、二つ以上の要素で認証する「多要素認証(MFA:Multi-Factor Authentication)」が増えています。

多要素認証の詳細はこちらの記事をご覧ください。
「多要素認証(MFA)とは|メリット、デメリットについて解説」

認可とは

「認可」とは、特定条件下において、対象物(リソース)を利用可能にする(アクセス)権限を与えることです。英語では「Authorization」または「AuthZ」と表記されます。
例えば、Webにアクセスできなかった/社内ファイルにアクセスできなかったケースはありませんか?これはWebやファイルへのアクセス権限が、あなたに与えられていなったため、認可されなかったということになります。

認証と認可の使い分け

アクセス制御における認証と認可

アクセス制御とは「正規に承認されている人を認証し、それ以外はアクセスさせない機能」です。承認されていない外部からのアクセスを制御するために導入されるものであり、セキュリティを保つための基本的な機能です。
認証(ログインできるユーザーを識別する機能)を経てログインできたら、次にソフトウェア側でユーザーを識別し、それぞれに適切なアクセス権限を与えるのが認可です。社内ネットワークでは管理職のみがアクセスできる文書を決めたり、部門の管理者が他の部門のユーザーに対して閲覧を制限したりします。このように「認証・認可」の仕組みを総合して、アクセス制御と呼んでいます。認証と認可の組み合わせによって、企業内ネットワークで利用できる端末とユーザーを限定し、それぞれに正しい権限が付与されるよう構築されています。                                  しかし、認証を正しく終えたからといって、すべての情報にアクセスできるわけではありません。この先には、認可を行う必要があります。情報によっては、アクセス可能ユーザーは限られていることや閲覧は可能だが編集は不可な状態など、それぞれの情報にあわせて、アクセスレベルや許可を適切に行うのが、認可ということです。

近年注目されるゼロトラストを実現するためには、認証・認可が非常に重要になっています。
ゼロトラストについて詳しく知りたい方はこちらの記事をご覧ください。
「ゼロトラストモデルとは」

SNSで認証と認可を区別する理由

今度はFacebookのようなSNSで考えてみましょう。例えば、ログイン(認証)して写真を投稿する場合はどうなるでしょうか。もし、認証と認可が分かれていないと、「ログイン(認証)=すべての権限(すべての写真の編集・削除・加工)を利用できる」ことになります。もちろん、実際にはそうなっていません。写真を編集・削除するには、あなたがその写真の編集権限を認可した場合だけです。
このように、Webサービスにおいて、正しい権限をユーザーに与えるには「認可」が必要になるのです。

つまり、
(1)本人を確認してログインを許可(認証)
  ↓
(2)投稿や閲覧に関する適切な権限を付与(認可)
という構造になっています。

利用者情報の変更も同様です。認証されてサービスにアクセスしても、他人の利用者情報を閲覧したり、編集したりできたら大問題です。認可によって、権限を細かく設定することはサービス提供に欠かせないのです。

認証と認可は欠かせない

もし、Webサービスの認証と認可が分かれていないとどうなるでしょうか。認証によって全ての権限をまとめて認可することになるので、必要な権限だけを認可することができません。つまり、ユーザーに合わせた適切なサービスを提供することができません。さらに、情報漏洩やハッキングの被害が生じる可能性もあります。
また、一度ユーザーを登録した後、運用の中で権限を分ける必要が出てきたとします。このとき、サービスの設計段階で認証と認可を別で実装していないと、ユーザーに新たな権限を与えたり、あるいは必要な権限のみに制限したりといった、柔軟で発展的な運用が行えなくなります。

TwitterやFacebookなどで、知らない間にスパムアプリにアカウントを乗っ取られて、大量のスパムを送ってしまうことがあります。これは、ユーザー自身がスパムに発信権限を「認可」してしまった例です。
「認可」するアプリがどのような機能であるかを理解しているか、信頼できるアプリまたは運営者であるかどうかを、事前に適切に見極めなければ、このような事故が起こります。SNS側では代理認証はしていますが、連携するアプリの安全性までは保証していません。認証と認可の違いを正しく理解することは、こうした事故を防ぐためにも重要になっていきます。

まとめ

「認証」と「認可」は日本語でも英語でも似た言葉ですが、違いをしっかり認識することが非常に重要です。認証はユーザーの本人確認、認可は正しいアクセス権限を付与するために必要になります。どちらか一方を強化するだけでは、セキュリティ対策にはなりません。認証と認可は異なるものであるため、どちらも強化する必要があります。

かもめエンジニアリングでは、認証・認可を強化するソリューションとして、SSOソリューション「KAMOME SSO」IDaaS「GMOトラスト・ログイン」Keygatewayなどを提供しております。ご興味・ご相談の際はぜひ下記フォームよりご相談ください。

事業・商品・サービスに関するお問い合わせ

製品に関するお問い合わせはこちら

※フリーメールでのお問い合わせは受け付けておりません。

必須
必須
必須
必須
必須
必須
必須