ばぁど・うぉっちんぐ

セキュリティに強いWeb屋。自由と春を求めて羽ばたく渡り鳥。

このブログはGoogle Analyticsを利用しています

【駆け出しエンジニア向け】 Webアプリエンジニア出身の情報処理安全確保支援士がまとめる Web の脆弱性超基礎④ - 認証・認可の不備 -

概要

今回は少し変化球です。 サイバーセキュリティの世界では認証(Authentication)と認可(Authorization)という単語が存在します。

二つの単語はとても似ていますし、境が曖昧なエンジニアのかたをよく見かけます。

認証・認可とは

認証とは

Wikipedia より引用

認証(にんしょう)とは、何かによって、対象の正当性を確認する行為を指す。

認証とは、本人確認のことを指します。

例えば車を運転している時に検問などで警察官から運転免許書の提示を求められますね。 それと同じで、最近だとライブ会場でも本人確認のために、本人確認書類が求められます。

これらは、本人を確認するための行為です。 Webの世界では、主にパスワード認証が扱われています。

これから紹介するのは認証を行うために必要な3つの要素です。

知識認証

知識認証とは、利用者本人の記憶していること、知識をもとに認証する方法です。

具体例としてパスワード認証や、秘密の質問などが存在します。

特にパスワード認証はありとあらゆるWebアプリケーションのログイン機構として扱われており、ほぼ全てのメンバー管理機能を持つようなサイトで採用されていることでしょう。

利点としては、一般的に普及している認証方法なので、比較的万人に受け入れられやすいことでしょうか。

問題点としては、パスワードの管理が煩雑になりやすいということです。共通のパスワードを使いまわしたり(絶対だめ)、メモ帳などにパスワードを管理したりする。 パスワードの使い回しは言語道断だが、メモ帳へのパスワード記入などは、また別の脆弱性を生む可能性があり、パスワード管理はとても難しい。

パスワード管理ツールなり、パスワードをフレーズで覚えて使いまわさないようにする工夫などが必要になります。

物理認証

物理認証とは、物理的な要素を用いて認証をする方法です。

ITの世界では、OTP(One Time Password)などが有名ですね。 OTPは一定期間で変わるパスワードを発行するトークン機器やアプリを用いて、それらの情報で認証を行う方法です。

利点としては、物理的な物を持っていることで本人と認証することが可能であるという点で、知識認証などとは違い管理が煩雑になりません。 問題点としては、物理的な物を紛失、もしくは盗難に遭ってしまうと認証が突破されてしまう可能性があることです。

生体認証

生体認証とは、生体的な情報を用いて認証を行う手法です。 指紋や色彩、などの生体情報をデータ化して認証情報とします。

利点としては、知識認証、物理認証と比べて詐称するのが難しいという点。 問題点としては、実装が技術的に難しかったり、本人拒否率と他人許容率などのバランスが難しいと言ったものがあります。

多要素認証

多要素認証とは、本人確認のために複数の認証を用いる方法です。

上記の知識認証、物理認証、生体認証のどれか2種類以上を使って認証を行なっていれば、多要素認証という扱いになります。

1番身近な例としては銀行のキャッシュカードを用いたお金の引き落としなどが該当します。 お金を引き出す際は、キャッシュカードと4桁の暗号番号が必要だと思うのですが、これは物理認証と知識認証の二つを用いております。

また3つの要素を兼ね備えているのが、天空の城ラピュタの「バルス」ですね。 知識認証(バルス)、物理認証(飛行石)、生体認証(王家の血)という三つの条件が必要なので、バルスは三桁のパスワードで脆弱すぎwwwと言われるのを時々聞きますが、わりとバルス自体はセキュリティ的に固いことがわかります。

認可

認可とは、本人認証が終わった後に、その本人、もしくは役職や所属しているグループごとにに与えられている権限のことを指します。

運転免許証であれば、普通車や大型など、どの車種を運転することができるか?という部分が認可情報となります。

Twitter の連携アプリなどを開くと下記のような画面が表示されます。 これはTwitter の認証が終わった後、Twitter のどの機能に対してのアクセスを許可するかを確認する認可画面と呼ばれるものです。

f:id:UltraBirdTech:20200229172928p:plain

認証・認可の不備とは

認証の不備

認証の不備とは、本人確認の機能が十分ではなく、本人認証が行われずにWebの機能などを扱えてしまえることです。

例えば本来であれば、他人が知ることのできない情報で知識認証をしなければいけないところを、利用者の誕生日で認証ができてしまったりとかする場合は認証の不備があると言えるでしょう。

認可の不備

認可の不備とは、認可された権限では閲覧できないはずのフォルダなどにアクセスできてしまう場合は認可の不備が認められます。

例えば、社内システムで、経営層しかアクセス権を与えられていない資料に一般社員がアクセスできてしまうなどの問題があると認可の不備と言えるでしょう。

Webの世界では、会員サイトにおいて無料会員であるにも関わらず、有料会員ではないとアクセスできないページへアクセスしたり、機能を扱えてしまう場合は認可の不備にあたります。

対策

認証・認可の不備の対策としては、不備がないように実装することです。(何の対策とも言えていない)

まとめ

・認証とは本人確認のこと ・認可とは認証後の本人(役職)に紐づく権限のこと

おまけ — 個人的に利用しているパスワード管理ツールなど —

パスワード管理ツール

OnePassword 使用しています。 煩雑になりやすいパスワードを、マスターパスワード一つ覚えておくだけで全て管理してくれます。 アプリ、ブラウザ拡張があるので色々なデバイス、PCでパスワード管理を行うことができます。 年額がかかりますが、パスワードの使い回しをするくらいならツールに頼るという選択をしました。

1password.com

OTPアプリ

多要素認証が設定されているSNSやツールは全てOTP設定をしています。もしブルートフォースや、上記OnePasswordがハッキングされてパスワードが突破されても、多要素認証を設定しているので安心です。

Google Authenticator

Google Authenticator

  • Google LLC
  • ユーティリティ
  • 無料
apps.apple.com

play.google.com

やはり、セキュリティエンジニアとしてはこういう振る舞いから入るというのも大事なのかなと考えています。