はじめに
墨蘭/情報セキュリティマネジメント副専門官インターネットを使っていると、あるページを開こうとした瞬間に、ブラウザの画面にポップアップが表示され「ユーザー名とパスワードを入力してください」と求められたことはありませんか? おしゃれなログイン画面ではなく、ブラウザ自体が出すシンプルな小窓です。あれこそが「ベーシック認証(Basic認証)」と呼ばれるしくみです。
この記事では、ITに詳しくない方でもわかるように、ベーシック認証の基本をやさしく解説していきます。
ベーシック認証とは





ベーシック認証とは、Webサイトにアクセスする人が「本当にアクセスしていい人かどうか」を確認するための、もっともシンプルな方法のひとつです。
たとえるなら、マンションのエントランスにあるオートロックのようなものです。正しい暗証番号(ユーザー名とパスワード)を知っている人だけが中に入れる、というわけです。
技術的にはHTTPという通信の決まりごと(プロトコル)に組み込まれた認証方式で、Webが生まれた初期の頃から存在しています。そのため、ほぼすべてのブラウザやサーバーが対応しており、導入がとても簡単なのが特徴です。
どんなときに使われるの?



ベーシック認証は、次のような場面でよく使われています。
まず、開発中のWebサイトの保護です。まだ公開前のサイトを関係者だけに見せたいとき、ベーシック認証をかけておけば、URLを知っていても合言葉を知らない人はアクセスできません。
次に、社内向けの管理画面です。社内ツールや管理ページなど、限られた人だけが使うページに手軽にカギをかけたいときに重宝します。
また、簡易的なアクセス制限としても使われます。本格的なログイン機能を作るほどではないけれど、誰でも見られる状態にはしたくない、というケースにぴったりです。
しくみをざっくり理解しよう



ベーシック認証の流れはとても単純です。
まず、あなたがブラウザでベーシック認証がかかったページにアクセスしようとします。するとサーバーは「認証が必要ですよ」という合図を返します。ブラウザはそれを受け取ると、ユーザー名とパスワードの入力を求めるポップアップを表示します。
あなたがユーザー名とパスワードを入力すると、ブラウザはその情報を「Base64」と呼ばれる方式でエンコード(変換)してサーバーに送ります。サーバー側で情報が正しいと確認できれば、ページの内容が表示されます。間違っていれば、再度入力を求められます。
ここで大切なポイントがひとつあります。Base64は「暗号化」ではなく、単なる「変換」です。つまり、通信を覗き見できる人がいれば、ユーザー名とパスワードは簡単に読み取られてしまいます。手紙の内容を暗号で書いているのではなく、ただローマ字で書き直しているようなイメージです。
ベーシック認証の注意点





ベーシック認証のしくみは、驚くほどシンプルです。
手軽で便利なベーシック認証ですが、いくつかの注意点があります。
第一に、セキュリティの限界です。先ほど説明したとおり、通信内容が暗号化されていないため、パスワードが盗まれるリスクがあります。そのため、ベーシック認証を使うときは必ず「HTTPS」という暗号化された通信と組み合わせることが強く推奨されています。HTTPSを使えば、通信経路そのものが暗号化されるため、中身を覗き見されるリスクが大幅に減ります。
第二に、ログアウトが難しいという点です。一般的なログイン画面であれば「ログアウト」ボタンがありますが、ベーシック認証にはそのような機能がありません。一度入力した認証情報はブラウザが記憶しており、ブラウザを閉じるまで有効です。共有パソコンを使っている場合は注意が必要です。
第三に、ユーザー体験が簡素すぎる点です。見た目はブラウザのデフォルトのダイアログなので、デザインを自由にカスタマイズすることができません。おしゃれなログイン画面を作りたい場合には向いていません。
まとめ
ベーシック認証は、Webの世界でもっとも古くからある認証方式のひとつです。設定が簡単で導入のハードルが低いため、「とりあえずアクセスを制限したい」という場面ではとても便利です。
ただし、セキュリティ面では万全とは言えないため、重要な情報を扱うサイトでは、より高度な認証方式(OAuthやトークンベースの認証など)を使うのが一般的です。



もしあなたがWebサイトの運営に関わっているなら、ベーシック認証は「仮のカギ」として使い、本番環境ではより堅牢な認証方式に切り替えることをおすすめします。まずはこの記事をきっかけに、「認証」というしくみに少しでも興味を持っていただけたらうれしいです。










コメント