私たちは日々、さまざまなシステムによって、身元を確認され、認証され、承認されています。それにもかかわらず、これらの言葉の意味を混同する人は多く、実は承認について話しているのに、「本人確認」と言ったり「認証」と言ったりしています。
これが日常会話でのことで、何について話しているのか共通理解があるのなら、大した問題ではありません。それでも、自分の使う言葉の意味をきちんと理解しているに越したことはありません。言葉の定義に厳しい人と出会って、「認証」なのか「承認」なのか、「未満」なのか「以下」なのか、細かく詰められるかもしれませんからね。
では、「本人確認(identification)」「認証(authentication)」「承認(authorization)」という言葉はそれぞれどんな意味で、それぞれが表す行為はどう違うのでしょうか。手始めに英語版Wikipediaの説明をのぞいてみましょう。
- “Identification [is] the act of indicating a person or thing’s identity”
※日本語訳:本人確認とは、人の身元や物の正体を明らかにする行為です。 - “Authentication is the act of proving […] the identity of a computer system user.”
※日本語訳:認証とは、コンピューターシステムのユーザーの身元を証明する行為です。(たとえば、入力されたパスワードと、データベースに保存されているパスワードとを照合する行為) - “Authorization is the function of specifying access rights/privileges to resources”
※日本語訳:承認とは、リソースに対するアクセス権/特権を規定する作用です。
このとおり、こうした概念になじみのない人にとっては、区別を付けにくい言葉なのが分かりますね。
本人確認、認証、承認をアライグマで説明する
分かりやすくするために、具体例を使って説明します。ある人が、Googleアカウントにログインしようとしているところだと思ってください。では、順を追ってログイン手順を見てみましょう。
- 最初に、GoogleからログインID(メールアドレスまたは電話番号)の入力が要求されます。Googleのシステムは、入力されたログインIDが本物であることを確認します。これが本人確認です。
- Googleは次に、パスワードを要求します。入力されたパスワードと、保存されているパスワードとが一致すると、システムはその人が本人であることを認めます。これが認証です。
- 続いて、確認コードの入力が求められます。確認コードは一度限り有効なコードで、テキストメッセージ(SMS)で携帯電話宛てに送られてくるか、認証システムアプリで取得します。正しいコードが入力されると、システムはその人が本当にアカウントの所有者であることを最終的に認めます。これが2段階認証です。※このステップは、2段階認証を有効にしてある場合に表示されます
- 最終的にシステムは、受信トレイ内のメールを読み取る権限などを、その人に付与します。これが承認です。
本人確認なしの認証には、意味がありません。誰の身元の信憑性を確認すればいいのか分からなければ、認証しようがありませんからね。誰でも、最初に自己紹介をする必要があるのです。
同じように、本人確認をして認証をしないのも、おかしな話です。これでは、データベース内に存在するログイン情報(たとえばメールアドレス)を入力できれば誰でもログインできてしまいます。そこで、システムにはパスワードが必要なのです。しかし、パスワードを盗み見たり推測したりする人がいるかもしれないので、利用者本人だけが知っている証拠(一度限りの確認コードのようなもの)の入力を求めた方が良いですね。それが2段階認証です。
一方で、本人確認をしないで、ましてや認証を経ずに、承認が行われる可能性は十分にあります。たとえば、Googleドライブ内のドキュメントに誰でもアクセスできるように、ドキュメントを公開設定にした場合です。公開設定のドキュメントを開いているとき、別の人が同じドキュメントを見ていることを示す動物アイコン(たとえば「匿名アライグマ」だとか)が、ドキュメントの右上あたりに表示されたことがありませんか?これは、どこの誰だか分からない「アライグマ」をシステムが承認した(つまり、ドキュメントを見る権限を与えた)ということです。
しかし、ドキュメントの読み取り権限が特定の人だけに与えられている場合、このアライグマがドキュメントを読む権限を得る(承認される)ためには、(ログインIDを入力することで)本人確認を受け、(パスワードと確認コードを入力することで)認証してもらう必要があります。
あなた宛のメールを読む権限についてはどうかというと、その権限が匿名のアライグマに与えられることはありません。あなた宛のメールを読むためには、アライグマはまず、あなたのログインIDとパスワードを入力して、あなた本人であることを示す必要があります。その時点で、アライグマはGoogleによってあなたであると認識(本人確認)されるので、もはや匿名アライグマではなくなります。
これで、本人確認は認証や承認とどう違うのか、お分かりいただけたのではないでしょうか。もう一つ重要なポイントがあります。アカウントのセキュリティという観点で鍵となるプロセスは、おそらく認証です。弱いパスワードを認証用に使っていると、どこかのアライグマにアカウントを乗っ取られてしまうかもしれません。そこで、以下の点にご注意ください。
- 自分のアカウントすべてに強力なパスワードを設定し、パスワードの使い回しはしないようにしてください。
- パスワードを記憶するのが大変な場合は、パスワードマネージャーの力を借りましょう。パスワードマネージャーは、パスワードの作成もしてくれます。
- 2段階認証のオプションがある場合は、SMSで受け取る方法でも認証アプリで生成する方法でも構わないので、2段階認証を有効にしましょう。あなたのパスワードを手に入れたどこかの匿名アライグマが、メールを勝手に読んだり、もっとひどいことをしたりするような事態にならないように。