OpenID Summit Tokyo 2024にカンファレンス・セミナー参加支援制度を使って参加してきました

目次
 

はじめに


Flatt Security でエンジニアをしているei01241です。 本ブログは、2024 年 1 月 19 日に開催された、OpenID Summit Tokyo 2024 に自分が参加した際の記録です。
 
 

会社の研修制度を使って参加


弊社には、業務に関係するカンファレンスやセミナーへの登壇や受講を業務時間に行うことができ、参加に必要な費用を会社に負担してもらえる「カンファレンス・セミナー参加支援制度」という研修制度があります。今回はこの制度を利用して参加しました。
 
なお、弊社Flatt Securityでは新卒・中途を問わずセキュリティエンジニアを積極採用中です!
 
その他、Flatt Securityでの働き方やメンバー、待遇や福利厚生については以下よりご覧ください。
 

OpenID Summit Tokyo 2024


渋谷ストリームホールで開催されていたため、アクセスには困らないかと思います。Googleのビルの隣にあるため、そこまで悩まずに着くはずです。
 
受付でPeatixのQRコードを引き換えにリストバンドを貰いました。Peatixのアプリをダウンロードしていない場合にはQRコードを提示できないため、この辺はメールをきちんと読みましょう。
 
会場に到着すると、OpenID Summit Tokyo 2024の看板がありました。
OpenID Summit Tokyo 2024の看板
OpenID Summit Tokyo 2024の看板
両隣に見えるキャラクターはOpenID界隈では有名みたいです。左はOAuthたんで、右はコネクたんだそうです。
OAuthたん、かわいい
OAuthたん、かわいい
コネクたん、かわいい
コネクたん、かわいい

会場と設備

会場は主に5階のBreakout roomと6階のGrand hallの2つがありました。
5階のBreakout room
5階のBreakout room
6階のGrand hall
6階のGrand hall
 
6階では水が提供されるため、飲み物を持参する必要はありません。昼食はないので、外で食べることになります。夕食については懇親会があったみたいですが、僕は参加しませんでした。
 
英語の発表もあるのですが、同時通訳の機器を事前に申請しておけば借りられるようで、困ることはないかと思います。
 

発表

発表は、5階では技術寄りな内容、6階では最新の動向寄りな内容をやっていたみたいです。僕は技術寄りな内容に興味があったため、5階の発表を全て聞きました。それぞれ25分くらいの内容であるため、集中して聞けると思います。ここでは、特に印象に残った発表について簡単な紹介と感想を書いていきます。
 

デジタルアイデンティティの技術を学ぼう! ~認証認可にまつわる標準仕様文書を読んでみよう~

結局、RFCやOpenID Connectの原文を読むしかないということはわかっていますが、全体の概要を把握して、必要な情報にアクセスするための方法を解説していました。発表でももちろん、原文を全部読むことが大事であることを強調しつつも、全体の把握や目的に沿って読む方法を提示していました。具体的には、キーワードの把握やセキュリティやプライバシーの記載がどこにあるかなどのRFCの文章構造を把握するように意識しようとのことでした。
 
OIDCのために読んだ方がいい仕様書は以下の通りでした。
 
  • RFC6749
  • OpenID Connect Core 1.0
  • Financial-grade API Security Profile 1.0 - Part 1: Baseline
  • NIST SP 800-63-3 / NIST SP 800-63-4 draft
  • W3C Web Authentication(WebAuthn)
  • BCP(Best Current Practice)
 
RFCを読むためのRFCは以下の通りでした。
 
  • RFC 2119
  • RFC 8174
 
読んだ方がいい仕様書がどの表記に対応しているかを紹介していました。
 
  • RFC7649(RFC 表記)
  • OpenID Connect Core 1.0(RFC 表記)
  • Financial-grade API Security Profile 1.0 - Part 1: Baseline(ISO 表記)
  • NIST SP 800-63-3 / NIST SP 800-63-4 draft(RFC 表記)
  • W3C Web Authentication(WebAuthn) (RFC 表記)
 
読み進め方では、初めて仕様を読む際のコツを紹介していました。
 
  1. 日本語があればそちらから概要をつかむ
  1. 仕様自体の日本語翻訳を読む(機械翻訳は専門用語が訳されたりしたり、意味が真逆になったりすることに注意する)
 
また、本セッションによるとOpenID FoundationのSpecではプライバシーに関するPrivacy Considerationsは独立しています。RFCでも必要に応じてプライバシー部分は独立したRFCになっているそうです。 セキュリティエンジニアはセキュリティとプライバシーの両方について意識する必要があると考えているため、プライバシー関係の文章も読みたいと思いました。
 
