⽇本銀⾏⾦融研究所 情報技術研究センター 企画役補佐 井澤秀益
【講演1】
※本講演は、ヤフー株式会社Yahoo! JAPAN研究所 上席研究員 五味秀仁様と共同で実施した研究に基づく講演である。 また、本発表に⽰されている意⾒は、発表者個⼈に属し、⽇本銀⾏やヤフー株式会社の公式⾒解を⽰すものではない。
⽇本銀⾏⾦融研究所 第17回情報セキュリティ・シンポジウム 2016年3⽉2⽇ ⽇本銀⾏本店
本講演では、次世代認証技術の⼀つである「
FIDO
(Fast IDentity Online)」
を取り上げる(FIDOに関しては後述)。
利便性 ⽣体認証を利⽤することができるため、ユーザが⾃然な動作で⽣体特徴を提⽰できる(パスワードを覚える必要無し) 網羅性 様々なデバイスやサービス、認証⽅式を想定 安全性 (セキュリ ティ) 本講演の内容 次世代認証技術の⼀つであるFIDOの特徴
本講演では、以下の3点の説明を⾏う。
−(注)本講演では、FIDOのUAF(Universal Authentication Framework)のことをFIDOと 便宜的に呼び説明を⾏います。FIDOのU2F(Universal Second Factor)については解説 しません。 −詳細は下記論⽂を参照(http://www.imes.boj.or.jp/citecs/papers.html) 井澤秀益・五味秀仁、「次世代認証技術を⾦融機関が導⼊する際の留意点 ―FIDOを中⼼に―」、IMES Discussion Paper Series、2016年2⽉1. FIDO
の仕組みの解説
2. FIDO
をインターネット・バンキングに活⽤した場合の安全性評価
3. FIDO
をインターネット・バンキングに活⽤する際の留意点
2
FIDO
とは、「ネットワークを介した認証に⽣体認証等を利⽤するための認
証⼿順(認証プロトコル)を定めた仕様」
−従来のID/パスワード認証 −FIDOにおける認証 FIDO
の主な実⽤化動向
ID/パスワード ID/パスワード を⼊⼒ 検証結果 ⽇時 出来事 2014年12⽉ FIDOの仕様が公表(FIDO UAF/U2F ver1.0 specification)[1] 2015年5⽉ NTTドコモ社の⼀部のスマートフォンで同社のサービスがFIDOを使っ て利⽤可能[2] 2015年9⽉ Bank of Americaのインターネット・バンキングのモバイルアプリが FIDOを使って利⽤可能 [3] ⽣体情報を提⽰ 4 ⾦融機関 デバイス [1] https://fidoalliance.org/specifications/download/ [2] https://www.nttdocomo.co.jp/info/news_release/2015/05/26_00.html [3] http://newsroom.bankofamerica.com/press‐releases/consumer‐banking/bank‐america‐introduces‐fingerprint‐and‐touch‐id‐sign‐its‐mobile‐ban1.
プライバシー配慮
⽣体情報等の認証に必要な秘匿すべき情報をサーバに送信・登録しない 検証結果 認証2.
多様な認証要素
⽣体認証に限らず所有物認証等、多様な認証要素の利⽤を想定している 認証 指紋 虹彩 USBドングル3.
標準化
銀⾏ ECサイト SNS 様々な端末やサービスが存在する状況においても、 統⼀的なプロトコル(FIDO)で認証を⾏える FIDO4.
取引認証
取引内容がユーザの意思に基づくものであることをサーバで確認する仕組み( Transaction Confirmation)。 詳細は後述。
端末毎・サービス毎に初回にユーザが実施。
ユーザのAuthenticatorをサーバが登録。レガシー認証情報とFIDOにおける
ユーザ情報(AAID,KeyID)とを紐付けることが可能。
−レガシー認証情報:FIDOに移⾏する前の段階で使⽤していた個⼈認証のための情 報(例:ID, Password) ユーザ Authenticator クライアント サーバ (1) 開始要求 (2) レガシー認証要求 (3) レガシー認証情報 (3) ユーザ認証 (4) Challenge等 (5) Challenge等 (6) ⽣体情報要求 (6) ⽣体情報応答 (7) ユーザの秘密鍵・公開鍵ペアを⽣成、 ユーザの公開鍵等の情報(KRD)を⽣成し Attestation秘密鍵で署名 (8) KRD, Sign(KRD) (9) KRD, Sign(KRD) (9) KRDの整合性検証、 KRDの署名検証、 ユーザ公開鍵登録、 FIDOにおけるユーザ 情報(AAID, KeyID) を登録 KRD(Key Registration Data) : • AAID(Authenticatorのモデル) • fc(Challenge等のハッシュ値) • KeyID(ユーザ秘密鍵等から⽣成) • RegCounter • ユーザ公開鍵 (6) ユーザを検証 6 • Authenticator:ユーザ認証や鍵⽣成、署名⽣成等を ⾏うモジュール • Challenge:サーバで⽣成される乱数 • Attestation秘密鍵:Authenticatorに格納される秘密鍵 (FIDO認定取得Authenticatorに格納される) (1)〜(3)は FIDO仕様外、 実装の⼀例 サービス利⽤ごとにユーザが実施。サーバがユーザ認証や取引認証を⾏う。
ユーザ Authenticator クライアント サーバ (1) 開始要求(振込指図) transaction (2) Challenge, transaction (4) ⽣体情報要求 transaction等を表⽰ (4) ⽣体情報応答 (6) SD, Sign(SD) (7) SD, Sign(SD) SD(Signed Data): • AAID(Authenticatorのモデル) • ユーザ検証結果 • fc(Challenge等のハッシュ値) • transactionのハッシュ値 • KeyID(ユーザ秘密鍵等から⽣成) • SignCounter (3) Challenge, transaction (4) ユーザを検証 (5) transactionやユーザ検証結果等からなる情報(SD)に ユーザ秘密鍵で署名 (7) SDの整合性検証、 SDの署名検証、 ※斜体はオプションの項⽬ 振込指図⼊⼒ 振込実⾏ ボタン 次の振り込み内容 でよろしいですか? よろしければ ⽣体を提⽰してくだ さい Transaction: Aさんに1万円振込 Aさん 1万円 振込先 振込⾦額 次の振り込み内容 でよろしいですか? よろしければ ⽣体を提⽰してくだ さい Transaction: Aさんに1万円振込 (1) (4) (4) • Transaction:取引内容(振込先・振込⾦額等) ユーザを検証 Transaction: Aさんに1万円振込 署名 (5) (6) Authenticator8
ユーザの視点
−transaction(取引内容)を⽬視確認する。 −定められた認証⼿順(例:指紋認証)を踏むことにより、取引継続の意思を⽰す。 Authenticator
の視点
−定められた認証⼿順(例:指紋認証)でユーザを検証出来れば、transaction(取 引内容)に対して電⼦署名を付す。 電⼦署名が付された後は、マルウエアによるtransaction(取引内容)の改ざん をサーバ側で検出可能。 Authenticatorおよびユーザの秘密鍵は、通常領域とは隔離されたセキュアな領 域(TEE等)に存在する前提。 Transaction Confirmation
は、以下の条件を満たせば不正送⾦に対して耐性が
あると考えられる。
−ユーザが⽬視確認した内容とAuthenticatorが署名する内容が同⼀であること (WYSIWYS:What you see is What you sign) −ユーザが取引継続の意思を持ったときのみ署名が⾏われること (注)FIDOそのものの安全性評価ではなく、FIDOの実装をインターネット・バンキング に適⽤した場合を考えたときの安全性評価
攻撃側の前提
−攻撃者の⽬標:不正送⾦の実⾏ 防御側の前提
10 ユーザ インターネット ⾦融機関サーバ • Androidスマートフォンを使⽤ • ⾦融機関の提供するスマホアプリを 使⽤ • スマホ内にはTEE(Trusted Execution Environment)等のセキュア領域が存在 しAuthenticatorを保護 • Transaction Confirmationにより取引内 容を確認 ⼿⼝1:フィッシング ⼿⼝2:マルウエア ⼿⼝3:⽣体認証でのなりすまし ケースA: 物理アクセス ケースB: ネットワーク アクセス e.g.攻撃者がターゲットのスマートフォンを盗取 e.g.攻撃者がターゲットにNW越しに攻撃 攻撃者の⼿⼝ (攻撃者にとって有利な前提を想定) 攻撃者のデバイスへのアクセス能⼒ • 攻撃は不可と仮定 TEEについてはこの後の「講演3」を参照 (注)FIDOそのものの安全性評価ではなく、FIDOの実装を インターネット・バンキングに適⽤した場合を考えたときの安全性評価 登録フェーズにおける評価
−万が⼀、レガシー認証情報を攻撃者に盗取されてしまえば、攻撃者⾃⾝のデバイ スで登録フェーズが実⾏可能(不正送⾦が成⽴)。→後述 認証フェーズにおける評価
⼿⼝ 物理アクセスケースA: ネットワークアクセスケースB: ⼿⼝1:フィッシング ── 攻撃不成⽴ ⼿⼝2:マルウエア (⾮root権限<偽アプリ>) ── 攻撃不成⽴ (root権限) ── 不正送⾦を起こす⽅法が 存在する(注1) ⼿⼝3:⽣体認証なりすまし 不正送⾦を起こす⽅法が 存在する(注2) ── ※具体的な評価の⽅法については、下記論⽂を参照。 井澤秀益・五味秀仁、「次世代認証技術を⾦融機関が導⼊する際の留意点―FIDOを中⼼に―」、IMES Discussion Paper Series、2016年 (注2)攻撃例:攻撃者がデバイスを盗取し、⽣体認証でのなりすましで⾃⾝への送⾦を実施(後述)。 (注1)攻撃例:Display Overlay攻撃(後述)。12
留意点:登録フェーズにおいて「レガシー認証情報」が盗取されるリスク
に注意すること。
−攻撃経路: −FIDO⾃⾝の問題ではなく、FIDOに移⾏する前に「レガシー認証情報」を使⽤して いることに起因する問題。 ⾦融機関における具体的な対応例
−顧客に対して「レガシー認証情報を正規の⾦融機関サイト以外で⼊⼒しない」旨 注意喚起(フィッシング対策) −顧客に対して「デバイスのマルウエア対策」を注意喚起 −アプリストアに偽バンキングアプリが出現していないかどうか監視 −普段使っていないデバイスからの登録フェーズの制限 −レガシー認証情報を使⽤しない登録フェーズの検討 ⾦融機関の窓⼝における登録フェーズの実施等 レガシー認証情報 (ID,Pass)を攻撃者が盗取 (⼿⼝:マルウエアや フィッシング) 盗取したレガシー認 証情報を⽤いて、攻 撃者は、⾃らのデバ イスにて登録フェー ズを実施 登録済デバイス で認証フェーズ を実施し、 不正送⾦
留意点:Transaction Confirmationの仕組みが存在するものの、マルウエア感
染により、取引内容確認が無効化されるリスクがあることに注意すること。
−マルウエア(root権限)により取引内容が改ざんされた上に、取引内容確認画⾯ も上書き(Display Overlay 攻撃)されれば、MitB攻撃の要領で不正送⾦が成⽴して しまう。 バンキングアプリ/ Authenticator ⾦融機関サーバ ユーザ Aさんに1万円送⾦ Xさんに100万円送⾦ Xさんに100万円送⾦でOK? Xさんに100万円送⾦でOK? とのメッセージ 14 本来の画⾯ Aさんに1万円送⾦でOK? とのメッセージ マルウエアが表⽰ しているメッセージ ※最前⾯に表⽰ Authenticatorが表⽰ しているメッセージ ※背⾯にあるため ユーザから⾒えない Display Overlay攻撃 (緑⾊部分) ⾦融機関における具体的な対応例
−Trusted User Interface[1]の今後の動向に留意する。 Trusted User Interfaceを備えたスマートフォンであれば、Display Overlayに対して 耐性があるとされている[2]。 FIDOでは、Metadataサービスを通じて、「Authenticator毎にTrusted User Interfaceを利⽤可能か」をサーバ側で確認することが出来る仕組みがある。 −(前提とは異なるものの)別のデバイスにて 取引内容を確認する。 同様のアイデアの例:電⼦ペーパによる 取引内容確認 [3](注:FIDO準拠ではない)[1] GlobalPlatform, “GlobalPlatform Device Technology Trusted User Interface API Version1.0,” GlobalPlatform Device Specifications, 2013
[2] Rob Coombs, “Securing the Future of Authentication with ARM TrustZone‐based Trusted Execution Environment and Fast Identity Online (FIDO),” ARM White Paper, 2015
留意点:認証フェーズにおいて「⽣体認証でのなりすまし」に注意すること。 − 攻撃経路: − クライアント側における⽣体認証でのなりすましの検知精度の問題 − FIDO AllianceによるAuthenticatorの認定はセキュリティ評価指標(FAR、APCER等)の評価認定 ではないことに留意すること。 ⾦融機関における具体的な対応例 − Authenticatorのセキュリティ評価指標(FAR, APCER等)がコモンクライテリア認証等、第三者 によって評価されたものか調査しておくこと。 − ユーザの意図せざる取引も想定し、振込先情報・振込時刻等を利⽤した振込操作の「異常検 知技術」と併⽤すること。 リスク値の算出に利⽤出来る情報の例(FIDO Metadataサービスを使って⼊⼿可能な情報) ① Authenticator毎のセキュリティ評価指標(FAR等)…ただしベンダの⾃⼰評価値 ②デバイスでTrusted User Interfaceが使⽤可か否か ③デバイスでTEEやSecure Elementが使⽤可か否か 16 この後の「講演2」も参照 この後の「講演4」も参照 取得したデバイスのロッ クを攻撃者が解除 (⼿⼝:⽣体認証でのな りすまし) 取得デバイス で、攻撃者が、 ⾃らの⼝座へ の振込指⽰を 実施 認証フェーズにて⽣体情 報提⽰を求められた時に、 強制的に取引を続⾏ (⼿⼝:⽣体認証でのな りすまし)