OpenID Technight #10レポート

9月4日に行われたOpenID Technight #10に行ってきました。
IIJさんの会議室を借りて行われました。

「JOSE + JWT 翻訳」

  • @nov, OIDFJ翻訳WG
  • openid-foundation-japan.github.io
  • JSON Web Tokenとその回り
    • JWT, JWS, Use Cases
JWT in Production
会場に質問
  • JWT知ってる人 … 3割くらい
  • OpenID Connect IdP/RP 実装した人 … 十数人
  • SAMLのIdP/SP実装したことある人 … 数人
  • CSV万能?
SAML, The Enterprise
  • XML Signature / Encryption
  • エンプラは大丈夫。しかし、XML亡き今……
  • XML Sig/Enc for JSON
    • JSON Web Token (JWT), 〜 Signature (JWS), 〜 Encryption (JWE)
JWT, JWS, JWE
    • 何に使うの? → Use Cases
      • トランスポートレイヤーではなくオブジェクトベースのセキュリティメカニズム
JOSE Use Cases
  • 実際のユースケースのリストアップ
    • OIDC, OAuth, XMPPなど
  • JOSEが何に使えるのかをざっくり知れる
  • JOSE仕様に求められる要件をまとめたドキュメント。MLの議論のバックグラウンドなど
JWTのフォーマット
  • コンパクトでURL-safeなクレームの表現方法
  • Claimの集合: SAMLなどから来ているものも
  • JSONBase64 URLエンコードして"."でつなぐ
  • キー名は短縮型。謎の3文字縛り
セキュアに使うには? → JWS
  • 署名したり、MACをつけたりできる
  • ペイロードJSONとは規定していないが、JWTと組み合わせてもOK
  • JWS == 署名つきのJWT、でだいたい合ってる
  • alg = RSA-SHA256 / HMAC-SHA256 × JWS Compact Serialization
    • JWS Compact Serialization: ドットでつなぐやつ
  • 世の中のライブラリもこれらのアルゴリズムしかサポートしてなかったり
その他のJOSE/JWT関連仕様
  • JWE ┓
  • OAuth 2.0 JWT Bearer Token ┛→近日翻訳予定
  • JSON Web Algorithm アルゴリズムの定義
  • JSON Web Key 鍵情報のJSON表現仕様
Q&A
  • JWTの売りは?
    • @nov アプリケーションレイヤで署名が必要かという問がある。XMLならばXML Sigで。JSONでやるとき何を使うかというと、JWSが一番。他にはOAuth 1.0があるが、正規化が必要で、パラメータのキー順に並べないといけなかったり、大変である。OAuth 2.0では署名がないので、署名が必要になったときにこれが使える
  • @tkudos 社内で広めるのに困ったことは?
    • @nov iOSRSAが使いにくい。使ったことのある技術者がいない
    • MAC系とライブラリが分かれていて、低レイヤのライブラリをたたかないといけないなど
  • @tkudos APIプロバイダがJWT使うよと言うので、使わざるを得ない人? → いない

「CIS 四方山話」

  • 「Cloud Identity Summit 2013 で話されたこと、思ったこと」
  • by Ping Identity 近藤さん、福家さん、EXGEN 江川さん、@_nat 、KDDI 小畑さん
CIS 2013 Napa
  • 近藤さん
  • CIS 知ってる人? → 半分くらい
  • Napa だったのでワインのんだくれ + 和装 浴衣より下駄がウケた
  • ファミリー連れてきてください系。家族も楽しめる
    • 家族は期間通しで50ドルで面倒見てくれる
  • テーマ: The Great Enabler of Next
