NECサイバーセキュリティ戦略本部セキュリティ技術センターの山田です。現在、キャッシュレス決済のように個人の資産に関わる情報をインターネット上で扱うことが一般的になりつつあります。テレワークの普及、クラウドサービスの活用など業務を行う際にも、従来のように組織の管理するイントラネット外から機密情報へのアクセスが必要な場面も増えています。
それに伴い、不正アクセスによるクレジットカードの不正利用や、情報漏洩などのインシデントも報告されています。
今回は、こういったインシデントを防ぐための第一歩であり、重要な要素である認証方式についてメリット・デメリットの整理をします。この記事では、認証についてのガイドラインであるNIST SP800-63を参考に、モデルケースにて必要な認証要素を考えてみたいと思います。
認証方式の整理
まず初めに、3つの認証要素についてご紹介します。NIST(米国国立標準技術研究所)より発行されているNIST SP800-63[1][2]では、認証要素は性質によって「記憶(Something you know)」「所持(Something you have)」「生体情報(Something you are)」という3種類に分類・定義されています。近年広く認知されるようになった「多要素認証(Multi-factor Authenticator)」は、これら3つの要素のうち2つ以上を組み合わせることで実現されます。3つの認証要素の特性を5つの視点で、表1に示します。
- 正確・確実な認証
- 正確・確実な認証
- 認証が確実でなく過誤の可能性
- 覚える・定期的な変更の運用
- 常時携帯の必要性
- 専用の機器導入が必要な場合も
- 記憶、携帯の必要がない
- 機器導入が必須
- 使用する文字種・文字数に依存
- 総当たり、辞書攻撃のリスク
- 盗難・偽装の困難さに依存
- 生体的特徴の盗難や偽装生体作成の困難さに依存
- 漏洩による第三者のなりすまし、認証情報の忘却の危険性
- 盗難・偽装による第三者のなりすまし、紛失による認証情報の喪失の危険性
- 偽装による第三者のなりすましのリスク
- 変更が容易
- 再発行
- 生体特徴そのものの変更は基本的にできない
表1 認証要素の特性
確実性について、記憶・所持要素では、登録されている情報と完全一致するかの判定が行われますが、生体情報要素では使用アルゴリズムや場面(例:日光で顔画像が正常に取得できない)によって、誤って他人を受け入れてしまう他人受入や、誤って本人を拒否する本人拒否が発生する可能性があります。
利便性について、記憶要素は覚えることが必須であること、組織によっては定期的な変更といった運用が行われることもあります。所持要素は、端末、カードなどを常に携帯することが必要です。一方、生体情報要素は記憶・携帯の必要がありませんが、認証をさせる側に専用の機器が必要になり、導入コストが高くなる傾向にあります。
強度、紛失、なりすましについて、記憶要素は使用する文字種、長さによって総当たり・辞書攻撃への耐性が変動します。また、一旦漏洩したものを使い続けるとなりすましが可能になってしまいます。所持要素では盗難が大きな脅威となります。また、偽装のリスクもあります。生体情報要素の強度、なりすましは使用アルゴリズム、製品などに依るため一概には言えませんが、画像から顔や指紋の偽装が行えるという研究もあり[3]、偽装の可能性があります。
最後に変更について、記憶要素の変更は新たなパスワード設定を行うだけなど容易に可能です。所持要素については、実装方法によってはソフトウェアでの処理のみで可能ですが、端末やカードの再発行が必要となり時間がかかる場合もあります。生体情報要素は再登録によって、認証率の改善や経年変化への対応は可能ですが、生体特徴そのものを変更することは基本的にできません。
続いて、具体的にいくつかの認証方式についてメリット・デメリットを整理したものを表2に示します。各要素(記憶・所持・生体情報)による共通のメリット・デメリットは省略しています。
- 入力規則に沿った文字列の設定
- 変更が容易
- 安全性と利便性がトレードオフ
- 使いまわしによる2次被害の誘発
- 過去の居住地や、好きな歌手など個人の記憶、嗜好を問う質問に対し、任意の文字列で回答を設定する
- ブログ、SNSなどから推測される可能性がある
- 全角半角、漢字ひらがななどの混在により回答を忘れてしまう
- 入力した端末内で、その端末内に保存されているPIN情報との照合を行う
- PIN「記憶」とPIN情報が格納されている端末もしくはICカードの「所持」が必要なため、単体で二要素認証になる
- ネットワーク上に流れる数字だけのパスワードのことをPINや暗証番号と呼ぶ場合や、ネットワーク上に流れるケースがある
- インターネットに流れるような場合は二要素認証とはならない
- ドットをなぞる順番によって認証を行う
- のぞき見によってパターンが漏えいするリスク
- 提示された場所やパターンに従って、事前に入手した乱数表に記載の情報を入力する
- 入力パターンが毎回変動するため、のぞき見耐性がある
- ユーザ指定の携帯番号、メールアドレスにワンタイムパスワードを送付する
- 一時的な認証情報であり、漏洩のリスクが低い
- 携帯電話を別用途で所持している可能性が高く、専用機器を用意するよりも導入費用を抑えられる
- ハードウェアに依存しないため、更新が容易
- フィッシングサイトには脆弱
- フリーメール利用の場合、ID/パスワードのみで受信可能な場合があり、所持要素とならない(記憶)
- アプリケーションを利用し、デバイス固有のワンタイムパスワードを生成する
- 一時的な認証情報であり、漏洩のリスクが低い
- 専用機器を用意するよりも導入費用を抑えられる
- ハードウェアに依存しないため、更新が容易
- フィッシングサイトには脆弱
- 専用のデバイスにてワンタイムパスワードを生成する
- 一時的な認証情報であり、漏洩のリスクが低い
- 生体認証機能が組み込まれた製品も存在
- フィッシングサイトには脆弱
- 利用規模によって初期費用が大きく異なる
- ユーザやデバイスで一意な暗号鍵を発行する
- 適切なアルゴリズムを選択することで偽造のリスクを低減できる
- 発行、運用コストが必要
- 指紋の特徴点などを利用して認証を行う
- 小型化・低価格化が実現されている
- 指紋が加齢で摩耗する
- 顔の特徴点などを利用して認証を行う
- タッチレス認証が可能
- ウォークスルーでの認証が可能
- マスクやカメラで正しく認識されない場合がある
- カメラ設置環境の条件がある
- 虹彩の特徴点などを利用して認証を行う
- 経年変化の影響が少なく、生体認証の中でも誤認率が低い
- 親子や兄弟、双子であっても全く異なるパターンになる
- 静脈の特徴点などを利用して認証を行う
- 指紋認識よりも精度が高く、偽造が困難
表2 認証方式毎のメリット・デメリット
PINの実装方法によっては二要素とならないこと、メール経由でのワンタイムパスワード発行が所持要素とならない場合がある点は、特に注意が必要です。
NIST SP800-63における認証方式の選択
ここまで、3つの認証要素、および認証方式の整理を行いました。それでは実際にシステム、サービスを設計する際に必要とする認証方式はどのように決定したらよいのでしょうか?
今回は、NIST SP800-63を参考に、ECサイトを立ち上げることを想定して必要な認証方式を考えてみたいと思います。
NIST SP800-63では、Identity AssuranceがIdentity Assurance Level, Authenticator Assurance Level, Federation Assurance Levelという3つの要素で構成されているとし、それぞれの要素は3段階で定義されています。今回は3つの中でも認証プロセスについて定義されているAuthenticator Assurance Level(AAL)に注目します。
AALの各レベルで使用可能な認証要素の概要は表3のようになります。
表3 AAL各レベルで使用可能な認証要素
また、NIST SP800-63の6.2にてAALを決定するためのチャートが図1のように示されています。
これを用いて、ECサイトの立ち上げを想定した場合の適切なAALを設定してみます。
まず1つ目のチャート、
“What are the risks (to the organization or the subject) of providing the digital service?”
にて、非正規のユーザがアクセスできた場合のリスク評価を行います。ここで、組織、ユーザ両者の視点を鑑みて、どちらか一方のみに影響があるリスクも考慮します。リスク評価の結果を表4に示します。
- 住所、クレジットカード情報、購入履歴などの漏洩
- クレジットカード再発行
- サービスへの不信、ユーザ離れ
- クレジットカードの不正利用
- 不正利用の補償
- ユーザ離れによる売り上げ減少
- クレジットカード情報
- 住所
- 購入履歴
- 重大な危機に直結しないと判断
- 設計不備がある場合、責任を問われる可能性
NIST SPシリーズは政府機関向けに作成されており、今回は「機関のプログラムや公共の利益への損害」についてはN/Aとしました。この評価結果を元に、AALを決定したチャートを図2に示します。たどったチャートを赤枠で囲っています。
この結果から、今回想定したECサイトで必要なAALは2であり、多要素認証が必要ということになりました。AAL2を満たすために、例えばパスワード(記憶要素)と、専用のハードウェアを必要としないSMSやアプリケーションを利用した所持要素での多要素認証が実現手段として適していると考えられます。
まとめ
今回は、3つの認証要素と各認証方式の整理、およびNIST SP800-63での認証方式の決定例をご紹介しました。リスクに応じて適切な認証要素を選択することは、システムの安全性を向上させるだけでなく、利便性を最大限享受することにも繋がると考えられます。
本ブログが、皆さんの参考、認証について考えるきっかけとなれば幸いです。
参考情報
[1] NIST Special Publication 800-63 Revision 3 Digital Identity Guidelines
https://pages.nist.gov/800-63-3/sp800-63-3.html
[2] NIST Special Publication 800-63 Revision 3 Digital Identity Guidelines (翻訳版)
https://openid-foundation-japan.github.io/800-63-3-final/sp800-63-3.ja.html
[3] WIRED 3m先から撮った親指の写真から、指紋の複製に成功
https://wired.jp/2015/01/05/politicians-fingerprint-reproduced-using-photos/
執筆者プロフィール
山田 道洋(やまだ みちひろ)
セキュリティ技術センター セキュリティ実装技術チーム
NECグループのセキュア開発・運用を推進。主にクラウドのセキュアアーキテクチャ検討、リスクアセスメントに従事。