BASIC認証とは
Web上のセキュリティを考える上で、まず思い浮かぶものとして「ログイン」があると思います。
サービスをまず初めに使うときは、まずアカウントを作成して、
自分だけのIDとパスワードを作って、他の誰かにはいじることが出来ないようにする。
セキュリティの脅威もこの認証絡みのものが多いです。
認証には、複数の種類がありますが、
今回はBASIC認証についてご紹介します。
BASIC認証の仕組み
「基本認証」と訳されるBASIC認証は、とても簡易的な認証の仕組みです。
WebサーバーとWebブラウザで利用できるもので、
IDとパスワードで認証を行います。
利用するには、Webサーバーに設定ファイルを準備するだけ。
具体的には、.htaccessファイルと.htpasswdファイルの2つです。(Apacheの場合)
メジャーなWebブラウザはBASIC認証に対応しているので問題はありません。
ページ単位でなく、ディレクトリ(ファイル階層)単位でロックをかけることができるので、
「aaa/bbb/ccc」のような階層の場合には、たとえばaaaでログインすればその下のbbbもcccはブラウザを閉じるまで再認証の必要を無くしてアクセスすることもできます。
「簡易的」と言われるワケ
BASIC認証では、ページ移動の際、「Base64」という64種類の文字を用いて符号を付与した通信が行われます。
つまり、毎回毎回、ログイン情報を持ちながら通信を行っていることになります。
ログイン情報は平文のため、「https://」のようにSSL暗号化をしていない「http://」でのアクセスでは、ナマのログイン情報が通信されます。
SSL暗号化された通信をしない状態でページ移動する度、盗聴リスクが圧倒的に高まるのです。
また、BASIC認証はファイルやディレクトリ(ファイルの階層)単位でしか制御できません。
複数のサーバーを使ったサイトなどでは、一貫したログインが出来ないなどの弊害もあります。
あくまでも、BASIC認証は「簡易的な認証の仕組み」とご理解ください。