キーノート他
  • 江川さん
  • OIDC、日本ではどういう状況なの、っていう話をしてきた
  • プレゼンがさんざんだった。アメリカのTEDスタイル
    • アメリカのプレゼンスタイル:
    • 歩き回る。スライドめくるのはリモコン
    • 抽象的な写真が多い
  • Ping社長アンドレデュランドのキーノート
    • Identiityについて世の中で何が起こっているかを紹介、その考察
    • 9つのobservation
  • Observation #1: ヒゲが生えるように属性が増えていく
    • Linked.in 属性を22個登録すると、回りの人が評価してくれる
    • 自分についての知ることのできることで、他の人に役立っていること → 伸びていく
  • Obs. #2: I (Id) is connected
  • Obs. #3: I'm been watched
    • 1990年代: ネットの向うのヤツは君が犬なんてわからないよ(Internet Dog) → Now: わかっちゃう
    • IDの便利さはプライバシーの懸念と表裏一体
  • Obs. #4: Even being watching, I'm watched
    • 家でアカウントをシェアしていると、そのシェアした属性が使われる
  • Obs. #5: Cyberがリアルを侵食する
  • Obs. #6: なんでもタグ付けできる
    • Square tag: なくしたときになくしたよってツイートすると、見つけた人が報告してくれる
    • stick-n-find 50m以内で見つけてくれる
    • "Internet of things"の時代が来た
  • Obs. #7: Location, Location, Location
    • どこにいるか追跡される
    • バイス+位置でauthenticationに使われる
    • toopher: ロケーション情報をスマホを通して認証に使う
  • Obs. #8: パーソナルとビジネスのクラウドがいっしょくたになってきている
    • consumerization is real. solutions are born in the void between convenience & control
    • 便利と管理のはざまからソリューションが生まれる
  • Obs. #9: Idは電話の回わりに集中してくる
    • iPhoneケースにクレジットカードを入れている。find my iphoneなど考えるとサイフより安全かも
  • Identityは、ISO 7階層モデル/TCP4階層モデルの第3層(transport層)と第4層(application層)の間にあると考えられる
  • Id must be embedded
  • IAM: SaaSでFederation、次はIDaaS: IAMはenterpriseからIDaaSに移る
    • IAM = Identity Access Management
    • 日本ではSAMLが流行っていない。その次にもっと軽いOpenID Connectが来ているから、これを流行らせよう
  • Liberty Alliance Projectの始まりのころ、Netscapeは.comなどのベースを作りたかった
  • Network Identity → Outsource Identity Infrastructure → Outsource Identity
    • つまり Federation → IDaaS → Trusted ID providers
  • CISのIdentity Manifestoではだいたい流行っているものが殺される
    • 今回は B2B and B2C が殺された
    • これからはP2P、M2M
    • Identity has to move from geek to sheik (sheik: 族長、色男)
  • @shingoym: B2CのC, B2B2EのE, G2CのCって、結局同じ人じゃん。相手によって決まる。どういうこと?
    • → ペルソナを切り換えて使うようなことを言っている
  • 企業の中ってプライバシーが難しい。従業員IDというと、その属性の持ち主は企業。クラウドを使い出すと、属性が外へ出ていく。いままで雇用契約で閉じていたところが、漏れていく
    • → ID & ITでもセッションを用意
    • @_nat: プライバシーは所有権ではなく使用権として考えたほうがいい
セッション全体の傾向
  • 福家さん
  • いきなりまとめ
  • OpenID Connect / SCIMは?
    • Interopやってた
    • OpenID Connect: 実装・普及へ
      • SAML is dead? → 使い分け。みんな話はしないけど使われていく
    • SCIM: 実装・普及へ
      • エンプラにおいて対向はない
      • ネタ: ExcelマクロによるSCIMクライアント
  • API化の流れ
    • アプリの変化
    • API
      • コンシューマからエンプラにも拡大
      • パートナーだけに公開するAPIなど
    • バイスの変化
      • スマホ: ネイティブアプリ。APIによる情報をユーザへ提供
      • 提供形態もAppStoreからダウンロード
      • だけじゃない: カメラ、端末ID、GPS、……
      • Ping Identityでは社内アプリがAppダウンロードで送られてくる
    • これらの変化をふまえて…
      • identityの役割: OpenID Connect / OAuth2 が事実上の前提
    • 一方で認証自体に関しては…
      • バイス自体がidentity表明の中心となり得る
      • クライアント証明書・端末ID
      • バイスの特性を活かした認証: カメラ・マイクで生体認証、指紋、Geo Location
    • ネイティブアプリの活用
  • as a service
    • IDaaS: 必然
    • 単純にID管理をクラウドに持っていくだけではない
      • Trust framework, Attribute exchange
      • AXの例: FCCX
  • NSTIC: National Strategy for Trusted Identities in Cyberspace
    • アメリカのガバメントが進めている
    • Citerion クライテリオン
      • AXN Services Framework
      • IdPとAP (attribute provider)は分離されている
      • @shingoym: 扱う属性はどういうもの?
    • Daon TrustX ダオン
      • スマホを認証デバイスとして活用
      • IdPの出すチャレンジによってPINだったり音声だったりを使って認証
      • PCで認証したいのにスマホに認証要求が来る
      • セカンドチャネルに同意内容を出すことによって、yesと言ったのと違う内容に同意させられたことにされたりということがなくなる
  • slideshare.net/CloudIDSummit
