皆さんはBasic認証という言葉を聞いたことがありますか?
セキュリティの脆弱性から、現代ではBasic認証を採用している、ウェブ上のサービスもほぼないと言っても過言ではありません。
Basic認証とは、Webサイトにアクセスする際に使用される、最も単純な形の認証方法の一つです。HTTPプロトコルを使用した認証方式であり、ユーザー名とパスワードを用いてユーザーを識別し、認証を行います。
特に、Webサイトを公開する前のテスト段階や、限定された人々にだけ情報を公開したいときに非常に便利です。
しかし、冒頭でも紹介した通り、Basic認証には大きなセキュリティにおける問題点や脆弱性があります。
そこで今回は、このBasic認証の仕組みから、そのセキュリティの問題点、そのほかに使える安全な認証方法などをわかりやすくご紹介します。
Basic認証の仕組みとは?
Basic認証の仕組みは、ウェブサーバーとクライアント(通常はウェブブラウザ)間でユーザー名とパスワードを用いた認証を行うプロセスです。このプロセスはHTTPプロトコルの標準的な認証メカニズムの一つであり、以下のステップで進行します。
ステップ1: アクセス要求
ブラウザが保護されたURLのリソースにアクセスしようとすると、サーバーはまず認証が必要であることを示すために、HTTPステータスコード 401 Unauthorized と「WWW-Authenticate」ヘッダーを含むレスポンスをクライアントであるブラウザに送ります。このヘッダーは、使用する認証方式(この場合は「Basic」)と、オプションで認証の範囲(realm)を示します。
ステップ2: 認証情報の送信
クライアント(ブラウザ)はこのレスポンスを受け取ると、ユーザーにユーザー名とパスワードの入力を促すダイアログボックスを表示します。ユーザーがこれらの情報を入力し、送信すると、ブラウザはユーザー名とパスワードをコロン(:)で連結し、その結果をBase64でエンコードします。このエンコードされた文字列は、次に送信されるHTTPリクエストの「Authorization」ヘッダーに「Basic」の後に追加されます。
ステップ3: 認証とアクセス
サーバーは「Authorization」ヘッダーを受け取ると、エンコードされた文字列をデコードし、ユーザー名とパスワードを取り出します。次に、サーバーはこれらの認証情報を検証し、正しい場合はリクエストされたリソースへのアクセスを許可します。認証情報が間違っている場合は、アクセスが拒否され、再度「401 Unauthorized」レスポンスが返されます。
このようにBasic認証は、ベーシックというだけあって、簡易的な認証ステップになるためセキュリティにおける問題点もいくつか確認されています。
Basic認証のセキュリティにおける問題点
Basic認証はその単純さから多くのウェブサイトやアプリケーションで使用されていますが、いくつかのセキュリティ上の問題点も持ち合わせています。ここでは、Basic認証の主なセキュリティの問題点をご紹介します。
Basic認証はそのままでは暗号化されない
Basic認証におけるユーザー名とパスワードの送信は、Base64エンコーディングを用いて行われますが、この方法はデータを暗号化するものではありません。Base64は単にデータを64種類の英数字のみで表現するエンコーディング方式であり、誰でも容易に元の情報に戻すことができるため、セキュリティ上の保護を提供しません。その結果、通信経路上でデータを傍受する機会を得た攻撃者は、これらの情報を簡単に盗み出すことが可能となります。
このような脆弱性を抱えることから、Basic認証を用いる際は、通信の安全性を高めるためにHTTPSを併用することが強く推奨されます。
中間者攻撃を受けるリスクがある
中間者攻撃(Man-in-the-Middle Attack)と呼ばれる、攻撃者がユーザーとサーバーの間にこっそりと入り込む一種のサイバー攻撃を受ける可能性があります。この攻撃の際、攻撃者は両者間の通信を秘密裏に盗聴または操作することができます。HTTPSを使用しない場合、Basic認証情報を含むすべての通信は暗号化されずに送信されるため、この攻撃に特に脆弱になります。
攻撃者が成功すれば、送信されたデータを自由に覗き見ることができるだけでなく、必要に応じてデータを改ざんすることも可能です。たとえば、ユーザー名とパスワードを盗み取り、後で不正アクセスに利用することや、ユーザーがサイトに入力した個人情報を収集することができます。
ブルートフォース攻撃
ブルートフォース攻撃は、攻撃者が自動化されたツールを用いて、多数のユーザー名とパスワードの組み合わせを繰り返し試すことによって、あるアカウントのパスワードを突き止める攻撃方法です。この手法は、特にBasic認証を使用しているシステムに対して効果的であり、そのシンプルな認証機構が攻撃を容易にしてしまいます。攻撃者は、比較的短い時間内に数多くの異なるパスワードを試すことができ、弱いパスワードや一般的なパスワードを使用しているアカウントは特に危険にさらされます。
この攻撃の成功確率は、主にパスワードの複雑さと予測不可能性に依存します。単純で推測しやすいパスワードや、一般的によく使用されるパスワード(例えば「password」や「123456」など)は、ブルートフォース攻撃によって簡単に破られる可能性があります。特にBasic認証で必要とするユーザー名とパスワードは、シンプルの構成のものが多い傾向にあるため、
ブルートフォース攻撃の脅威に晒されます。
クレデンシャルスタッフィング攻撃
クレデンシャルスタッフィング攻撃は、一度攻撃者に盗まれた認証情報を、他のウェブサイトやアプリケーションに対するアクセス権を得るために再利用される可能性があります。自動化ツールを用いて大量の盗まれたユーザー名とパスワードの組み合わせを、異なるウェブサイトに対して試します。攻撃者の目的は、同じ認証情報を使用しているアカウントを見つけ出し、不正アクセスを試みることです。特にベーシック認証は、簡単なユーザー名とパスワードで構成されることから、この攻撃の対象として狙われやすいです。
この問題の根本原因は、多くのユーザーが覚えやすさや利便性のために、異なるサービス間で同一のパスワードを使い回す習慣にあります。しかし、これにより、一箇所で認証情報が漏洩した場合に、他の全てのアカウントの安全性も危険にさらされることになります。
Basic認証のリスクを軽減するためのセキュリティ対策
Basic認証のリスクを軽減するためのセキュリティ対策として、以下のような対策が効果的です。
HTTPSの使用
Basic認証ではログイン情報をBase64という形式で変換して送信しますが、これによる変換は暗号化ではないため、情報は保護されているとは言えません。Base64は、使用可能な文字がアルファベット、数字、そしていくつかの記号の合計64種類に限られており、これらの文字でエンコードされたデータは、専門知識がなくても比較的簡単に元の情報に戻すことができます。このため、ログイン情報がインターネット上でやり取りされる際に、第三者によって簡単に傍受されてしまう可能性があります。
このようなセキュリティの弱点に対処するため、ウェブサイトとブラウザ間の通信をSSL(Secure Sockets Layer)で暗号化するHTTPSの利用が推奨されます。
HTTPSを使用することによる通信の暗号化は、ユーザー名やパスワード、クレジットカード情報などの機密データがインターネット上で安全に送受信されるようになります。
ランダムで強力なパスワード設定
ランダムで強力なパスワード設定することで、より複雑で推測しにくくなります。
パスワードの更新頻度や、以前に使用したパスワードを再利用できないようにするルールも設けることも大切です。これにより、もし一つのパスワードが漏洩したとしても、定期的な変更によってそのリスクを最小限に抑えることができます。
このような複雑なパスワードポリシーを実践する上で、パスワードマネージャーの役割は非常に重要です。パスワードマネージャーは、ユーザーが複雑なパスワードを簡単に作成し、安全に保管することを支援するツールです。これにより、ユーザーは一つ一つのパスワードを覚える必要がなく、マスターパスワードまたは生体認証などだけでボルトにアクセスが可能になり、パスワードマネージャーがそれらを管理します。
OAuth認証方式を代わりに使用する
現代のほとんどのウェブアプリケーションでは、OAuthの認証方式を採用しているところがほとんどです。
認証方式にOAuthを好む主な理由は、セキュリティ、柔軟性、ユーザー体験の向上にあります。Basic認証のシンプルさには魅力がありますが、パスワードをBase64でエンコードする方法は容易にデコード可能であり、セキュリティ上のリスクが高いです。これに対してOAuthは、ユーザーのクレデンシャルを直接露出させることなく、アクセス許可をトークンベースで行うため、より安全な認証方法を提供します。また、OAuthは細かいアクセスレベルの制御を可能にし、サードパーティアプリケーションの安全な利用を促進します。このようなアクセス制御により、ユーザーは自分のデータへのアクセスを細かく管理でき、サービス間でのシングルサインオン(SSO)を実現することが可能になります。
例としては以下のようなものがあります。
・Facebook: ユーザーが他のアプリケーションやサービスにFacebookの認証情報を使用してログインできるようにします。
・Google Drive: Googleのクラウドストレージサービスで、ユーザーがGoogleアカウントを使用して他のアプリケーションから安全にアクセスできるようにOAuthを使用します。
などなど、皆さんも一度はこのようなログインの認証方式を知らずに使ったことはあるのではないでしょうか。
この方法により、Basic認証よりもはるかに安全に認証を済ませることができます。
パスワードマネージャーで認証を管理するメリット
先ほども紹介した通り、Basic認証では単純なパスワードとIDの認証方式なのに対し、OAuth認証方を採用することでほぼパスワードレスになります。
しかし、OAuth認証方式を導入しても、その親元のアカウントのパスワードやIDなどの管理は必要になります。そこで、パスワードマネージャーが管理を簡素化してくれます。
パスワードマネージャーを使用して認証を管理することには多くのメリットがあり、これらは個人ユーザーだけでなく、企業や組織にとっても重要です。
そのメリットをいくつかご紹介します。
ログイン情報の一元管理
パスワードマネージャーを使用すると、OAuth認証を使用しないサービスを含め、すべての認証情報を一箇所で管理できます。これにより、ログイン情報を安全に保管し、簡単にアクセスできます。
強力なパスワードの利用
パスワードマネージャーを使うことにより、強力なパスワードの生成と保管を簡素化してくれます。Basic認証のパスワードとIDのクレデンシャル情報はもちろん、OAuth認証の親元のサービスのログイン情報は依然として管理が必要になります。
これらのアカウントに対して、強力なパスワードを設定することでセキュリティが向上します。
アクセスの便利性
パスワードマネージャーは、デバイス間でパスワードを同期することができるマルチデバイス対応になっています。
例えば、iPhoneのiCloudキーチェーンに保存されているログイン情報は、Appleのデバイスからしかアクセスすることができません。
しかし、パスワードマネージャーは、Android、iPhone、Windows、Mac機種を問わずに、どこからでもアクセス情報にアクセスできるようになります。OAuth認証を使用するサービスでも、初回ログイン時にパスワードや認証情報が必要になる場合があり、パスワードマネージャーがこのプロセスを簡素化します。
多要素認証(MFA)や二要素認証 (2FA)の生成と管理
Keeperのような、いくつかのパスワードマネージャーは、二要素認証トークンを生成し、管理する機能を備えており、ログインプロセスをさらにセキュアにします。
OAuth認証方式がアカウントのセキュリティを向上させる一方で、パスワードマネージャーはすべてのオンラインアカウントのセキュリティ管理を一元化し、強化するための追加的なツールを提供します。また二要素認証(2FA)や多要素認証(MFA)を設定することで、例え、あなたのログイン情報が漏洩したとしても、追加の本人確認の情報がなければアカウントにログインすることができません。
結果、より強力なセキュリティをあなたのアカウントに提供します。
脆弱性の監視
多くのパスワードマネージャーは、保存されたパスワードの安全性を定期的にチェックし、弱いパスワードや漏洩した可能性のあるパスワードをユーザーに通知します。
これにより、セキュリティ監査も簡易的に済ませることができます。
またKeeperでは、ダークウェブモニタリングしてくれるBreachWatch®という追加機能も存在していて、ダークウェブに漏洩している情報とあなたのクレデンシャル情報がマッチした場合は、漏洩していることを警告してくれます。
通知を見つけた場合は、速やかにパスワードを変更することで、対処することができます。
パスワードマネージャーがこのようなダークウェブに漏洩している情報を自動で見つけてくれるのも、セキュリティ強化に大きく貢献しています。
まとめ:Basic認証の脆弱性を理解した対策を
今ではほとんどのWebサイトではBasic認証の設定をすることは、脆弱性の面からありませんが、それぞれどんな問題点やサイバー脅威があるのかを知ることは、自分の身を守る上で非常に重要なことです。
パスワードレスになった、OAuth認証を利用したログインが主流になっている今の時代でも、依然として親元であるログイン情報は欠かせません。
そんな時に大活躍するのがパスワードマネージャーです。パスワードマネージャーにログインする際も、顔認証や指紋認証などの多要素認証(MFA)にも対応していて、マスターパスワードを覚える必要としないログイン方法まであります。
パスワードマネージャーを使うことにより、各オンラインアカウントのログイン情報を安全に保管し、パスワードレスをより実現に近づけてくれるツールです。
この機会に、Keeper パスワードマネージャーの30日間の個人プランフリートライアルまたは、14日間のビジネスプランのフリートライアルを試してみてはいかがでしょうか。