パスワードよ、さようなら!生体認証の導入 はこん...
TRANSCRIPT
パスワードよ、さようなら!生体認証の導入はこんなに簡単~最新の国際標準規格「FIDO2」適用実演2019年5月17日富士通株式会社ポータルサービス事業部渡邊 博実
Copyright 2019 FUJITSU LIMITED0
FIDOとは
Copyright 2019 FUJITSU LIMITED1
パスワードの課題
Copyright 2019 FUJITSU LIMITED
両⽴できていない
セキュリティ・信頼性 利便性・UX
低下する一方 パスワードだらけ・・・ 入れるのが手間・・・ 定期的な変更・・・
攻撃への対応強化 リスト攻撃 フィッシング キーロガー
パスワードは個⼈の「記憶の能⼒」に依存 ⇒ 強化に限界・強化施策が逆に使いまわし、メモなどのセキュリティリスク発生要因に
2
パスワードを覚えない世界〜FIDO登場
Copyright 2019 FUJITSU LIMITED
FIDO(ファイド):Fast IDentity Online“パスワードの要らない世界”を実現するオンライン認証の新標準
国際的な標準規格
様々なプラットフォームをサポート
世界260社以上が参画する「FIDO Alliance」が規格を策定
スマートデバイス/PCなどで幅広く利⽤可能
3
パスワードとFIDO
Copyright 2019 FUJITSU LIMITED
パスワード認証事業者サーバ
パスワード
利⽤者
認証パスワード
なりすまし 覗き⾒ サーバ攻撃internet
生体認証
FIDO認証利⽤者
FIDOサーバ 事業者サーバ
端末認証本人認証
署名 署名検証
秘密鍵*
公開鍵
• ⽣体情報はデバイス内でセキュアに管理• ローカル認証で外部へ出ないため漏えいリスク無し
• オンライン認証は公開鍵暗号方式によりセキュリティを確保
利便性とセキュリティを確保した堅牢なオンライン認証を実現
45..チャレンジ
4
FIDO Allianceについて
Copyright 2019 FUJITSU LIMITED
2012年7月に設⽴の⾮営利の国際標準化団体。2019年5月現在260社以上が参画※
【主な参画企業】
paypal / visa / American express / Amazon / google / Microsoft / LINE NTTdocomo / nok noklabs / facebook / yahoo!japan / Fujitsu etc.
各種標準化関連団体がFIDO Liaisonプログラムメンバー(Bluetooth,W3C、openID等)
各国の政府機関系メンバー(米NIST、英BSI、独、中国、韓国など)も参画
今後のオンライン認証のデファクトスタンダ―ドになると世界で注目※出典:FIDO Alliance https://fidoalliance.org/participate/members-bringing-together-ecosystem/
5
新規格「FIDO2」について
Copyright 2019 FUJITSU LIMITED
既存のFIDO規格(UAF(生体認証)・U2F)と並列して提供 以下の2つの新仕様が規定 WebAuthn : Web認証API仕様(Web Authentication) CTAP :デバイス間連携仕様(Client To Authenticator Protocol)
FIDO UAFFIDO U2F
(@FIDO)
WebAuthn(@W3C)
CTAP(@FIDO)
FIDO2 Project (出典:fido alliance「FIDO2 Overview」)
FIDO1.x
各PFの主要Webブラウザが標準でサポート → 利⽤シーンが拡大(chrome,edge,safari,firefox etc.)
Web認証を可能にする…
6
FIDO2で変わること
Copyright 2019 FUJITSU LIMITED
例えば、Chromeでログインするとき…パスワードは不要
7
FIDO2/WebAuthn
Copyright 2019 FUJITSU LIMITED8
FIDO2の要素
Copyright 2019 FUJITSU LIMITED
FIDO2
認証器 Client(ブラウザ) RPアプリ/サーバ
WebAuthn:Web認証API仕様 CTAP:デバイス間連携仕様
CTAP(@FIDO)
WebAuthn(@W3C)
認証器(PF認証器)9
FIDO2システム構成図
Copyright 2019 FUJITSU LIMITED
FIDOサーバ
公開鍵
外部 認証器USB/NFC/BLE
PF認証器
CTAP2
秘密鍵
RPアプリサーバ
サービスアプリケーション
デスクトップPC・スマートフォン
ブラウザOSプラットフォーム
WebAuthnJS API
JavaScript
10
登録シーケンス
Copyright 2019 FUJITSU LIMITED
認証器 ブラウザ RPアプリ/サーバ
Javascriptを実⾏して登録処理を実施navigator.credentials.create()
challenge(乱数⽂字列)を生成
WebAuthnPF認証器or CTAP
登録画面よりユーザ名送信
username
User情報challenge
RP 情報User情報challenge
RP 情報
公開鍵Credential Id
署名challengeAttestation
鍵ペア生成秘密鍵を安全な領域に格納challengeを署名
秘密 Attestationを返信署名されたchallenge生成した公開鍵
公開鍵Credential Id
署名challengeAttestation
署名とAttestationの検証公開鍵をDBに登録
サーバ登録情報
ユーザ名
公開鍵Credential情報
11
認証シーケンス
Copyright 2019 FUJITSU LIMITED
認証器 ブラウザ RPアプリ/サーバ
Javascriptを実⾏して認証処理を実施navigator.credentials.get()
challengeを生成し返答
WebAuthnPF認証器or CTAP
認証画面よりユーザ名送信
username
challengeRP 情報
Assertionを返信challenge+RP情報を秘密鍵で署名
Credential Idchallenge+RP情報
署名
challengeRP 情報
Credential Idchallenge+RP情報
署名
認証がOKの場合、認証器の秘密鍵でchallengeを署名
秘密
署名
Assertionを解読し、署名された電文を
公開鍵で検証
サーバ登録情報
ユーザ名
公開鍵Credential情報
12
実装範囲
Copyright 2019 FUJITSU LIMITED
認証器 ブラウザ RPアプリ/サーバ
認証画面よりユーザ名送信
challengeを生成し返答
Javascriptを実⾏して認証処理を実施navigator.credentials.get()
Assertionを返信challenge+RP情報を秘密鍵で署名
認証がOKの場合、認証器の秘密鍵でchallengeを署名
WebAuthnPF認証器or CTAPusername
challengeRP 情報
Credential Idchallenge+RP情報
署名
challengeRP 情報
Credential Idchallenge+RP情報
署名
秘密
署名
Assertionを解読し、署名された電文を
公開鍵で検証
サーバ登録情報
ユーザ名
公開鍵Credential情報
各ブラウザが処理してくれるのであまり気にしなくても良いが…
ここをどう実装するか悩まないといけない
13
登録処理の実装サマリー
Copyright 2019 FUJITSU LIMITED
登録時、各役割毎で実施する処理1.RPサーバランダムなchallengeの値を作成機能
リプレイ攻撃対策
2.クライアントはRPサーバ名の検証機能フィッシング詐欺対策
3.認証器は鍵ペアの生成機能と秘密鍵を安全な場所への保管機能
4.RPサーバは受信したAttestationの解読処理、署名の検証フィッシング詐欺対策認証器の秘密鍵が安全であることの証明
5.RPサーバにてユーザと公開鍵の紐づけ、公開鍵の管理
14
3.認証器はユーザ認証要求機能(指をかざすなどの操作)と署名機能
認証処理の実装サマリー
Copyright 2019 FUJITSU LIMITED
認証時、各役割毎で実施する処理
2.クライアントはRPサーバ名の検証機能フィッシング詐欺対策
4.RPサーバは受信したAssertionの解読処理、公開鍵で署名の検証フィッシング詐欺対策なりすまし抑止
1.RPサーバランダムなchallengeの値を作成機能リプレイ攻撃対策
15
テクニカル情報
Copyright 2019 FUJITSU LIMITED
https://www.w3.org/TR/webauthn/ https://fidoalliance.org/specifications/download/
仕様書は下記サイトにドキュメントが公開されています
16
富士通のFIDOソリューション
Copyright 2019 FUJITSU LIMITED17
富士通のFIDOソリューション
Copyright 2019 FUJITSU LIMITED
nok nok labs社とのコラボレーションにより、高機能・高信頼のFIDOソリューションを提供
各種セキュリティ基準に準拠したクラウドで運用
FIDOプロトコル対応手のひら静脈認証器
FIDO2を含め現⾏のFIDO規格を全サポート。弊社サービスの認証サーバとして採用
nok nok labs S3 Authentication Server and SDK
【nok nok labs社】FIDO規格を提唱した中核企業。FIDO Alliance Boardメンバーであり、FIDO仕様の策定/認定に参画。
富士通「オンライン生体認証サービス」18
FJ FIDOサーバ
FIDOサーバのシーケンス
Copyright 2019 FUJITSU LIMITED
認証器 ブラウザ お客様RPアプリ
認証画面よりユーザ名送信
username
認証結果をもって処理
富士通のFIDOソリューションのカバー範囲
認証要求
電文解読、署名の検証、認証結果を通知
公開鍵
Credential Idchallenge+RP情報
署名
challengeRP 情報
challengeを生成challengeRP 情報
Credential Idchallenge+RP情報
署名
ユーザ認証
19
FJ FIDOサーバ
FIDOサーバのシーケンス
Copyright 2019 FUJITSU LIMITED
認証器 ブラウザ お客様RPアプリ
認証画面よりユーザ名送信
username
認証結果をもって処理
認証要求
電文解読、署名の検証、公開鍵の管理を実施
公開鍵
認証器情報Credetial Id
challenge+RP情報署名
Credential Idchallenge
RP 情報challengeを生成Credential Id
challenge
RP 情報
認証器情報Credetial Id
challenge+RP情報署名
ユーザ認証
FIDOプロトコルを意識しなくてもWeb認証が実現
20
実装構成
Copyright 2019 FUJITSU LIMITED
お客様環境
お客様 RPアプリサーバ
Desktop/Mobile
富士通クラウド
FIDOサーバ
公開鍵外部認証器
ブラウザ
PF認証器秘密鍵
お客様 RP Web アプリ
AppSDK JS API
OS プラットフォーム
Web Authn JavaScript API
internetAppSDK JS API
AppSDK JS実装するためドキュメント、サンプルコード
組み込む
認証処理
21
App SDK JS API
Copyright 2019 FUJITSU LIMITED
App SDK JS API をWEBアプリに組み込むことで利⽤できる機能 FIDO認証器の登録(registration) FIDO認証器で認証(authentication) Credential情報の管理:登録済みの鍵の⼀覧(list)、削除(deregistration)
さらに FIDOサーバへの独⽴したネットワーク接続 豊富なエラーハンドリング UAF、U2Fプロトコルも容易に利⽤が可能
22
インプリイメージ
Copyright 2019 FUJITSU LIMITED
お客様 Web RPアプリ
認証処理結果
ログイン
FIDO認証要求
認証結果を⽤いた処理
FIDOサーバ
WebAuthn
認証操作
AppSDK のインスタンス生成、エンドポイント指定1
セッション情報生成JSON sessionData object2
認証処理要求authenticate()3
23
インプリイメージ
Copyright 2019 FUJITSU LIMITED
<head>. . .<script src="https://<nnl_gateway_domain>:<port>/nnlgateway/js/appsdk.js"></script><script src="https://<nnl_gateway_domain>:<port>/nnlgateway/js/appsdkw.js"></script>. . . </head>
先ずApp SDK JS APIのロード
お客様 WEB RPアプリAppSDKWrapper.js
AppSDK.js
fido2-client.jsnavigator.credentials.create()navigator.credentials.get()
24
インプリイメージ
Copyright 2019 FUJITSU LIMITED
1 インスタンス生成とエンドポイント(FIDOサーバ)を指定
var appSdkW = new AppSdkWrapper();appSdkW.init(“fido2")
var appSdk = appSdkW.appSdk;appSdk.srcPage = window.location.href;appSdk.regEndpoint = "https://<nnl_gateway_domain>:<port>/nnlgateway/nnl";appSdk.authEndpoint = "https://<nnl_gateway_domain>:<port>/nnlgateway/nnl";
25
RP JWT(秘密)FD JWT(公開)
FD JWT(秘密)RP JWT(公開)
インプリイメージ
Copyright 2019 FUJITSU LIMITED
sessionData = {sessionKey:<session_key>,pushHandle:<push_handle>
}
RPアプリサーバ
FIDOサーバ
RP Web アプリ
AppSDK JS API
ブラウザ
2 セッション情報生成
電文+SessionData(JWTトークン)
電文+SessionData(JWTトークン)
RPアプリサーバとFIDOサーバ間はJWTトークンをもって信頼関係が担保される。
Desktop/Mobile
26
デモのインプリイメージ
Copyright 2019 FUJITSU LIMITED
appSdkW.authenticate(sessionData).then(function(response) {
// handle success.catch(function(outcome) {
// handle error});
3 認証処理要求
処理結果やユーザ情報、FIDOサーバ側で発⾏した署名(JWTトークン)などが返却
27
実演
Copyright 2019 FUJITSU LIMITED
テストサーバ
インターネット
FIDOサーバ
index.html(ログイン)
register.html(登録)
tomcatブラウザ
FIDOログインが成功するとresponseにusernameとJWTトークンが返却される
FIDO2静脈認証器
28
最後に
Copyright 2019 FUJITSU LIMITED29
関連展示デモご紹介
Copyright 2019 FUJITSU LIMITED
(A)オンライン認証の最新規格「FIDO2」で広がる生体認証活用
セキュリティ
出口
入口
通路 通路
A
地下2階 展示ホール
アンケート
テーマステージコンシェルジュ
30
紹介商品のご購入・ご導入を検討中のお客様へ
FUJITSU IoT Solution 生体センサー認証ソリューションオンライン生体認証サービス
Web上の商品情報サイト
https://www.fujitsu.com/jp/solutions/innovative/iot/bio-sensor-auth/
電話での問い合わせ
0120-933-200富士通コンタクトライン(総合受付)
Copyright 2019 FUJITSU LIMITED31
Copyright 2019 FUJITSU LIMITED