アクセス制御

アクセス制御（アクセスせいぎょ、Access Control）は、対象へのアクセスを制御すること、また制御する仕組みである。
すなわち、対象（部屋・スマートフォンなど）へのアクセス（出入り・利用など）を制御する（鍵の持ち主のみ入室できる、スマホの持ち主のみ利用できる）仕組みである。部屋に入るための鍵/錠前や、スマホを利用するための指紋認証はアクセス制御の一例である。対象の特性から、物理セキュリティ、コンピュータセキュリティ、ネットワークセキュリティなどに分けられ、各々下記の意味を持つ。
コンピュータセキュリティ.
コンピュータセキュリティにおけるアクセス制御とは、主体/subjectによる対象/objectへのアクセスを許可・拒否すること、またそれを実現する仕組みを指す。例えば人間やプロセス（主体）によるシステムやファイル（対象）への読み／書き／実行（アクセス）を許可・拒否することはアクセス制御である。
利点: 機密性・完全性・可用性.
アクセス制御がもたらす機能により、対象（情報）に求められる以下の性質（情報セキュリティのCIA）が担保・向上される。
すなわちアクセス制御により、情報が、適切な利害関係者のみに、完全な形で、常に提供されることが（理想的には）可能になる。
破綻: 不正アクセス.
アクセス制御により情報のCIA（機密性・完全性・可用性）が担保されるため、アクセス制御はサイバーセキュリティの重要項目である。アクセス制御を正常でない方法で突破する行為は不正アクセスといい、日本では不正アクセス行為の禁止等に関する法律によって規制されている。アクセス制御システムの脆弱性は悪意ある第三者に本来与えられていない権限を奪い取らせる隙を与え、クラッキングにおける不正アクセスと情報の機密性・完全性損失を招きうる。
段階: 認証-認可-監査.
コンピュータセキュリティによるアクセス制御は、
からなる。サブジェクトはまず自らを示す識別子（例: ユーザーID）を用意し、自分が自分だと証明する情報（例: パスワード）を用いて認証/AuthNをおこなう（一般的にいうログイン）。認証結果に基づいて操作可能な権限の払い出し、すなわち認可/AuthZをおこなう。サブジェクトは認可情報を添えてオブジェクトへのアクセスをおこなう。オブジェクトの管理者は認可情報の検証をおこない、正当なアクセスであればオブジェクトへのアクセスを許可する。アクセス履歴は保存され後の監査に利用され、このことが説明可能性 (accountability)を担保する。この一連の流れがコンピュータセキュリティにおけるアクセス制御である。認証および認可は、物理的機器による手段としてバイオメトリクス、金属錠、デジタル署名、暗号化、社会的障壁、人間や自動化システムによる監視などを含む。認可は、ロールベースアクセス制御、アクセス制御リスト、のようなポリシー言語などで実装される。
発展型: サービス跨ぎ・無人化.
ネットワークを介したサービス間連携が登場したことで、ユーザーAが利用するサービスBを、別のサービスCに利用させるようなアクセス制御が必要なケースも登場している。すなわちサービスCがサービスB上のユーザーAの操作を認可されるケースである。ユーザーAのTwitter（サービスB）にゲームCから投稿するのが一例である。そのようなアクセス制御を可能にする認可手法（OAuth、OpenID Connect など）が開発されている。
またIoT（モノのインターネット）の広がり、ソフトウェア開発工程の進展などにより、人の手を介さずに機械同士が連携をとる(machine to machine, M2M）場合のアクセス制御も必要になっている。単純な方法としては機械・プロセスにパスワードを持たせる方法があるが、より安全かつ効率のよいアクセス制御方式が考案されている。
識別.
システムやプロセスの場合、識別は一般に次のような情報に基づく。
識別は次のような方針に基づいて行われる。
共有アカウントは説明可能性を否定することにつながり、クラッカーからも狙われやすい。
アクセス制御モデル.
アクセス制御モデルは、任意アクセス制御と強制アクセス制御と大別されるほか、複数のモデルが提示されている。
粒度.
アクセス制御は粒度に基づいて分類できる。
トークン.
アクセス制御にはセキュリティトークンに基づく方法がある。トークンはペイロード（アクセス制御情報そのもの、あるいはそれらの識別子）を含み、かつペイロード等を発行した者（issuer）が暗号化したペイロード等の署名を含んでいる。トークンの利用者は署名の検証（例: 公開鍵による検証）をおこなうことでペイロードの正当性を確認できる（例: JSON Web Token）。
以下はWebにおけるアクセス制御で用いられるOAuth2およびOpenID Connectで定義されるセキュリティトークンである。
API呼び出しにアクセストークンを添えることで、APIサーバーはリクエストが許可されたものか否かを判断できる。アクセストークンを認められた第三者へ発行すれば、第三者がAPIサーバーへとアクセスできる。これにより第三者であるゲームがTwitterサーバーへアクセスすることでプレイヤーのTwitterアカウントで呟くことができる。すなわち、サービス連携が可能になる。
サービスログイン時にIDトークンを示すことで、一度発行されたIDトークンを各所で利用できる。IDトークンを受け取ったサーバーはIDトークンの検証をおこなうことで対象が認証されていることを確認できる。これによりGoogleからIDトークンを発行し、Twitterへのログイン時に（Googleログインを可にした上で）IDトークンを渡すことで、Twitterへのログインを省略できる。すなわちID連携（ID Federation）が可能になる。
トークンにはいくつかの種類があり、BearerトークンやPoPトークンはその一種である。
通信.
アメリカ合衆国規格 (Federal Standard 1037C) では、通信におけるアクセス制御は以下のような意味をもつと定義している。
物理セキュリティ.
物理セキュリティにおいては、敷地や建造物、部屋などの入り口で、許可された人だけに入場を制限することを指す。このような物理的アクセス制御は、警備員、用心棒、受付係などの人間によって、あるいは鍵と錠などの機械的手段、カードによるアクセスシステムなど技術的手段によって実現される。
公共政策.
公共政策において、システムへのアクセスを制限（認可）し、システム内の行動を監視記録（説明可能性）するアクセス制御は、セキュリティや社会統制のための信頼できるシステムで実装される機能である。