日向夏特殊応援部隊

俺様向けメモ

Re:本当は怖いOpenIDによる認証

このエントリはmitani1207の日記の返信です。

OpenIDによる認証を受け入れるということは、自分のサイトのIDとパスワードの管理を外部サイトに委託することになる。 外部サイトがパスワードをどう管理しているかはわからない。もしかしたら、生でDBに保存してあって、管理者がSELECT * FROM USER_TABLEとかで簡単にとれちゃったりするかもしれない。これは課金情報やプライベートなデータを扱っているサイトにとっては心配だ。

この前提は同感ですね。
OP(IdP)がどのような管理を行っているかなんて、利用者あるいはRP(Consumer)からは判断のしようが無いですからね。

でこの辺りの話は手前味噌ですが、@ITでのOpenIDの連載で書かせて頂きました。

にある、「IdPをどう評価すべきか? OpenIDにおけるReputation問題」の下りです。

id:mitani1207さんの意見は概ねこれに合致してますね。

以下、それぞれについて考えてみます。

ちゃんとID&パスをセキュアに管理しているサイトの認証だけ受け入れるようにすべき

これはRP(Consumer)側の話ですかね、流れ的に見て。
Consumerは規格上は全てのOP(IdP)からの認証結果を受け入れねばなりませんが、*1、当然(ブラック|ホワイト)リスト的な手法をとっても構いません。

また、Trusted Data Exchange - Reputation Serviceの中で触れられている、第3者が提供するReputation Service(評価サービス)と言う提案もあるようですね。

これによれば、OP, End User, RPそれぞれに対してReputationを提供するような枠組みのようです。
といってもこれ自体が現実的な仕様となり、実装が出て来るまで、やはり時間が掛かるであろうし、そもそもこの提案自体が仕様化されるかどうかも分かりません。

以上を考えると、恐らく現時点ではホワイトリスト形式が現実的でしょう。

「ちゃんとしてる」かどうか監査する必要がある/オレオレ監査じゃ意味ないので、第三者が監査するのがベスト

これはOpenIDの枠組みでやる事かどうかは別として、ある程度そういった信憑性のある組織が運営していた方がEnd User/OP共に安心だと思います。

プライバシーマーク的な「セキュアIDプロバイダーマーク」とか作り出しちゃえばいいんじゃないの。日本人はそういうの好きでしょう。

これってライセンス的な物で言えば、プライバシーマークの範疇でいい気がして来ました。最低限はそれでいいのかなと。
既に枠組み自体も出来ていますしね。

どちらかと言えば「ちゃんとしてる」と言う事に定義を定めて、

  • 誰が評価するか
  • 何を評価するのか
  • どこでフィードバックするのか

をきちんとした方がいいのかなと思います。
法律的な点は分からないですが、お国柄もあるのかなと思いますし、国内で議論が進まなければならないのかなと私的には思います。*2

課金情報など重要情報はOpenIDの認証だけで認証するべきでない

このフレーズには補うべき点がたくさんある気がします。*3

例えばRunLogと言う海外のサービスは、サービスへの会員登録の必要がありません。
OpenIDのClaim IDがAuthenticate(認証)された段階で、サービスへのAuthorize(認可)が行われます。

まず大前提として個人情報等、センシティブなデータを取り扱うサイトは必ず会員登録は行うべきで、
認証、認可はRPのIdentifierに対して与えられるべきです。(ここまでは今まで通りと言えばそれまでですが。)

認証部分をOpenIDでと言うやり方にはリスクが伴うので、

  • 取得したRPのIdentifierに希望するユーザーのOpenIDのIdentifierを紐づける
  • OpenID Identifierによる認証は紐づけられたアカウントに対してのみ可能
  • OpenID Identifierによって認証(Authenticate)されたユーザーに与えられる認可(Authorize)に対して、RPは何らかの対策を取るべき

で、その何らかの対策ってのは何が考えられるかと言えば、

  • 認可するのは基本はReadのみ。WriteはRPのアカウントによる認証を都度求められる
  • OPに対するReputationをRPが責任を持って行いホワイトリストで対応。Read/Writeを共に許可

と言った具合の手法、ないしは折衷案とかになるんじゃないかなと思います。

雑感

いやー、こういう話がブログ上で出来るようになって良かったっすねぇ。
話すだけじゃなく、どんどん形にしていかないとですな。

追記(2008-02-02T18:55:49+09:00)

=natさんの突っ込みもありました。

課金情報など重要情報はOpenIDの認証だけで認証するべきでない 自サイト内だけで管理するパスワードを別で用意
これはそうでも無いと思いますよ。 自サイト内だけで管理するパスワードの管理基準、運用品質、パスワード(を含む認証)の強さを総合して考えるべきだと思います。

総合して考えられる状況ならば仰る通りですが、現時点では少なくともそこまで信頼出来る相手を見つけ、そうした相手しかOPとして認めないならば成り立つとは思うんですけど、現状を見る限りはそうじゃないのかなーと私的には思ってます。

そこでReputationの出番、って訳ですねw

*1:id:machuさんの指摘を受けて訂正。規格上はそんな事は書かれてません>< OpenIDの思想から言って〜が本意でした。

*2:と言うのもあってアイデンティティ飲み会は嬉しかったり。d:id:ZIGOROu:20071212:1197480345

*3:「認証だけで認証するべきではない」は誤りかと。「認証だけで認可するべきではない」だと思います。