Download - Bonfire API #1 生体認証のAPI化
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved
生体認証のAPI化
ヤフー株式会社 上野 博司
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved
自己紹介
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved3
自己紹介
• 上野 博司
• Yahoo! JAPAN IDの管理開発部署
• ユーザセキュリティ(ID乗っ取りや生体認証)を担当
• FIDO Allianceの活動にも参加• Outstanding Contributor Award受賞
うえの ひろし
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved4
目次
• 認証の要素
• パスワード認証の問題
• FIDO認証について
• FIDO認証をブラウザで使うには?
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved
認証の要素
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved6
認証の要素
• 認証の要素は大きく分けて3つあります
記憶:本人のみが記憶している情報
• パスワード
所持:本人のみが所持しているもの
• ワンタイムパスワードのトークン
生体:本人の特徴
• 指紋、虹彩、顔
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved
パスワード認証の問題
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved8
パスワード認証の問題
利便性の問題
• 複数のパスワードを管理すること
• スマホなどでの入力が困難なこと
• そもそも忘れてしまう
安全性の問題
• パスワードの使い回しが横行
• 外部サービスの脆弱性に依存
• ユーザリテラシーに依存
• リスト型攻撃などに弱い
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved9
パスワード問題の解決策
安全性と利便性の両立を目指しています
Poor Easy
Weak
Strong
USABILITY
SECURITY
「FIDO認証」FIDO(Fast IDentity Online)
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved
FIDO認証の概要
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved11
FIDO認証とは
公開鍵暗号方式を使って
主に所持認証と生体認証
を実現する認証プロトコル
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved12
FIDO認証がカバーする認証の要素
記憶:本人のみが記憶している情報
所持:本人のみが所持しているもの
生体:本人の特徴
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved13
FIDO認証モデルの特徴
「本人性の検証はローカルデバイス」
「認証結果の署名検証がサーバ」
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved14
FIDO認証モデル
認証サーバーユーザー
秘密鍵 公開鍵
検証結果(署名)
• 公開鍵暗号方式を採用
署名署名を検証
生体認証
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved15
生体情報はサーバに送るの?
生体情報はサーバに送られず
ローカルデバイスからは出ません
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved16
パスワードの認証モデルとの違い
ID・パスワード
OKパスワード入力識別
認証
従来的な認証モデル (パスワードなど)
検証
検証結果
OK
FIDO認証
FIDO サーバーFIDO 認証モデル FIDO クライアント
検証識別
認証器
ユーザー
クレデンシャル(認証情報)
検証
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved17
登録の基本的な流れ
認証器 クライアント サーバー
登録開始
チャレンジ
認証公開鍵
利用者
認証用鍵ペア生成
①
②
③
④
⑤登録完了
サーバに公開鍵を登録
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved18
認証の基本的な流れ
認証器 クライアント サーバー
登録開始
チャレンジ
署名結果
利用者
認証結果を秘密鍵で署名
①
②
③
④
⑤認証完了
署名の検証
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved
FIDO認証をブラウザで使うには?
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved20
FIDOでのブラウザAPI
ブラウザAPIを使ってFIDO認証を使える仕様がW3Cで考えられています
https://www.w3.org/TR/webauthn/
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved21
Web Authentication
認証サーバ
サーバークライアントデバイス
認証器
ブラウザ
サービスのJavaScript
ブラウザAPI 公開鍵の登録や署名の検証
を行う
HTTPS通信
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved22
Web Authentication
登録(鍵ペアの生成)
https://www.w3.org/TR/webauthn/
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved23
Web Authentication
認証(秘密鍵での署名)
https://www.w3.org/TR/webauthn/
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved24
Web Authentication
JavaScriptでAPIを叩くだけで
FIDO認証を実現することが可能になっ
てきている!
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved
まとめ
Copyright © 2018 Yahoo Japan Corporation. All Rights Reserved26
まとめ
Q. FIDO認証ってなに?
A. 公開鍵暗号方式を使って主に所持認証と生体認証を実現するための認証プロトコル
Q. 生体情報をサーバに送ったりするの?
A. 認証器に保存されるだけでサーバには送りません
Q. Web Authenticationってなに?
A. JavaScriptを使ってFIDO認証の機能を使えるブラウザAPI