今回はネットワークセキュリティなどでよく聞く「認証」と「認可」のお話です。
タイトルに書いた通り認証と認可この二つが用いられる用語は正しい理解が実は難しかったりします。
しかしこの世界で分からないを理由にセキュリティをおろそかにするわけにもいきませんので出来るだけ簡単にまとめて例も紹介出来たらと思います。
まず2つの違いを調べると大体このような表現にたどり着くと思います。
・認証(authentication)とは、利用者本人の確認を行うこと。
・認可(authorization)とは、利用者に正しい権限を与えること。
一言で言ってしまえばその通りなのですがこの文だけでなるほどとなる人は少ないとおもいます。
では具体的にどう違うのかを簡単な例を交えてまとめてみました。
●認証とは
「認証」とは相手が「誰(何)」であるのかの対象を特定することを指します。
ではどのように対象を特定するか、この方法として大きく3つに分けられます。
・知識情報(対象が知っていること) / SYK:Something You Know
・生体情報(対象の特徴) / SYA:Something You Are
・所持情報(対象がもっているもの) / SYH:Something You Have
知識情報の代表例は「IDとパスワード」です。対象の人だけが知っている知識を利用して誰であるかを認証しています。
生体情報の代表例は「顔・指紋認証」です。本人の特徴である「顔・指紋」を利用して誰であるかを認証しています。
所持情報の代表例は「SMS認証」です。携帯電話の番号を利用してワンタイムパスワードなどの生成により誰であるかを認証しています。
このように様々な情報をもとに相手を特定することを「認証」といい複数の要素を組み合わせた認証を多要素認証といいます。
●認可とは
「認可」とは文字通り何かを「認めて、許可する」こと、何かの権限や権利を与えることを指します。
認証はあくまで入り口の確認であってその中で何が出来るかを認可によって定めているといえます。
例えとしてよく言われるのは映画館やコンサートのチケットを入手することで「上映物を見る」「該当の座席につく」といったリソースに対しての利用する権利(認可)を与えられるということを指します。
●認証と認可の違い
上記の内容をまとめると「認証」は誰かを特定するだけで利用権限が無い。「認可」は権限はあるが利用者の特定はできない。という事です。
ATMなどは暗証番号とカードで認証をおこなう事で引き出しや預け入れとを行う権限(認可)が与えられます。
SNSでもIDとパスワードでのログインで認証をおこなう事で投稿や閲覧などの権限(認可)が与えられます。
これらのサービスは認証と認可のどちらが欠けても成り立ちません、ATMで認証されても何もできないと意味が無いですし、SNSでログイン後の権限がユーザごとに定められていないと他人の情報を自由に閲覧出来てしまうからです。
●まとめ
「認証」と「認可」は日本語でも英語でも似たているため混同しやすいですが、違いをしっかり認識することが非常に重要です。認証はユーザーの本人確認、認可は正しいアクセス権限を付与するために必要になります。どちらか一方を強化するだけでは、セキュリティ対策にはなりません。
つまり認証の要素を増やし、ユーザごとの権限を細かく設定することで不正アクセスなどによる被害を抑えることに繋がるといえます。認証と認可は異なるものであるため、どちらも強化する必要があります。