「認証」とは
認証とは、コンピュータやサービスを利用しようとしている人が、本当にその本人であるかを確認する仕組みです。
例えば、ログインするときにパスワードを入力したり、スマートフォンに届いた確認コードを入力したり、指紋や顔を読み取ったりするのは認証の例です。
認証で本人を確認した後、「その人にどの情報の閲覧や操作を許可するか」を決めることをアクセス制御といいます。認証とアクセス制御は関係が深いですが、同じものではありません。
認証に使う三つの要素
本人確認に用いる情報は、主に次の三種類に分類できます。
認証要素の分類
| 認証要素 | 意味 | 例 |
| 知識要素 | 本人が知っているもの | パスワード、暗証番号(PIN)、秘密の質問 |
| 所持要素 | 本人が持っているもの | ICカード、スマートフォン、物理的な鍵 |
| 生体要素 | 本人自身の身体的・行動的特徴 | 指紋、顔、虹彩、静脈、声、筆跡 |
利用者IDは「誰としてログインしようとしているか」を示す識別子であり、それ自体を秘密にして本人を確認する情報とは限りません。
スマートフォンに届く確認コード
登録済みのスマートフォンにSMSなどで確認コードを送り、そのコードを入力させる方法があります。
入力するコード自体は文字や数字ですが、この認証で確認しているのは「そのコードを知っているか」だけではなく、基本的には登録されたスマートフォンや電話番号を利用できる状態にあるかです。そのため、認証要素としては所持要素として扱います。
パスワードとスマートフォンへの確認コードを組み合わせれば、次のように異なる二種類の要素を確認することになります。
パスワード:知識要素
スマートフォン:所持要素
ただし、SMSによる認証にも弱点があります。SMSを第三者に受信されたり、利用者が偽のWebサイトに確認コードを入力してしまったりすれば、コードを盗まれる可能性があります。確認コードには短い有効期限を設定し、一度使用したコードは再利用できないようにすることが望ましいです。
多要素認証
多要素認証(MFA:Multi-Factor Authentication)とは、異なる種類の認証要素を二つ以上組み合わせる方式です。
例えば、次のような組合せは多要素認証となります。
一方、次のように同じ種類の要素を二つ使っただけでは、多要素認証にはなりません。
パスワード(知識)+別のパスワード(知識)
パスワード(知識)+秘密の質問(知識)
暗証番号(知識)+パスワード(知識)
指紋(生体)+別の指の指紋(生体)
ICカード(所持)+別のカード(所持)
重要なのは、入力する回数や情報の個数ではなく、認証要素の種類が異なるかどうかです。
二要素認証と二段階認証
異なる二種類の要素を使う認証を二要素認証といいます。二要素認証は多要素認証の一種です。
これに対して二段階認証は、認証を二つの段階に分けて行うことを表します。二段階認証であっても、必ずしも二要素認証とは限りません。
例えば、
パスワードを入力する
秘密の質問に答える
という方式は二段階で認証していますが、どちらも知識要素です。そのため、二段階認証ではありますが、二要素認証ではありません。
パスワードによる認証
パスワードは代表的な知識要素です。
パスワードが漏えいすると、本人になりすましてログインされる危険があります。そのため、次のような対策が重要です。
十分に長いパスワードを使う
サービスごとに異なるパスワードを使う
複数サービスで使い回さない
必要に応じてパスワード管理ツールを利用する
多要素認証を併用する
多数のサービスで異なる長いパスワードを管理する場合、信頼できるパスワード管理ツールを利用する方法があります。その場合は、管理ツール自体のマスターパスワードを十分に強くし、多要素認証などで保護します。
パスワードを忘れた場合
サービス側が利用者の現在のパスワードをメールで送り返す方式は適切ではありません。
本人確認後、登録済みのメールアドレスなどへ、次のような方法で新しいパスワードを設定させる方式が適切です。
推測困難な再設定用URLを送る
URLには有効期限を設定する
一度使ったURLは無効にする
生体認証
生体認証は、本人の身体的特徴や行動的特徴を利用する認証方式です。
代表例には、次のようなものがあります。
生体認証には、パスワードを覚えたりカードを持ち歩いたりする負担を減らせるという利点があります。
一方、生体情報にはパスワードと異なる特徴があります。パスワードは漏えいすれば新しいものに変更できますが、指紋や顔などの身体的特徴は簡単には変更できません。そのため、認証に用いる生体情報から作成した生体テンプレートなどを適切に保護する必要があります。
また、けがや機器の故障などで生体認証が利用できない場合に備えて、別の認証方法を用意することも必要です。
本人拒否と他人受入れ
生体認証では、測定結果を登録済みの特徴と照合し、一定以上似ていれば本人と判定します。このため、完全に誤判定をなくすことは難しいです。
本人拒否:本人なのに本人ではないと判定する
他人受入れ:他人なのに本人だと判定する
照合のしきい値を緩くすると本人を受け入れやすくなるので、本人拒否は減りやすくなります。一方で、他人まで本人として受け入れる危険は高くなります。
逆に、しきい値を厳しくすると他人を受け入れにくくなりますが、本人まで拒否する可能性が高くなります。
したがって、生体認証では本人拒否と他人受入れの間に交換関係があります。
写真による顔認証の突破
顔認証装置に本人の写真を見せて認証を突破しようとするような攻撃を防ぐには、顔の形が登録情報と一致しているかだけでは不十分です。
まばたき、微細な動き、顔の奥行きなどを調べ、「カメラの前にいるのが写真や動画ではなく、生きた人間であるか」を確認するライブネス検知が用いられます。
一時的なコードと再利用への対策
認証に使うコードを何度でも利用できるようにすると、盗まれたコードを再利用される危険があります。
例えば、来訪者用のQRコード付き入館証では、一度利用したコードを再び利用できないようにすれば、使用済みの入館証を拾った人による再入館を防ぎやすくなります。
同様に、SMSなどで送る一時コードも、次のような対策によって不正利用の危険を減らせます。
固定された二次元コードをPDFなどで配布すると、ファイルのコピーや画面撮影によって複製されやすくなります。これに対して、一定時間ごとにコードが変わり、利用者のアカウントや端末と結び付いた方式では、複製による不正利用を抑えやすくなります。
チャレンジが毎回変わる認証
利用者ごとに乱数表を持たせ、ログインするたびに「○行○列の数字を入力してください」のように異なる位置を指定する方式があります。
毎回入力する値が変わるため、あるとき入力した値だけを盗み見られても、その値を次のログインでそのまま利用できるとは限りません。
このように、以前取得した認証情報をそのまま再利用するリプレイへの耐性を高めることができます。
認証と暗号化
認証は本人を確認する仕組みであり、暗号化は情報を読めない形に変換して秘密を守る仕組みです。
例えば、ノートPCの記憶装置を抜き取られて別のPCへ接続された場合、OSのログインパスワードだけでは保存データを守れないことがあります。
記憶装置全体を暗号化し、復号するときに本人の認証情報を要求するようにすれば、記憶装置そのものを盗まれてもデータを読まれにくくできます。
電子署名と認証
電子署名は、電子文書について、次のことを確認するために利用されます。
誰が署名したものか
署名後に内容が改ざんされていないか
公開鍵暗号方式を使う電子署名では、送信者が自分の秘密鍵を使って署名を作成し、受信者が対応する公開鍵を使って署名を検証します。
ただし、「その公開鍵が本当にAさんの公開鍵である」と確認できなければ、「Aさんの署名である」と確実に判断できません。
そこで、公開鍵とその所有者との対応を電子証明書などで確認します。
公開鍵暗号方式では、次の区別が重要です。
公開鍵:他人に公開してよい
秘密鍵:所有者だけが安全に管理する
公開鍵から秘密鍵を容易に求められるようでは、安全性が成り立ちません。
なお、電子署名は主として送信者や改ざんの有無を確認するものであり、文書を第三者から読めないようにする機密性を直接保証する仕組みではありません。
真正性
情報セキュリティでは、「主張されている人や情報源が本物であること」を真正性といいます。
例えば、
この電子文書は本当に表示されている送信者が作成したものか
を確認することは、真正性の確認に当たります。
認証や電子署名は、真正性を確保するために利用されます。
認証と情報セキュリティの三要素
情報セキュリティの基本的な三要素として、次のものがあります。
機密性:許可された人だけが情報を利用できる
完全性:情報が正確で、不正に変更されていない
可用性:必要なときに情報やサービスを利用できる
認証によって利用者を確認し、権限のある利用者だけに情報を見せることは、特に機密性を高めます。
例えば、IDとパスワードで利用者を認証して顧客情報へのアクセスを制限することや、サーバ室への入室時に暗証番号と虹彩認証を要求することは、権限のない人による情報閲覧を防ぐための対策です。
一方、サーバを複数用意して障害時にもサービスを継続できるようにする対策は、主に可用性に関係します。
認証とアクセス制御
認証によって「誰であるか」を確認した後、その利用者が何をしてよいかを決めるのがアクセス制御です。
例えば、社員ごとに入室できる部屋を設定するシステムでは、次の流れになります。
指紋やICカードなどで社員を認証する
その社員にその部屋への入室権限があるかを確認する
権限があれば入室を許可する
認証 → 本人の確認
アクセス制御 → 権限の確認
このように、認証とアクセス制御を区別できます。
認証ログ
不正ログインなどを後から調査できるようにするため、認証の記録をログとして残すことが重要です。
例えば、次のような情報を記録します。
認証を試みた時刻
利用者IDなどの識別子
接続元
認証が成功したか失敗したか
これによって、「いつ、誰として、どこから認証を試み、結果がどうなったか」を調査できます。
ただし、利用者が入力したパスワードそのものをログへ記録してはいけません。ログ自体についても、閲覧できる人を制限し、改ざんされないよう管理する必要があります。
物理的な場所への認証
認証はコンピュータへのログインだけでなく、建物や部屋への入退室管理にも利用されます。
例えば、次のようなものによって入室者を確認できます。
ICカード
QRコード付き入館証
暗証番号
指紋・顔・虹彩
ただし、認証装置があっても、それだけですべての侵入を防げるわけではありません。
テールゲーティング
認証済みの人が扉を開けた直後に、認証していない別人がその人について一緒に入り込む手口をテールゲーティングといいます。
これは認証装置そのものを破るのではなく、人の出入りに便乗して物理的なアクセス制御を回避する方法です。