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

そのAPIはセキュアですか?

928b1395afedebb5ee48d44ab917c5f1?s=47 RyuSA
January 20, 2021

 そのAPIはセキュアですか?

Financial Grade な API のセキュリティ
#webapilt

928b1395afedebb5ee48d44ab917c5f1?s=128

RyuSA

January 20, 2021
Tweet

Transcript

  1. そのAPIはセキュアですか? Financial Grade な API のセキュリティ RyuSA

  2. RyuSA Financial Service Engineer Java & SpringBoot / Typescript &

    React Docker / Kubernetes : RyuSA : ryusa_eng
  3. 全国銀行協会より オープンAPI ≠ OpenAPI (Swagger) なんだぜ、ググラビリティがあかん >

  4. たぶんこんな世界になる……?

  5. ※注 あくまでも登壇者の妄想です < サービスしてちょ まいどー > < Aくんの口座情報教えてー あの……焼肉屋さんが…… >

    < 口座情報教えていいですよー < はいどうぞ
  6. 知ってる! これ、OAuth2.0で実装できる!

  7. 落ち着け、OAuth2.0はシルバーバレットにあらず

  8. • OAuth2.0はリソース制御のための「フレームワーク」 • OAuth2.0で認可を実装した ≠ セキュアなAPI • SNSの認可に要求されるセキュリティレベル ≠ 銀行や証券の認可に要求されるセキュリティレベル

    • 近年はオープンAPIも叫ばれており、金融向けのセキュアな認可の整備が急がれている • 一方で「セキュアな認証認可」をどこまでやるべきかのガイドラインが必要 そして究極のセキュリティ「APIを公開しない」が生まれる 認可に困ったらOAuth2.0に頼ろうとしてない?
  9. Financial Grade API 略して”FAPI” 読み方は「ふぁぴ」だって、かわいいね >

  10. • FinTechサービスにOAuthプロファイルを導入するためのガイドライン • Part1/Part2/Part3の3部作で構成されており「ReadOnly API」「Read&Write API」 などについてそれぞれ実装すべき項目が記載されている • 金融に限らず、高いセキュリティが要求される認可システムの管理者・実装者は参照す べきドキュメント

    • チェックリスト方式になっている • 実装すべきこと、設定すべきことが一覧化 • たまに「実装すべきでない」ことも書いてある • CIS Benchmarkのような感じ FAPIは”OAuth2.0実装のガイドライン”
  11. • Part1 (Read Only) • 認可サーバは LoA 2 相当のユーザ認証を実装しなければならない •

    ClientはResource Ownerとのセッション中はredirect_uriを保存し、認可レスポン スを受け取った際のredirect_uriと比較しなければならない(5.2.3) • Native Appはカスタムスキーマによるリダイレクトを実装してはいけない(7.5) • HTTPSによるリダイレクトを利用しましょう • Part2 (Read & Write) • 認可サーバは LoA 3 相当のユーザ認証を実装しなければならない • ClientはHolder-of-Key Tokenと実装しなければならない • OAuth 2.0 Token Binding か mTLSかで実装しましょう 具体例
  12. • オープンAPI という世界とその認可のガイドラインFAPI • みなさんの身近に迫ってきています • 「認可システムを作る / 設計する」ということがあれば、FAPIを覗いてみては? •

    「あ、この設定した方がいいかも」等の思わぬ発見があると思います • セキュリティレベルをビジネスKPIに沿って決定 • 焼肉食べたい • コロナで外出・外食がめっきり減ってしまって、正直口元が少しさびしい…… まとめ