OpenID Connectはあなたの課題をどう解いてくれるか
  • @_nat
  • ISO29003: IDは4つくらいに分ける: G2E B2E G2C B2C
  • OpenID Connecってコンシューマ向けじゃないの?
  • デファクトのID Federationはパスワード共有, Account ProvisioningはCSV
    • SAML: 難しすぎ
  • なぜ失敗したか…
    • 3人以上が知っているものは秘密じゃない
    • 同期が崩れやすい
    • 手動編集はリスク
  • やりなおしだ! 今回は死ぬほど簡単に
  • identity: 定義: 実体に関連する属性の集合
  • ABAC: attribute based access control
  • deployments
    • Windows domain: IIS上にOpenIDプロバイダを実装
    • SMTP/IMP/SSH & OpenID Connect: PAMモジュールとして作成
      • ユーザーはデバイスごと、アプリごとのパスワードをOIDCトークンとして受信
    • token integrity prospection、large providerでやると大量にリクが来て大変
    • privacy proxy
雑談
  • 意外に初心者な質問も出る「SAMLってどうやってパスワード送るんですか?」 Federationというとパスワードを送ることだと思ってる人がいる
  • federationすると集中するからあぶないのでは? と思われる
    • SPOFになるんじゃねーの? 的な
    • パスワードを共有してあちこちに置いちゃうとアタックポイントが増えていく。一番弱いところを攻めればいいので攻める側が楽になっていく
  • 5日間のCISで、3日目からのチケットもあるが、全日参加したほうがいい。頭の2日間のinteropなどがすごくコアで面白い
Q&A
  • 本人認証、シェアアカウントじゃないか、副アカじゃないかという検証は、現状スマホワンタイムパスワードを送るしかない。このようなやり方はどう考えられているか。他の方法はあるか
    • 江川さん: 2要素認証、持ってるものを使うのは大原則。ただしどう維持し続けるかが問題
    • _nat: 声を使うなど。プライバシーと紙一重なので気をつけないと
    • 小畑さん: やりすぎるとコンシューマが使わない。声紋・顔・PIN・パスワード認証の組合せをやってみた。Googleではlocationを使って、ここならば確実に君だよね、ということもやった
  • 知ってる認証、持ってる認証、生体認証。生体はお金かかるし難しいと思うが、いまはできるようになっているのか?
    • 小畑さん: PCでも指紋認証などは値段が下がってきている。AndroidAPIが公開されているかどうだの話だと思う。SMS、メールによるワンタイムなどはカンタン。レガシーではあるがコールバック方式も意外と使える
    • _nat: Googleを代弁すると「自分でやるな」。リスクベース認証をやらざるを得ない。Googleは百何十ファクタを150人体制でやっている。それくらいの覚悟でなければやるな、という時代

感想

私もJWSの翻訳チームに参加しました。多人数で手分けして翻訳したのは初めてで、訳語の統一などレビューが大事だなあと感じました。

パネルは本当に面白かったです。発表に使われたスライドは冒頭で紹介したDoorkeeperのイベントページにリンクされるとのことです。

近くのレストランで懇親会も行われ、こちらでもおおいにもり上がりました。