Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

ID連携における仮名

11,057 views

Published on

CLR/H Tokyo vol.7向け資料
ID連携とプライバシーの話をSAMLの仮名の仕組みを通して解説しました。

Published in: Technology
  • Be the first to comment

ID連携における仮名

  1. 1. カソウカDayだけに
  2. 2. 自己紹介 • Blog • IdM実験室(Identityに関することを徒然と):http://idmlab.eidentity.p • Social • Facebook Page : eIdentity(Identityに関するFeed):https://www.facebook.com/eidentity • 記事 • Windowsで構築する、クラウド・サービスと社内システムのSSO環境 (http://www.atmarkit.co.jp/fwin2k/operation/adsf2sso01/adsf2sso01_01.html) • クラウド・サービス連携の基本と最新トレンド (http://www.atmarkit.co.jp/fwin2k/operation/idftrend01/idftrend01_01.html) • 開発者にとってのWindows Azure Active Directoryの役割と今後の展開 (http://www.buildinsider.net/enterprise/interviewvittorio/01) • その他 • 日本ネットワークセキュリティ協会(JNSA)アイデンティティ管理WG(書籍:「クラウド環境におけるアイデンティティ管理 ガイドライン」etc) • OpenID Foundation Japan 教育・翻訳WG(OAuth/OpenID Connect仕様翻訳)、エンタープライズ・アイデンティティWG
  3. 3. プライバシーとIDに関する課題 •複数のサービス間でIDの紐づけをされたくない •ID連携は便利だが、統一されたIDを使うので連携するサービス間で 名寄せされやすいので使いたくない •他人に知られずに使いたいサービスもありますよね •結果、各サービス毎に固有のID(+パスワード)を作成してしまう •捨てアカとして作る場合もあるが、パスワードは覚えられないので同 じものを使いまわし ⇒ 漏えいすると悲劇
  4. 4. ◆プライバシー侵害のイメージ サービスA:健全な技術者のサイト サービスB:健全なオトコのサイト 汚れ芸人系技術者 Aさん ログイン 健全な議論 ログイン 物色(ライブ チャットなど) 最近汚れ てきた Oさん あれ?この書き込み、 どう見てもAさんだ よなぁ・・・メアド が同じだし ※あくまでイメージです。苦情は受け付けません。 サービス間でのID情報の紐づけにより、 思わぬプライバシー侵害が発生
  5. 5. 仕方がない。。。 「技術者としてのアカウント」と 「オトナとしてのアカウント」を分 けるか、、、 メアドは捨てアドで、、でもパス ワードは覚えられないから同じでい いか。
  6. 6. ◆Aさん、その後 サービスA:健全な技術者のサイト サービスB:健全なオトコのサイト 汚れ芸人系技術者 Aさん ログイン 健全な議論 別IDでログイン 物色(ライブ チャットなど) ※繰り返しますが、あくまでイメージです。苦情は受け付けません。 日本が誇 るハカー Tさん ぐへへ、パスワード 抜き放題やんけ リバース・ブルート フォースでリスト 攻撃、乗っ取り! 別IDでもパスワードは意外と 使い分けていないものです。
  7. 7. こんなはずじゃ なかった!!!
  8. 8. ID/パスワードの使いまわしの問題 •人が覚えられるパスワードは平均3.1個 •対してインターネットユーザがID/パスワードでログインするサービスは 平均13.4個 •パスワードの使いまわしが発生 •利用するサービスでパスワードを統一しているユーザ:25.8% •いくつかのID/パスワードから選んで利用するユーザ:66.7% 出典:2009年NRI「インターネットユーザーのIDに関する意識についてアンケート調査を実施」 http://www.nri.com/jp/news/2009/090611.html
  9. 9. ID連携でパスワード分散に対抗 ID連携(フェデレーション)すれば、 一つのIdPでの認証で複数のサービスが 使えるようになるからパスワードを 各サービス毎に設定する必要がない!!
  10. 10. IDの名寄せの危険性があるんじゃ? でも同じIdPで属性も管理してるんだ から、複数のサービスでID連携をする と同じ属性が使われちゃうんじゃ? 結局名寄せされちゃったら意味ないし。
  11. 11. ID連携には仮名がある! そんなケースも想定ずみなのである。
  12. 12. その前に。「実名・仮名・匿名」 •時間軸、コンテキスト(サービスなど)内外でのリンクの可否で分類 種別 時間軸 コンテキスト内 コンテキスト外 実名 永続的 本名など⇒リンク可 仮名 (pseudonymous) 永続的 ハンドルネームなど ⇒リンク可 コンテキストごとに 異なる名前 ⇒リンク不可 一時的 毎回異なる名前⇒リンク不可 匿名(anonymous) - 毎回異なる名前⇒リンク不可
  13. 13. SAMLにおける仮名 •NameID Formatで表現 •永続的仮名(Persistent Pseudonym) •永続(何度Assertionを発行しても同じ値になる) •urn:oasis:names:tc:SAML:2.0:nameid-format:persistent •一時的仮名(Transient Pseudonym) •非永続(Assertionを発行するたびに異なる値になる) •urn:oasis:names:tc:SAML:2.0:nameid-format:transient
  14. 14. AD FSでの仮名(永続ID) •ビルトインの「_OpaqueIdStore」を利用 •Claim発行ルール① c:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windo wsaccountname"] => add(store = "_OpaqueIdStore", types = ("http://mycompany/internal/persistentId"), query = "{0};{1};{2}", param = "ppid", param = c.Value, param = c.OriginalIssuer);
  15. 15. AD FSでの仮名 •Claim発行ルール② c:[Type == "http://mycompany/internal/persistentId"] => issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameide ntifier", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType, Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/clai mproperties/format"] = "urn:oasis:names:tc:SAML:2.0:nameid- format:persistent");
  16. 16. AD FSでの仮名(永続ID) •発行されるAssertion(NameID) • 何度発行しても同じ値が永続 <NameID Format="urn:oasis:names:tc:SAML:2.0:nameid- format:persistent">Eh1as1gTWtagxAk+ECEuTnu/dzUS2fyOnx3 ER/NMCeg=</NameID>
  17. 17. AD FSでの仮名(一時ID) •同じく「_OpaqueIdStore」を利用 •Claim発行ルール① c1:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/windowsaccountna me"] && c2:[Type == "http://schemas.microsoft.com/ws/2008/06/identity/claims/authenticationinstan t"] => add(store = "_OpaqueIdStore", types = ("http://mycompany/internal/sessionid"), query = "{0};{1};{2};{3};{4}", param = "useEntropy", param = c1.Value, param = c1.OriginalIssuer, param = "", param = c2.Value);
  18. 18. AD FSでの仮名 •Claim発行ルール② c:[Type == "http://mycompany/internal/sessionid"] => issue(Type = "http://schemas.xmlsoap.org/ws/2005/05/identity/claims/nameide ntifier", Issuer = c.Issuer, OriginalIssuer = c.OriginalIssuer, Value = c.Value, ValueType = c.ValueType, Properties["http://schemas.xmlsoap.org/ws/2005/05/identity/clai mproperties/format"] = "urn:oasis:names:tc:SAML:2.0:nameid- format:transient");
  19. 19. AD FSでの仮名(一時ID) •発行されるAssertion(NameID) • 毎回違う値が発行される <NameID Format="urn:oasis:names:tc:SAML:2.0:nameid- format:transient">TqHpmI1BmkVhh8SGu7n+JCC2/oeo6kykYii pRRFbGic=</NameID>
  20. 20. ID連携でも仮名利用できる これなら、サービス毎にパスワー ドを設定しなくても良いし、プラ イバシー侵害も防げる!!
  21. 21. 待て!本当にその属性は必要か? いくら仮名でも同じ属性を使ってたら意 味はない ⇒アプリケーションに本当に必要な属性 情報は何か?の見極めが重要 • 18禁サービス ⇒ 年齢情報があれ ば良いはず • グループ会社向け共有サービス ⇒ グループ会社の認証システムで認証 されている事実だけで良いはず ⇒「手軽にメアドとか連携してません か??」
  22. 22. まとめ •パスワード拡散・使いまわしを防ぐためにもID連携を積極的に使いま しょう •コンテキスト間でのID情報のリンクを防ぐためにID連携の仮名の仕組み を活用しましょう •アプリケーションとのID連携を設計する時はプライバシーを十分に考慮 し、本当に必要な属性情報のみを連携するようにしましょう
  23. 23. 参考情報など • SAMLについて(プロトコルから見るID連携) • http://www.slideshare.net/naohiro.fujie/id-42157018 • 実名、仮名、匿名について(ビッグデータ時代にプライバシーを保護する方策を考える --Suica事例は何が問題だったのか / ITPro) • http://itpro.nikkeibp.co.jp/article/Watcher/20131117/518482/ • フリー素材(MIKA☆RIKA、インド人) • http://mika-rika-free.jp/ • http://study-abroad.misao.in/india-2/indianlife/freeindian/

×