AAAの真ん中のA--認可について

記事
IT・テクノロジー
どうも。細々と活動しているスガ〜です。

ココナラのブログでどこまで書けるか試していきつつ、情報セキュリティに関する話題を出していこうと思います。

できるだけ分かり易く(と思い込んでいる)内容にしていきたいと思います。外部サイトへのリンクを貼れないので、みなさまが調べていけるように、外部の検索サイトで調べていけるキーワードを太字にして示します。なお、検索したときは、悪意のあるサイトにアクセスしないよう十分にご注意ください。
また、読み方が分かりにくいなぁと感じたIT系の用語は、角括弧[ ]内にカタカナで読み方を付けておりますので参考にしていただければと思います。

※公開時において、キーワードを太字に設定するのを忘れてしまいました。すみません。修正したブログを再公開しています。

AAAとは?

AAA[トリプルエー]は、認証(Authentication[オーセンティケーション])、認可(Authorization[オーソライゼーション])、アカウンティング(Accounting)の頭文字をとったもので、それぞれのセキュリティ機能を提供する仕組みになります。

認証は、IDやパスワードなどを用いて、ユーザーや端末などの正当な利用者であることを確かめることで、前回までのブログで書いた、パスワードレスを実現するパスキーや、アイデンティティに関するお話でご説明しました。

認可は、利用者に対して何かしらの権限や権利を与えることになります。今回は、ここのお話です。

そして、アカウンティングは、利用者の状況を記録することになります。例えば、利用者が操作した機能やログイン・ログアウトの日時などのログを取ることがアカウンティングです。

この3つを適切に利用して、アクセス制御(Access Control)を実現することになります。

シンプルに表現すると、

 認証       ・・・ あんた誰?
 認可       ・・・ 何できるの?
 アカウンティング ・・・ 記録しちゃうよ?

という上から目線の仕組みがAAAです。

認可は理解しにくい?

認可は、情報システムのセキュリティにおいて非常に重要な概念なのですが、認証との違いが十分に理解されていない状況があるかなぁ~と感じています。
そこで、乱暴で極端な例え話を挙げてみます。

あなたはとある企業に勤める平凡な会社員と仮定します。

会社に出勤したとき、社員証もあるし、警備員さんに顔も覚えてもらっているので、すーっと職場に入れます。 <-- 認証!!

職場に入ってからふと思い立ち、そのまま社長室へ足を運びました。

社長室では、秘書さんが出勤しており、社長さんはいません。

あなたは、社長の席に進み、椅子に座ろうとしました。その時点で秘書に「おいっ」と怒られてしまいました。 <-- 認可!!

・・・分かりにくいですよね?
平凡な会社員さんは、会社に入って自分の仕事をすることができますが、社長さんの仕事をできるわけではありません。

このように、役職で行動できる範囲や、取り扱う業務の範囲が異なり、その状況を制御するのが認可になります。「会社」という例えだと、役職に応じて持っている権限や権利というイメージで、認可について理解していけると思うのですが・・・。

分かりにくいうえに面倒くさい認可

認証と認可を分離して扱っていない情報システムでは、不要な権限を利用者に持たせることになってしまい、秘密の情報など読み放題の世界になってしまいます。本人が気を付けていたとしても、なりすましや不正アクセスで悪意を持つ人に使われてしまったら被害を生み出すことになります。情報漏洩や内部不正などのリスクを高める可能性を作り出してしまうのです。

また、平常的な運用においても支障を生じることがあります。
例えば、ユーザーID自体に認可の意味合いを持つ文字やラベルを付け、ユーザーIDの文字やラベルで権限を判断するような情報システムを構築してしまうと、そのユーザーIDを使用するユーザー自身の立場が変わったときに対応が困難になります。

そのため、会社での役職のように、ユーザーIDとは別の項目を用意してその中に所属させて、その所属している情報を利用して認可するようにします。このような情報を利用して認可するのは、役割ベースのアクセス制御RBAC[アールバック]、Role-Based Access Control)につながります。

これに対して、ユーザー(に加えて、そのときの環境などの状況)が持つ性質を利用して認可するものは、属性ベースのアクセス制御ABAC[エーバック]、Attribute-Based Access Control)につながります。
勤務時間内はこれこれのファイルにアクセスできるけど、勤務時間外はアクセスできなくなる、のような感じ~。

RBACやABACに関してはNISTなどで読み切れないぐらいのドキュメントが公開されているので、興味があれば参照してみることをお勧めします。

参考:
csrc.nist.gov/projects/Role-Based-Access-Control
(頭に「https://」を付けてアクセスしてください。)

認可の設定は、非常に複雑になるうえに手間もかかるものになりますが、適切に設定し、運用できるように情報システムを設計していくことが重要だといえます。



情報セキュリティに関するご相談を承りますっ!

サービス数40万件のスキルマーケット、あなたにぴったりのサービスを探す