Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Spring Securityでハードウェアトークン認証

Spring Securityでハードウェアトークン認証

Spring SecurityでFIDO-U2Fのハードウェアトークンを利用した二段階認証を実現するためにWebAuthnを実装した紹介

4c890eaa89584732ef2f1f1c2422a412?s=128

Yoshikazu Nojima

April 18, 2018
Tweet

Transcript

  1. Copyright © Yoshikazu Nojima 2018 Spring Securityでハードウェアトークン認証 2018-04-18 能島 良和

    (@shiroica)
  2. Copyright © Yoshikazu Nojima 2018 自己紹介 • 能島良和 • 通信キャリアでホスティングサービスの開発・運用

    • 前職は通信キャリア系SIerで社内向けにSpringのPJ技術支援業務 • Twitter:@shiroica • GitHub:ynojima • Apache CloudStackというOSSのコミッタ • Apache CloudStackはSpringの上に構築されています :) 1
  3. Copyright © Yoshikazu Nojima 2018 突然ですが・・・ この中にオンラインサービスのアカウントを 乗っ取られた経験のある方はいますか? 2

  4. Copyright © Yoshikazu Nojima 2018 恥ずかしながら私はあります・・・ 3 アカウントを乗っ取られてスパム投稿に悪用された例:

  5. Copyright © Yoshikazu Nojima 2018 原因 恐らく別のサービスから流出したID/Passwordによるリスト型攻撃。 ID/Passwordを色々なサービスで使いまわしていた為に攻撃されました。 4 もっと安全な認証手段

    が欲しい!!!
  6. Copyright © Yoshikazu Nojima 2018 Web Authentication仕様とは 最近W3Cで勧告候補になった、ハードウェアトークンによる二段階認証や生体認証による セキュアな認証をウェブで実現するためのWeb標準。Firefox Beta/Chrome

    Canaryで実装済 • ローカル認証 • ユーザーとクライアントプラットフォーム間の認証 • 公開鍵認証 • クライアントプラットフォームとサーバー間の認証 の合わせ技の認証方式 5 ユーザー クライアント プラットフォーム サーバー ローカル認証 (指紋認証等) 公開鍵認証 昨日のPublickeyのWebAuthnの紹介記事:
  7. Copyright © Yoshikazu Nojima 2018 Spring Securityで実装してみました spring-security-webauthn • Web

    Authentication仕様を実装するspring-securityの認証プロバイダを実装しライブラリ化 • https://github.com/ynojima/spring-security-webauthn 6 ※多要素認証の実現上、Spring Security本体の実装に も手を入れる必要があり、本体側にもPull Req中
  8. Copyright © Yoshikazu Nojima 2018 Web Authenticationの認証フロー(概略) • ユーザー登録 •

    ユーザー認証 7 ユーザー 認証デバイス ブラウザ サーバー DB ユーザー 認証デバイス ブラウザ サーバー DB • チャレンジ • チャレンジ • ドメイン名 • 署名 • 署名されたデータ • チャレンジ • ドメイン名 • 他 • 署名 • 署名されたデータ 署名、ドメイン チャレンジ、他の検証 RP固有 公開鍵の読込 RP固有 公開鍵の保存 • 認証承認操作 • 登録承認操作 • RP (サイト) 固有公開鍵 • RP固有公開鍵 ローカル認証 公開鍵認証 認証情報を検証 認証情報を検証 RP固有 秘密鍵で署名
  9. Copyright © Yoshikazu Nojima 2018 デモ 8

  10. Copyright © Yoshikazu Nojima 2018 デモ 9

  11. Copyright © Yoshikazu Nojima 2018 デモ 10

  12. Copyright © Yoshikazu Nojima 2018 デモ 11

  13. Copyright © Yoshikazu Nojima 2018 デモ 12

  14. Copyright © Yoshikazu Nojima 2018 デモ 13

  15. Copyright © Yoshikazu Nojima 2018 デモ 14