RFCを読む練習として良さそうなRFCは以下の通りでした。
 
  • RFC2131(DHCP)
  • RFC8628(Device Flow)
 
また、本発表については、スライドが公開されていますので、こちらを読んでみてください。
 

OpenID Connect活用時のなりすまし攻撃対策の検討

以前、OpenID Connectにおけるアカウント乗っ取りについての記事を書きましたが、OpenID Connectは認証認可のためのアイデンティティレイヤであるため、脆弱だった場合の影響が大きいです。そのため、今でも関心が強いこともあり、今回のOpenID Summitで一番面白い内容でした。
 
シーケンス図や表が多く用いられているため、OpenID Connectの仕組みと脆弱性と防御機構について理解できる内容になっています。提案手法では、未登録ユーザーへのなりすましが課題になっていますが、今後の研究にとても期待しています。
 
また、本発表については、スライドが公開されていますので、こちらを読んでみてください。 本発表はこちらの記事+αの内容になっているとのことだったため、これを先に読んだ方がいいかもしれません。
 

オープンソース・ソフトウェアへのOAuth 2.0ベースのセキュリティプロファイルの実装

KeyClockはOAuthやOIDCを統合しています。そこで、OAuth/OIDCの拡張仕様をどのように選択実装したかを発表していました。つまり、技術的制約に対してOAuth/OIDCをどうやって実装したかという内容で、開発者としても面白い発表だったと思います。
 
  • OAuth/OIDC の拡張仕様をどのように選択実装したか
    • メンテナンスコストを考慮して、できるだけ多くの人に使っていただける機能を受け入れた
    • 一般的に仕様が確定しているものをサポートしようとなった
    • FAPI や CIBA も対応している
    • 実装しようとしている仕様は、大きく、一般向けの OAuth2 ベースと国や地域向けの FAPI ベースの 2 つがある
    • 確定、draft、特定の国/地域向けの優先順位でサポートをする方針を固めた
    • サポートとは、OIDF が提供している Confirmance Test が存在するため、これをパスしたことをサポートしたと定義した
    • セキュリティプロファイルはもうサポートしている。ユーザーから見るとデフォルトで提供されている状態になっている
  • 技術的制約に対して OAuth/OIDC をどうやって実装したか
    • 既存のコードベースが存在するため、実装のスタイルを守らなければならない
      • ここはルール通りやる
    • デグレや性能劣化を避けなければならない
      • 日新着的な実装を行なった
    • 規模が大きくなりすぎてはならない
      • 拡張性のある実装を行った
 
セキュリティプロファイルをサポートするためのフレームワークclient policiesを作成しているようで、設定例を提示していただきました。例としては、すごくPolicy as Codeっぽさを感じました。
 
  • client policies
    • Executor/Profile は何をするのかを定義している
    • Condition/Policy は誰に対してを定義している
 
ただし、client policies はアプリケーションレイヤのみであることには注意した方がいいかもしれません。例えば、FAPIはTLSレイヤに対しても要件が存在します。
 

Verifiable Credential Demo ~ SD-JWT VC & mdoc/mDL issuance using OpenID for Verifiable Credential Issuance

Verifiable Credential / Verifiable Presentation 関連仕様に関するデモです。少なくとも5階での発表においてデモはこれだけだったため、新鮮でした。
 
署名を有効な状態を保ちつつ選択的な開示を実現したいユースケースを示してから、そのためのフォーマットであるSD-JWTを解説していました。OID4VCIによるフローも示されていましたが、条件分岐が複雑だったため、自分は把握できませんでした…腰を据えて記事を読もうと思います。
 
また、本発表については、記事が公開されていますので、こちらを読んでみてください。 余談になりますが、川崎貴彦さんのOAuth/OIDCの記事はとてもわかりやすいため、僕もよく読んでいます。非常におすすめです。

おわりに


本ブログでは、筆者がOpenID Summit Tokyo 2024に参加した様子を書きました。様々な発表を楽しむことができました。
 
イベント参加を後押ししてくれた弊社メンバーにも感謝申し上げます。ありがとうございました。
 
株式会社 Flatt Security では、セキュリティ系カンファレンスへの参加の支援制度の運用や、そこで得た知見の検証などを積極的に行っています。もし自分もこのような活動を行いたい、興味がある、という方がいらっしゃったら、ぜひこちらをご覧ください。