最速転職研究会 https://mala.hatenadiary.org/ http://blogs.law.harvard.edu/tech/rss Hatena::Blog 高木浩光さんへ、しっかりしてください https://mala.hatenadiary.org/entry/20120830/1346309790 <p>技術者としての良心に従ってこの記事を書きます。俺はセキュリティとプライバシーの人ではなく、<a class="keyword" href="http://d.hatena.ne.jp/keyword/JavaScript">JavaScript</a>とUIの人である。法律の勉強だって自分の生活と業務に関わりのある範囲でしかしないだろう。しかし少なくとも<a class="keyword" href="http://d.hatena.ne.jp/keyword/JavaScript">JavaScript</a>やブラウザが絡むような部分については、確実に自分のほうが理解していると思っている。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B9%E2%CC%DA%B9%C0%B8%F7">高木浩光</a>さんが、あからさまに間違ったことを書いたり、おかしなことを書いていたりしても、徐々に誰も指摘しなくなってきたと思う。おかしなこと書いていたとしても、非技術者から見たときに「多少過激な物言いだけど、あの人は専門家だから言っていることは正論なのだろう」とか、あるいは技術者から見た時でも、専門分野が違えば間違ったことが書かれていても気付けないということもあるだろう。</p><p>もう自分には分からなくなっている。誰にでも検証できるような事実関係の間違い、あるいは、技術的な間違いが含まれていても、問答無用で拡散されていくのは何故なのか。気付くことが出来る人が実際に非常に少なくなっているのか、それとも、怖くて指摘できない人が多いのか。あるいは、気付いていてもそれを意図的に放置してしまっているのか。</p> <div class="section"> <h4>2011年 10/20 <a class="keyword" href="http://d.hatena.ne.jp/keyword/Gmail">Gmail</a>のスキャンと<a class="keyword" href="http://d.hatena.ne.jp/keyword/Adsense">Adsense</a>の話</h4> <ul> <li><a href="https://twitter.com/HiromitsuTakagi/status/126885716553760769">https://twitter.com/HiromitsuTakagi/status/126885716553760769</a></li> <li><a href="https://twitter.com/HiromitsuTakagi/status/126885948775608320">https://twitter.com/HiromitsuTakagi/status/126885948775608320</a></li> </ul><p>高木さんがハッキリと間違いでしたと書かないものだから、ずっと勘違いしたままの人もいるだろうし、実際に未だに引用している人もいるし「スコア:5, 参考になる」である。</p> <ul> <li><a href="http://it.slashdot.jp/comments.pl?sid=572089&cid=2181664">http://it.slashdot.jp/comments.pl?sid=572089&cid=2181664</a></li> <li><a href="http://fnya.cocolog-nifty.com/blog/2012/06/yahoo-f98b.html">http://fnya.cocolog-nifty.com/blog/2012/06/yahoo-f98b.html</a></li> </ul><p>"許された理屈も知らないのに「抵抗感が無くなった」というのは、単に周りの人に合わせているだけではありませんか? "<br /> "こういう輩(素人レベルで語る専門家風)は危険。海外で許されている事案を引き合いに、それが許されている技術的・法的特徴を知らずして、うわっつら感覚で「許すべき」とか語り始める。それに影響されて、海外で許されていない技術方式を日本でやってしまう事業者を生み出す。ミログもその例か。"</p><p>ここまで高圧的に堂々と言われたら「あれちょっと変だな」と思っていても、指摘できなくなってしまう。誰でも簡単に検証できることを、実際に検証する人が全然いない。</p> <ul> <li><a href="https://twitter.com/bulkneets/status/126894003001102336">https://twitter.com/bulkneets/status/126894003001102336</a></li> <li><a href="https://twitter.com/bulkneets/status/126926338199269377">https://twitter.com/bulkneets/status/126926338199269377</a></li> </ul><p>少なくとも、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Gmail">Gmail</a>はここ最近、複数のメールを横断してその人にとって重要なメールを判定するという技術を導入して、それを広告にも応用するということをやった。この変更は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Gmail">Gmail</a>の画面で告知されたし、ニュースでも広く取り上げられた。単純なメール本文からの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B3%A5%F3%A5%C6%A5%F3%A5%C4%A5%DE%A5%C3%A5%C1">コンテンツマッチ</a>から、その人の興味を分析して広告を表示できるように変化した。つまり、メールアカウントに対して、その人にとって何が重要か、何に興味を持っているのかということを分析して保存するようになっている(ちなみにこの部分はオプトアウト出来る)</p><p>まさに自分が拡散した誤情報を元にして記事が書かれてしまったのに、それを訂正せずにリンクを張っている。この記事が書かれた段階で、間違いを把握しているはずで、page=7に対するリンクである。</p> <ul> <li><a href="http://twitter.com/HiromitsuTakagi/status/136093502206513153">http://twitter.com/HiromitsuTakagi/status/136093502206513153</a></li> </ul><p>Yahooメールがメールの内容に基づいた<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%BF%A5%EC%A5%B9%A5%C8%A5%DE%A5%C3%A5%C1">インタレストマッチ</a>を開始するという発表を受けて、この話が蒸し返され、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Gmail">Gmail</a>はブラウザ側でメールのスキャンを行っているという勘違いをした発言がいくつか見られた(そもそも<a class="keyword" href="http://d.hatena.ne.jp/keyword/Adsense">Adsense</a>の仕組みを勘違いしている)<br /> その際のやり取りはここから辿れる <a href="https://twitter.com/tekusuke/status/217800848292589568">https://twitter.com/tekusuke/status/217800848292589568</a></p><p>その結果、クロサカ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%BF%A5%C4">タツ</a>ヤ氏が記事を書いてくれた <a href="http://diamond.jp/articles/-/21547">http://diamond.jp/articles/-/21547</a></p><p>失望したのは、高木さんが以下の発言に星を付けていたことだ。</p> <ul> <li><a href="https://twitter.com/Allmacanysoy/status/223598387155582976">https://twitter.com/Allmacanysoy/status/223598387155582976</a></li> <li><a href="https://twitter.com/TakaNojiri/status/223628677521481728">https://twitter.com/TakaNojiri/status/223628677521481728</a></li> </ul><p>そもそも高木さんが間違った認識のもとに人を罵倒したりしてて、その誤った認識が広まってしまっていたから、まずは正しい認識を広め、その上で世論を形成していかなければならないという話であるのに。</p> </div> <div class="section"> <h4>3/12 <a class="keyword" href="http://d.hatena.ne.jp/keyword/%B6%A6%BB%BA%C5%DE">共産党</a>のページの<a class="keyword" href="http://d.hatena.ne.jp/keyword/XSS">XSS</a></h4> <ul> <li><a href="https://twitter.com/HiromitsuTakagi/status/178488466265473026">https://twitter.com/HiromitsuTakagi/status/178488466265473026</a></li> <li><a href="https://twitter.com/bulkneets/status/178489319533723648">https://twitter.com/bulkneets/status/178489319533723648</a></li> </ul><p>まあこれは割とどうでもいいのだけど、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%D6%A5%C3%A5%AF%A5%DE%A1%BC%A5%AF">はてなブックマーク</a>ボタンのト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>無し版が貼られているかどうか、ソースを読んでるはずなのに気付かなかった(と思われる)。</p> </div> <div class="section"> <h4>3/18 medibaの話</h4> <p>オプトアウトがどういう仕組みで実現されているのかを調べている最中。<br /> <a href="http://twilog.org/HiromitsuTakagi/date-120318">http://twilog.org/HiromitsuTakagi/date-120318</a></p><p>postMessageでト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>idを問答無用で親フレームに送ってしまうという、問題のある実装になっていた。高木さんはソースを(かなり詳しく)読んでいたのに、このことに気付かなかった。</p> </div> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>と<a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>の話</h4> <p><a href="http://d.hatena.ne.jp/mala/20120524/1337839088">http://d.hatena.ne.jp/mala/20120524/1337839088</a></p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>に対しては「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>なんか倒産すればいいよ」とまで言ったのに、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>がト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>開始したときにはボイコットしなかった。</p> </div> <div class="section"> <h4>8/2 myappeeの話</h4> <p><a href="https://twitter.com/HiromitsuTakagi/status/231045813353197571">https://twitter.com/HiromitsuTakagi/status/231045813353197571</a><br /> "myappee に会員登録しようとすると、メールアドレス入力を<a class="keyword" href="http://d.hatena.ne.jp/keyword/facebook">facebook</a>から拾わせようとする。これで<a class="keyword" href="http://d.hatena.ne.jp/keyword/facebook">facebook</a>アカウントと紐付けようって寸法かな。"</p><p>何が「寸法かな」だ。ソース読めばどういう情報を取得しているのかは分かる <a href="http://cache.gyazo.com/eab496885723a4ac2537d743a9ee5c3a.png">http://cache.gyazo.com/eab496885723a4ac2537d743a9ee5c3a.png</a></p><p>これは<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/JavaScript">JavaScript</a> <a class="keyword" href="http://d.hatena.ne.jp/keyword/SDK">SDK</a>を使って実装されていて、性別メールアドレス誕生日を取得するものだ。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>のidを取得して送信するコードは含まれていなかった。単に入力補完目的で使っている。高木さんは何のためにClient-side flowがあると思っているのか。サーバー側に不必要な情報を送ること無く、ブラウザ内で完結させることができるのが嬉しいのではないか。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>アカウントの情報取りたいんだったら、単に「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>アカウントをお持ちの方は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>アカウントでログイン出来ます」とやればいいだけだ。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>には本名を非公開にするような設定は無い。「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>でログイン」をやってしまえば、どうやったって、本名がついてまわってきてしまう。オプトはネット広告の会社である。必要なのは最適な広告配信のために必要な情報で、氏名など必要ないのだし、不必要な個人情報はリスクでしか無い。姓名判断で広告を出すわけではないし、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A1%BC%A5%B1%A5%C6%A5%A3%A5%F3%A5%B0">マーケティング</a>のための統計情報を作るのに氏名はいらない。</p><p>これは自分にとって、ゾッとする出来事だった。たとえプライバシーに配慮した方式で実装されていようとも、専門家がそれを汲み取ることが出来ないばかりか、むしろ逆方向の仮説を立てる。</p><p>高木さんほどの人が、この程度のことを察することが出来ないのは、おかしいと思った。あまりにも<a class="keyword" href="http://d.hatena.ne.jp/keyword/JavaScript">JavaScript</a>が読めないのであるか、それとも、意図的に多少おかしなことを書いて、どれぐらいRTされるのかとか、関係者が釣れないかとか、実験してるのではないかとすら思った。これを見たときに、もう本格的に何を言っても無駄だと思った。他社のサービス、どうせ終了するサービスであるし、こういったことを指摘したところで「と、見せかけて実はやっているのでは?」「メールアドレスで検索して<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>アカウントを特定するのでは?」などと返されたら、自分はそんなことを知るわけがない。</p> </div> <div class="section"> <h4>8/11 <a class="keyword" href="http://d.hatena.ne.jp/keyword/Pathtraq">Pathtraq</a>の話</h4> <p><a href="http://twilog.org/HiromitsuTakagi/date-120811">http://twilog.org/HiromitsuTakagi/date-120811</a></p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E1%A5%C3%A5%BB%A5%B5%A5%F3%A5%AA%A1%BC">メッセサンオー</a>事件に関して</p><p><a href="https://twitter.com/HiromitsuTakagi/status/234138201185460225">https://twitter.com/HiromitsuTakagi/status/234138201185460225</a><br /> "当時、原因として疑った<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C4%A1%BC%A5%EB%A5%D0%A1%BC">ツールバー</a>「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Pathtraq">Pathtraq</a>」のサービス画面。URLにID・パスワードが含まれたアクセスがこのように記録されていた。"</p><p>大ウソだ。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Pathtraq">Pathtraq</a>に記録されたURLにID・パスワードがは含まれていなかった。そもそも、これは事件が報道された日付であるし、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Pathtraq">Pathtraq</a>経由で漏洩した疑いを持ったのであれば、日付をさかのぼった状態の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B9%A5%AF%A5%EA%A1%BC%A5%F3%A5%B7%A5%E7%A5%C3%A5%C8">スクリーンショット</a>を<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CA%DD%C1%B4">保全</a>するものではないのか。<br /> <a href="https://twitter.com/bulkneets/status/234146798472663040">https://twitter.com/bulkneets/status/234146798472663040</a></p><p>大体、そういった問題について指摘して、改善を求めたのは、他ならぬ高木さん自身ではないですか(2009年02月01日の日記)。</p><p>そもそも高木さんがRTした元発言の人は、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%A5%C4%A1%BC%A5%EB%A5%D0%A1%BC">Googleツールバー</a>経由でURLが漏洩したものだと考えていた。管理画面のURLがクロールされるに至った原因は、そもそも解明されていなかったはずだ。憶測で語られていたことが、時間が経つと確定した事実かのように、人々の記憶に刷り込まれてしまう。デマの良くあるパターンだ。俺なら絶対そんな発言をRTしない。</p> </div> <div class="section"> <h4>願うこと</h4> <p>技術的な間違い、事実関係の誤認、それを元にして他者を攻撃しているもの。また、セキュリティを生業にしている人間であれば、パッと見わかりそうな問題をスルーして別の箇所に注目しているもの。プライバシー・セキュリティに配慮した結果こうなったと推測できるものを、逆方向の仮説を立ててしまうものがある。単にいくつか印象に残っているものをいくつか挙げたわけで、特に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B9%AD%B9%F0%B6%C8%B3%A6">広告業界</a>の関係者から見た場合や、高木さんが炎上させてきた企業の当事者からすれば、もっとあるだろう。</p><p>高木さんが<a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>でRTする発言の中には、事実関係について致命的な誤認をしていたり、あるいは、真っ当な技術者であればいくらなんでもそんな推測はしない、といったものが多く見られる。最初は「可能性がある」といって毎回気を使って言及されていたものが、徐々に「こんなことが行われているに違いない」「こんなことが行われるに違いない」と変移していく。特にCCCとTポイントに関する問題は、時系列で順を追ってみていけば、高木さんが何をしてきたのかが分かるだろう。実際には、ユーザーのプライバシーに配慮した方法で実装されていたり、他のサービスと大差がないものをより悪質と言ったり、A社がやる分には良いけどB社がやるのはダメだ、といった具合にねじ曲げてしまう。</p><p>本当に、この程度のことであれば、技術者であれば誰でも分かるでしょ、気付けるでしょ、といったレベルのことが指摘されなくなってしまった。なぜ間違いが指摘されなくなってしまっているのか。単に皆自分の仕事で忙しいとか、専門分野が違うので自信を持って書けないということもあるだろう。別の会社の内部事情なんて分からないのだし、所詮外部からは正確なことなんて分からない、口をはさむべきことじゃない、と考えてしまうのか。でも「いや、それってフツーに考えてそんなことしないですよ」ぐらいのことが言えなくなってしまった。(しないと思ってたことが実際には行われていてびっくり、ということももちろんあるだろうけど)</p><p>恐れ多くて誰も口に出せない、絡んでも得をしない。目立ちたくない。いわゆる高木信者と呼ばれるような人たちから、こいつはプライバシーを軽視する人間に違いないとレッテルを貼られ、集中砲火を浴び、そうやって当事者や中の人が情報発信できなくなってしまう。情報発信がされないことで、より一層、技術を理解する人と理解しない人の間での認識にズレが生じて、悪循環になってしまっている。</p><p>自分はクライアントサイドの人間だ。望めばどんなコードで何が動いているのか検証できる世界、望めば拒否できる、望めば完全にブロックできる、そういう世界を望むだろう。コードを読まず、あるいは読めずに憶測で批判する人間が大半であれば、あるいは少数でも異常に声が大きい人がそういう事をやってしまえば、実現しない。セキュリティ上の問題があったとしてもそれを見抜くことが出来ず、プライバシーに配慮した実装がされていようとも、それを汲み取ることが出来ず。違いを分からずに「今すぐ中止せよ、さもなくば悪徳企業」と言わんばかりに、圧力をかけている。説明すればするほど、露出を増やせば増やすほど、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B9%E2%CC%DA%B9%C0%B8%F7">高木浩光</a>に目をつけられ、炎上リスクだけが増加する。実際に実装に関わっているような技術者は批判を恐れて表に出なくなり「そもそも安全な実装にするにはどうすればいいの?」といったことが語られなくなっている。安全にする方法を考えられない人たちは、単に中止せよと言うだろう。</p><p>ネットの広告も、ユーザーの行動分析も、このままではユーザーから見て、より透明性が低く、検証がしにくく、何が行われているか分からない方法で同じことが行われてしまうだろう。何が行われているのか隠したほうが得になり、単に「必要な範囲で第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>に委託します」などと書かれ、裏側で<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%AF%A5%BB%A5%B9%A5%ED%A5%B0">アクセスログ</a>を丸投げするような、よりユーザーから制御しにくい方法で同じことが行われるようになってしまうだろう。正直者が得をしない、誠実であろうとすれば損をする。あなたはそういう世界を望んでいるのですか?</p><p>この人の持ち合わせている知識からすれば、あからさまに間違いである、デマである、誤解である、邪推である、単なる信用毀損情報である、そうやって判定できるはずのことをRTして拡散する。個々のユーザーに判断できるだけの知識を与えることなく、判断力を持たない無知なユーザーを煽動して、誤解に基づいた判断で世論を作りあげようとする。そういう様子を見てきて、もはや高木さんは「先生」と呼べるような人間では無くなったのだと思った。同じリストに入れられることを不快に思うようになった。「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B9%E2%CC%DA%B9%C0%B8%F7">高木浩光</a>の同類」といった扱いを受けてしまうのが我慢ならなくなった。一体いつからこんなことになってしまったのか。「あの人は昔からああだから」とか「十年前から変わらん」と人によっては言うだろう。いやしかし、ここ最近は特におかしい。人格や性格のことを、とやかく言うつもりはない。自分だって人のことを言えないだろう。もう本当に、この人は完全に放っておいたほうが良いのかな、十年変わらないものが今さら変わるわけが無いのかな、とも思う。</p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%B9%E2%CC%DA%B9%C0%B8%F7">高木浩光</a>を批判することで所属している企業が目をつけられて面倒くさくなるという可能性も多分にあるのだし、何も変わらないのであれば、純粋な、技術的な間違いの指摘であろうとも、もはや書く意味が無くなってしまう。もうみんな、あの人のこと放っておきましょうと主張することになってしまう。それでも、何でこんなことを書いているのかといえば、高木さんが技術に関しては誠実な人間だと思っているからだ。その部分に関しては、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B9%E2%CC%DA%B9%C0%B8%F7">高木浩光</a>に絶大な信頼を寄せている、寄せていたからだ。</p><p>高木さんへ</p> <ul> <li>間違い、勘違いで書いたのであれば、より大きな声で訂正情報を流してください。</li> <li>間違った情報を根拠にして、個人や企業を批判したのであれば、その部分についてはきちんと謝ってください。</li> <li>真摯にセキュリティやプライバシーのことを考えている、技術者に対して、彼らの努力を無に帰してしまうような真似をしないでください。</li> <li>より良い未来を作ろうとしている技術者が軽蔑されるような世界を作らないでください。</li> <li>正しい知識を広めようとしている人間に対して、レッテルを貼ったり、黙っていろなどと言わないでください。</li> </ul><p>単に誤解でした、勘違いでした、知識不足による間違いでした、で済む問題であれば、ちゃんと訂正すればいいのではないですか。妄想憶測で語られていたことや「可能性がある」といって語られていたことが、やがて既成事実化して語られてしまう。それはRTするより前に、まずは正しい事実を周知させることを優先すべきなのではないですか。もう目的を達成するためにはなりふり構わず、デマだろうが誹謗中傷だろうがお構いなしになっていませんか。自分も問題のある実装を批判したり、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>に関する報告をすることがよくあります。しかし大抵の場合、必要以上に騒ぎ立てなくても、自分たちの作っているサービスに誇りを持っている人がいて、問題を認識してくれて、ちゃんと対応してくれます。たまに肉を奢ってくれたりもします。高木さんがこれからもずっと変わらないのであれば、あの人は技術者として信用できないのだと、間違いや思い込みで他人や企業を攻撃することがあるのだと、そうやって周囲の人間が接し方を変えていかねばならないのだと思う。ルール、法律、制度作りも何もかも、まずは正しい現状認識がなければ適切な世論形成が行わなくなってしまいます。新聞社の方、法律家の先生方、技術的な見識について間違いがないかどうか、複数の人から意見を聞くようにしてください。</p><p>もうずっと心のなかで引っかかっている。公開の場で主張すべきことを今まで主張してこなかったことを悔いている。目の前でいじめが行われているのを近くで見ているのにそれを制止できない、してこなかったような、本当にそういう心境になっている。</p><p>終わりに、面白おかしく<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%CD%A5%C3%A5%C8%A5%D0%A5%C8%A5%EB">ネットバトル</a>的な茶化し方をするのはやめてください。本当に深刻な問題だと考えています。</p> </div> Thu, 30 Aug 2012 15:56:30 +0900 hatenablog://entry/17680117127139885922 GoogleがSafariの設定を迂回してトラッキングしていたとされる件について(2) https://mala.hatenadiary.org/entry/20120815/1344999915 <p><a href="http://d.hatena.ne.jp/mala/20120220/1329751480">http://d.hatena.ne.jp/mala/20120220/1329751480</a><br /> の続き。書くべきことは大体既に書いてあったので、補足だけ書く。</p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>は制裁金2250万ドルを支払うことでFTCと和解した</p> <ul> <li><a href="http://jp.techcrunch.com/archives/20120809google-settles-with-ftc-agrees-to-pay-22-5m-penalty-for-bypassing-safari-privacy-settings/">http://jp.techcrunch.com/archives/20120809google-settles-with-ftc-agrees-to-pay-22-5m-penalty-for-bypassing-safari-privacy-settings/</a></li> </ul><p>まさか(まともに調査されれば)こんなことになるとは思わなかったので驚いた。異常な事態である。そして<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>側の主張を掲載しているメディアが殆ど無いのも異常な事態である。</p><p>2250万ドルもの制裁金(和解金)が課せられるのは、2009年に書かれたヘルプの記述が原因だという。</p> <ul> <li>問題の記述 <a href="http://obamapacman.com/2012/02/google-willfully-bypasses-browser-privacy-settings/">http://obamapacman.com/2012/02/google-willfully-bypasses-browser-privacy-settings/</a></li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/WSJ">WSJ</a>が書いてるのも、<a class="keyword" href="http://d.hatena.ne.jp/keyword/google">google</a>-opt-out-pluginのことである。<a href="http://online.wsj.com/article/SB10001424052970204880404577225380456599176.html">http://online.wsj.com/article/SB10001424052970204880404577225380456599176.html</a></li> </ul><p>これはdoubleclick.netに対して恒久的にオプトアウト<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をセットするためのブラウザ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%C8%C4%A5%B5%A1%C7%BD">拡張機能</a>で、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%AA%A1%BC%A5%D7%A5%F3%A5%BD%A1%BC%A5%B9">オープンソース</a>で公開されていて、見ればわかるけれど、積極的にアップデートされるようなプロジェクトではない。<a href="http://code.google.com/p/google-opt-out-plugin/source/list">http://code.google.com/p/google-opt-out-plugin/source/list</a></p><p>2009年は Safari3,4のころで、正確に言えば、2009年時点でもこの記述は正確ではない。何らかのタイミングでファーストパーティとしてdoubleclick.netを訪問して、その際にト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>がセットされる挙動があれば、引き続きト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>される状況になる(広告のiframeを直接表示したら確実、広告クリック時にid <a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>がセットされていたかは未確認)。そもそもこれは一般ユーザー向けのヘルプセンターにあるような文書ではない。技術ドキュメントに近いものだ。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Chrome">Google Chrome</a>に対しても同等の案内が書かれている。</p><p>つまり<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>は単に「この<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%C8%C4%A5%B5%A1%C7%BD">拡張機能</a>がサポートされていないブラウザでは<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロックする設定を使え」という案内をしていたところ</p> <ul> <li><a href="http://www.google.com/ads/preferences/html/intl/ja/plugin/browsers.html#chrome">http://www.google.com/ads/preferences/html/intl/ja/plugin/browsers.html#chrome</a></li> <li><a href="http://cache.gyazo.com/2cac3dc2e18496512cd5e80d1bc688fc.png">http://cache.gyazo.com/2cac3dc2e18496512cd5e80d1bc688fc.png</a></li> </ul><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>の仕様変更( <a href="https://bugs.webkit.org/show_bug.cgi?id=35824">https://bugs.webkit.org/show_bug.cgi?id=35824</a> )という外的な要因で、記述内容が不正確になったに過ぎない。「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>がウソをついていた」のではなく、リリースノートに記載されないような、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>の仕様変更で、ヘルプの記述が後から嘘になってしまったのだ。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>はこの問題が起きた直後に、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>に対しては「全ての<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を許可」する設定にしていても、UserAgentで<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>を判別してテスト用の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>すら発行しないという変更を行なっている。</p> <ul> <li><a href="https://twitter.com/bulkneets/status/171556744504418304">https://twitter.com/bulkneets/status/171556744504418304</a></li> <li><a href="https://twitter.com/bulkneets/status/171557083420958720">https://twitter.com/bulkneets/status/171557083420958720</a></li> </ul><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/google">google</a>.comとdoubleclick.netの<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>連携の導入に関わらず、2010年の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>の仕様変更によって、doubleclickのid <a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>が多くのケースでセットされる状況になっていた。腫れ物に触れるように、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>に対して一切の doubleclick.net<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を設定しないようにしなければ、ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>が自動で設定される状況になってしまった。</p> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>だけ逆方向へと変更が進んだ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>のポリシー</h4> <p>(ブラウザ側の立場で書くので以後<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送信と書かれているのは、ブラウザからサーバーへの<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>送信のことを指す)</p> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Firefox">Firefox</a>は、Firefox3において、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送信もブロックするという変更を行った 参考: <a href="http://d.hatena.ne.jp/mala/20111125/1322210819">http://d.hatena.ne.jp/mala/20111125/1322210819</a></li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Chrome">Google Chrome</a>は about:flagsの設定で、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送信も無効化する設定が2011年1月頃に追加 <a href="http://www.thechromesource.com/block-all-third-party-cookies-appears-in-chrome-experiments/">http://www.thechromesource.com/block-all-third-party-cookies-appears-in-chrome-experiments/</a></li> <li>後に、単に設定画面で<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をオフにするだけで、送信もブロックされるようになった <a href="http://code.google.com/p/chromium/issues/detail?id=98241">http://code.google.com/p/chromium/issues/detail?id=98241</a> <a href="http://code.google.com/p/chromium/issues/detail?id=113401">http://code.google.com/p/chromium/issues/detail?id=113401</a> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Firefox">Firefox</a>と同等に、これも「インターネットをブッ壊すので元に戻したほうが良いのでは」と書く人がいる <a href="https://groups.google.com/a/chromium.org/forum/?fromgroups#!topic/chromium-discuss/kfsb9V5IPcQ">https://groups.google.com/a/chromium.org/forum/?fromgroups#!topic/chromium-discuss/kfsb9V5IPcQ</a></li> </ul></li> </ul><p>この手の、インターネットが壊れる(<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>が動かない)系の主張は、よく見られる。中には、デフォルトでブロックしつつ互換性のために<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>受け入れポリシーを緩和してきた、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>のポリシーを是とする人もいるだろう。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>が無効なら無効で、ポップアップウィンドウを開くなり、画面遷移するなりして、迂回手段をとって動作するWebサイトを作ることが出来るのだが、Webサイト側のバグではなく「ブラウザ側のバグなのでは」として報告されてしまうことが後を絶たない。ユーザーはそんなこと知ったこっちゃ無いので、単に動かないサイトが出てくると困るし、他のブラウザを使うようになってしまう。</p><p>Apple2006年の名言 <a href="http://web.archive.org/web/20070303025259/http://www.mac.com/web/ja/Tips/425954F3-DF73-4B9B-94AC-20EE4BDE374C.html">http://web.archive.org/web/20070303025259/http://www.mac.com/web/ja/Tips/425954F3-DF73-4B9B-94AC-20EE4BDE374C.html</a></p> <blockquote> <p>もしアップルが推奨するブラウザを使っていて機能しないサイトを見つけたら、 苦情を申し立てましょう。 そのサイトが、 Web 上でもっとも進化したものに対応できるブラウザでもうまく機能しないのはなぜなのか、 サイトオーナーに説明を求めるとよいでしょう。</p> </blockquote> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Apple">Apple</a>も当初はこんな具合に強気だったわけだが、実際のところ動作しないサイトが多くて他のブラウザに乗り換えられてしまうと困るので、<a class="keyword" href="http://d.hatena.ne.jp/keyword/WebKit">WebKit</a>側ではWebサイトとの互換性のための涙ぐましい努力、改善・改悪が行われてきた。他のブラウザにとっては、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%BB%A5%AD%A5%E5%A5%EA%A5%C6%A5%A3%A5%DB%A1%BC%A5%EB">セキュリティホール</a>として判断されて修正された問題が、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>に限っては仕様として維持され、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>が動かないだとか◯◯が動かないだとかそんな理由で、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の受け入れポリシーが緩和されてきた。こういう時に他のブラウザは<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>ごとに<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の受け入れポリシーをカスタマイズ出来るようにしてきたのだが、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>にはそれもない。他のブラウザが、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>のブロックと言った場合に「厳格なブロック」を行うポリシーを採用する中、デフォルトで<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロックするというポリシーを持っている<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>は、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロックするという設定を維持したまま(ユーザーのプライバシーを守りますという体裁を保ったまま)、動作しないWebサイトを動作するようにするために、むしろ<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の受け入れポリシーを緩和してきた。</p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送信をブロックしないのはセキュリティ上の問題でもある。クリックジャッキングの問題、<a class="keyword" href="http://d.hatena.ne.jp/keyword/JSON">JSON</a>ハイジャック、<a class="keyword" href="http://d.hatena.ne.jp/keyword/XSS">XSS</a>や<a class="keyword" href="http://d.hatena.ne.jp/keyword/CSRF">CSRF</a>をこっそり踏まされても気付かない問題、特定サービスにログインしているかどうか判別できる問題。ブロックしているにも関わらず、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送信は行われるというポリシーは、これらの問題を全く解決しない。「送信をブロックしない」時点でセキュリティ上の意味も無く「既に<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>がセットされている場合は追加の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>も受け入れ」というポリシーによって(例えば広告クリック時に「ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>目的ではない」<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をセットしたとしても)<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>は多くのト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>も意図せずに受け入れてしまう状況になっている。(無論、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送信をブロックしない段階で、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>や<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>や<a class="keyword" href="http://d.hatena.ne.jp/keyword/Amazon">Amazon</a>など諸々の「既にログインしてるWebサイト」による外部埋め込みパーツにおける<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%AF%A5%BB%A5%B9%A5%ED%A5%B0">アクセスログ</a>取り扱いを信用していなければ、それはユーザーに取ってト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>と同等の意味を持つことになる)</p><p>数年前までは、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロックすることでト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>を拒否できます、というのがブラウザ開発者側の(あるいはWeb開発者、広告関係者の)全体的な総意であったが、今や<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>に依存したWebサイト、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロックすると動作しないWebサイトが多くなりすぎてしまった。彼らは「全ての<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を受け入れるように」とブラウザの設定変更を促してしまう。だからユーザーはト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>拒否したくても、動かなくなるサイトが出てくると困るから<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を迂闊にオフに出来ない状況になってしまっている。なので<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の設定とは独立して、技術的には何ら意味も持たない「ウェブをブッ壊すことが無い」純粋な意思表示の仕組みを用意しましょう(まあそれに<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>に限らずト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>手段はあるし)というのが、DoNotTrackの実態である。</p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の泥沼へようこそ。FTCが立ち入るには3年半は早かった、せめてDoNotTrackが機能するようになってからにしてくれ。(DoNotTrack普及後に)DoNotTrackを無視したので<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>に制裁金を、という話になるのであれば理解できる。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>受け入れポリシーは、デフォルト設定を維持したままWebサイトとの互換性を解消するという無理難題タスクを課せられた結果、最早ポリシーとは呼べない魔窟となっており、あれはDoNotTrackでもなんでもない。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>受け入れポリシーのことをDoNotTrackと呼ぶのは、今すぐやめろ。それと、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>オフにして動かない系の話の多くに<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>が絡んでいるので、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>はこの争いに巻き込まれる資格がある。</p> </div> <div class="section"> <h4>なぜ<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>はこのような不名誉な和解を受け入れたのか</h4> <p>極めて不名誉な決定にもかかわらず、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>は争わなかった。理由は容易に推測できる。</p> <ul> <li>1. 多くの一般消費者は上記↑のような事情を、技術的背景を、一切理解出来ないだろうから</li> <li>2. 深入りして調査されると、面倒くさいことになるのが目に見えているから</li> </ul><p>1については言わずもがな、問題は2である。そもそもこの問題の発端である、<a class="keyword" href="http://d.hatena.ne.jp/keyword/google">google</a>.comとdoubleclick.net間の<a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>連携について。doubleclick.netで提供される<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Adsense">Google Adsense</a>から、極めて限定的だが、<a class="keyword" href="http://d.hatena.ne.jp/keyword/google">google</a>.comで提供されている +1の情報が参照されていることになるからだ。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Adsense">Adsense</a>に+1ボタンを表示するオプションは、現状<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>アカウント作成時にデフォルトでチェックされている。この程度の同意で、doubleclick.netで行われている匿名ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>と<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>アカウントを、ガッツリ紐付けるようなことは、まず無いだろう。doubleclick.net側から参照できる<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>のユーザー情報はどの程度のものか、きちんと個人を特定できないようになっているのか、_drt_ <a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>の役割は何であるのか。それは、どうあがいてもサーバーサイドでの出来事であり、それが安全な方法で実装されているのかどうかは一般ユーザーからは観測することが出来ない。そういった対外的には観測<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C9%D4%C7%BD">不能</a>なことについて、消費者の代わりに調査するのがFTCの本来の役割であろう。FTCは役割を果たさなかった。</p> </div> <div class="section"> <h4>まとめ</h4> <ul> <li>ユーザーを欺く説明をしてきたのはむしろ<a class="keyword" href="http://d.hatena.ne.jp/keyword/Apple">Apple</a>の方であり、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>側の責任を追求するのは、極めて不公平なことである</li> <li>FTCは役割を果たさなかったし、技術音痴のマヌケである</li> <li>技術系のライター、編集者はこの程度のことは調べて書け</li> <li>この決定を受けてFTCを支持している人間は、全員例外なく阿呆である</li> </ul><p>いちいち具体名とか挙げたくないけど、一部の技術者であったり、あるいは情報系の法学者だとか教授だとかそれなりの肩書きを持っている人間が、この決定を<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>が何か悪いことをして制裁金を課せられたぐらいにしか思っていない。単なる前提知識不足では済まされない、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E1%A5%C7%A5%A3%A5%A2%A5%EA%A5%C6%A5%E9%A5%B7%A1%BC">メディアリテラシー</a>の不足、インターネットに対する理解不足、本当に悲しむべき、深い深い断絶を感じている。どんだけ脳みそが単<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BD%E3%B2%BD">純化</a>してるんだ、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B6%B8%B5%ED%C9%C2">狂牛病</a>にかかってないか疑ったほうがいい。</p> </div> Wed, 15 Aug 2012 12:05:15 +0900 hatenablog://entry/17680117127139886015 Re: Do Not Trackがデフォルトでオンではだめなのか? https://mala.hatenadiary.org/entry/20120628/1340861275 <p><a href="http://d.hatena.ne.jp/Rockridge/20120616/1339854043">http://d.hatena.ne.jp/Rockridge/20120616/1339854043</a></p><p>例え話なので諸々いい加減な部分はあるけど私の考えは大体こんな感じです(例え話で理解したつもりになってはいけない)(ある程度技術的なことが理解できる人を対象とした記事です)</p> <ul> <li> <ul> <li> <ul> <li> <ul> <li>-</li> </ul></li> </ul></li> </ul></li> </ul><p>遺伝子の突然変異か何かで、食品アレルギーに過敏になった未来、99%の人間が何らかの食品アレルギーを持っていて、食品によっては食べると実際に死んだりすることもある。まあ中には単なる食べ物の好き嫌いや、信仰上の理由もあったりするのだが、対外的にはあんまり区別が付かない感じだ。</p><p>以前の世の中は、そば粉アレルギーはそば屋に行かないとか、卵アレルギーはプリンを食べないとか、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BA%DA%BF%A9%BC%E7%B5%C1%BC%D4">菜食主義者</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B9%A5%C6%A1%BC%A5%AD%B2%B0">ステーキ屋</a>に行かないとか、各々が自衛したり、食品メーカーやレストランがどういう食材を使っているのか明記したりしてきた。そうやって騙し騙しやってきたところ、いちいち確認するのが面倒だったり、海外のレストランに行って言葉が通じなかったり、うっかり言い忘れたりすると危険だから、技術的に解決しましょうという話になった。</p><p>そこで<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E2%A5%B8%A5%E9">モジラ</a>っていう宗教団体が、食品アレルギーを浄化する御守の共通規格を提唱しました。本来は御守自体に食品を浄化するパワーなど何もなかったのですが、信心が深ければ店の人が配慮して何とかしてくれます。技術者たちは最初は「おいおいマジかよ」って思ってましたが、この世界での<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E2%A5%B8%A5%E9">モジラ</a>は国際的に強い影響力を持つ宗教団体ですし、意思表明の仕組みとしてはそれなりに機能するだろうと考えました。御守を自動検知してレストランのメニューを自動で変更する仕組みの開発などは、まだまだこれからですが、食品業界全体として取り組んでいくことが約束されました。</p><p>ちなみに、この世界での<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A5%A4%A5%AF%A5%ED%A5%BD%A5%D5%A5%C8">マイクロソフト</a>は、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E6%A5%CB%A5%AF%A5%ED">ユニクロ</a>と<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D5%A5%A1%A5%C3%A5%B7%A5%E7%A5%F3%A5%BB%A5%F3%A5%BF%A1%BC%A4%B7%A4%DE%A4%E0%A4%E9">ファッションセンターしまむら</a>が合体した感じの強い影響力を持つ、衣料品販売団体です。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A5%A4%A5%AF%A5%ED%A5%BD%A5%D5%A5%C8">マイクロソフト</a>のそれなりに偉い人が「俺、卵アレルギーなんだよね、みんなもそうでしょ」といって、来季の主力商品に御守を編みこむことを発表しました。卵業界は反発しました。というか食品業界全体が反発しました。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E2%A5%B8%A5%E9">モジラ</a>も反発しました。</p><p>大事なことを言い忘れていたけど、この世界では大体の食品は無料で提供されていて、お金を取るのは一部の店だけだ。どういう仕組みでそうなっているのか人類の大半は知らない、けれど皆はそれが当たり前のことだと考えている。</p> <ul> <li> <ul> <li> <ul> <li>-</li> </ul></li> </ul></li> </ul><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A5%A4%A5%AF%A5%ED%A5%BD%A5%D5%A5%C8">マイクロソフト</a>はあほか、って言う人がいるのも、DNT自体がそもそもダメっていう人がいるのも分かると思う。DNTを有効にするだけでプライバシーが守られると考えてしまう人がいたら、そういう人は御守の効能を何か勘違いしているので止めたほうがいい。</p> <div class="section"> <h4>どういうケースが危険なのか</h4> <ul> <li>実際に深刻な、そば粉アレルギーがある人が御守の効果を期待して、そば屋に入ってしまう(ウチはそんな御守対応してないし、そば粉抜きの蕎麦なんて作れねえよ!)</li> <li>食品アレルギーがありますって言われても、具体的にどれがマズイのか分からない、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%CF%A5%F3%A5%D0%A1%BC%A5%AC">ハンバーガ</a>ー屋が卵小麦粉肉ピクルス抜きバーガーを提供して、まともな<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%CF%A5%F3%A5%D0%A1%BC%A5%AC">ハンバーガ</a>ーを食べるには高額料金が必要になる</li> <li>御守付けてない人は何でも食べられる人なんだよね、と勘違いして、レストランが使っちゃマズイ食材を使うようになる</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E6%A5%CB%A5%AF%A5%ED">ユニクロ</a>と<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D5%A5%A1%A5%C3%A5%B7%A5%E7%A5%F3%A5%BB%A5%F3%A5%BF%A1%BC%A4%B7%A4%DE%A4%E0%A4%E9">ファッションセンターしまむら</a>が「皆のことを思ってダヨ!!」と言って食品業界のことなど知ったこっちゃない施策をとってしまう</li> <li>信仰を理解していない人が強制的に御守を持たされることになる</li> <li>御守自体完全にスルーしようぜって流れになって、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E2%A5%B8%A5%E9">モジラ</a>が信仰を失うことになる</li> </ul><p>以上です</p> </div> Thu, 28 Jun 2012 14:27:55 +0900 hatenablog://entry/17680117127139886168 「Facebookで自分の名前と写真を広告に使えないようにする方法」について https://mala.hatenadiary.org/entry/20120602/1338653975 <p>表題の件について、ソース不明の噂話や、意味を理解しないままリスクを誇張して拡散される様子を数日前から見ることができる。放っといて収まるかと思っていたらnanapiが大拡散していた。記事を書いているのはnanapiの社長であるkensuuである。時給800円のバイトかと思ったらkensuuである。</p><p><a href="http://nanapi.jp/37983/">http://nanapi.jp/37983/</a></p><p>この件についての見解をいくつか<a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>に書いた。</p><p><script> window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs); t._e = []; t.ready = function(f) { t._e.push(f); }; return t; }(document, "script", "twitter-wjs"));</script><script> twttr.ready(function (twttr) { var el = document.getElementsByClassName('twitter-syntax-tweet-id-208102504817360897'); for (var i=0;i<el.length;i++) { if (!!el[i].getAttribute('data-is-tweet-loaded')){ continue; } el[i].setAttribute('data-is-tweet-loaded', '1'); twttr.widgets.createTweet('208102504817360897',el[i],{}); } });</script><div class="twitter-syntax-tweet-id-208102504817360897"></div><script> window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs); t._e = []; t.ready = function(f) { t._e.push(f); }; return t; }(document, "script", "twitter-wjs"));</script><script> twttr.ready(function (twttr) { var el = document.getElementsByClassName('twitter-syntax-tweet-id-208102808224923648'); for (var i=0;i<el.length;i++) { if (!!el[i].getAttribute('data-is-tweet-loaded')){ continue; } el[i].setAttribute('data-is-tweet-loaded', '1'); twttr.widgets.createTweet('208102808224923648',el[i],{}); } });</script><div class="twitter-syntax-tweet-id-208102808224923648"></div><script> window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs); t._e = []; t.ready = function(f) { t._e.push(f); }; return t; }(document, "script", "twitter-wjs"));</script><script> twttr.ready(function (twttr) { var el = document.getElementsByClassName('twitter-syntax-tweet-id-208102855532486656'); for (var i=0;i<el.length;i++) { if (!!el[i].getAttribute('data-is-tweet-loaded')){ continue; } el[i].setAttribute('data-is-tweet-loaded', '1'); twttr.widgets.createTweet('208102855532486656',el[i],{}); } });</script><div class="twitter-syntax-tweet-id-208102855532486656"></div></p><p>まあ、全くのノーリスクというわけでも無いだろう。<br /> <script> window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs); t._e = []; t.ready = function(f) { t._e.push(f); }; return t; }(document, "script", "twitter-wjs"));</script><script> twttr.ready(function (twttr) { var el = document.getElementsByClassName('twitter-syntax-tweet-id-208104166617387009'); for (var i=0;i<el.length;i++) { if (!!el[i].getAttribute('data-is-tweet-loaded')){ continue; } el[i].setAttribute('data-is-tweet-loaded', '1'); twttr.widgets.createTweet('208104166617387009',el[i],{}); } });</script><div class="twitter-syntax-tweet-id-208104166617387009"></div></p><p>正確に言えば「この設定が意味を持つような不適切な実装をしてはならない」</p><p>「表示」するだけならば、広告主や、他の広告ネットワークに対して、あなたの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D7%A5%ED%A5%D5%A5%A3%A1%BC%A5%EB%B2%E8%C1%FC">プロフィール画像</a>や表示名に対してアクセスを許可する必要がない。<a class="keyword" href="http://d.hatena.ne.jp/keyword/facebook">facebook</a>.comのiframeを使って直接<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>から表示するだけだ。この意味がわからなかったらウェブ系の仕事に関わっている<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D7%A5%ED%A5%B0%A5%E9%A5%DE">プログラマ</a>の人に聞いてみましょう。その<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D7%A5%ED%A5%B0%A5%E9%A5%DE">プログラマ</a>の人が、自分の言わんとしていることを分からなかったら、無知で無能なクズですので、そのような人間に仕事を与えてはいけません。不適切な実装をし、バグを産み、ユーザーの個人情報を漏洩させる危険因子です。経営者の人は、そのような人間の年収を500万円下げましょう、年収が500万円以下なら負債を負わせると良いでしょう。</p> <div class="section"> <h4>Q. <a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>が外部サイト上に広告を出すかどうか</h4> <p>ずっと前からそういう噂はある。開始時期がいつなのかってのは具体的な話は出てないはず。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CD%F8%CD%D1%B5%AC%CC%F3">利用規約</a>、データ利用ポリシーの中で触れてるので、改定のタイミングで噂になってるのだろう。</p><p>外部サイト上の広告に写真とプロフィール使っていいかの設定は、ずっと前からある。新たにできてると思ってる奴は、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>の設定を網羅的に見たことがないのだろう。いつの間にかできている、と言ってる人もろくに見てない。この設定はかなり前からある。<br /> 少なくとも2011年8月以前から存在している。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%BD%A1%BC%A5%B7%A5%E3%A5%EB%A5%E1%A5%C7%A5%A3%A5%A2">ソーシャルメディア</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B3%A5%F3%A5%B5%A5%EB%A5%BF%A5%F3%A5%C8">コンサルタント</a>的な仕事をしている人がこの設定の存在について今まで知らなかったのだとしたら、その人間は無知で無能なクズですので、そのような人間に仕事を与えてはいけません、今すぐ縁を切りましょう。</p><p><a href="http://twigstechtips.blogspot.com/2011/07/facebook-ignoring-privacy-settings-for.html">http://twigstechtips.blogspot.com/2011/07/facebook-ignoring-privacy-settings-for.html</a><br /> </p> </div> <div class="section"> <h4>Q. <a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>が<a class="keyword" href="http://d.hatena.ne.jp/keyword/Adsense">Adsense</a>的なサービスを始めるとした場合の懸念は何か?</h4> <div class="section"> <h5>パターンA: <a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>自身が、<a class="keyword" href="http://d.hatena.ne.jp/keyword/facebook">facebook</a>.com<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>を使って広告ネットワークを展開するケース</h5> <p>個人特定できる状態で外部履歴を使うことにならないか、という点。これについては、広告目的のプロフィール生成に外部履歴使わないということがFAQに書かれてる。匿名の履歴を広告品質全般の改善に使う可能性があるとも書かれている。これは今までと同じで変わらない。</p><p>何が問題になるかというと、今までは「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>内に配信される広告」はユーザープロフィールを元に配信された広告だということを知っていればよかった。広告をクリックした時にユーザー属性が広告主に伝わる可能性がある、と、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>内に関してのみ注意を払っていればよかった。外部サイト上でも<a class="keyword" href="http://d.hatena.ne.jp/keyword/SNS">SNS</a>のプロフィールを使ったターゲット設定がされた広告が配信される、のであれば「これは<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>の属性情報使った広告ですよ」と明示しないといけないだろう。「どのような条件で出されている広告なのか」がユーザーから認識出来なければ、広告をクリックした際に、訪問先のサイトにどういった属性情報が伝わるのかが分からなくなってしまう。</p> </div> <div class="section"> <h5>パターンB: 外部の広告ネットワークと提携するケース</h5> <p>次に、第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>の広告ネットワークに対して、likeボタンの設置、興味を持っている友人の一覧を許可する場合。これはiframe使って第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>にユーザー情報渡さなくても出来る。ただし「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>が」ユーザーに対してどんな広告が配信されたのかを知りうる状況になる。likeボタンを使ったト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>しませんというルールが守られると信じるのであれば影響はないというか今までと大差がない。</p><p>さて、いずれにせよ「友人に対して配信される広告に自分のアイコンを使っていいのかという許可・拒否設定」は、気分の問題でしかない。それ以上の意味をもたらしてはいけない。不用意にスクリーンキャプチャを撮られて自分のアイコンが露出する可能性が上がるぐらいしかリスクが浮かばない。</p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>に外部サイト及び<a class="keyword" href="http://d.hatena.ne.jp/keyword/Adsense">Adsense</a>に対して+1ボタンと友人を表示するのかどうかの設定(<a href="https://plus.google.com/+1/personalization/">https://plus.google.com/+1/personalization/</a> )があるのは、DoubleClick <a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>と、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>を限定的とはいえ、連携するための設定だからだ。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Adsense">Adsense</a>を表示する際に、同時に<a class="keyword" href="http://d.hatena.ne.jp/keyword/google">google</a>.comの<a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>を使ったコンテンツをロードすることになるからだ。</p> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>にログインしているユーザー自身が、広告に対して<a class="keyword" href="http://d.hatena.ne.jp/keyword/google">google</a>のログイン情報を連携させていいのか、という設定を選べるようにしてる。プライバシーリスクがあるから。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>は自分の写真が使われて平気かどうかの設定を選べるようにしている。</li> </ul><p>一見似ているけども、意味合いもリスクも違う。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>がユーザーを騙しているというつもりはないが、これは「ユーザーに対して自分の情報の公開範囲がきちんとコン<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C8%A5%ED%A1%BC%A5%EB">トロール</a>できるかのような錯覚」を与えてしまう分、タチが悪い。</p><p>プライバシーを気にする人にとって本当に大事なことは「自分の属性情報を使ってターゲット設定された広告を拒否する設定があるか」であるのに、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>には、その設定が存在してなくて、自分の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D7%A5%ED%A5%D5%A5%A3%A1%BC%A5%EB%B2%E8%C1%FC">プロフィール画像</a>を使って良いかの設定だけは以前からある。この設定はユーザープライバシーが漏洩する確率にほとんど影響しない。意味が無い。大した意味が無い設定があたかも何か重大な意味があるかのように騒がれてしまっている。</p> </div> </div> <div class="section"> <h4>過去の事例</h4> <p>3月17日、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CB%E8%C6%FC%BF%B7%CA%B9">毎日新聞</a>掲載の記事。記事の掲載期限切れてるようなので丸ごと引用してる<a class="keyword" href="http://d.hatena.ne.jp/keyword/tumblr">tumblr</a>にリンクはる。<br /> <a href="http://rapeandhoney.tumblr.com/post/19506965062">http://rapeandhoney.tumblr.com/post/19506965062</a></p><p> "グーグルも<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D5%A5%A7%A5%A4%A5%B9%A5%D6%A5%C3%A5%AF">フェイスブック</a>も、自分の情報の公開範囲や、広告などへの利用を止める設定ができる。"</p><p>この記事に対する自分の言及。ツッコミどころは他にもあるのだが、とりあえず<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>の設定に関する箇所だけ取り上げる。</p><p><script> window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs); t._e = []; t.ready = function(f) { t._e.push(f); }; return t; }(document, "script", "twitter-wjs"));</script><script> twttr.ready(function (twttr) { var el = document.getElementsByClassName('twitter-syntax-tweet-id-181325290335776768'); for (var i=0;i<el.length;i++) { if (!!el[i].getAttribute('data-is-tweet-loaded')){ continue; } el[i].setAttribute('data-is-tweet-loaded', '1'); twttr.widgets.createTweet('181325290335776768',el[i],{}); } });</script><div class="twitter-syntax-tweet-id-181325290335776768"></div><script> window.twttr = (function(d, s, id) { var js, fjs = d.getElementsByTagName(s)[0], t = window.twttr || {}; if (d.getElementById(id)) return t; js = d.createElement(s); js.id = id; js.src = "https://platform.twitter.com/widgets.js"; fjs.parentNode.insertBefore(js, fjs); t._e = []; t.ready = function(f) { t._e.push(f); }; return t; }(document, "script", "twitter-wjs"));</script><script> twttr.ready(function (twttr) { var el = document.getElementsByClassName('twitter-syntax-tweet-id-181326235601870849'); for (var i=0;i<el.length;i++) { if (!!el[i].getAttribute('data-is-tweet-loaded')){ continue; } el[i].setAttribute('data-is-tweet-loaded', '1'); twttr.widgets.createTweet('181326235601870849',el[i],{}); } });</script><div class="twitter-syntax-tweet-id-181326235601870849"></div></p><p>自己の情報の公開範囲をコン<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C8%A5%ED%A1%BC%A5%EB">トロール</a>できますよ、というのは、広告のターゲティングに使われても構わない情報のコン<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C8%A5%ED%A1%BC%A5%EB">トロール</a>が出来ますよ、とイコールではない。同列に並べるのは間違いだ。</p> </div> <div class="section"> <h4>まとめ</h4> <ul> <li>「広告に対してユーザーデータを使用して構わないか」という設定は、通常はこういうものではない。</li> <li>ユーザーに対してこの設定を選ばせる意味は殆ど無いし、意味が生じてしまうような(ユーザーデータが直接的に広告主や第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>に伝わってしまうような) 不適切な実装がされてはいけない。</li> <li>この設定をオフにすることで何が起きるかというと、ユーザーにとってのプライバシーリスクは、ほぼ全く変わらずに、単に広告のクリック率が下がるだけだ。</li> </ul><p>俺は本当にウンザリしているし、この件、このデマ、及び、意味を理解しないまま解釈をねじ曲げて拡散した人々を、心の底から馬鹿にしている、軽蔑している。iframeでどうとか、same origin policyがどうとか、そんなことは世間一般大多数の人間は知らなくていい。技術的なことを理解しているかどうかと無関係に、まともに日本語を読む能力が欠如している、悪意を持った歪んだ解釈をする、ソースを確認しないで拡散する。意味も理解しないまま、とりあえず設定をオフにしてみる。そのような人間の存在は、真にユーザーのプライバシーを守りたいと考えているユーザーや、事業者にとって脅威である。</p><p>本来必要であるのは「自分の属性情報を使ってターゲット設定された広告を拒否する設定があるか」だが、俺が<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>の中の人だったらそんな設定を作りたくない。単に広告に使われて困るプロフィール情報は入力するなと言うだろう。「拒否する設定」を作ってしまうと、ちょっとデマを拡散されただけで「どの程度リスクがあるのか正確に判断できない人々」によって業績に深刻な影響をおよぼすことになるからだ。ユーザーの平均知能が低いままであれば本当に必要な選択肢が与えられないだろう。</p><p>最後にバカ発見器として機能している、この記事のブックマーク一覧に自分の知り合いの名前がなくて、本当によかった。大変喜ばしいことだ。本当によかった。<a href="http://blog.hatena.ne.jp/kiyohero/">id:kiyohero</a>とは縁を切ろうと思います。<br /> <a href="http://b.hatena.ne.jp/entry?mode=more&url=http%3A%2F%2Fnanapi.jp%2F37983%2F">http://b.hatena.ne.jp/entry?mode=more&url=http%3A%2F%2Fnanapi.jp%2F37983%2F</a></p> </div> Sat, 02 Jun 2012 01:19:35 +0900 hatenablog://entry/17680117127139886279 後付けでトラッキング機能が有効化されることについて、はてなとTwitterの場合 https://mala.hatenadiary.org/entry/20120524/1337839088 <p>前: <a href="http://d.hatena.ne.jp/mala/20120308/1331193381">http://d.hatena.ne.jp/mala/20120308/1331193381</a><br /> </p> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>のその後の話</h4> <ul> <li><a href="http://hatena.g.hatena.ne.jp/hatenabookmark/20120313/1331629463">http://hatena.g.hatena.ne.jp/hatenabookmark/20120313/1331629463</a></li> <li>話題になってからの対応が遅い、という人がチラホラいたけれど、別に対応はそれほど遅いというわけでもないと思う。</li> <li>これは近藤さんがSXSWというイベントに行っていて日本にいなかったためで、収益にも影響する話なので即断できなかったのだろう。</li> <li>こういう時にあとさき考えないで<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C9%D4%CE%C9%BC%D2%B0%F7">不良社員</a>が勝手に広報したり、勝手に修正しても良いと思う(個人の感想です)</li> <li>公平のため記しておくとHUG Tokyoというイベントで大西さんにおごってもらった(<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>をちょくちょく報告しています)</li> </ul> </div> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>の話</h4> <ul> <li>先日、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>が外部サイト上でのボタン、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A6%A5%A3%A5%B8%A5%A7%A5%C3%A5%C8">ウィジェット</a>でト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>して、それを元にしておすすめユーザーを表示する、という機能をテストし始めた。</li> <li><a href="http://blog.twitter.com/2012/05/new-tailored-suggestions-for-you-to.html">http://blog.twitter.com/2012/05/new-tailored-suggestions-for-you-to.html</a></li> <li>デフォルトでは無効だと思っていたのだけど、ちらほら有効化されているようだ(ヨーロッパ圏を除く、といった具合だろう)</li> <li>広範なWebサイトに埋め込まれているボタン、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A6%A5%A3%A5%B8%A5%A7%A5%C3%A5%C8">ウィジェット</a>に対して、後付けでト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>機能が有効化されたことになる</li> <li>ブログでの告知、ユーザーに対するメールでの案内はあるが、興味がない、読んでいない人にとっては勝手に有効化されている。</li> </ul><p>実装面のこと</p> <ul> <li>俺が気にしているのは、リコメンド機能を通じて非公開のつもりだった情報(例えば特定のサイトを訪問したかどうか)が第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>から知られうるか、といったことだ</li> <li>おすすめされるのは "同じウェブサイトを閲覧しているユーザーが頻繁にフォローしているユーザー"</li> <li>表示されるのは同じ趣味を持っているユーザーが「頻繁にフォローしているユーザー」なので、この機能によって、ユーザーの訪問サイトが他人から推測されるということは、まず起こらないだろう。</li> <li>ものすごく沢山アカウントを作って特定条件でしか表示されないおすすめユーザーを作る、であったり、他人をト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>有効状態にしたアカウントに強制ログインさせておすすめユーザーの傾向から訪問サイトを推測、といった方法は考えられるだろう(しかし得られる情報に対して十分に悪用コストが高いと思う)</li> <li>将来にわたって安全かどうか、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%EB%A5%B4%A5%EA%A5%BA%A5%E0">アルゴリズム</a>変更されないか、何かやらかさないかという保証はしないし、できない。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>は過去に<a class="keyword" href="http://d.hatena.ne.jp/keyword/IP%A5%A2%A5%C9%A5%EC%A5%B9">IPアドレス</a>を使ってユーザー推薦のテストを行っていて、中止している <a href="http://nlab.itmedia.co.jp/nl/articles/1105/24/news035.html">http://nlab.itmedia.co.jp/nl/articles/1105/24/news035.html</a></li> <li>「配慮してこうなっているのだろう」と思っていたら実は大して何も考えてなくて、あっさり変更されたりということも良くあるものだ。</li> </ul><p>登録ユーザーだけか?未登録ユーザーも含めてか?</p> <ul> <li><a href="https://support.twitter.com/articles/20169942">https://support.twitter.com/articles/20169942</a></li> <li>一部のユーザーに関しては、登録したタイミングで最適なおすすめユーザーを表示すると言っている。</li> <li>一般に行われている広告目的でのト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>は、Webサイトの履歴を収集するけれど「それが誰なのかは分からない」ようにしている</li> <li>登録前からのト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>を行うと「誰なのか分からない状態」から、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>に登録した瞬間に誰であるのか把握できるようになる</li> </ul><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>に登録する前から、そのユーザーの好みを把握しようとするとなると、ユーザーは<a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>の規約を「まだ読んでいない」し、それを望んでいるのか判別する方法がない(Do Not Trackヘッダで「拒否」は示せる)</p> </div> <div class="section"> <h4>Do Not Trackの話</h4> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>は、十分に安全な実装だと考えているからこそ、この機能をデフォルトで有効化するのだろう(ヨーロッパ除いて)。で、俺が懸念していることは「Do Not Trackで拒否できるからいいでしょ」といって「勝手にやっても平気(とされている)ことの範囲」が今までよりも広がってしまうことだ。「拒否できるかどうか」ではなく、どんなidでト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>されているか、どんな情報がどこに収集されているのか、何が目的か、非公開のつもりの情報が意図せず他人に知られてしまわないかどうか、を気にしなくてはいけない。今まで広く行われてきたことは「個人を特定可能なid + 自社サービス内の履歴を利用」または「個人の特定が不可能な匿名id + 広範なWebサイトの履歴を利用」であって「個人を特定可能なid + 広範なWebサイトの履歴」というパターンは明示的な同意があって行われることだった(<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%A5%C4%A1%BC%A5%EB%A5%D0%A1%BC">Googleツールバー</a>でWeb履歴機能を有効にする場合、等)</p> </div> <div class="section"> <h4>考えなければいけない差異は何か</h4> <p>単純に比較できない(してはいけない)問題なので、ポイントをいくつか整理しておく。</p> <div class="section"> <h5>告知可能かそうでないかの問題</h5> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%D6%A5%C3%A5%AF%A5%DE%A1%BC%A5%AF">はてなブックマーク</a>ボタンをサイトに設置するユーザーは、必ずしも<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>のユーザーではない(ボタン設置者全員に現実的な手段で告知不可能)</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>のボタン・<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A6%A5%A3%A5%B8%A5%A7%A5%C3%A5%C8">ウィジェット</a>を設置しているサイトに対しては、同様に告知することが出来ないけれど、登録ユーザーに対してはメールでプライバシーポリシーの変更を告知することができる(到達可能なメールアドレスを入力してくださいという建前で)</li> </ul><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>の場合、ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>されるのは<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>の登録ユーザーだけではないし、ボタンの表示領域では告知のしようもない。俺は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>が<a class="keyword" href="http://d.hatena.ne.jp/keyword/Adsense">Adsense</a>でト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>開始したときの前例を参考にするならばWebサイト側のプライバシーポリシーを変更してユーザーに周知させなければならないと書いたがそんなものは建前であって実際にそんな世の中になることを望んでいない。ブラウザが<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>ヘッダを見つけて利用目的とオプトアウト方法を通知バー的なもので表示して<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>受け入れるかどうか送信するかどうか、あるいは次回からリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>ト丸ごとブロックするかどうかなど選択可能な世の中が実現していたならば、そんなものは必要なかった。そうはならなかったので人間が読めるようなプライバシーポリシーを目立つところに掲げろなどという馬鹿げたことになってしまっている。人間に読める形式で書いてあっても肝心の人間は読まない。</p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>のケースはどうだろうか。基本的には<a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>のボタンを貼り付けてるサイトは放っておいて良いと思う。まだ<a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>に登録していないユーザーにとっては、今まで通り「単に<a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%AF%A5%BB%A5%B9%A5%ED%A5%B0">アクセスログ</a>が残る」という認識でいればよく、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>に登録しているユーザーに関しては、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>のプライバシーポリシーに則って、機能を有効化した場合には集計集約されるということを知っておけばいいからだ。ただし、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>に登録していない段階でのト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>(<a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>に登録しなければ何にも使われずに10日で捨てられる)をどう扱うべきなのかは分からない。「個人特定が不可能なidでト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>するけど、ユーザー登録しない限りは利用されずに捨てられるよ」というパターンでボタン・<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A6%A5%A3%A5%B8%A5%A7%A5%C3%A5%C8">ウィジェット</a>設置するWebサイト側に何らかの告知が必要なのだろうか(ヨーロッパ圏では必要だ、と言いそう)</p> </div> <div class="section"> <h5>利用目的によるリスク評価、広告の場合、リコメンドの場合</h5> <p>広告をクリックした場合に、広告主に対して、広告をクリックしたユーザーの属性が取得できてしまうという問題について過去に書いた <a href="http://d.hatena.ne.jp/mala/20111202/1322835191">http://d.hatena.ne.jp/mala/20111202/1322835191</a><br /> 実装次第では、表示される広告経由で訪問者の属性が推測できてしまう。あるいは行動履歴によって推定されたユーザー情報を確認する機能がある場合、例えばDoubleClick <a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>が漏洩すればAds Preferences Manager経由でユーザーの属性情報が直接的に漏洩することになるだろう。</p><p>リコメンドの場合でも、不適切な実装をしていたなら、ユーザーの取った行動が間接的に把握できてしまうことになる。</p> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>が<a class="keyword" href="http://d.hatena.ne.jp/keyword/IP%A5%A2%A5%C9%A5%EC%A5%B9">IPアドレス</a>を使っていた事例に見られるような「非公開の情報」を利用してつくると、間接的に非公開のつもりだった情報が公開されてしまうリスクが高まる。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>のように頑なに「知り合いかも」の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%EB%A5%B4%A5%EA%A5%BA%A5%E0">アルゴリズム</a>詳細を公開しないというケースもある。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%EB%A5%B4%A5%EA%A5%BA%A5%E0">アルゴリズム</a>の詳細を公開することで、<a class="keyword" href="http://d.hatena.ne.jp/keyword/spam">spam</a>に利用しやすくなったり、推薦内容から特定個人の行動を推測できてしまう可能性が高まる、というジレンマがある。</li> </ul> </div> <div class="section"> <h5>ログインidや訪問先URLの情報を受け取る必然性があるか</h5> <ul> <li>ログイン状態に応じて表示内容を変化させる必然性があるか</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>のlikeボタンのように同じURLに言及している友人の一覧を表示する機能があるなら、ログイン状態を取得する必要がある。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A6%A5%A3%A5%B8%A5%A7%A5%C3%A5%C8">ウィジェット</a>はログイン状態に応じて表示内容が変わるといったことがない。表示が変化するのはフォローボタン(フォローしてるかどうかトグルになっている)ぐらいである。</li> </ul> <ul> <li>ボタン・<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A6%A5%A3%A5%B8%A5%A7%A5%C3%A5%C8">ウィジェット</a>が埋めこまれているURLを収集する必然性があるか</li> <li>ブックマーク数を表示する、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>での言及数を表示する、という機能をつけるのであれば、それは見ているサイトのURLを送る必然性がある。</li> <li>「どのサイトに埋め込まれていても同じ内容を表示する」のであれば、埋めこまれているサイトのURLを取得する必然性がない</li> </ul><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A5%A4%A5%AF%A5%ED%A5%A2%A5%C9">マイクロアド</a>への情報送信にあたってト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>用のコードを追加しているし、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>も「たまたま取得できる情報を活用しました」ではなく、ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>用のコードを追加している(p.<a class="keyword" href="http://d.hatena.ne.jp/keyword/twitter">twitter</a>.com<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>に送信される)</p> </div> <div class="section"> <h5>匿名idでのト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>と個人特定可能なidでのト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>の区別</h5> <p>だいたい今まで行われてきたのはこんなことだ。</p> <ul> <li>匿名のidで、広告掲載サイト、ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>コード使用サイトの行動履歴を取得 (一般的な<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B9%D4%C6%B0%A5%BF%A1%BC%A5%B2%A5%C6%A5%A3%A5%F3%A5%B0%B9%AD%B9%F0">行動ターゲティング広告</a>)</li> <li>そのサービスのidで、そのサイト内の行動履歴を取得 (サービス提供者自身による<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%AF%A5%BB%A5%B9%B2%F2%C0%CF">アクセス解析</a>や、改善目的での利用)</li> <li>そのサービスのidで、自社サービスに入力されたプロフィール情報や行動履歴を広告目的につがうが、外部サイトの履歴は収集しない (自社サービス内で十分なデータを集められる大手<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DD%A1%BC%A5%BF%A5%EB%A5%B5%A5%A4%A5%C8">ポータルサイト</a>等)</li> <li>そのサービスのidで、外部サイトの行動履歴を取得するが、ユーザー明確な同意を得て使う(<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a> Web <a class="keyword" href="http://d.hatena.ne.jp/keyword/History">History</a>、足あと系の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D6%A5%ED%A5%B0%A5%D1%A1%BC%A5%C4">ブログパーツ</a>)</li> </ul><p>個人特定可能なidで外部サイトの履歴を取得して、直接的に特定ユーザーの履歴を商品として販売しまくり、といった話は聞いたことがないし、まあそんなことにはなっていない。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>は外部サイトの履歴をおすすめユーザーの改善目的には使うが、広告目的には使わないと明言している。</p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>がやったことは、悪く言えばユーザーのWebサイト訪問履歴という個人情報を(金目的で)第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>に売り渡した、ということになってしまう。俺の個人的な考えでは、外部サイトへの埋め込みパーツから取得できるログの利用を「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>自身がやるよりも遥かにマシ」だと思っている。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>を信用しているとか、信用していないとかの問題ではなく、個人特定可能なidを持っているサービスが、自社サイト外の、広範な外部サイトの履歴を扱うという選択をするほうがリスクだ。それは重大な責任が伴う行為だ。必然的に自社サービスのユーザー、特定のユーザーがどのサイトを訪問したのかを把握できてしまうことになるからだ。どのユーザーがどのサイトを訪問したのか分かってしまうログなど、積極的に捨てるべきだと思う。実際にどちらのほうがリスクが高いのか、低いのかということを考慮せずに(それをどのように判断するかは人それぞれだとは思うが)、形式上、第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>に履歴情報を提供したということが問題視されてしまった。十分な技術的な見識、前提知識がなければ、ユーザーはどちらがマシなのかということを正常に判断できず、感覚・感情で判断してしまうことになるだろう。</p> </div> </div> <div class="section"> <h4>まとめ</h4> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>は、Do Not Trackで拒否できますよ、といって「個人特定可能なid + 外部サイトの履歴」を使う機能をデフォルトで有効化してしまった(ヨーロッパ除く)。</li> <li>この機能自体には、現状、大したリスクはないだろう。ヨーロッパとかドイツとかで問題になるかも知れないけど。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>や<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>が同じことをやるかというと、もっと慎重にならざるを得ないだろう(<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B9%AD%B9%F0%B2%B0">広告屋</a>でもあるから)</li> <li>しかし全体的に、時間をかけて、同意を取った上で or DNTで拒否できますよ、といって「個人特定可能なid + 外部サイトの履歴」が利用されるようになるのは避けられない傾向であるように思う</li> </ul><p>俺は「個人特定可能な情報を預かるのであれば」広範なWebサイトの履歴を収集できてしまうような、リスクの高い実装は積極的に避けるべきだと思っている(ログイン<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>持っている<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>で外部パーツを作らない) そして、個人特定可能な情報を持っている企業が、広範なWebサイト上の行動履歴情報を取得するということは、あくまでユーザーを匿名のまま取り扱おうとしている広告事業者が同じことを行うよりもリスクが高いと考えている。自分は「信頼して個人情報を預けている企業」であるほど、信頼しない、という一見矛盾しているような選択をする。それは、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C1%C2%B7%EB%B9%E7">疎結合</a>の方が望ましいという、エンジニア的な美学の話で、それが広く理解されなければ、なるべく自社サービス内でユーザーのプロフィール、行動情報を蓄積して、大量のデータを<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CA%DD%CD%AD">保有</a>している企業が勝ち続けることになってしまう。自分が最も懸念しているのはそういう話だ。</p> </div> Thu, 24 May 2012 14:58:08 +0900 hatenablog://entry/17680117127139886639 ブログパーツやソーシャルボタンの類でアクセスログが残るのは当然だけどトラッキングされるのは当たり前にはなっていない https://mala.hatenadiary.org/entry/20120308/1331193381 <p>わたくしは立場上、実装がダメなことにはとやかく言いますがポリシーについてはとやかく言わないことをポリシーとしており、また個人的にも所属組織的にも付き合いがある企業様を痛烈に批判するというのはブーメランとか槍とか鉄砲玉とか<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%BD%A1%BC%A5%B7%A5%E3%A5%EB%A5%E1%A5%C7%A5%A3%A5%A2">ソーシャルメディア</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%AC%A5%A4%A5%C9%A5%E9%A5%A4%A5%F3">ガイドライン</a>とか飛んできたりしてリスキーではあるのですが、どう見てもアウトだろこれ、と考えるに至りまして筆を取らせていただく次第です。</p><p>これ</p> <ul> <li><a href="http://d.hatena.ne.jp/kanose/20120306/hbmbutton">http://d.hatena.ne.jp/kanose/20120306/hbmbutton</a></li> <li><a href="http://blog.dtpwiki.jp/dtp/2011/09/post-9367.html">http://blog.dtpwiki.jp/dtp/2011/09/post-9367.html</a></li> </ul><p>どう見てもアウトだろ。理由は単純で、そういう目的で設置されたボタンではないし、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%D6%A5%C3%A5%AF%A5%DE%A1%BC%A5%AF">はてなブックマーク</a>ボタンが設置されているサイトは、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>の管理してないサイトなので<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>の裁量でやってはいけないからです。いつから「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>」は「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>が管理してない」サイトのログを勝手に使って良いことになったのですか。</p> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>の問題</h4> <blockquote> <p>行動情報の取得(個人情報以外)</p> </blockquote> <p>とか</p> <blockquote> <p>個人が特定されうる情報(生年月日、メールアドレス、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CAID">はてなID</a>など)は一切収集されません。</p> </blockquote> <p>とか、いかにも個人情報じゃないから、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>の裁量で勝手にやっていいみたいなニュアンスが読み取れるのだけど、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>と言えば管理画面のURLにユーザーidが入ってることで有名なので、管理画面から<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%D5%A5%A1%A5%E9">リファラ</a>があれば、それが<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CAid">はてなid</a>誰々さんだと分かるわけで、当然このように <a href="http://gyazo.com/f4729771f4b6ead8ae5717d27166384a">http://gyazo.com/f4729771f4b6ead8ae5717d27166384a</a> /mala/admin に訪問したからには<a href="http://blog.hatena.ne.jp/mala/">id:mala</a>さんに違いないという情報が<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A5%A4%A5%AF%A5%ED%A5%A2%A5%C9">マイクロアド</a>にも送られてしまう。ただし、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A5%A4%A5%AF%A5%ED%A5%A2%A5%C9">マイクロアド</a>は、わざわざこの情報を使わないだろう(<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B9%D4%C6%B0%A5%BF%A1%BC%A5%B2%A5%C6%A5%A3%A5%F3%A5%B0">行動ターゲティング</a>をやる会社にとって個人を特定可能な情報はリスクでしかないから)</p><p>そもそも、外部サイトにおいても、URLや<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%D5%A5%A1%A5%E9">リファラ</a>に「生年月日、メールアドレス、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CAID">はてなID</a>など」が含まれないことを誰が保証できんの?</p> <ul> <li>個人が特定されうる情報は一切収集されません、というが、それは間違いで、収集されることがある。</li> <li>「個人を特定することは出来ません」ではなく「個人を特定することをいたしません」と言うべきだ。</li> </ul><p><br /> あとこの情報収集しない<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D6%A5%E9%A5%C3%A5%AF%A5%EA%A5%B9%A5%C8">ブラックリスト</a>指定はなんなの?<br /> <a href="http://b.st-hatena.com/js/bookmark_button.js">http://b.st-hatena.com/js/bookmark_button.js</a></p> <pre class="code" data-lang="" data-unlink>var domains = &#39;www.toyokeizai.net member.toyokeizai.net excite.co.jp exblog.jp mainichi.jp jp.msn.com *.jp.msn.com itmedia.co.jp bizmakoto.jp atmarkit.co.jp eetimes.jp ednjapan.cancom-j.com ednjapan.com barks.jp www.asahi.com *.asahi.com jp.techcrunch.com japanese.engadget.com jp.autoblog.com celebrity.aol.jp www.nikkei.com *.nikkeibp.co.jp japan.cnet.com japan.zdnet.com builder.japan.zdnet.com japan.gamespot.com www.re-source.jp www.yomiuri.co.jp groupon.jp&#39;;</pre> </div> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A5%A4%A5%AF%A5%ED%A5%A2%A5%C9">マイクロアド</a>の問題</h4> <p>そもそもなんで<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A5%A4%A5%AF%A5%ED%A5%A2%A5%C9">マイクロアド</a>は、こんな情報もらって良いと思ってるの?</p><p><a href="http://send.microad.jp/w3c/jiaa.html">http://send.microad.jp/w3c/jiaa.html</a></p> <blockquote> <p>提供を受ける者の範囲 MicroAd広告アドネットワーク(MicroAdの広告が表示されるパートナーメディアのみとなっております。</p> </blockquote> <p>いつの間に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%D6%A5%C3%A5%AF%A5%DE%A1%BC%A5%AF">はてなブックマーク</a>ボタン設置してるだけでMicroAdの広告が表示されるパートナーメディアになってしまったの?</p><p>それともこれは企業向けソリューション( <a href="http://www.microad.jp/solution/">http://www.microad.jp/solution/</a> ) で、通常のMicroAdの広告とは一切関係なくMicroAdはサーバー貸してるだけで収集された情報について一切関知せずpartnerid=6は、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>に対する広告配信及び<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%AF%A5%BB%A5%B9%B2%F2%C0%CF">アクセス解析</a>機能を提供してるだけみたいな感じなんでしょうか、それだとMicroAdのト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>使ったりMicroAdのページからオプトアウトするのが不自然な気がします。</p><p><a href="http://b.hatena.ne.jp/help/bbutton">http://b.hatena.ne.jp/help/bbutton</a> には</p> <blockquote> <p>また、この取り組みは「一般社団法人 インターネット広告推進協議会(JIAA)」が定める<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%AC%A5%A4%A5%C9%A5%E9%A5%A4%A5%F3">ガイドライン</a>に遵守しております。</p> </blockquote> <p>って書いてあるんだけど、提供を受ける者の範囲間違ってるよね。間違ってても<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%AC%A5%A4%A5%C9%A5%E9%A5%A4%A5%F3">ガイドライン</a>遵守してることになるの?</p> </div> <div class="section"> <h4>そんなことどこもやってるのでは、という誤解</h4> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D6%A5%ED%A5%B0%A5%D1%A1%BC%A5%C4">ブログパーツ</a>やソーシャルボタンの類で行動履歴が収集されるのは当たり前、と考えてしまっている人がいるようだ。最初からそういう目的であると謳って配布されている広告や<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D6%A5%ED%A5%B0%A5%D1%A1%BC%A5%C4">ブログパーツ</a>であるなら分からないでもないが、当初はそういう目的ではなかったのに後から行動履歴が収集されるようになる(しかも他社のサービスのシステム使って)、というのは異例だろう。</p><p>単に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%AF%A5%BB%A5%B9%A5%ED%A5%B0">アクセスログ</a>が残るという話と、ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>に使われるということは明確に違う。「そのような疑いがかけられる実装をしている」ということが、繰り返し報道されることによって、いつの間にか既成事実化してしまった。メディアはきちんと「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%AF%A5%BB%A5%B9%A5%ED%A5%B0">アクセスログ</a>が残ること」と「ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>が行われていること」を区別して報道してください。</p><p>ちなみに自分は以前にこう書いた。<br /> <a href="http://d.hatena.ne.jp/mala/20111202/1322835191">http://d.hatena.ne.jp/mala/20111202/1322835191</a></p> <blockquote> <p>ちなみに自分は「広告以外の目的」で普及させたlikeボタンや+1ボタンを使って、ボタンをクリックした場合はともかく、表示しただけ収集可能になるWeb訪問履歴を使用してユーザーの趣味趣向の分析や広告配信の最適化のために使うことは、おそらく無いだろうと考えている。理由としては既に広告のターゲッティングのために十分な情報を収集していて、これ以上収集する必要がないであろうこと、表示しただけではノイズが多すぎるだろうこと、さらに加えると、いくら何でも良識のあるエンジニアが止めるだろうと信頼しているからだ。</p> </blockquote> <p>これを書いた時に、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%D6%A5%C3%A5%AF%A5%DE%A1%BC%A5%AF">はてなブックマーク</a>ボタンの事例を全く知らなかったし、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>には良識のあるエンジニアがいなかった・・・。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>も<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>もト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>に使うということを否定している。それをやったら大問題だからだ。</p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>の場合</p> <ul> <li><a href="http://support.google.com/plus/bin/answer.py?hl=ja&answer=1319578&topic=1347964">http://support.google.com/plus/bin/answer.py?hl=ja&answer=1319578&topic=1347964</a> <ul> <li>"+1 ボタンはウェブ上のユーザー アクセスのト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>には使用されません"</li> <li>"一部のデータは <a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a> にてシステムの保守とバグ修正の目的で通常 2 週間程度保持する場合がありますが、特定のプロフィールやユーザー名、URL と関連付けられることはありません。"</li> </ul></li> </ul><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>の場合</p> <ul> <li><a href="https://www.facebook.com/help/?faq=293506123997323">https://www.facebook.com/help/?faq=293506123997323</a> <ul> <li>"あなたがログインしているかどうかに関わらず、弊社は、あなたが[いいね!]ボタンや他のソーシャル<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3">プラグイン</a>が実装されたサイトにアクセスした際に送信される情報を、第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>のサイトでのあなたのブラウズ行為のプロフィールを作成したり、広告を表示させりするために使用することはありません。"</li> <li>"弊社に送信される情報は90日以内に削除または匿名化され、あなたの許可無く広告主に販売されたり共有されたりすることはありません。"</li> </ul></li> </ul><p>単に「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%AF%A5%BB%A5%B9%A5%ED%A5%B0">アクセスログ</a>が残る」という話だったのに「情報が収集される→ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>される→広告の最適化に使われる」と人々の意識に刷り込まれてしまった。</p> </div> <div class="section"> <h4>かつて<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>がやったこと</h4> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>が行動履歴を収集しているのは<a class="keyword" href="http://d.hatena.ne.jp/keyword/Adsense">Adsense</a>広告であって、+1ボタンではない。その<a class="keyword" href="http://d.hatena.ne.jp/keyword/Adsense">Adsense</a>も以前は行動履歴を収集していなかった。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>は、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Adsense">Adsense</a>を<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B3%A5%F3%A5%C6%A5%F3%A5%C4%A5%DE%A5%C3%A5%C1">コンテンツマッチ</a>広告から<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B9%D4%C6%B0%A5%BF%A1%BC%A5%B2%A5%C6%A5%A3%A5%F3%A5%B0%B9%AD%B9%F0">行動ターゲティング広告</a>に変更するにあたって「訪問者の許可を取らないといけないからお前のサイトのプライバシーポリシーを変えろ」ということをやった。</p> <ul> <li><a href="http://adsense-ja.blogspot.com/2009/03/adwords.html">http://adsense-ja.blogspot.com/2009/03/adwords.html</a></li> </ul><p>これと同等の取り組みをするのであれば、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>が許可を取らなければいけないのは、ブックマークボタンを設置する人に対してではない、情報を収集される訪問者に対してだ。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%D6%A5%C3%A5%AF%A5%DE%A1%BC%A5%AF">はてなブックマーク</a>ボタンを設置するにあたって、あなたのサイトのプライバシーポリシーを変更してユーザーの同意を取ってください、とお願いして回らないといけない。</p><p>とはいってもソーシャルボタンの類で当然にユーザー行動履歴が収集されるものなのだと世間一般に認知されるのは業界全体にとってマイナスだと思いますし、同意取って済む話では無いので、今すぐ中止したほうがいい。</p> </div> <div class="section"> <h4>まとめ</h4> <p><a href="http://blog.hatena.ne.jp/jkondo/">id:jkondo</a></p> </div> Thu, 08 Mar 2012 16:56:21 +0900 hatenablog://entry/17680117127139886973 ウォール・ストリート・ジャーナルの過去のトラッキングに関する記事特集 https://mala.hatenadiary.org/entry/20120229/1330524724 <p>自分が把握していた範囲(と短期間で追加で調べた範囲)なので、他にもあるのかも知れないし、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B1%D1%B8%EC%B7%F7">英語圏</a>での反応をちゃんと追えていたわけではない。</p> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%D5%A5%A1%A5%E9">リファラ</a>について</h4> <div class="section"> <h5>2010年5月 <a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>内の広告でユーザーidが外部に漏れていた問題</h5> <ul> <li><a href="http://online.wsj.com/article/SB10001424052748704513104575256701215465596.html">http://online.wsj.com/article/SB10001424052748704513104575256701215465596.html</a></li> </ul><p>それに対する対策</p> <ul> <li><a href="http://www.facebook.com/notes/facebook-engineering/protecting-privacy-with-referrers/392382738919">http://www.facebook.com/notes/facebook-engineering/protecting-privacy-with-referrers/392382738919</a></li> </ul> </div> <div class="section"> <h5><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>アプリが<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%D5%A5%A1%A5%E9">リファラ</a>で外部にユーザーidを漏らしていた問題</h5> <p>2010年10月、<a class="keyword" href="http://d.hatena.ne.jp/keyword/WSJ">WSJ</a>発端</p> <ul> <li><a href="http://online.wsj.com/article/SB10001424052702304772804575558484075236968.html">http://online.wsj.com/article/SB10001424052702304772804575558484075236968.html</a></li> <li><a href="http://jp.techcrunch.com/archives/20101018fear-and-loathing-at-the-wall-street-journal/">http://jp.techcrunch.com/archives/20101018fear-and-loathing-at-the-wall-street-journal/</a></li> <li><a href="http://www.itmedia.co.jp/enterprise/articles/1010/19/news062.html">http://www.itmedia.co.jp/enterprise/articles/1010/19/news062.html</a></li> </ul><p>実際に不適切な実装ではあるのだけれど、<a class="keyword" href="http://d.hatena.ne.jp/keyword/WSJ">WSJ</a>が煽り過ぎたのでテッククランチがカウンター的に問題を軽視する記事を書いた。</p><p>その対応</p> <ul> <li><a href="https://developers.facebook.com/blog/post/431/">https://developers.facebook.com/blog/post/431/</a></li> </ul><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>アプリ向けに<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a>idというのができた。</p> </div> <div class="section"> <h5>2011年5月 <a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%D5%A5%A1%A5%E9">リファラ</a>でアクセス<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C8%A1%BC%A5%AF">トーク</a>ンが漏れていた問題</h5> <p>これは<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B7%A5%DE%A5%F3%A5%C6%A5%C3%A5%AF">シマンテック</a>発端。</p> <ul> <li><a href="http://www.symantec.com/connect/blogs/facebook-11">http://www.symantec.com/connect/blogs/facebook-11</a></li> <li><a href="http://online.wsj.com/article/SB10001424052748703730804576315682856383872.html">http://online.wsj.com/article/SB10001424052748703730804576315682856383872.html</a></li> </ul><p>これはシンプルに漏れてはいけない情報が漏れていた問題なので、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%BB%A5%AD%A5%E5%A5%EA%A5%C6%A5%A3%A5%DB%A1%BC%A5%EB">セキュリティホール</a>と呼んでいい。</p> </div> </div> <div class="section"> <h4>ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>に関するもの</h4> <div class="section"> <h5>2011年5月 クリックしなくてもト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>可能問題</h5> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/WSJ">WSJ</a>発端</p> <ul> <li><a href="http://online.wsj.com/article/SB10001424052748704281504576329441432995616.html">http://online.wsj.com/article/SB10001424052748704281504576329441432995616.html</a></li> <li><a href="http://japan.cnet.com/news/service/35003026/">http://japan.cnet.com/news/service/35003026/</a></li> </ul><p>これが翻訳された時に、"「いいね!」や「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Tweet">Tweet</a>」ボタン、クリックされずともサイト訪問情報を送信か--<a class="keyword" href="http://d.hatena.ne.jp/keyword/WSJ">WSJ</a>報道" になってしまう。「送信か」は無駄な疑問形だ。アクセスしてるのだからリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トが送信されているのは見て分かる周知の事実に決まってる。問題は「送信された情報をサーバーサイドでどのように扱っているのか」だ。仕組み上「誰がアクセスしたのかを識別したり」「likeを押した友人の一覧」を表示する機能がある<a class="keyword" href="http://d.hatena.ne.jp/keyword/facebook">facebook</a>のlikeボタンと、誰に対しても同じコンテンツを返す(<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>に依存する必要がない)<a class="keyword" href="http://d.hatena.ne.jp/keyword/Tweet">Tweet</a>ボタンが同列に扱われてしまっている。</p> </div> </div> <div class="section"> <h4>2011年9月 <a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>ログアウトしててもト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>問題</h4> <p>単にいくつかの<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を消し忘れていただけ(と推測される)話が、ログアウトしても追跡されると報道がされた。</p> <ul> <li><a href="https://nikcub.appspot.com/posts/logging-out-of-facebook-is-not-enough">https://nikcub.appspot.com/posts/logging-out-of-facebook-is-not-enough</a></li> <li><a href="http://blogs.wsj.com/digits/2011/09/26/facebook-defends-getting-data-from-logged-out-users/">http://blogs.wsj.com/digits/2011/09/26/facebook-defends-getting-data-from-logged-out-users/</a></li> </ul><p>大体その気になれば<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>がなくとも<a class="keyword" href="http://d.hatena.ne.jp/keyword/IP%A5%A2%A5%C9%A5%EC%A5%B9">IPアドレス</a>やブラウザの特徴で追跡することだって出来る。</p> </div> <div class="section"> <h4>その後、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>とFTC</h4> <ul> <li><a href="http://news.mynavi.jp/news/2011/11/30/049/index.html">http://news.mynavi.jp/news/2011/11/30/049/index.html</a></li> <li><a href="http://blog.facebook.com/blog.php?post=10150378701937131">http://blog.facebook.com/blog.php?post=10150378701937131</a></li> </ul><p>「ユーザーの許可を得ずに広告主と個人情報を共有した」と報道され、これは実際にFTCもそのように書くからなのだけれど、オフィシャルな説明では「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%D5%A5%A1%A5%E9">リファラ</a>で」という点を明記してる。</p> <blockquote> <p>The same complaint also mentions cases where advertisers inadvertently received the ID numbers of some users in referrer URLs. We fixed that problem over a year ago in May 2010.</p> </blockquote> </div> <div class="section"> <h4>どういった問題が起きているのか</h4> <ul> <li>「バグでそうなった」ことが作為的に行われているかのように報道されてしまう。</li> <li>あるいは「特に気を使わなければそうなる」ことや「ブラウザの問題だよね」ということも、Webサイト側の問題とされてしまう。</li> <li>海外速報記事として日本語の記事が出るタイミングで、細かいニュアンスが不正確に翻訳されてしまう。</li> <li>自前で検証をしないで「<a class="keyword" href="http://d.hatena.ne.jp/keyword/WSJ">WSJ</a>の調査によると」と受け売りの報道をしてしまい、事実である部分を無駄に疑問形にしたり、不確定な部分を確定情報として書いてしまったりする。</li> </ul><p>こういった経緯で「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%AF%A5%BB%A5%B9%A5%ED%A5%B0">アクセスログ</a>が残る」が「ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>が行われている」と報道されるようになり、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%D5%A5%A1%A5%E9">リファラ</a>に不用意に個人を特定可能な情報が入っていると、ユーザーに無断で広告主に個人情報を提供している、と報道されるようになった。ユーザーidが<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%D5%A5%A1%A5%E9">リファラ</a>に含まれてしまう問題は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>としては解決を図ったが、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a>アプリが不適切な実装をしていれば今後も起こりうる。ユーザーが広告をクリックしたときに広告主から見て、そのユーザーがターゲティングに使われた属性を持っていることが分かるが、この問題については殆ど解決していない。</p> </div> <div class="section"> <h4>検索ワードと<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%D5%A5%A1%A5%E9">リファラ</a></h4> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%D5%A5%A1%A5%E9">リファラ</a>はどう扱うべきなのか?</p> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>の検索ワードがサイトに伝わるとして訴えられた話 <a href="http://it.slashdot.jp/story/10/10/29/0113228/">http://it.slashdot.jp/story/10/10/29/0113228/</a> <a href="http://japan.cnet.com/news/business/20422043/">http://japan.cnet.com/news/business/20422043/</a></li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/SSL">SSL</a>化にあたって検索ワードがサイトに伝わらなくなる話 <a href="http://www.sem-r.com/news-2011/20111020021735.html">http://www.sem-r.com/news-2011/20111020021735.html</a>              </li> </ul><p>検索ワードが訪問先のサイトに伝わることなんて、実際のところ、大多数のユーザーは知らないんじゃないかと思う。それが必要とされてきたからそうなっているわけだけど、Web業界の慣習、常識的に、当たり前に行われていたことでも、それを知らないユーザーにとっては当たり前ではない。</p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>はインスタントサーチで、画面遷移なしで検索ワードを変更できるようにしている。インスタントサーチで検索した場合、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%D5%A5%A1%A5%E9">リファラ</a>で送られないlocation.hash部分(URLの#以降)に検索ワードが含まれることになる。<a class="keyword" href="http://d.hatena.ne.jp/keyword/SSL">SSL</a>をデフォルトにする前から、本来ならばとっくに「正確な検索ワード」が取れなくなってもおかしくなかったが、わざわざリダイレクタを挟んで、正確な検索ワードをアクセス先のサイトに<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%D5%A5%A1%A5%E9">リファラ</a>で取得可能なようにしている。(いやこれは検索結果のクリックログを集計するためのもので<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%BF%A4%DE%A4%BF%A4%DE%A4%B3">たまたまこ</a>ういう仕様になっているだけですよ、ということもできる)</p><p>さて、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>の検索ワードの場合、インスタントサーチにおいては(本来残らない<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%D5%A5%A1%A5%E9">リファラ</a>を意図的に復活させて)Webサイトや広告主がユーザーの動向を把握できるように、意図的に検索ワードを取得できるようにしていると、強く推定できる状態だった。それが<a class="keyword" href="http://d.hatena.ne.jp/keyword/SSL">SSL</a>をデフォルトにするタイミングで、サイト側には検索ワードを渡さない、広告主には検索ワードを渡す、こういう変更が意図的に行われたのだろう、ということが確認できる。</p><p>というような状況も踏まえて、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>が「広告主にユーザーidを(<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%D5%A5%A1%A5%E9">リファラ</a>で)渡していた」という話は、それも含めて「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>の売り」であったのか、単なる実装ミスであるのか、誰が公正に判断できるのだろうか。「そんなのどこもやってるし問題ないでしょ」なのか「バグでしょ(常識的に考えて)」なのか「意図的にやっていたに違いない」なのかは、実際にコードを書く人や「その情報を取得していた人」の感覚が分からないと、正しく推測することが出来ないだろう。少なくとも、オフィシャルな説明においては、広告を表示、あるいはクリックした人が誰だかわかる、なんてことを売りにしたりはしていないわけだ。</p><p>個人的な感覚で言えば、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>であればそのレベルのプライバシー保護対策が求められるのだろうけれど、「ユーザーidが<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%D5%A5%A1%A5%E9">リファラ</a>で漏れる」サービスなんてザラにあるし、対策していなかったとしても「個人情報を第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>に積極的に提供している」かのように非難されるべきだとは思っていない(アクセス<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C8%A1%BC%A5%AF">トーク</a>ンやセッションidなど秘匿すべき情報が<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%D5%A5%A1%A5%E9">リファラ</a>に入るのはマズイ)</p> </div> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/%BE%F0%CA%F3%B3%CA%BA%B9">情報格差</a>によって起きる<a class="keyword" href="http://d.hatena.ne.jp/keyword/FUD">FUD</a></h4> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%D5%A5%A1%A5%E9">リファラ</a>の件もそうだけど、知ってる人であれば当然知っているようなことで大騒ぎ、というのが今後も起きるのではないかと思う。likeボタンや+1ボタンによってログイン中のユーザーがどのサイトを訪問したのか分かってしまう(その情報をどう使うかはさておき)なんて話は、技術者であれば誰でも知ってる話だったはずだ。単に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%AF%A5%BB%A5%B9%A5%ED%A5%B0">アクセスログ</a>に残るという話が「ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>に使われている」と断定するような報道がなされる。結果何が起きるかというと、</p> <ul> <li>一般ユーザー: そんなことは今まで知らなかった、なんてことだ、怖い</li> <li>技術者: そんなことは当然知ってたけど、ニュースになるからには「何か重大な証拠を掴んだ」のだろうと予断を持って記事を読んでしまう。</li> </ul><p>本来ならば「えっ、なんだそんなことか」と冷静に読まれるべきところが「ニュースになった」という事自体が判断に影響を与えて、正確な情報伝播がなされなくなってしまう。そんなの当たり前に皆知っていたはずの話が、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>だったら、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>だったら「何か邪悪なことに利用されているに違いない」と邪推されてしまうことがある。本来だったら「バグでした」で済む話が、「それぐらい計算して意図的にやっててもおかしくないな」と邪推されてしまうことがある。それがバグなのか意図的にやってるのかは「実装」に詳しい人にしか分からないのだが、実際には判断する能力を持たない人たちが大騒ぎして断罪されることになる。</p> </div> <div class="section"> <h4>放置される技術的な問題についてどう対処すればいいのか?</h4> <p>実際に不適切な実装が行われているということについては放置されてしまう。例えば、俺は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>や<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>のよ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%A6%A4%CA%BD%C5">うな重</a>要個人情報を預かってる企業が、ログイン中のユーザーの外部Webサイトの訪問履歴を取得できてしまう(そしてユーザーから<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%AF%A5%BB%A5%B9%A5%ED%A5%B0">アクセスログ</a>がどのように扱われているのかは確認できない)ような機能をデフォルト有効で提供する事自体に問題があると考えているけれど、そういった問題はFTCが立ち入り調査して「違反したら罰金ね」といってそれで終わりだ。</p> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>のlikeボタンは、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をオフにすると正常に機能しなくなることが知られている。(ボタンを押したら無限にwindowが開く)</li> <li>誰が訪問したのか関係なく、単にlikeが押された件数を表示するだけであれば、ログイン中のユーザーを取得する必要がない。</li> <li>単に手抜きなのか、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>に対して<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を有効にしないと不利益が発生するような状況を意図的に作っているのか、判断が出来ない。</li> </ul><p>「ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>をしている」と言うのであれば、何が行われているのかわからないサーバーサイドでのデータの取り扱いについて、憶測で「信用ならない」というのではなく「具体的な証拠を掴んだり」あるいは、そういった実装にする必然性がないのに「ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>も可能になる」ダメな実装を選択している、ということを批判しなくてはならない。で、そういう批判が説得力を持つためには、プライバシーに配慮した代替案として具体的にどういうものがあるのか広く知られるようになり、エンジニアとしての偏差値が50以上であれば誰でも思いつくよね、という状況を作らなければならないのだろう。</p> </div> <div class="section"> <h4>まとめ</h4> <ul> <li>不正確な報道と、それをソースにした翻訳記事によって、元記事における反論や技術的な細かいニュアンスが失われてしまっている。</li> <li>特にタイトルと要約だけ伝えたようなものが独り歩きすると、まるっきり不正確な記事が出来上がってしまう。</li> <li>「疑いがある」というものが、まず「調査によって○○であることが判明した」と書かれ、それに対して「□□は否定している」という体裁で書かれることが多い。</li> <li>技術者が「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%AF%A5%BB%A5%B9%A5%ED%A5%B0">アクセスログ</a>が残る」「技術的にはト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>にも使用可能」と表現に気を使っていたところが、likeボタンや+1ボタンがト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>に使われるといった報道が平然となされるようになってしまった。</li> <li>不用意に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%D5%A5%A1%A5%E9">リファラ</a>経由で情報が漏れていた(と推測されるものが) 広告主に個人情報を共有していた、となり、表現に気を使わない個人ブログ等であれば広告主に個人情報を売り渡していた、と伝搬されるようになってしまった。</li> <li>とりあえず煽るだけ煽っておけば、FTCが調査してくれるので、結果としてはオッケー、という傾向になっていないだろうか。</li> <li>意図的に行われていることについては「なぜそれが必要とされてきたのか」も含めて適切に報道され、リスクが許容出来る範囲に収まっているのか判断されなければならないだろう。</li> <li>人々は分かりやすいストーリーを求めているのかも知れないが、不確定な情報は不確定なものとして、そのまま扱うことができないものだろうか。</li> </ul><p>などということを考えている。</p> </div> Wed, 29 Feb 2012 23:12:04 +0900 hatenablog://entry/17680117127139887228 GoogleがSafariの設定を迂回してトラッキングしていたとされる件について https://mala.hatenadiary.org/entry/20120220/1329751480 <p>※この記事の完成度は85%ぐらいなので後で追記します。</p> <ul> <li><a href="http://webpolicy.org/2012/02/17/safari-trackers/">http://webpolicy.org/2012/02/17/safari-trackers/</a></li> <li><a href="http://online.wsj.com/article/SB10001424052970204880404577225380456599176.html">http://online.wsj.com/article/SB10001424052970204880404577225380456599176.html</a></li> <li><a href="http://blogs.wsj.com/digits/2012/02/16/how-google-tracked-safari-users/">http://blogs.wsj.com/digits/2012/02/16/how-google-tracked-safari-users/</a></li> </ul><p>合わせて読みたい。</p> <ul> <li><a href="http://trac.webkit.org/changeset/92142">http://trac.webkit.org/changeset/92142</a></li> <li><a href="https://bugs.webkit.org/show_bug.cgi?id=35824">https://bugs.webkit.org/show_bug.cgi?id=35824</a></li> </ul><p>一番上のJonathan Mayer氏の記事については純粋に技術的なレポートなので、特におかしなことは書かれていない。元はといえば<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>ブロック機能が狂っている件、それを利用し<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をセットしている広告会社という技術的なリサーチなので、英語と技術的な内容について抵抗がない人はまず最初に読んだ上で(<a class="keyword" href="http://d.hatena.ne.jp/keyword/WSJ">WSJ</a>との差分について)判断すべき。この記事は技術的な内容を含むので難しいです。内容が理解出来ない場合は難しいということさえ分かればいいです。</p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/WSJ">WSJ</a>の日本語版には</p> <blockquote> <p>グーグルは特別な暗号を使い、サファリで初期設定されているト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>拒否機能に設けられた例外事項を利用する方法で、利用者のコンピュータや多機能携帯電話「<a class="keyword" href="http://d.hatena.ne.jp/keyword/iPhone">iPhone</a>(アイフォーン)」などにクッキー(追跡用の小さなファイル)をインストールしていた。</p> </blockquote> <p>とある。特別な暗号などと、随分物騒な物言いだが、原文はspecial computer codeだったりする。<a class="keyword" href="http://d.hatena.ne.jp/keyword/WSJ">WSJ</a>が書くと、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>の仕様上の隙をついて、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>や広告会社がト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>をしている(<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>はそれを否定)という論調になっている。素直に読んだら悪事を暴かれた<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>が言い訳をしていると、そんな風に捉えてしまう人が多くいるのではないでしょうか。この問題がメディアに取り上げられたことは大いに意義があるのだけど、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>に関しては批判すべきポイントがズレまくっている。問題提起は結構なのだが、何が行われているのかも正確に理解すること無く(理解した上かもしれないけど)、ユーザーの不安を煽りたて、憶測で企業を批判する行為がまかり通ってしまうことのほうがよっぽど問題なのではないかと思う。</p> <div class="section"> <h4>ざっくりとした解説</h4> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>はディスプレイ広告に対して+1ボタンを表示するかどうかの設定を<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>アカウントに対して保存している</li> <li>doubleclick.netから配信される<a class="keyword" href="http://d.hatena.ne.jp/keyword/Adsense">Adsense</a>の広告に対して、その設定を反映させるために<a class="keyword" href="http://d.hatena.ne.jp/keyword/Adsense">Adsense</a>表示の際に、<a class="keyword" href="http://d.hatena.ne.jp/keyword/google">google</a>.comにリダイレクトして設定を読み取っている</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/google">google</a>.comから設定を読み取った後 doubleclick.net <a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>に遷移して _drt_ という名前の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を発行して、読み取った設定を参照できるようにしている。</li> <li>この際に、UserAgentが<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>の場合には、iframe内でform送信する<a class="keyword" href="http://d.hatena.ne.jp/keyword/JavaScript">JavaScript</a>を使って、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロックする設定を迂回していた。</li> <li>その結果、既に<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>が保存されている場合は追加の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>保存も受け入れるルールによって、ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>用の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>も保存されることになった。</li> </ul><p>その背後にある技術的な背景</p> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をデフォルトでブロックすると謳っているが、Webサイトとの互換性のために「保存済み<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>については送信を行い」「いくつかの条件で<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を受け入れる」</li> <li>既に<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>が保存されている場合は追加の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>も受け入れるという挙動にしたのは <a class="keyword" href="http://d.hatena.ne.jp/keyword/Apple">Apple</a>のエンジニア <a href="https://bugs.webkit.org/show_bug.cgi?id=35824">https://bugs.webkit.org/show_bug.cgi?id=35824</a></li> <li>form送信で<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>ブロックの設定を無視する点についてバグとみなして修正したのは<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>のエンジニア(<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>にはまだ反映されていない) <a href="http://trac.webkit.org/changeset/92142">http://trac.webkit.org/changeset/92142</a></li> </ul> </div> <div class="section"> <h4>事前に持っていた認識</h4> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>ブロックはザルなので、ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>が意図せずにセットされてしまうことがある。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Adsense">Adsense</a>表示の際に、隠しiframe内で<a class="keyword" href="http://d.hatena.ne.jp/keyword/google">google</a>.comを参照するということを行なっていた(去年から) <ul> <li>これを知った時の自分の考えは「おそらく<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>アカウントに保存されている広告関連の設定を読み取っているのだろう」ということ</li> </ul></li> </ul><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/WSJ">WSJ</a>の取材後に行われたこと</p> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>: この記事執筆時点で、doubleclick.netがそもそも<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>に対してset-<a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>を発行しなくなった(UserAgentで判別) そうしなければ「広告<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>ブロックするはずなのにされてないじゃないか!!」と文句を言われてしまうから。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Apple">Apple</a>: 「一部の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3%A1%BC">サードパーティー</a>が<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a> のプライバシー機能を迂回していることは認識しており、そのようなことを阻止すべく取り組んでいます」という回答を出した。</li> </ul> </div> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>行った対応はどういう意味を持つのか</h4> <ul> <li>明示的にAds Preference Managerで「オプトイン」をしなければターゲティング広告が使えなくなった。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>が有効かどうか(これは<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>になる)を調べるための<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>が、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>の仕様のせいで間違ってセットされてしまうことがあるからだ。</li> </ul> </div> <div class="section"> <h4>ディスプレイ広告における<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a> +1ボタンの仕組み</h4> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>のディスプレイ広告に +1ボタンを表示することが出来るようになった <a href="http://adsense-ja.blogspot.com/2011/09/1.html">http://adsense-ja.blogspot.com/2011/09/1.html</a></li> <li>ユーザーから見て+1ボタンを表示するかどうかは「+1 personalization on non-<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20sites">Google sites</a>」 の設定が反映される <a href="https://plus.google.com/+1/personalization">https://plus.google.com/+1/personalization</a></li> <li>同時期に、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Adsense">Adsense</a>表示の際に隠しiframeで<a class="keyword" href="http://d.hatena.ne.jp/keyword/google">google</a>.com/pagead/drt/uiへ遷移しているのが確認されている <ul> <li>参考: <a href="http://www.google.com/support/forum/p/AdSense/thread?tid=2fef17a28ef59a87&hl=en">http://www.google.com/support/forum/p/AdSense/thread?tid=2fef17a28ef59a87&hl=en</a></li> </ul></li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a> → doubleclickへのリダイレクト時に、doubleclick.net<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>に_drt_ <a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>が設定される。この際にクエリパラメータにpli=1が付いていると広告に対する+1ボタンが有効化され、以降の広告表示の際に反映される。</li> <li>別のブラウザを立ち上げ、同じ<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>アカウントにログインし、+1ボタンに関する設定を変更しても、その場で反映されることは無かった。</li> </ul><p>このことから、自分は以下のように推測するだろう。</p> <ul> <li>その人が確かに自分の意志で+1ボタンを表示する設定を選択したのかを確実に判別するために、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>のログイン機構を使ってdoubleclickにリダイレクトをしている <ul> <li>これを行わないと<a class="keyword" href="http://d.hatena.ne.jp/keyword/CSRF">CSRF</a>で<a class="keyword" href="http://d.hatena.ne.jp/keyword/Adsense">Adsense</a>に対する+1ボタンの表示設定が変更されてしまう</li> </ul></li> <li>もしDoubleClick側で_drt_に保存された文字列から<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>アカウントの情報を参照できるのであれば、+1ボタンに関する設定が、その都度反映されてもおかしくないが、そのようにはなっていない。</li> <li>なので、_drt_ は純粋に広告に関する設定を一時保存するための<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>であると(自分は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>をある程度信頼しているので)考えている</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>に直接設定を保存する選択肢もあっただろう。plusone=1というような。</li> <li>DoubleClick側でDoubleClick <a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>に<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>アカウントを関連付けていない、ということを証明することは難しい。</li> <li>なぜなら<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>がサーバー側で何をやっているのかは、ユーザーからは分からないから。</li> </ul> </div> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>におけるワークラウンド処理に意味はあったのか?</h4> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>のデフォルト設定では、doubleclick.net<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>に対して「+1ボタンを有効にしているかどうか」の設定を反映させることが出来ない。なので、form送信にするという<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D0%A5%C3%A5%C9%A5%CE%A5%A6%A5%CF%A5%A6">バッドノウハウ</a>を使用した。その結果、意図せずに「ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>目的の<a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>もセット可能な状態になった」これが<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>の言うところの「予期せぬ挙動だった」ということ。</p><p>form送信を使用しなくても、doubleclickの<a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>がセットされるという状況は発生する。</p> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>の開発メニューでUserAgentを<a class="keyword" href="http://d.hatena.ne.jp/keyword/Firefox">Firefox</a>に変更する</li> <li>Ads Preferences Managerを開く。何回かリロードしてもDoubleClick idがセットされないのを確認する。(doubleclick.netに一時的な<a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>が保存される)</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Adsense">Google Adsense</a>を掲載しているサイトを適当に訪問する。</li> <li>DoubleClick idがセットされているのを確認する。</li> </ul><p>この「form送信にするという<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EF%A1%BC%A5%AF%A5%A2%A5%E9%A5%A6%A5%F3%A5%C9">ワークアラウンド</a>と無関係に」どのみち一度でも広告をクリックしたり、Ads Preferences Managerを訪問するなりすれば、ファーストパーティ<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>としてDoubleClickの<a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>がセットされ、ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>される状態になる。</p><p>これが、<a class="keyword" href="http://d.hatena.ne.jp/keyword/WSJ">WSJ</a>曰く</p> <blockquote> <p>グーグルがインストールしたクッキーは一時的なもので、12〜24時間で効力を失う。しかし、ときには幅広くト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>されてしまうこともあった。サファリの技術的な「癖」でクッキーが1つでもインストールされると、簡単にほかのクッキーがインストールされるようになってしまうからだ。</p> </blockquote> <p>はいはい、じゃあこの挙動を知っていたWeb技術者だけが石を投げて良いですよ、ということになる。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>に対して「ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>目的でない(<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>の主張)」<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をセットするためにフォーム送信という<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D0%A5%C3%A5%C9%A5%CE%A5%A6%A5%CF%A5%A6">バッドノウハウ</a>を使ったが、批判を受けたため今度は「ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>にセットしないために」<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>を特別扱いして、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>の場合だけ<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>が有効かどうか判別するtest用の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>すら送らないようになった。そうしないと「広告<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロックしてるはずなのに、いつのまにかdoubleclick <a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>が<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>に設定されている」という状況になってしまうから。</p><p>というわけで整理すると</p> <ul> <li>doubleclickのト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>目的である "id" <a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>を受け入れやすくするために、この技術を使ったのではないか? → ハッキリ言って無茶あるよ、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>の挙動は元々ザルだから、そんなことをする必然性はない</li> <li>_drt_という名前の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>は何を意味しているのか?ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>目的ではないか? → 検討の価値がある</li> </ul> </div> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/Apple">Apple</a>の取れる対策はどういったものがあるのか</h4> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>の挙動については以前書いたとおり。<br /> <a href="http://d.hatena.ne.jp/mala/20111125/1322210819">http://d.hatena.ne.jp/mala/20111125/1322210819</a></p><p>デフォルトで「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロックする」と謳っている<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>だが、抜け道を作っておかないと<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>のデフォルトの設定では動作しなくなるWebサイトが多く発生することになる。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Apple">Apple</a>は「阻止すべく取り組んでいる」と表明しているが、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>のこの挙動は、最早、副作用なしに変更することはできない状況になっている。これは単なる欠陥という話ではないし、ソフトウェアのバグというものは、副作用なく不具合だけを修正することが出来るとは限らない。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>の挙動が不適切だと思うのであれば、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>に依存したWebサイトを作ってきた開発者も非難されなくてはいけない。(<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>のlikeボタンとか)</p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Apple">Apple</a>の取れる対策はいくつか考えられるだろう。</p> <ul> <li>1. 何も変更を加えずにト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>を行う広告会社を非難</li> <li>2. 今さらながら<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>をサポート</li> <li>3. 全ての<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を受け入れた上でDo Not Trackをデフォルトで有効</li> <li>4. <a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送信もブロックする設定を追加で作る</li> <li>5. デフォルトで<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送受信をブロックした上で、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DB%A5%EF%A5%A4%A5%C8%A5%EA%A5%B9%A5%C8">ホワイトリスト</a>提供(<a class="keyword" href="http://d.hatena.ne.jp/keyword/Apple">Apple</a>認定 or ユーザー設定)</li> <li>6. デフォルトで<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送受信をブロックした上で、動作しなくなるサイトには修正を求める</li> <li>7. フォーム送信の際にブロックするポリシーが無視されるという部分のみ修正(likeボタンや+1ボタンの問題は放置)</li> </ul><p>ブラウザ全体の傾向としてはデフォルトの挙動は「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>は全て受け入れる」「プライバシーを気にする人はDo Not Track」ということになるだろう、と予想している(<a class="keyword" href="http://d.hatena.ne.jp/keyword/Firefox">Firefox</a>の辿った道)<br /> <a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>については、1を行いつつ、4,5,7あたりに落ち着くのではないかと予想している。</p> </div> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>のプライバシーポリシー変更にあたってメディアが注視すべきポイントはどこなのか?</h4> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Adsense">Adsense</a>で使っているdoubleclick.netの<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>は「個人を特定しない」ことをポリシーとして、Web履歴の収集と、それを使った趣味趣向属性の推測を行なっている。 <ul> <li>これはDoubleClick訴訟の影響があるためで、別経路で入手した個人を識別可能なデータとのリンクが制限されている。</li> </ul></li> <li>にもかかわらず、Ads Preferences Managerでは、doubleclick.netから<a class="keyword" href="http://d.hatena.ne.jp/keyword/google">google</a>.comへのリダイレクトによって、doubleclickの<a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>情報が<a class="keyword" href="http://d.hatena.ne.jp/keyword/google">google</a>.comに受け渡されている。</li> <li>そして、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Adsense">Adsense</a>においては、<a class="keyword" href="http://d.hatena.ne.jp/keyword/google">google</a>.comからdoubleclick.netに対して「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>アカウントに保存されている設定情報」を受け渡している。</li> <li>ここで _drt_ <a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>から参照可能になる<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>アカウント情報がどのようなものであるのかは、ユーザーからは検証のしようがなく、透明性は無い。 <ul> <li>Jonathan Mayer氏のアップロードしている<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>の資料からその役割を知ることが出来る <a href="https://twitter.com/#!/jonathanmayer/status/171347730046787584">https://twitter.com/#!/jonathanmayer/status/171347730046787584</a></li> </ul></li> </ul><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/google">google</a>.comとdoubleclick.netの<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>交換は、気安く行われて良いものではない。なぜなら、個人を特定しないことを条件として<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Adsense">Adsense</a>経由で訪問者のWeb履歴を収集し、趣味趣向や属性を判別し、広告に利用しているからだ。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>は個人を特定しないdoubleclick.netの「匿名のWeb履歴情報」と、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/%CD%F8%CD%D1%B5%AC%CC%F3">利用規約</a>に同意をしてユーザーの許可を得た上で有効化された<a class="keyword" href="http://d.hatena.ne.jp/keyword/google">google</a>.comが持っている「検索履歴機能、Web履歴機能」を持っている。これらは似て非なるもので、どうせ「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>には個人情報を集められまくってるのだから」といって同一視して良いものではない。今まで「個人を特定されることは無いから」として許容されてきたものが、ある日突然<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>アカウント(<a class="keyword" href="http://d.hatena.ne.jp/keyword/SNS">SNS</a>として利用しており実名登録、詳細なプロフィールが入力されている)とリンクされることになりました、といったら、それは世間に受け入れられるものではないだろう(少なくとも自分は嫌だ)</p><p>なので、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>の「お客様の同意なしに、DoubleClick <a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a> 情報を、個人識別情報と結び付けることはありません。 」というポリシーがきちんと守られているのかを監視しなくてはいけないし、DoubleClick <a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a> 情報を、個人識別情報と結び付けているのではないかと、疑いがかかるような不適切な実装は非難されなくてはいけない。</p><p>しかし、自分が<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>の立場であるならば、このようにも考えるだろう。</p> <ul> <li>匿名化された<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>のidを受け渡して、広告に関する設定や、ユーザーが広告に使っても良いと許可したプロフィール情報や、本人や友人が+1を押した広告の一覧などに「限定して」アクセスできるようにする。</li> <li>直接的に<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>アカウントをDoubleClickと紐付けるのは「ユーザーの許可を得た上で」行わなければならないが、個人を特定できないようにしたうえで<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>アカウントの情報を参照することは制限されないのではないか? <ul> <li>現に+1ボタンを表示するかどうかの設定に関しては<a class="keyword" href="http://d.hatena.ne.jp/keyword/google">google</a>.com<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>から受け渡しているわけだし、これに対する反発が少ないのであれば、次のステップに進めるだろう。</li> </ul></li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Adsense">Adsense</a>に<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>アカウント情報を使うことで、どの程度の広告の精度向上が見込めるのかのテストをし、結果がよろしかったらユーザーに対して透明性の確保と選択の自由を与えた上で広く有効化しよう。</li> </ul><p><a href="http://support.google.com/adsense/bin/answer.py?hl=ja&answer=187844">http://support.google.com/adsense/bin/answer.py?hl=ja&answer=187844</a></p> <blockquote> <p>また、ページにアクセスしたユーザーには、そのユーザーのソーシャル コネクションが +1 した広告が表示される可能性が高くなります。</p> </blockquote> <p>とあるので、既にそういったことが行われていると考えても良いかもしれない。</p><p>ユーザーの反発が大きければ、そもそもこういうことは出来ないよね、ということになるし、その結果リアル人格に基づいたターゲティング広告のほうが実は効果的であって市場の選択の結果<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>に惨敗する結果になっても仕方ない。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>でリアル人格に基づいたターゲティング広告にどういったリスクがあるのか、周知されなくてはいけないだろう <a href="http://d.hatena.ne.jp/mala/20111202/1322835191">http://d.hatena.ne.jp/mala/20111202/1322835191</a><br /> </p> </div> <div class="section"> <h4>FAQ</h4> <ul> <li>結局何が起きていたの? → 1.<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>がト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>目的ではない<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>(_drt_)をセットしたら 2.<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>の仕様が原因でト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>(id)もセットされた</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>はこれを意図していた? → 1は意図的に行った 2は予想外だったと主張している</li> <li>最終的にト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をセットするため計算づくで行われた可能性は? → 可能性だけならなんとでも言えますが、そんなことをする必然性は薄いです</li> <li>どういう影響があったのですか? → <a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>ユーザーのうち、広告をクリックしないユーザーに新規にト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>がセットされる確率が上がりました。</li> <li>以前から<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>にト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>はセットされていた? → 元々、広告を一度でもクリックすればト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>がセットされ、維持されることになっていたでしょう</li> <li>他の広告会社については → ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をセットする目的でやってるかもしれませんが、興味が無いので詳しく調べていません。</li> </ul> <div class="section"> <h5>ブラウザの仕様と倫理的問題</h5> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>はト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>を防止してくれないのですか? → 受信済み<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送信をブロックしないので一度<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>がセットされれば以降はト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>できます。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>を特別扱いしていた? → していた。UserAgent(ブラウザ名)で判別。今は逆にト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をセットしないように特別扱いしている。</li> <li>なぜ<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>を特別扱いする必要があったのか? → +1ボタンをユーザーが明示的に有効にしても<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>でのみ動作しないことになるから。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>拒否してるのに保存する行為がそもそも問題では? → ユーザーが同意の上で有効化してるので <a href="https://twitter.com/#!/bulkneets/status/171665462197895168">https://twitter.com/#!/bulkneets/status/171665462197895168</a></li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の受信が完全に禁止された場合は? → 設定変更や<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>の適当なページ開いた時にdoubleclick.netにリダイレクトしてセットすることもできます。同じ事が面倒な手段で行われる。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送信が禁止された場合は? → <a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を全て許可にしてください or 動きません、仕様です、と言うでしょうね</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Apple">Apple</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>の問題を把握していたのか? → <a class="keyword" href="http://d.hatena.ne.jp/keyword/WebKit">WebKit</a>の関係者はずっと昔から知ってるはずです。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>の問題は仕様なんですか欠陥なんですか? → Webサイトとの互換性を損ねないために、問題を把握しつつ修正が行われなかったり、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の受け入れを緩和したりする場合があります。</li> <li>他のブラウザはどうなってますか? → 例えば<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロックしても「送信」が行われる問題は、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Firefox">Firefox</a>はバグとみなして修正を行なっています。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Opera">Opera</a>最強伝説 → <a class="keyword" href="http://d.hatena.ne.jp/keyword/Opera">Opera</a>も適切に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を拒否することが出来ません。以前書いたことがあるので読んでください <a href="http://d.hatena.ne.jp/mala/20111125/1322210819">http://d.hatena.ne.jp/mala/20111125/1322210819</a></li> </ul> </div> <div class="section"> <h5>_drt_ <a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>について</h5> <ul> <li>_drt_ という名前の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>は何に使われているの? → 少なくとも、ディスプレイ広告(画像使った広告)に+1ボタンを表示するかどうかの設定に使われています</li> <li>_drt_ <a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>はト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>目的のもの? → 違うと思います。DoubleClickのト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>は "id" <a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>で行われています。</li> <li>_drt_ <a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>は+1ボタンを表示するためだけのもの? → 違うと思います。それならランダム文字列にしないでplusone=1でいいからです。</li> <li>じゃあ結局何の目的でどういう風に使われてるの? → <a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>が積極的に情報を公開しなければ、外部からは推測しかできませんし、内部で<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>のidと紐付いていてト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>に使われている可能性だってあります。もしもそういったことが行われているとすれば問題なので「そもそもユーザーから見て何が行われているのか検証できないような、疑いがかかるような実装は避けるべき」で「FTCが調査するのも良いだろう」と考えていますが、憶測に過ぎないことをメディアが断定的に語って批判するのは避けるべきだと考えています。</li> </ul> </div> </div> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/IE">IE</a>のプライバシー機能も迂回していたとされる問題</h4> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Microsoft">Microsoft</a>が自分たちを棚にあげて便乗して<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>を批判しており、タチの悪いジョークです。<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>が最早機能しないことは周知の事実で、ブラウザ関係者であれば尚更です。</p> <ul> <li><a href="http://japanese.engadget.com/2012/02/20/google-ie-p3p/">http://japanese.engadget.com/2012/02/20/google-ie-p3p/</a></li> </ul><p>補足すると</p> <ul> <li>嘘の<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>コンパクトポリシーをコピペするよりは「これは<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>ポリシーではありません、詳細はこちら」のほうが遥かにマシです。</li> <li><del><a class="keyword" href="http://d.hatena.ne.jp/keyword/IE">IE</a>で<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を有効にするための、マシな方法が他にはありません。</del></li> <li><del><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を必要とする機能を有効化するために、<a class="keyword" href="http://d.hatena.ne.jp/keyword/IE">IE</a>の「信頼済みゾーン」に指定することは大きな副作用を伴います。</del></li> <li><del> 他のブラウザ(<a class="keyword" href="http://d.hatena.ne.jp/keyword/Firefox">Firefox</a>,<a class="keyword" href="http://d.hatena.ne.jp/keyword/Chrome">Chrome</a>,<a class="keyword" href="http://d.hatena.ne.jp/keyword/Opera">Opera</a>)であれば<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>単位での<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>有効化を案内することができます。</del></li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/IE">IE</a>でサイトごとの<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>設定は → サイトごとのプライバシー操作で出来る</li> </ul> </div> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/Wall%20Street%20Journal">Wall Street Journal</a>が発端となった過去の問題について</h4> <ul> <li>あとでかく</li> </ul> </div> <div class="section"> <h4>この件を取り上げた日本のメディア</h4> <ul> <li>あとでかく</li> </ul> </div> <div class="section"> <h4>まとめ</h4> <p>何が行われていて、どういったリスクがあるのか正確に報道されなければ正しい世論形成が行われなくなります。この件でまともな報道がなされたニュースサイトはほぼ皆無です。</p> </div> Mon, 20 Feb 2012 00:24:40 +0900 hatenablog://entry/17680117127139887512 サードパーティCookieの歴史と現状 Part3 広告における利用、トラッキング、ターゲティング広告におけるプライバシーリスク https://mala.hatenadiary.org/entry/20111202/1322835191 <p>前回の続き。なるべく一般人向けに書きます。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>とあまり関係のない話も書きます。</p> <ul> <li><a href="http://d.hatena.ne.jp/mala/20111125/1322210819">http://d.hatena.ne.jp/mala/20111125/1322210819</a></li> <li><a href="http://d.hatena.ne.jp/mala/20111130/1322668652">http://d.hatena.ne.jp/mala/20111130/1322668652</a></li> </ul> <div class="section"> <h4>前回までの概要</h4> <p>ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>目的の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の利用などから<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の利用は問題視されIE6で制限がかけられるもプライバシーポリシーを明示すれば利用できるという迂回手段を用意、しかし今では<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>はオワコン化、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の受け入れをデフォルトで拒否する設定を採用したが一度受け入れた<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>は問答無用で送信、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Mozilla">Mozilla</a>関係者は「殆ど合法的な利用目的はない」と言っていたものの既存Webサイトとの互換性のために変更できず、ブラウザは<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をデフォルトで無効にすることが出来なかった、そうこうしているうちにWebアプリケーションでの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>依存が進み、ますますブラウザはデフォルトの設定を変更することが困難になりインターネットを安全に利用することができない不適切なデフォルト設定が放置されたまま、ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>拒否のための仕様としてDoNotTrackが策定されました。そして<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B9%AD%B9%F0%B2%B0">広告屋</a>さんは何をしているのか。</p> </div> <div class="section"> <h4>前置き</h4> <p>自分は直接的に広告システムの開発に関わったことはなく、広告配信ネットワーク側の事情にあまり詳しくない。ここで書くような問題について既に広く知られているのかもしれないし、知られていないかもしれない。少なくとも自分には十分な対策が取られているようには思えないし、世間一般の人々が「問題を認識しつつ許容出来る範囲として受け入れている」という風にも思えない。どの程度のリスクだと考えるのかは人それぞれだが、このような問題に対策が取られないままト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>あるいはターゲティング広告が広く用いられていくと、やがてはWeb広告全般に対する信用が損なわれ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C3%AF%C6%C0%C1%B4%C2%BB">誰得全損</a>な状況が発生することが懸念される。</p><p>大半のユーザーはこういった問題に対して、無関心であったり無理解であるだろう。無関心であることが暗黙のうちに同意した事にはならないし、無理解で仕組みが分からなかったりどの程度のリスクがあるのかについて適切に判断ができない人がヒステリックに反発するのもよろしくないと思っている。技術について理解のある人は、問題のない実装を考えたり、ダメな実装を批判したり、問題意識が低い人が実装をしないよう監視したり、無関心な人を無関心な人として意思決定のプロセスから排除したりしていくことが大事であると考えている。</p> </div> <div class="section"> <h4>ターゲッティング広告全般の問題点について</h4> <p>まず最初に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B9%D4%C6%B0%A5%BF%A1%BC%A5%B2%A5%C6%A5%A3%A5%F3%A5%B0">行動ターゲティング</a>、地域ターゲティング、属性ターゲティング、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%BF%A5%EC%A5%B9%A5%C8%A5%DE%A5%C3%A5%C1">インタレストマッチ</a>などと呼ばれる興味関心や、ユーザーの属性情報に基づいた広告全般の問題点についての前提知識を共有する。問題を3つに分ける。</p> <ul> <li>1. アドネットワークによってユーザーが意図しないうちに個人情報が収集されている問題</li> <li>2. 広告がパーソナライズされていることにより、どんな広告が出稿されたのかわかれば、その人がどんな属性を持っているのか大まかな推定が出来る問題</li> <li>3. パーソナライズされた広告配信によって、広告出稿者がユーザーの個人情報を取得することが可能になっている問題</li> </ul><p>ターゲティング広告のプライバシー上の問題が語られるとき1の「アドネットワークによる情報収集」ばかりが問題になり、その結果2と3について、あまり問題視されて来なかったように思われる。それぞれについて軽く解説する。</p> <div class="section"> <h5>1. アドネットワークによる情報収集の問題</h5> <p>すでにログイン<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を持つ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>で、外部サイトに埋め込むための機能が提供され広く普及している。彼らは便利な<a class="keyword" href="http://d.hatena.ne.jp/keyword/Web%A5%B5%A1%BC%A5%D3%A5%B9">Webサービス</a>を提供する会社であると同時に、広告配信業者でもある。</p> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>は likeボタンや各種パーツで www.<a class="keyword" href="http://d.hatena.ne.jp/keyword/facebook">facebook</a>.com <a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>のiframeを埋め込んでいる。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>は+1ボタンにおいて、.<a class="keyword" href="http://d.hatena.ne.jp/keyword/google">google</a>.com を使用している。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Yahoo%21%20Japan">Yahoo! Japan</a> は、広告において .yahoo.co.jp の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を使用している。</li> </ul><p>ちなみに自分は「広告以外の目的」で普及させたlikeボタンや+1ボタンを使って、ボタンをクリックした場合はともかく、表示しただけ収集可能になるWeb訪問履歴を使用してユーザーの趣味趣向の分析や広告配信の最適化のために使うことは、おそらく無いだろうと考えている。理由としては既に広告のターゲッティングのために十分な情報を収集していて、これ以上収集する必要がないであろうこと、表示しただけではノイズが多すぎるだろうこと、さらに加えると、いくら何でも良識のあるエンジニアが止めるだろうと信頼しているからだ。もちろん単なる<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%AF%A5%BB%A5%B9%A5%ED%A5%B0">アクセスログ</a>は保存されるだろうし、場合によってはログにユーザー名も残してるかもしれない。</p><p>ただし、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B3%A5%F3%A5%C6%A5%F3%A5%C4%A5%DE%A5%C3%A5%C1">コンテンツマッチ</a>広告として普及させた<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Adsense">Google Adsense</a>を、DoubleClick買収後に、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B9%D4%C6%B0%A5%BF%A1%BC%A5%B2%A5%C6%A5%A3%A5%F3%A5%B0%B9%AD%B9%F0">行動ターゲティング広告</a>(を含む広告配信システム)へと変化させてきたという前科がある。</p> <ul> <li><a href="http://adsense-ja.blogspot.com/2009/03/adwords.html">http://adsense-ja.blogspot.com/2009/03/adwords.html</a></li> <li><a href="https://www.google.com/adsense/support/bin/answer.py?answer=100557">https://www.google.com/adsense/support/bin/answer.py?answer=100557</a></li> </ul><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>は2009年以降、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Adsense">Adsense</a>掲載サイトの訪問履歴から(掲載サイトが明示的に拒否しない限り)ユーザーの属性情報を推定するということを行なっている。そのため<a class="keyword" href="http://d.hatena.ne.jp/keyword/Adsense">Adsense</a>掲載サイトに対してプライバシーポリシーの変更を要請している。ある時期まで<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B3%A5%F3%A5%C6%A5%F3%A5%C4%A5%DE%A5%C3%A5%C1">コンテンツマッチ</a>広告であった<a class="keyword" href="http://d.hatena.ne.jp/keyword/Adsense">Adsense</a>が、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を使って複数サイトにまたがったト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>を行う広告ネットワークへと変化したわけだ。</p> </div> <div class="section"> <h5>2. 配信された広告によるユーザーの属性情報の推定が広告掲載サイトあるいは悪意のある第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>から行える問題</h5> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B3%A5%F3%A5%C6%A5%F3%A5%C4%A5%DE%A5%C3%A5%C1">コンテンツマッチ</a>広告で「誰に対しても同じ広告が出力される」のであれば、どんな広告が配信されたのか取得をしても大して意味が無いが、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B9%D4%C6%B0%A5%BF%A1%BC%A5%B2%A5%C6%A5%A3%A5%F3%A5%B0">行動ターゲティング</a>や<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%BF%A5%EC%A5%B9%A5%C8%A5%DE%A5%C3%A5%C1">インタレストマッチ</a>、オーディエンスターゲティングと呼ばれるような、ユーザー属性に基づくパーソナライズされた広告が出力されている場合、配信された広告の内容からユーザーの属性を推測することが可能になる。</p><p>ここで問題とするのは、 広告を掲載しているサイト、または、ユーザーが自由に<a class="keyword" href="http://d.hatena.ne.jp/keyword/JavaScript">JavaScript</a>を書けるようなブログサービスの場合、どんな広告が出力されたのかを掲載サイトから判別することが出来るということだ。</p> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/JSONP">JSONP</a>や類似の手法で<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>によりパーソナライズした広告を配信している場合、どんな広告が表示されるのか第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>に読み取られる可能性がある。</li> <li>広告をiframe内に表示している場合は、Same origin policyによって中身を読み取ることが出来ない。ただし表示を細かくカスタマイズすることもできなくなる。</li> </ul> </div> <div class="section"> <h5>3. パーソナライズされた広告配信によって広告出稿者がユーザーの個人情報を取得することが可能な問題</h5> <p>これは、お金を払って広告を出稿している広告主が、広告をクリックしたユーザーの属性情報を取得することが可能な問題である。</p> <ul> <li>例えば<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B7%B2%C7%CF%B8%A9">群馬県</a>をターゲットにして広告を出したならば、その広告は<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B7%B2%C7%CF%B8%A9">群馬県</a>に住んでいるユーザーに表示される</li> <li>広告をクリックして遷移してきたユーザーは<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B7%B2%C7%CF%B8%A9">群馬県</a>民であることが(広告配信システムのターゲティングの精度が高ければ高いほど)強く推定される。</li> <li>男性、女性、あるいは年齢、職業、趣味趣向、収入などに応じたターゲッティングが可能になっている場合、それぞれ高い精度で推定することができる。</li> </ul><p>現在表示しているコンテンツやサイトに関連がある広告が表示されていて、その広告をクリックしたなら、あなたがその広告に関心を持ったことは自明だが、それ以外の情報、つまり「広告主が単体では知り得なかった情報を使って広告のマッチングを行っている」のであれば、広告主はある程度の精度で広告経由での訪問者の属性情報を知ることが可能になる。女性をターゲットに広告を出せば訪問者は女性が多くなるだろうし、20代をターゲットに広告を出せば20代の訪問者が来る。「その程度の情報であれば不用意に他人に知られようと問題はない」と考える人もいるだろうが、そうでない人もいる。</p><p>広告ネットワークは「広告主に個人情報を売るようなことはしません」というだろう。彼らが売っているものは「Webサイトに訪問するユーザーの傾向、統計情報」であったり「指定した趣味趣向・属性を持っているターゲットに対して広告を出稿する権利」であったりする。しかし、実装方式によっては殆ど直接的にユーザーの個人情報を広告主に売る結果になってしまう。</p> </div> </div> <div class="section"> <h4>実装上の問題点についての具体的な事例</h4> <p>概要を説明したので、2と3について具体的な事例を挙げる。</p> <ul> <li>多くのサービスが同様の問題を抱えていると考えられるので、特定のサービスを貶めるような意図はない。</li> <li>また推測可能な個人情報を問題がない範囲に留めたり、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CD%F8%CD%D1%B5%AC%CC%F3">利用規約</a>や広告主の審査によって、悪用されないようにしているかもしれない。</li> </ul> </div> <div class="section"> <h4>実装上の問題 2の問題について Yahooや<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>の場合</h4> <p>Yahooの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%BF%A5%EC%A5%B9%A5%C8%A5%DE%A5%C3%A5%C1">インタレストマッチ</a>において、配信された広告が<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B0%A5%ED%A1%BC%A5%D0%A5%EB%CA%D1%BF%F4">グローバル変数</a>として取得可能な様子 <a href="http://gyazo.com/a16c39a01a625236c666c4720b1a378e">http://gyazo.com/a16c39a01a625236c666c4720b1a378e</a></p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Adsense">Google Adsense</a>は基本的にiframeを使っているが、大口顧客向けの<a class="keyword" href="http://d.hatena.ne.jp/keyword/JavaScript">JavaScript</a>で配信しているタイプのものがあり、同様に出力される広告を<a class="keyword" href="http://d.hatena.ne.jp/keyword/JavaScript">JavaScript</a>から取得することが可能になっている。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B3%A5%F3%A5%C6%A5%F3%A5%C4%A5%DE%A5%C3%A5%C1">コンテンツマッチ</a>以外で配信されているものは、ユーザーの趣味趣向に応じた広告であると推測することが出来る。</p><p>今後、ターゲティング広告の割合が増えれば</p> <ul> <li>属性ごとに表示される広告の傾向を把握する</li> <li>ターゲットを罠ページに誘導し、表示された広告を元に訪問者のユーザー属性を推定する</li> </ul><p>といったことが行えるようになるだろう。</p> <div class="section"> <h5>ターゲティング広告 + <a class="keyword" href="http://d.hatena.ne.jp/keyword/JavaScript">JavaScript</a>の問題点</h5> <p>ユーザー毎にパーソナライズされた広告を<a class="keyword" href="http://d.hatena.ne.jp/keyword/JSONP">JSONP</a>あるいは類似の手法で配信すると、配信された広告を<a class="keyword" href="http://d.hatena.ne.jp/keyword/JavaScript">JavaScript</a>の変数として読み取ることが可能になる。この手法は、iframeで表示するよりもサイトのデザインにマッチしたスタイルで広告を表示するなどの目的で、既に広く使われてしまっている。「広告掲載サイトに悪意がなければ、広告が読み取られることは無いのでは?」と考える人もいるだろうが、実際には広告掲載サイト以外からも読み取られることが考えられる。</p> <ul> <li>広告掲載サイトを全て審査するのは困難である。自由に<a class="keyword" href="http://d.hatena.ne.jp/keyword/JavaScript">JavaScript</a>を書けるブログサービスなどは特に。</li> <li>現在のブラウザの<a class="keyword" href="http://d.hatena.ne.jp/keyword/JavaScript">JavaScript</a>実行ポリシーの性質上、配信される広告を読み取ることが可能になるのが広告掲載サイトだけとは限らない。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/JSONP">JSONP</a>のアクセス元を制限するのが困難なように、<a class="keyword" href="http://d.hatena.ne.jp/keyword/JavaScript">JavaScript</a>が自分自身から見て、どのページ上で実行されているのかを確実に判断することは困難であるからだ。 <ul> <li>呼び出し元を制限するような制約を加えたとしても、現在または将来に渡って、location上書き、getter、setterなどを含めて確実に自身がどこから呼び出されたのか判定できる保証がない。</li> </ul></li> </ul><p>どんな広告が配信されたのかを外部の<a class="keyword" href="http://d.hatena.ne.jp/keyword/JavaScript">JavaScript</a>から読み取り不可能にするには、どのような対策をする必要があるのか?</p> <ul> <li>外部の<a class="keyword" href="http://d.hatena.ne.jp/keyword/JavaScript">JavaScript</a>から読み取られることがマズイ内容は、別<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>のiframe内に出力する必要がある。 <ul> <li>この変更をするためには、既に発行されている広告配信用のタグを、全てのサイトで置き換える必要があるだろう。</li> </ul></li> </ul><p>あるいは、出力される広告が読み取られたとしても差し支えがないような内容に留めるというポリシーも有りうるだろう。</p><p>「どのような広告が配信されたのか」という情報から、例えばユーザーの具体的な氏名であったり、精度の高い住所であったり、Web閲覧履歴を読み取ったりすることはできないだろう。しかし、今後<a class="keyword" href="http://d.hatena.ne.jp/keyword/SNS">SNS</a>に登録した細かい属性情報を使ったターゲティングが一般的に広く使われ受け入れられ当たり前に使われるようになってしまうと、第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>から勝手に取得できる情報が「その程度ならバレても平気」と言える範囲で収まらなくなる可能性がある。</p> </div> </div> <div class="section"> <h4>実装上の問題点 3の問題について <a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>の場合</h4> <p>広告クリックによって広告主からユーザー属性を把握されうるケースの代表例として<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>を挙げる。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>ページや外部URLを宣伝することが出来る<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a> Adsという広告配信システムを持っている。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>は2011年の9月頃まで、誕生日のユーザーをターゲットにして広告を配信することが出来た。</p> <ul> <li>参考: <a href="http://www.aimclearblog.com/2011/09/24/facebook-ads-birthday-targeting-gone-poof-away/">http://www.aimclearblog.com/2011/09/24/facebook-ads-birthday-targeting-gone-poof-away/</a></li> <li>参考: <a href="http://gyazo.com/61cb8e4a49ce36016f23953f81f15325">http://gyazo.com/61cb8e4a49ce36016f23953f81f15325</a></li> </ul><p>言い換えるとつい最近まで「クリックすると誕生日がバレる広告を出稿することが出来た」ということだ。ちなみに<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>がこのオプションを廃止したという事についてのオフィシャルな説明は見当たらなかった。</p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>の説明を読んでみよう。 <a href="http://www.facebook.com/about/privacy/advertising#personalizedads">http://www.facebook.com/about/privacy/advertising#personalizedads</a></p> <blockquote> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>が広告主にユーザー情報を開示することはありません(ユーザーが許可を与えた場合は除きます)。</p><p>広告主が<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>で広告を作成すると、場所、年齢・性別、いいね!、キーワードなど、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>が受け取る情報や弊社から提供できる情報にもとづいて広告のターゲットを設定できます。たとえば、日本在住の18歳から35歳までのサッカーが好きな女性をターゲットに指定することができます。</p> </blockquote> <p>広告をクリックしたならリンク先のサイトには、訪問者が広告のターゲットとして設定した属性を持っていることが分かる。少し考えれば分かることだし、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>もそのように説明をしている。</p> <blockquote> <p>広告主が広告を掲載すると、広告主が指定した条件を満たす人に広告が配信されますが、広告主にそれが誰かは開示されません。たとえば、上の例では、広告主は広告をクリックした人が日本在住の18歳から-35歳までのサッカーが好きな女性であると推測することができます。ただし、それ以上の詳細は開示されません。</p> </blockquote> <p>既存の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B9%D4%C6%B0%A5%BF%A1%BC%A5%B2%A5%C6%A5%A3%A5%F3%A5%B0">行動ターゲティング</a>や属性ターゲティング広告は「バレても平気な程度の情報のみ用いる」ということで、この問題に(一応の)対処をしてきた。</p> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>はこの問題を把握しているが、当り障りのない例を挙げて、ユーザーに対して十分な説明を行なっていない、と自分は考えている。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>広告のターゲティングは、今まで考えられてきた「広告主に知られても問題ないと考えている情報の範囲」を逸脱している。</li> <li>ユーザー登録に必要だから、あるいは、他のユーザーとの交流のために<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>に登録した情報が広告のターゲティングのために流用されている。 <ul> <li>そのような広告配信の仕組みについて、ある程度認知されつつあるだろう。しかし「広告主が取得可能な情報」について正確に理解することは困難である。</li> <li>実際に<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>の広告配信画面を自分で操作してみるまで、ここまで細かいターゲティングが出来ることは想像していなかった。</li> </ul></li> <li>誕生日に対するターゲットは問題を認識したからこそ、廃止されたのだろう。しかし依然として誕生日が1週間以内といった指定は行うことができる。</li> </ul><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>が挙げている18歳から35歳までのサッカー好きな女性とは、極端に無難すぎる不適切な例だ。実際に<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>広告がターゲティングに使える情報は <a href="http://www.facebook.com/ads/create/">http://www.facebook.com/ads/create/</a> から確認することが出来る。一部を挙げると</p> <ul> <li>市町村</li> <li>1歳単位の年齢</li> <li>男性か女性か</li> <li>イベント: 誕生日が1週間以内、最近転居した</li> <li>家族構成: 婚約中(1年未満、6ヵ月未満) 新婚(1年未満、6ヵ月未満) 子持ち、子供あり(0-3歳、4-12歳、13-15歳、16-19歳)</li> <li>恋愛対象: すべて、男性、女性</li> <li>交際ステータス: 独身、婚約中、交際中、既婚</li> <li>学歴: 大卒、大学生・専門学校生、高校生 (高校生を除いては指定校へのターゲットが可能)</li> <li>勤務先: 特定勤務先へのターゲットが可能</li> </ul><p>ちなみにこのツールで男性を恋愛対象とする男子高校生が日本で何人<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>に登録しているかなどを調べることが出来る。200人だった。</p> <ul> <li>交際ステータスをターゲットに広告を出稿することも出来る</li> <li>「婚約中」ステータスに対してターゲティングがされている例: <a href="http://www.flickr.com/photos/hirose30/6383824537/">http://www.flickr.com/photos/hirose30/6383824537/</a> <ul> <li>これは適切に使用されている例だが、広告によってはユーザーの予想に反して不用意に交際ステータスが広告主に知られることになる。</li> </ul></li> </ul><p>問題となるのは、広告の内容が「そのようなターゲティングがされているように推測できない場合」だろう。誕生日をキャンペーンにしつつ、誕生日向けの広告に見えない。特定の性嗜好をターゲットにしつつ、そのような広告に見えない場合、などだ。</p> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>の「細かすぎるターゲティング」の問題は既に指摘されてて論文になっていた <a href="http://theory.stanford.edu/~korolova/Privacy_violations_using_microtargeted_ads.pdf">http://theory.stanford.edu/~korolova/Privacy_violations_using_microtargeted_ads.pdf</a></li> <li>が、誕生日をターゲットに出来るというあからさまにクリックしたら誕生日がバレるような広告がつい最近まで出稿できる状況だった。</li> <li>このような問題を指摘されてから1年以上かかってるし、誕生日が一週間以内をターゲットにすることは依然としてできる。 <ul> <li>「特定個人を識別できるかどうか」ばかりが問題になり、広告主が訪問者のユーザー属性を収集することが出来るという点があまり問題視されていない。</li> </ul></li> <li>今までの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B9%D4%C6%B0%A5%BF%A1%BC%A5%B2%A5%C6%A5%A3%A5%F3%A5%B0">行動ターゲティング</a>は、行動履歴から推測された属性情報を使っていたが、今後<a class="keyword" href="http://d.hatena.ne.jp/keyword/SNS">SNS</a>の属性情報を使うのが主流になると、年齢や職業などの属性は今までは「20代」とか「IT系」で済んでいたものが、具体的に「何歳」「どこの会社」といった具体性を帯びることになる。</li> <li>訪問先Webサイトによる興味の推測は「その程度のことしか分からなかった」というのが「訪問者の属性がある程度ボカされて、バレても平気な程度に収める」という効能をもたらしていた。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>のような個人情報を握っている企業は、細かいターゲティングが出来ることを「強み」だと考えてターゲティング広告の根本的な問題点を修正しないままで推し進めてしまっている。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>がやってるから(同じ事をやらないと負けるから)という理由で、間違った実装をしてはならない、「そのような問題を知りませんでした」と言わせないためにこの記事を書いている。</li> </ul> </div> <div class="section"> <h4>細かいターゲティングの問題に<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>はどうしているのか?</h4> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>は「属性別入札は、対象とするユーザーに広告をより多く表示するための方法で、対象とするユーザーのみに広告を表示する方法ではありません」と説明している</p> <ul> <li><a href="http://adwords.google.com/support/aw/bin/answer.py?hl=ja&answer=80593">http://adwords.google.com/support/aw/bin/answer.py?hl=ja&answer=80593</a></li> </ul><p>指定した属性をターゲットに広告を出しても、その結果誘導されたユーザーは、必ずしもその属性を持っているとは限らない、ということになる。ただし、一定の確<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%AB%A4%E9%A4%B7">からし</a>さで年齢や性別を推定することは出来るだろう。</p> <ul> <li>ちなみにユーザー層別入札が可能なサイトには、<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>と<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%CB%A5%B3%A5%CB%A5%B3%C6%B0%B2%E8">ニコニコ動画</a>が含まれている。 <ul> <li><a href="http://adwords.google.com/support/aw/bin/answer.py?hl=ja&answer=88168">http://adwords.google.com/support/aw/bin/answer.py?hl=ja&answer=88168</a></li> </ul></li> <li>18才未満のみをターゲットにして広告を配信することはできなくなっている <a href="http://gyazo.com/88b3740fb4a46a08d0b47ad823c6c043">http://gyazo.com/88b3740fb4a46a08d0b47ad823c6c043</a></li> </ul><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>は以下のように説明する <a href="http://www.google.co.jp/intl/ja/privacy/ads/#toc-faq">http://www.google.co.jp/intl/ja/privacy/ads/#toc-faq</a></p> <blockquote> <p>ただし、人種、宗教、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%AD%C5%AA%D3%CF%B9%A5">性的嗜好</a>、健康、金融など、機密性の高い情報に基づくイン<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%BF%A5%EC%A5%B9">タレス</a>ト カテゴリをブラウザや匿名 ID に関連付けたり、イン<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%BF%A5%EC%A5%B9">タレス</a>ト ベース広告の掲載にそれらの情報を使用したりすることはありません。</p> </blockquote> <p>なぜ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%BF%A5%EC%A5%B9%A5%C8%A5%DE%A5%C3%A5%C1">インタレストマッチ</a>や、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B9%D4%C6%B0%A5%BF%A1%BC%A5%B2%A5%C6%A5%A3%A5%F3%A5%B0%B9%AD%B9%F0">行動ターゲティング広告</a>、といった広告は自主規制がなされなければならないのか。収集する情報やマッチングに使う情報を制限したり、興味に基づいた広告であることを知らせるアイコンやテキストを表示すべきとされてきたのか。一つはアドネットワークがそのような情報を収集していることを明示し、ユーザーが望むのであれば拒否の意志を示すことが出来るようにするため。もう一つは「そのような種類の広告である」と明示しなければ、ターゲティング広告全般に反対するユーザーは「一切広告をクリックしない」というポリシーでしか自分の情報を守ることができなくなってしまうからだ。</p> </div> <div class="section"> <h4>ユーザーは匿名のままでいられるのか?</h4> <ul> <li>広告配信ネットワークは「広告主に個人情報を売り渡すことはない」「広告主は個人を識別することができない」という。</li> <li>しかし広告を出すからには、最終的に何らかの購買行動に結びつけるのが目的なわけだ。</li> <li>広告をクリックした先のサイトで、既にユーザー情報を登録してログインしているかもしれないし、今後「個人を識別する情報の入力を求める」かもしれない。</li> <li>どのような条件で広告が出されているのかをユーザーが知らなければ、提供することを望んでいなかったユーザーの属性情報が第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>に知られてしまうことになる。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>や<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>を信頼してデータを預けたとしても、そこに広告を掲載している第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>を信頼しているとは限らない。</li> </ul><p>リンク先が信用できるかどうかを事前に判断することは困難だ。例えば、広告のクリック先でメールアドレスを入力してキャンペーンに応募したとする、住所氏名まではこの段階では信用していないので入力しなかった。「入力したのはメールアドレスだけ」のつもりが、実際には「20-35歳のサッカー好きの女性のメールアドレス」として収集されているかもしれないし、「男性が好きな男性」「女性が好きな女性」「最近誕生日」「最近引っ越した」「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B7%B2%C7%CF%B8%A9">群馬県</a>に住んでいる」「特定の企業に務めている」といった情報と共に保存されるかもしれない。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>の誕生日ターゲティングがまだ使えた頃ならば「12月2日が誕生日の人のメールアドレス」として収集されるかもしれない。広告を掲載するにあたって、リンク先で一切の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%AF%A5%BB%A5%B9%B2%F2%C0%CF">アクセス解析</a>を行わず効果測定も行わずログインもせず個人情報も入力しないのであれば、このようなリスクは発生しないが、広告の掲載結果について効果測定を行わないのであれば単に金をジャブジャブ流すだけのカモだ。どのキャンペーン経由で登録した客なのか識別する、といった程度のことであれば、そのような利用方法は全く正当なものだと考えられている可能性もあるだろう。</p><p>広告クリック経由で訪問したユーザーに対して「その場限りで」男性であるか女性であるか、どんなターゲット属性経由で訪問したのか、について、無難だと考えられる範囲で、パーソナライズされた表示を行うことはありうるだろう。ただ、ユーザーはそういった属性に応じたランディングページの最適化が「その場限り」なのか、ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を使って今後もその属性を持っているとして識別され続けるのか、容易に区別することができないだろう。</p> </div> <div class="section"> <h4>安全なターゲティング広告とはどういったものであるか</h4> <p>ユーザーが安心して広告をクリックできるようにするためには、以下のようなこと考え、複数組み合わせる必要があるだろう。</p> <ul> <li>ユーザーはアドネットワークに対して、アドネットワークが管理しても良い、広告に利用されても良いと考えている情報の範囲を明示し、必要に応じて自主的に属性情報を提供する。</li> <li>広告主は指定されたターゲットに対して広告を掲載するが、ターゲットの個人情報を取得することが出来ないようにする。 <ul> <li>ユーザーが望むまで、広告主は広告を閲覧またはクリックしたユーザーを特定することができないようにする。</li> <li>ユーザーが望むまで、広告主は広告を閲覧またはクリックしたユーザーの趣味趣向、属性情報を取得できないようにする。</li> </ul></li> <li>広告主が訪問者のト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>が技術的に不可能なように対策をした上で、広告のリンク先のサイトをプレビューすることが出来るようにする。</li> <li>広告が誘導する先のURLに、広告キャンペーン以外からも一定の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CE%AE%C6%FE">流入</a>があることを保証し、どの属性経由で興味を持ったのか判別<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C9%D4%C7%BD">不能</a>にする。</li> <li>どのような条件で広告が掲載されているのか、ユーザーに対して明示し、ターゲット設定に用いられた属性情報を広告主が知りうることを理解した上で広告をクリックする。</li> </ul><p>行動ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>というものは、単に勝手に情報収集されて気持ち悪いとか、そういう気分だけの問題ではない。それを広告に利用する以上、広告主が単体では知り得なかったユーザーの属性情報が受け渡されるということが避けられない(よほどストイックな実装にしない限りは)。だからこそ、ユーザーに対して、どのような仕組みで動いているのか、どういうリスクがあるのかまで含めて説明し、透明性の確保に務める必要がある。広告配信会社は今まで認識して改善を行なってきた問題や、今まさに存在している未修正の問題について、ユーザーに対して十分な説明を行って来なかったと言えるだろう。</p> </div> <div class="section"> <h4>まとめ</h4> <ul> <li>ターゲティング広告は、実装方式によっては、悪意のある第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>から訪問者の属性情報を推測することが出来てしまう。</li> <li>広告ネットワークによっては細かすぎるターゲティングをできないようにしたり、センシティブな情報を使用しないように配慮してきたが、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>の例に見られるように、そうではないこともある。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DD%A1%BC%A5%BF%A5%EB%A5%B5%A5%A4%A5%C8">ポータルサイト</a>や<a class="keyword" href="http://d.hatena.ne.jp/keyword/SNS">SNS</a>に登録したり、広告ネットワークが把握している情報と、ユーザーが第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>に知られても構わないと思っている情報はイコールではない。人それぞれである。</li> <li>ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>によって収集した情報を、広告のターゲティングに用いるということは、広告主が単体では知り得なかったユーザーの属性情報が広告主や第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>に知られうるということである。</li> <li>特別な配慮無くターゲティング広告を実装すると、広告をクリックした場合にユーザーの属性情報が広告主に伝わることになる。</li> <li>今後、<a class="keyword" href="http://d.hatena.ne.jp/keyword/SNS">SNS</a>に入力した情報を使った広告の最適化が広く受け入れられ、あちこちで使われるようになった場合、第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>に勝手に知られる情報が「あなたが知られても平気だと考えている範囲の個人情報」では収まらなくなる可能性がある。</li> <li>不適切な実装が放置されたままでは、広告を安心してクリックできない世の中になり、Web業界全般にとって悪影響を与えるだろう。</li> </ul> </div> <div class="section"> <h4>終わりに</h4> <ul> <li>三回に分けて<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>にまつわるブラウザの歴史やWebアプリケーションの歴史や広告の歴史や実装上の問題点や注意事項について解説しました。</li> <li>問題があることを知りつつ放置してたらあちこちで使われ変更できなくなり最早取り返しが付かなくなったみたいな事例は色んな分野で起こっているのではないでしょうか。</li> <li>間違いや訂正・補足すべき情報がありましたら遠慮なく指摘してください。</li> <li>書ききれなかったことも多くあるので、適当なタイミングで追記修正補足記事などを書くと思います。</li> </ul> </div> Fri, 02 Dec 2011 23:13:11 +0900 hatenablog://entry/17680117127139887864 サードパーティCookieの歴史と現状 Part2 Webアプリケーションにおける利用とその問題 https://mala.hatenadiary.org/entry/20111130/1322668652 <p>前回 <a href="http://d.hatena.ne.jp/mala/20111125/1322210819">http://d.hatena.ne.jp/mala/20111125/1322210819</a> の続きです。</p> <div class="section"> <h4>前回のあらすじ</h4> <ul> <li>ブラウザベンダーは<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をデフォルトでオフにしたかったんだけどお前らが<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>に依存したサイト作るし使うからオフに出来なかったんだよ!!!!!</li> </ul><p>といった事情を踏まえた上でWebアプリケーションにおける<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の利用の歴史について書きます。前提知識の共有が済んだので、ここからはある程度個人的な意見も含まれます。実装面での技術的な内容も含みます。</p> </div> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>が必要とされてきた歴史</h4> <p>広告のためのト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>以外にも、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>に依存したサービスが数多く存在してきた。個人的に把握しているいくつかのサービスについて時系列で述べる。ついでに<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B9%AD%B9%F0%B6%C8%B3%A6">広告業界</a>の流れについても重要なのを幾つか混ぜる。</p> <div class="section"> <h5>2005年</h5> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Netvibes">Netvibes</a>、<a class="keyword" href="http://d.hatena.ne.jp/keyword/iGoogle">iGoogle</a>などのパーソナライズホームページサービスが登場する。</li> <li>「ガジェット」としてログイン済みの外部サイトをiframeで埋め込むものが存在してきた。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>ヘッダを使ってログイン状態の外部サイトを埋め込むことが出来ると案内している <ul> <li><a href="http://code.google.com/intl/ja/apis/gadgets/docs/fundamentals.html#Cookies">http://code.google.com/intl/ja/apis/gadgets/docs/fundamentals.html#Cookies</a></li> </ul></li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Netvibes">Netvibes</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>ユーザーに対して全ての<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を受け入れるように案内している <ul> <li><a href="http://faq.netvibes.com/troubleshooting/most_common_problems#what_can_i_do_if_my_page_is_stuck_on_loading_under_safari">http://faq.netvibes.com/troubleshooting/most_common_problems#what_can_i_do_if_my_page_is_stuck_on_loading_under_safari</a></li> </ul></li> </ul> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/JSONP">JSONP</a>が使われ始める <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/JSON">JSON</a> with Padding <a href="http://ajaxian.com/archives/jsonp-json-with-padding">http://ajaxian.com/archives/jsonp-json-with-padding</a></li> <li>関数名固定のcallbackが呼ばれるものから、クエリパラメータでcallback関数名を指定できるものが広く使われるようになる</li> </ul></li> </ul> <ul> <li>MyBlogLogが開始 <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%AF%A5%BB%A5%B9%B2%F2%C0%CF">アクセス解析</a>サービスで、ユーザ登録することでBlogに誰が訪問したのか分かるサービス。</li> <li>後に米Yahooに買収、日本でも類似のサービスがいくつか出ることになる。</li> </ul></li> </ul> </div> <div class="section"> <h5>2006年</h5> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/JSONP">JSONP</a>を使ったクロス<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>での<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A5%C3%A5%B7%A5%E5%A5%A2%A5%C3%A5%D7">マッシュアップ</a>手法について試行錯誤が行われる</li> <li>一方で、<a class="keyword" href="http://d.hatena.ne.jp/keyword/JSON">JSON</a> Hijackの問題も知られ始める。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Gmail">Gmail</a>のコンタクトリストを外部サイトから盗み取るものなど。</li> </ul> </div> <div class="section"> <h5>2007年</h5> <ul> <li>1月、YahooがMyBlogLogを買収する。</li> </ul> <ul> <li>4月、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>がDoubleClickの買収を進める</li> </ul> <ul> <li>7月、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%B9%A5%BF%A1%BC">はてなスター</a>がリリース(七夕の季節) <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>によって認証された<a class="keyword" href="http://d.hatena.ne.jp/keyword/JSONP">JSONP</a>に依存した実装</li> <li>リリース当時、<a class="keyword" href="http://d.hatena.ne.jp/keyword/IE">IE</a>では外部サイト上で<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%B9%A5%BF%A1%BC">はてなスター</a>を付けられないという状態であった。</li> <li>事情通によると、開発者全員が<a class="keyword" href="http://d.hatena.ne.jp/keyword/Firefox">Firefox</a> + <a class="keyword" href="http://d.hatena.ne.jp/keyword/Greasemonkey">Greasemonkey</a>によって外部サイト上での<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%B9%A5%BF%A1%BC">はてなスター</a>の動作確認をしていたので、<a class="keyword" href="http://d.hatena.ne.jp/keyword/IE">IE</a>で動かないことに気付いていなかった。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>ヘッダを出力してこの問題を解決 <a href="http://d.hatena.ne.jp/hatenastar/20070712/1184231961">http://d.hatena.ne.jp/hatenastar/20070712/1184231961</a></li> </ul></li> </ul> <ul> <li>10月、<a class="keyword" href="http://d.hatena.ne.jp/keyword/DISQUS">DISQUS</a> 埋め込みのコメント欄を提供するサービス、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>によって認証している。類似のサービスが幾つか。 <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>も含めて送受信を許可するように案内している <a href="http://gyazo.com/95c71b727abcb50cf664f147812b0119">http://gyazo.com/95c71b727abcb50cf664f147812b0119</a></li> <li>参考 <a href="http://docs.disqus.com/help/26/">http://docs.disqus.com/help/26/</a></li> </ul></li> </ul> <ul> <li>12月、gooがgooあしあとを提供開始 <a href="http://itpro.nikkeibp.co.jp/article/NEWS/20071220/289990/">http://itpro.nikkeibp.co.jp/article/NEWS/20071220/289990/</a></li> <li>12月、米<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CF%A2%CB%AE%BC%E8%B0%FA%B0%D1%B0%F7%B2%F1">連邦取引委員会</a>が<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>によるDoubleClick買収を承認した <a href="http://www.itmedia.co.jp/news/articles/0712/21/news017.html">http://www.itmedia.co.jp/news/articles/0712/21/news017.html</a></li> </ul> </div> <div class="section"> <h5>2008年</h5> <ul> <li>3月、Yahoo JapanがYahoo<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%ED%A5%B0%A1%BC%A5%EB">ログール</a>をリリース。yahoo.co.jpの<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を使用。足あとが残るのは登録ユーザーのみ。</li> <li>3月、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B2%A4%BD%A3%B0%D1%B0%F7%B2%F1">欧州委員会</a>が<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>によるDoubleClick買収を承認した <a href="http://www.itmedia.co.jp/news/articles/0803/12/news016.html">http://www.itmedia.co.jp/news/articles/0803/12/news016.html</a></li> </ul> <ul> <li>6月、Firefox3がリリースされる。 <ul> <li>このタイミングで、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Firefox">Firefox</a>においては<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>のブロックによって送信もブロックされるようになった。</li> <li>逆に言えば、<a class="keyword" href="http://d.hatena.ne.jp/keyword/IE">IE</a>対応(<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>ヘッダ送信)さえすれば「既にログインしているサイト」の外部サイト埋め込みに対してブラウザ側での制約が無かった。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をオフにすることによって「ログイン済みサイトによるト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>」や「外部リソース埋め込みに起因する<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>」を抑止できるようになった。</li> </ul></li> </ul> <ul> <li>8月、Yahoo Japanが<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A4%A5%F3%A5%BF%A5%EC%A5%B9%A5%C8%A5%DE%A5%C3%A5%C1">インタレストマッチ</a>を開始 <ul> <li><a href="http://www.sem-r.com/08h1/20080717182057.html">http://www.sem-r.com/08h1/20080717182057.html</a></li> </ul></li> </ul> <ul> <li>9月、クリックジャッキングの問題が知られるようになる。</li> <li>全てのブラウザ、全てのWebサイトに影響するとしてブラウザベンダーが対応を表明した。</li> </ul> <ul> <li>11月、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%D6%A5%C3%A5%AF%A5%DE%A1%BC%A5%AF">はてなブックマーク</a>リニューアル <a href="http://gihyo.jp/news/report/2008/11/0501">http://gihyo.jp/news/report/2008/11/0501</a> <ul> <li>追加画面で、ログイン状態のiframeを外部サイト上に埋め込むタイプの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D6%A5%C3%A5%AF%A5%DE%A1%BC%A5%AF%A5%EC%A5%C3%A5%C8">ブックマークレット</a>を採用した。</li> <li>このタイプの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D6%A5%C3%A5%AF%A5%DE%A1%BC%A5%AF%A5%EC%A5%C3%A5%C8">ブックマークレット</a>は当時日本では珍しく、同じく<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%BD%A1%BC%A5%B7%A5%E3%A5%EB%A5%D6%A5%C3%A5%AF%A5%DE%A1%BC%A5%AF%A5%B5%A1%BC%A5%D3%A5%B9">ソーシャルブックマークサービス</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/BlueDot">BlueDot</a>(2006-)から影響を受けたものだと記憶している</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Evernote">Evernote</a>もこのタイプの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D6%A5%C3%A5%AF%A5%DE%A1%BC%A5%AF%A5%EC%A5%C3%A5%C8">ブックマークレット</a>を採用している</li> </ul></li> </ul> </div> <div class="section"> <h5>2009年</h5> <ul> <li>1月、IE8RCがリリース、クリックジャッキング対策としてX-Frame-Optionsが導入される。 <ul> <li>Webサイト側でフレーム拒否のヘッダを出力するというもので、サイト側の対応が必須であった。3月にIE8が正式リリース。</li> </ul></li> </ul> <ul> <li>3月、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>が興味/関心に基づいた広告を開始 <ul> <li><a href="http://www.sem-r.com/google09/20090312163735.html">http://www.sem-r.com/google09/20090312163735.html</a></li> <li><a href="http://googlejapan.blogspot.com/2009/03/blog-post_12.html">http://googlejapan.blogspot.com/2009/03/blog-post_12.html</a></li> </ul></li> </ul> </div> <div class="section"> <h5>2010年</h5> <ul> <li>4月、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>が外部サイト向けのlikeボタンを提供する <a href="http://jp.techcrunch.com/archives/20100421facebook-like-button/">http://jp.techcrunch.com/archives/20100421facebook-like-button/</a> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送信をオフにした場合こうなる <a href="http://ssig33.com/facebook%E3%81%B2%E3%81%A9%E3%81%84">http://ssig33.com/facebook%E3%81%B2%E3%81%A9%E3%81%84</a></li> </ul></li> </ul> <ul> <li>9月、<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>が外部サイト向けの<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>チェックボタンを提供する</li> <li>12月、<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>が外部サイト向けのイイネボタンを提供する <a href="http://developer.mixi.co.jp/connect/mixi_plugin/favorite_button/get_html_code/">http://developer.mixi.co.jp/connect/mixi_plugin/favorite_button/get_html_code/</a> <ul> <li>似たような機能を続けてリリースしているがチェックボタンはポップアップウィンドウで投稿、イイネボタンはワンクリックで投稿完了するものとなっている <a href="http://developer.mixi.co.jp/connect/mixi_plugin/difference_of_mixicheck_favorite/">http://developer.mixi.co.jp/connect/mixi_plugin/difference_of_mixicheck_favorite/</a></li> <li>イイネボタンは、イイネを押した友人の一覧が表示できるようになっている(<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>による表示のパーソナライズを行なっている)</li> <li>イイネボタンは<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を送信しないとエラーが起きて動作しない。</li> </ul></li> </ul> </div> <div class="section"> <h5>2011年</h5> <ul> <li>足あと終了ブーム</li> <li>3月、gooあしあとが終了する <a href="http://blog.goo.ne.jp/ashiato_01/e/876cfd81489c43363b60ac4f4305624b">http://blog.goo.ne.jp/ashiato_01/e/876cfd81489c43363b60ac4f4305624b</a></li> <li>5月、米YahooのMyBlogLogが終了する</li> <li>6月、Yahoo Japanの Yahoo<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%ED%A5%B0%A1%BC%A5%EB">ログール</a>が終了する</li> <li>6月、<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>は足あと機能を先週の訪問者に変更する(念のため書くと、他のサービスと違い外部サイト上から<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>アカウントを把握されうるのは<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>にとっては意図せぬ挙動である)</li> </ul> <ul> <li>6月、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>が外部サイト向けの+1ボタンを提供する <a href="http://googlejapan.blogspot.com/2011/06/1.html">http://googlejapan.blogspot.com/2011/06/1.html</a> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>オフの状態では動作せず。一度認証ポップアップウィンドウが開いてエラーが発生する。</li> </ul></li> </ul> <ul> <li>7月、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>ブロックすると <a class="keyword" href="http://d.hatena.ne.jp/keyword/google">google</a>.co.jp にログインできない状態になる <ul> <li><a href="https://twitter.com/bulkneets/status/87321175977500672">https://twitter.com/bulkneets/status/87321175977500672</a></li> <li><a href="https://twitter.com/bulkneets/status/87767649244823552">https://twitter.com/bulkneets/status/87767649244823552</a></li> <li>imgタグやiframeによる<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>のセットに成功すると期待して、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B7%A5%F3%A5%B0%A5%EB%A5%B5%A5%A4%A5%F3%A5%AA%A5%F3">シングルサインオン</a>を設計した場合、ユーザーの設定によっては全くログイン出来ないことになる。</li> <li>いつから発生していたのか不明、比較的直ぐに解決されたと記憶している</li> </ul></li> </ul> <ul> <li>8月、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a> Puzzleが公開 <ul> <li>途中までプレイできるが<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロックしているとエンディングが見れない</li> <li><a href="https://twitter.com/sh4/status/103803450004996096">https://twitter.com/sh4/status/103803450004996096</a></li> </ul></li> </ul> <ul> <li>11月、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%D6%A5%ED%A5%B0">はてなブログ</a> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をオフにしている場合、記事投稿などはできるものの、幾つかの機能が使用<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C9%D4%C7%BD">不能</a>になる</li> </ul></li> </ul> </div> </div> <div class="section"> <h4>寸評</h4> <p>個々のサービスついて色々と思うところもあるが特にこの記事で深く掘り下げたりはしない、把握している範囲で述べているだけなので、これ以上に影響の大きいサービスもあったかもしれない。</p> <ul> <li>ブラウザの機能追加によって、仕様を設計する段階では想定されていなかったリスクが発生している。 <ul> <li>攻撃手法がWeb開発者に知れ渡るまでにも時間がかかる。<a class="keyword" href="http://d.hatena.ne.jp/keyword/JSON">JSON</a> Hijackやクリックジャッキングが知られるようになったのは「ブラウザの実装上そのような攻撃が出来る状態」になってから随分と先のことだ。</li> <li>開発者がどういったリスクが発生するのかを知らずに実装してしまうケースが多々ある。</li> </ul></li> <li>意図せずに足あとを残す(訪問者のユーザーアカウントを特定する)リスクがあるサービスは、近年、機能を変更したり終了する傾向にある。</li> <li>2007年ごろ(<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%B9%A5%BF%A1%BC">はてなスター</a>登場時)、自分は、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>に依存したサービスを作ることで、ユーザーやブラウザがプライバシーに配慮したデフォルト設定を選択することができなくなる、と主張していた。</li> <li>実際にブラウザはプライバシーやセキュリティに配慮したデフォルト設定に変更することが出来なかったし、今もなっていない。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>はDoubleClick買収以降、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を積極的に利用する傾向にある。 <ul> <li>ちなみに<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>はログイン時に <a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>: CP="This is not a <a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a> policy! See <a href="http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657">http://www.google.com/support/accounts/bin/answer.py?hl=en&answer=151657</a> for more info." というヘッダを送る</li> </ul></li> <li>誰が望んでこうなったのかと言い切ることはできないだろう。Web業界渾然一体となって<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>に依存したサービスを作り、無効化すると利用できなくなったり、不具合に遭遇したり、不便を被ったりする世の中を作ってきた。</li> </ul><p>Web開発者の多くは、単にブラウザの仕様に合わせてサイトを作っているだけで、自分の作るサイトがブラウザベンダーの意思決定に影響を与えているという自覚が希薄かも知れない。また「悪用されたら対策を考えれば良いだろう」とリリース時には単に<a class="keyword" href="http://d.hatena.ne.jp/keyword/spam">spam</a>やイタズラに使える程度であろうと考えていた脅威が、実際にはサービスの性質そのものに関わる問題であり対処のしようがない、と後から気付いた所で手遅れだったりもするだろう。ユーザーに対して「そのようなサービスを使うべきではない」と言った所で、自己責任で片付けられてしまうだろう。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送受信に依存したWebサイトを作る(あるいは使う)ということは、大多数のインターネットマニアでもセキュリティオタクでも何でもない普通の人たちがWebを安全に利用することができないという、そういう状況を肯定することに繋がっている。</p> </div> <div class="section"> <h4>Web開発者はどうすべきなのか?</h4> <ul> <li>まずWeb開発者は(少なくとも自分が開発に関わるサービスの動作確認をする時には) <a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送信をオフにすることを強く推奨する。ついでに<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EA%A5%D5%A5%A1%A5%E9">リファラ</a>の送信も止めていい。 <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロックする設定にした<a class="keyword" href="http://d.hatena.ne.jp/keyword/Firefox">Firefox</a>か<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Chrome">Google Chrome</a>で動作確認をすれば良い。</li> <li>上で挙げたような「ログイン状態のiframeや<a class="keyword" href="http://d.hatena.ne.jp/keyword/JSON">JSON</a>を外部サイト上から利用する機能」が動かなくなる、ということを把握していれば、大した不便を感じることは無いだろう。</li> </ul></li> <li>ブラウザは不適切なデフォルト設定を修正してこれなかっただけなので、自信を持っていい。<a class="keyword" href="http://d.hatena.ne.jp/keyword/IE">IE</a>と<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>を見習うべきである。</li> <li>ユーザー目線に近いように「ブラウザをデフォルト設定で使う」というポリシーの人もいるだろう。しかしこれは「本来ユーザーに与えられていた選択肢」を取り戻すためのものだ。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>オフでは全く動作しない(ログイン出来ない、表示できない、無限リダイレクトする)ようなものは論外で、回避手段を用意すべきである。</li> <li>足あとを残すサービスは、そもそもが、悪意のある第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>に訪問者のユーザーアカウントを特定されるリスクが伴うことになることを理解すべきである。</li> </ul> </div> <div class="section"> <h4>ブラウザはこれからどうするべきなのか?</h4> <ul> <li>2001年とは状況が変わっている、現実問題<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>に依存したWebサイトが多くあり、ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を利用したターゲティング広告が広く普及し、その収益に依存したWebサイトが多く存在している。</li> <li>(よほどユーザーの関心が高まらない限り) <a class="keyword" href="http://d.hatena.ne.jp/keyword/Web%A5%D6%A5%E9%A5%A6%A5%B6">Webブラウザ</a>がデフォルトで<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロックするということが現実的にありえないという状況になっている。動作しないサイトが出てきて文句を言われるためだ。 <ul> <li>デフォルトで<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をオフにした場合、evercookieのような、ユーザーにとって、より一層制御が困難な追跡手段が広く用いられる可能性がある。</li> <li>サイトごとに<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を許可するための設定が、より簡便に行えるようにならないと、多くのサイトが不具合を起こし、Web開発者の反発を招くだろう。</li> </ul></li> <li>Do Not Trackの策定によってプライバシーを気にする人、ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>されたくない人はDNT: 1を送ればいいじゃん、という風潮になりつつある。</li> <li>しかしDo Not Trackヘッダでは「ログイン状態で外部サイトに埋め込まれることによって発生している諸々のセキュリティ上の問題」が全く解決しないままである。</li> </ul> </div> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>が無効でも動作するようにするにはどうすればよいか</h4> <ul> <li>今からサービスを作る人は、単に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を無効化して動作確認をすれば良い。</li> <li>現実問題ユーザーは<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を送ってくるので、ログイン状態で外部サイト上に埋め込まれることで発生する諸々のセキュリティ上の問題に対処しなくてはいけない。 <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>に依存したサービスを作っているのであれば、ブラウザ側の問題であると主張するのは自己矛盾である。</li> </ul></li> <li>既に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>に依存したサービスを作ってしまっている場合に、どうすれば良いのかについて述べる。</li> </ul> <div class="section"> <h5>ダメな<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B7%A5%F3%A5%B0%A5%EB%A5%B5%A5%A4%A5%F3%A5%AA%A5%F3">シングルサインオン</a>サービス編</h5> <ul> <li>iframeやimgタグで<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をセットできる前提で設計されていると、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>オフの場合に動作しない。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/OpenID">OpenID</a>やOAuthのように、リダイレクトしてパラメータを受け渡し、ファーストパーティ<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>としてセッション<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をセットしましょう。</li> <li>ログインフォームをiframe内に表示するのはやめましょう。フィッシング耐性が下がります。</li> </ul> </div> <div class="section"> <h5>ソーシャルボタン編</h5> <p>1. 単純に別windowでlikeなり+1なりスターなり押させれば良い</p> <ul> <li>未ログインの場合には、どうせ別windowで認証画面を開く実装になっているのが殆どである。</li> <li>別windowではファーストパーティ<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>として認証<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>が送られるのだから、何の問題もない。</li> <li>クリックジャッキングも防げる。</li> <li>ユーザー毎に表示をカスタマイズしたりするのは、諦めるか、localStorageを使う</li> </ul><p>2. <a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の代替手段として、localStorageを使う</p> <ul> <li>localStorageにユーザーを識別するための<a class="keyword" href="http://d.hatena.ne.jp/keyword/API">API</a> tokenなどを保存しておくことで、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の代わりに使うことができる。</li> <li>localStorageは<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>と違って、サーバーに勝手に送信されることがない。</li> <li>訪問した段階ではサーバーサイドで誰がアクセスしてきたのかを識別せず、ボタンをクリックした段階でユーザーを識別することが出来る。</li> <li>主サービスと<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を共有しない別<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>で提供すれば、ログイン<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>目的で使っているという疑いを晴らすことが出来る。</li> </ul> <ul> <li>純粋にlocalStorageとして使われるのか、保存した値がサーバーに送信されるのかはコードを読まなければ判別が付かない。 <ul> <li>よって<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a>localStorageのト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>目的での利用が横行すれば、ブラウザはデフォルトでブロックすべきであろう。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Chrome">Google Chrome</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>がブロックされていれば、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a>のlocalStorageもブロックされるようになった(設定UIをシンプルに保つ都合上、区別をしていないのだと思われる)</li> <li>しかし、キチンと実装されれば、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>と違って、ユーザーのプライバシーも利便性も損ねない実装をすることが出来る。</li> </ul></li> <li>ブラウザは<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a>localStorageの利用に対して、ユーザーに対して通知バーを出し許可を求められるようにすべきである。</li> </ul><p>「全ユーザー共通のレスポンスを返す」ような埋め込みパーツは、この方式で完全に置き換えることができる。問題は「このページをいいねと言っている友人の一覧」など、ユーザー毎にパーソナライズされたレスポンスを出力する必要があるケースだ。幾つか解決手段があるだろう。</p> <ul> <li>そのような機能を必要とする人に対して、Web履歴を把握されうることを周知させた上で、オプトインで提供する。</li> <li>友人の付けた「いいね」一覧をlocalStorageにキャッシュし、完全にクライアントサイドでパーソナライズされた表示を実現する。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%AF%A5%BB%A5%B9%A5%ED%A5%B0">アクセスログ</a>を共有しない第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>のサーバーを経由して、特定URL(またはURLの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%CF%A5%C3%A5%B7%A5%E5%C3%CD">ハッシュ値</a>)に対して特定ユーザーがいいねと言っているかどうか判別する<a class="keyword" href="http://d.hatena.ne.jp/keyword/API">API</a>を提供する</li> </ul> <ul> <li>iframe内の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a>localStorageに依存した認証を行なった場合に、確認なしで反映されるような機能はオプトインで提供されなければならない。</li> <li>なぜかというと<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を無効化してもクリックジャッキングの被害に合うことになってしまうからである。</li> </ul> </div> <div class="section"> <h5>パーソナライズドホームページの類</h5> <ul> <li>OAuthを使う例が紹介されている <a href="http://code.google.com/intl/ja/apis/gadgets/docs/fundamentals.html#Cookies">http://code.google.com/intl/ja/apis/gadgets/docs/fundamentals.html#Cookies</a></li> <li>上記のように、今であればlocalStorageを代替手段として使うことも出来るだろう。</li> <li>サーバーサイドでOAuthのプロキシをしなくても、localStorageやpostMessageといった<a class="keyword" href="http://d.hatena.ne.jp/keyword/HTML5">HTML5</a>の機能を使うことで、クロス<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>でのデータの受け渡しは容易になっている。 <ul> <li>例えばiframe内からポップアップウィンドウを開き、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>で認証済みのポップアップウィンドウからiframeに対して認証が必要なデータにアクセスするための<a class="keyword" href="http://d.hatena.ne.jp/keyword/API">API</a> tokenをpostMessageで受け渡す、といった具合。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a>localStorageが使える状態であるならば、tokenをlocalStorageに保存しておけば良い。</li> <li>この方式であれば、tokenの受け渡しがブラウザ内だけで完結し、第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>のサーバーにtokenを受け渡す必要がない。</li> </ul></li> </ul><p>OAuthによる認可を与えたり、URLにpasswordや<a class="keyword" href="http://d.hatena.ne.jp/keyword/API">API</a> tokenを付加するなどの方法が考えられるが、これは、ガ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B8%A5%A7%A5%C3%A5%C8%B5%A1">ジェット機</a>能を提供しているプラットフォーム(この場合は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>)がその気になればユーザーのデータにアクセス可能であることを意味する。認証情報を預かっている以上、ユーザーに代わって操作できる状態になってしまうことが避けられない。つまり、プラットフォームが信頼できないのであれば、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>によって認証されたiframeを読み込んで直接操作したほうが安全、ということになる。外部サービスにidとpasswordを預けるよりもログイン状態のiframeを埋め込んだほうが遥かに安全である。</p> </div> <div class="section"> <h5>足あと機能や、勝手に共有の類</h5> <ul> <li>それは単純に自分のプロフィールを勝手に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B7%C7%BC%A8">掲示</a>板に投稿するという<a class="keyword" href="http://d.hatena.ne.jp/keyword/CSRF">CSRF</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>そのものなので、作るべきではない。</li> </ul> </div> <div class="section"> <h5>クリックジャッキングのような問題にどう対処すれば良いのか</h5> <ul> <li>クリックジャッキングに対するブラウザベンダの対応はX-Frame-Optionsによってフレーム内表示を拒否するという方法だった。</li> <li>「iframeを使ってログイン状態で埋め込み、確認なしでワンクリックで反映される」という機能を作る以上、クリックジャッキングは防げない。</li> <li>ログイン済みのiframeを外部サイトに埋め込むことを前提とした場合、そもそも安全に実装することが出来ない。</li> <li>そのような機能を作るなといっても、もう作ってしまった場合にどうすれば良いのかについて述べる。</li> <li>どうしても確認なしで実行することに拘りがあるのであれば「勝手にクリックされても、大きな影響がない程度の機能にのみ用いる」というアプローチが考えられる。</li> </ul><p>取り消しが可能な操作であっても、ボタンを押したことが第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>に伝わるのであれば、それは意図せずにユーザーアカウントを外部から特定可能な<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>となる</p> <ul> <li>クリックした結果が知られるのが「自分のみ」に限定されているなら、意図せずにクリックされても影響は軽微と言えるだろう。単に効率の悪い<a class="keyword" href="http://d.hatena.ne.jp/keyword/spam">spam</a>である。</li> <li>またクリック結果が知られるのが「友人のみ」でも、早期に気付くことが出来ればワーム的に拡散していくことは防げる。</li> </ul><p>クリックしたことをWebサイト側からスタイル制御<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C9%D4%C7%BD">不能</a>なブラウザ側のUIで通知して、取り消し可能にするというアプローチもあるだろう</p> <ul> <li>単純にwindow.confirmでユーザーが実行しようとしたアクションに対して確認ダイアログを表示する。</li> <li>ブラウザの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%C8%C4%A5%B5%A1%C7%BD">拡張機能</a>やWeb Notificationsと連携し、アクションを起こしたことの通知を出し、取り消し可能にする <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%C8%C4%A5%B5%A1%C7%BD">拡張機能</a>を入れていない人に対しては確認画面を出せばよい</li> </ul></li> </ul> </div> </div> <div class="section"> <h4>外部サイトに広く埋め込まれるようなサービスを設計する際にどうすればいいのか</h4> <ul> <li>外部サイト埋め込みを前提としたサービスは、主サービスと<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を共有しない別<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>で提供し、登録ユーザーにだけ使わせるべきである。</li> <li>別<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>にする理由は単純だ、Web履歴を収集されても構わないと考えているユーザーだけが有効化にすることが出来るからだ。</li> <li>「広告」や「外部埋め込みパーツ」に<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>や<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>やYahooなど、既にログインして広く受け入れられている<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を用いることに、倫理的な問題がある。</li> <li>ユーザーは単に提供される便利なサービスを利用するために、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を受け入れたのであって、外部サイトのWeb訪問履歴を把握されうるということについて、正確な知識を持ち合わせていない。</li> <li>(実際にやっているかどうかともかく) その気になれば彼らは<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a> <a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a> Yahooのユーザーアカウントと紐付けて、外部サイトの訪問履歴を把握することができる。 <ul> <li>一般的に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%AF%A5%BB%A5%B9%A5%ED%A5%B0">アクセスログ</a>は記録されるし、<a class="keyword" href="http://d.hatena.ne.jp/keyword/IP%A5%A2%A5%C9%A5%EC%A5%B9">IPアドレス</a>や、ブラウザのヘッダの特徴などから、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を使わずとも高い精度でユーザーを識別することは出来る。</li> </ul></li> <li>大手<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DD%A1%BC%A5%BF%A5%EB%A5%B5%A5%A4%A5%C8">ポータルサイト</a>や<a class="keyword" href="http://d.hatena.ne.jp/keyword/SNS">SNS</a>が、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>に依存した外部埋め込みパーツを提供し、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>無効では動作しない機能を提供してしまっている。</li> <li>単に実装した人が「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>オフで動作確認をしていないマヌケ」である可能性もあるが、意図的にこういったことをやっている可能性もある。 <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%FC%A4%C3%A4%BF">穿った</a>見方をすれば「外部サイトの訪問履歴を収集したいがために」意図的に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>に依存した機能を提供し「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を全て受け入れる設定にしてください」という案内をしている可能性がある。</li> </ul></li> </ul> </div> <div class="section"> <h4>ブラウザの設定変更を促すことについての問題</h4> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>がオフでも正常に動作する代替手段があるにも関わらず、実装の簡便さのために、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>に依存した手抜き実装がまかり通ってしまっている。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>に依存しない実装をすることが一番良いが、そのような変更を行うことが困難な場合は、リスクを周知した上でサイト毎に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を許可する設定を案内することが考えられる。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>のようにサイトごとに受け入れ設定を変更することが不可能な場合、ブラウザ全体の設定変更を案内する結果となってしまっている。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>が悪い。</li> <li>IE6以降や<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>においては、キチンと理由があって<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロックするデフォルト設定を採用しているわけだが、ほとんどのサイトが<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を全て受け入れる設定に変更するにあたってどのようなリスクがあるのかを的確に説明していない。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/DISQUS">DISQUS</a>のように、提供サービスの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>のみを<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>許可の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DB%A5%EF%A5%A4%A5%C8%A5%EA%A5%B9%A5%C8">ホワイトリスト</a>に入れるよう案内する方がマシである(Optional:の部分) <a href="http://gyazo.com/95c71b727abcb50cf664f147812b0119">http://gyazo.com/95c71b727abcb50cf664f147812b0119</a></li> </ul> </div> <div class="section"> <h4>まとめ</h4> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>に依存したWebアプリケーションの歴史と、Web開発者が取るべき対策について書いた。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>足あと機能に関するコメントは差し控えください。私は真面目な話をしています。</li> </ul><p>Part3ではターゲティング広告におけるト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の利用や、実装上の問題点について書きます。</p> </div> Wed, 30 Nov 2011 00:57:32 +0900 hatenablog://entry/17680117127139888235 サードパーティCookieの歴史と現状 Part1 前提知識の共有 https://mala.hatenadiary.org/entry/20111125/1322210819 <p>Web開発者のための<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>やらト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>やらの問題点について三回ぐらいに分けて書きます。</p><p>この文章は個人的に書いていますので、おい、お前のところのサービスが<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>に依存してるじゃねーかというツッコミがあるかもしれないが、そういうことを気にしているといつまで経っても公開できないという問題が出てしまうので、そんなことはお構いなしに書く。ちなみに例外なく自社サービスに対しても<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>に依存するな死ねと言っている。これはWeb<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D7%A5%ED%A5%B0%A5%E9%A5%DE%A1%BC">プログラマー</a>観点で、自分がサービス開発に関わる上で知っておかねばならないだろう知識として十数年間だらだらとWebを見ていて自然に知っていたものと、あるいは興味を持って率先して調べたものが含まれている。ググッて直ぐに分かる程度の用語の定義的なことは書かない。あくまでWebサイト制作者側からの観点なので、ブラウザ開発関係者からのツッコミを歓迎します。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B9%AD%B9%F0%B6%C8%B3%A6">広告業界</a>の人には<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B9%AD%B9%F0%B6%C8%B3%A6">広告業界</a>の人で独自の視点があるかもしれない。あとユーザー側、ブラウザ側を主体にして語るので、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送信と言ったときには「ブラウザからサーバーへの送信」のことを指している。</p> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>にまつわるブラウザの仕様について</h4> <div class="section"> <h5>10年以上前の話</h5> <p>ファーストパーティ<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>と<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の区別が無かった。Webサイトに埋め込んだ小さな画像によって<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をセットして、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>間を跨ってユーザーの行動をト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>し<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%AF%A5%BB%A5%B9%B2%F2%C0%CF">アクセス解析</a>や広告に使用するということがプライバシー上の問題となり、このような使い方を抑制できるようにブラウザ側に、現在表示中の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>及び<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A5%D6%A5%C9%A5%E1%A5%A4%A5%F3">サブドメイン</a>及びPublic Suffix Listやその他の方法で判別される同一運営者によってセットされる<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>と、広告やト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>で用いられる画像やjsやフレームなど外部リソースの埋め込みによって第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>によってセットされる<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>として区別するようになった。</p><p>ファーストパーティ<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>と<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を区別するに当たっては、さらに<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の、受信と送信を区別する必要がある。もし、あなたが<a class="keyword" href="http://d.hatena.ne.jp/keyword/google">google</a>のサービスを使っているとして、<a class="keyword" href="http://d.hatena.ne.jp/keyword/google">google</a>.comの<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>はファーストパーティの<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>として受け入れられる。受け入れなければログインが必要なサービスが使えなくなるのが自明である。しかし<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>以外のサイトを閲覧しているときに、ページ内に埋め込まれた、*.<a class="keyword" href="http://d.hatena.ne.jp/keyword/google">google</a>.comの画像やscriptやiframeなどの埋め込みに対して<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>が送られるならば、それは<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>である。</p><p>web bugによるト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>が問題になった頃の楽観的な認識であれば、単に該当<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を拒否することでブラウザに<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>が保存されないのだから、送信も行われない、我々のプライバシーは守られる、ということであった。しかし今日現在、多くのログインユーザーを抱えるような大手サイトが、外部<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>に対して画像やscriptタグやiframeを埋め込むようなパーツをログイン<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を保持している<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>を使って配信するという行為が広く行われており、副作用として、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>を跨ったWeb履歴の記録を行うことが出来る(実際にやっているかどうかはさておき)という状況が発生している。つまり、多くのログインユーザーを抱えているサービスが、外部埋め込みのパーツを提供すると、ファーストパーティ<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>としてセットされた<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>が、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>として送られるという問題が起きる。そうやって設定された<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>は、サイトの機能上必須のものなのか、ト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>のために用いられているのか、あるいはその両方なのか、区別が曖昧になっている。</p><p>古くからブラウザには「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を受け入れるかどうかの設定」やプライバシーを重視する設定にしているユーザーに対しては「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を受け入れるか毎回ユーザーへ確認する設定」が存在していたが、10年前に「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>」という区別が出来て以来、受け入れた<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を「文脈によって送ったり送らなかったり」する必要が出てきている。しかしブラウザによっては、このあたりの実装がまちまちで「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロック」することが、受信のみブロックする設定であったり、送信もブロックする設定であったりする。</p> </div> <div class="section"> <h5><a class="keyword" href="http://d.hatena.ne.jp/keyword/IE">IE</a></h5> <ul> <li>2001年 IE6がデフォルトで<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送受信をブロックした <ul> <li><a href="http://news.mynavi.jp/news/2001/09/26/13.html">http://news.mynavi.jp/news/2001/09/26/13.html</a></li> </ul></li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>ポリシーを導入: <a class="keyword" href="http://d.hatena.ne.jp/keyword/%B5%A1%B3%A3%C5%AA">機械的</a>に読み取り可能なプライバシーポリシー</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>コンパクトポリシーをレスポンスヘッダに設定することで自動で受け入れるのがデフォルト</li> <li>今や形骸化: <a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>: CP="<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a> does not have a <a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a> policy. <a href="http://...">http://...</a>" でもOK</li> <li>「これは<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>ポリシーではありません」という<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>ポリシーでも受け入れられる。</li> </ul> </div> <div class="section"> <h5><a class="keyword" href="http://d.hatena.ne.jp/keyword/Firefox">Firefox</a></h5> <ul> <li>bugzillaで歴史を調べることが出来る。</li> <li>Firefox3以降で読取もブロックするように変更された</li> <li><a href="http://forums.firehacks.org/l10n/viewtopic.php?p=8256">http://forums.firehacks.org/l10n/viewtopic.php?p=8256</a></li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>はデフォルトブロックにしろ(2006-) <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=324397">https://bugzilla.mozilla.org/show_bug.cgi?id=324397</a> <ul> <li>殆ど合法的な用途はありません → 正規のサイトをぶっ壊すのでデフォルトでブロックできません</li> </ul></li> <li>動かないサイトが出るからブロックしてても送信するように戻せという話(2008-) <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=417800">https://bugzilla.mozilla.org/show_bug.cgi?id=417800</a></li> <li>localStorageも<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の設定見てブロックしろという話(2009-) <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=536509">https://bugzilla.mozilla.org/show_bug.cgi?id=536509</a></li> <li><a href="http://support.mozilla.com/en-US/kb/Disabling%20third%20party%20cookies">http://support.mozilla.com/en-US/kb/Disabling%20third%20party%20cookies</a> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A5%A4%A5%AF%A5%ED%A5%BD%A5%D5%A5%C8">マイクロソフト</a>のサービスが<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>に依存していることが書かれている</li> <li>Some websites (e.g. <a class="keyword" href="http://d.hatena.ne.jp/keyword/Microsoft">Microsoft</a>'s <a class="keyword" href="http://d.hatena.ne.jp/keyword/Hotmail">Hotmail</a>, MSN, and <a class="keyword" href="http://d.hatena.ne.jp/keyword/Windows%20Live">Windows Live</a> Mail webmail) use third-party cookies</li> </ul></li> </ul> </div> <div class="section"> <h5><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Chrome">Google Chrome</a></h5> <ul> <li>Chroniumのitsで調べることが出来る。</li> <li>デフォルトは<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を全て受け入れる設定</li> <li>少し前まで、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロックしても、保存済みの<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を送信する状態であった <ul> <li>ブロックしても送信はする → about:flagsで送信もオフにする設定がある</li> </ul></li> <li>最近になって、about:flags使わなくても送信もブロックするような変更が入る</li> <li><a href="http://code.google.com/p/chromium/issues/detail?id=98241">http://code.google.com/p/chromium/issues/detail?id=98241</a> <ul> <li>おそらくこの変更によって、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a>iframe内のlocalStorageの読み書きもブロックされるようになった</li> </ul></li> </ul> </div> <div class="section"> <h5><a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a></h5> <ul> <li>デフォルトで<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロックすることが知られている</li> <li><a href="http://www.apple.com/jp/safari/features.html">http://www.apple.com/jp/safari/features.html</a> 「あなたのウェブアクティビティに関する情報を収集して販売するために、あなたがアクセスしたサイトによって生成された<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を追跡する企業があります。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>は、このような追跡<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロックするように設定された最初のブラウザで、あなたのプライバシーをしっかり保護します」とある</li> <li>iframeを埋め込んだだけでは<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を保存しないが、iframe内で画面遷移が発生した場合、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>が受け入れられてしまう。</li> <li>そのためデフォルトの設定を変更しなくても、おそらくdoubleclick.netなどの広告<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>が保存されることになるだろう。</li> <li>また、保存済みの<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>は全ての<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロックしても送信される <ul> <li>「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロック → 常に」に設定するとサイトにログインできなくなるのを確認する</li> <li>「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロック → しない」に設定して適当なサイトにログインする</li> <li>「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロック → 常に」に設定して、訪問するとブロックしていても、ログイン状態が維持されているのが確認できる</li> </ul></li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>にとって<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>のブロックとは「サーバーから送られてきた<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を保存するかどうかの設定」で、既に保存した<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を送信するかどうかを制御することが出来ない</li> </ul> </div> </div> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/Opera">Opera</a></h4> <ul> <li>10.50で一瞬、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>のブロックがデフォルト設定になった。</li> <li>10.51で元に戻された <a href="http://jp.opera.com/docs/changelogs/windows/1051/">http://jp.opera.com/docs/changelogs/windows/1051/</a></li> <li>ログイン出来ないサイトが生じたため、と説明されている <ul> <li><a href="http://d.hatena.ne.jp/saiton/20100322/1269254994">http://d.hatena.ne.jp/saiton/20100322/1269254994</a></li> </ul></li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/opera">opera</a>:configでは内部的には9段階の設定項目になっている。 <ul> <li><a href="http://jp.opera.com/support/usingopera/operaini/">http://jp.opera.com/support/usingopera/operaini/</a> Enable Cookies参照</li> </ul></li> <li>11.52で試したところ、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロックしても、画像やjsでの<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>セットをブロックするだけで、iframeで<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をセットすることができる。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を無効化しても保存済みの<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>は送信される。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>と同等。</li> </ul> <div class="section"> <h5><a class="keyword" href="http://d.hatena.ne.jp/keyword/Netscape">Netscape</a></h5> <ul> <li>Netscape7で<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>対応が進められていたが、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Firefox">Firefox</a>には取り込まれなかった。</li> <li><a href="http://news.mynavi.jp/news/2002/09/18/08.html">http://news.mynavi.jp/news/2002/09/18/08.html</a></li> </ul> </div> </div> <div class="section"> <h4>まとめ <a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の設定</h4> <p>ブラウザ毎に見ると</p> <ul> <li>IE6以降 : デフォルトでブロックして<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>という抜け道用意</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Firefox">Firefox</a>, <a class="keyword" href="http://d.hatena.ne.jp/keyword/Opera">Opera</a> : デフォルトでブロックしたいけど動かなくなるサイトが出て困るのでブロック出来なかった</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Chrome">Chrome</a> : ブロックされない。ブロックすれば送信もブロックされるように最近変わった。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a> : デフォルトでブロックするけど送信はするという穴を残す</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Netscape">Netscape</a> : 終了した</li> </ul><p>デフォルト設定</p> <ul> <li>デフォルトで<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の受信をブロックする IE6以降、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>(バグあり)</li> <li>デフォルトで<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送信をブロックする IE6以降</li> <li>他のブラウザは、全ての<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を受け入れるし送信する</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>コンパクトポリシーさえ記述すれば、<a class="keyword" href="http://d.hatena.ne.jp/keyword/IE">IE</a>も全ての<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を送受信する。</li> </ul><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>送信に関するポリシー</p> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Firefox">Firefox</a>はFirefox3において「ブロックしているのに送信がされるのはバグだ」と判断した</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロックするポリシーを持っているが、送信はブロックしない。</li> <li>ファーストパーティ<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>として既に受け入れている<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送信については、<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>ポリシーを吐き出せば、<a class="keyword" href="http://d.hatena.ne.jp/keyword/IE">IE</a>,<a class="keyword" href="http://d.hatena.ne.jp/keyword/Firefox">Firefox</a>,<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>,<a class="keyword" href="http://d.hatena.ne.jp/keyword/Chrome">Chrome</a>,<a class="keyword" href="http://d.hatena.ne.jp/keyword/Opera">Opera</a>全てのデフォルト設定で有効である。 <ul> <li>(外部<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>上での)<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%B9%A5%BF%A1%BC">はてなスター</a>や<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>のlikeボタンが殆ど全ての環境で動作している理由がこれだ。</li> </ul></li> </ul> </div> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/Microsoft">Microsoft</a>と<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>に対応しなかった他のブラウザの関係</h4> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>のコンパクトポリシーがIE6と共にサポートされた。</li> <li><a href="http://msdn.microsoft.com/ja-jp/library/ms537341(v=vs.85).aspx">http://msdn.microsoft.com/ja-jp/library/ms537341(v=vs.85).aspx</a></li> <li>Netscape7でも不完全ながらサポート <a href="http://news.mynavi.jp/news/2002/09/18/08.html">http://news.mynavi.jp/news/2002/09/18/08.html</a></li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Firefox">Firefox</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>サポートをやめた <a href="http://en.wikipedia.org/wiki/P3P#Criticisms">http://en.wikipedia.org/wiki/P3P#Criticisms</a> <a href="https://bugzilla.mozilla.org/show_bug.cgi?id=225287">https://bugzilla.mozilla.org/show_bug.cgi?id=225287</a></li> </ul><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/IE">IE</a>が<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>コンパクトポリシーをサポートした時、<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>コンパクトポリシーが定義されていれば問答無用で受け入れてしまうというデフォルト設定を採用した。その結果、今では「我々は<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>ポリシーをサポートしない、我々のプライバシーポリシーはこちら」といった<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>ヘッダが使われるなどしている。それでも<a class="keyword" href="http://d.hatena.ne.jp/keyword/IE">IE</a>は何の警告も無く<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を受け入れる。</p><p>本来目指していたビジョンは、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B5%A1%B3%A3%C5%AA">機械的</a>に読み取り可能な<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>ポリシーを使ってユーザー自身のプライバシーポリシーと、サイト側のプライバシーポリシーを比較し、必要に応じて人間に読み取り可能なポリシーを提示して、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を受け入れるかどうかユーザーが判断できるというものだった(という認識を持っている、当時のニュースでもそのように報道されている)。<a class="keyword" href="http://d.hatena.ne.jp/keyword/IE">IE</a>以外のブラウザは、<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>サポートに追随をしなかったので、実質的に<a class="keyword" href="http://d.hatena.ne.jp/keyword/IE">IE</a>に<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を食わせるためのおまじないとして形骸化してしまっている。</p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Microsoft">Microsoft</a>にとっては、<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>コンパクトポリシーに対応することで、自分たちのサービスでは堂々と<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を使用することができるようになった。他のブラウザにとっては「<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>をサポートしないまま、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をデフォルトでブロックする設定」にしたならば、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Microsoft">Microsoft</a>提供のサービスや、その他<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>ポリシーによって<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>が使えることを期待しているサービスが使えなくなってしまう。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Mozilla">Mozilla</a>は名指しで<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を無効化すると<a class="keyword" href="http://d.hatena.ne.jp/keyword/Microsoft">Microsoft</a>のサービスが使えなくなると書いている。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Microsoft">Microsoft</a>のサービスが使えなくても構わないと思ったのか、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロックする設定を採用した(ただし送信はする)。「<a class="keyword" href="http://d.hatena.ne.jp/keyword/safari">safari</a> <a class="keyword" href="http://d.hatena.ne.jp/keyword/hotmail">hotmail</a> 使えない」などで検索すると分かるだろう。</p><p>ブラウザ側からすると、プライバシーに配慮したデフォルト設定にするためには「複雑で労力に見合わないガ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%AF">ラク</a>タと化した<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>ポリシーに対応するか」「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Microsoft">Microsoft</a>やその他<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>に依存するサイトが機能しなくなっても構わないとするか」という二択を迫られることになった。</p><p>Webサイト側からすると「ブロックしても送信は行われる」「iframe内で遷移させればブロックされていても保存される」といった不具合だか仕様だか分からない抜け道を利用して、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>で動作するような配慮をしてきたり、<a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>コンパクトポリシーを利用しつつ、動作しなかったらとにかく<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロックする設定を解除するように案内をすることで、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>に依存したサービスを作ってきた。結局<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>以外のブラウザは互換性を重視し「デフォルトで全ての<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を受け入れる」という設定を変えることが出来なかった。</p> </div> <div class="section"> <h4>重要なポジションに居る<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a></h4> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>がデフォルトでブロックされる<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>は「ブロックするけど送信はする」という仕様によってたまたま動いているサイトが多いというだけの状態である。もし<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>が「送信もブロックする」というポリシーを採用したら、ログイン済みのiframeや画像やjsを埋め込むことに依存しているサービスは、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>と<a class="keyword" href="http://d.hatena.ne.jp/keyword/iPhone">iPhone</a>で動作しなくなることになる。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>はともかく、<a class="keyword" href="http://d.hatena.ne.jp/keyword/iPhone">iPhone</a>はモバイルにとって結構なシェアであるし、ブラウザの設定変更を促すのも難しいだろう。サイト毎に有効にする機能も存在していない。</p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Apple">Apple</a>は「追跡<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロックする」「あなたのプライバシーをしっかり保護します」と明言しているので、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>をブロックするというデフォルト設定自体が変更されることは、まずないだろう。現状、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送信をブロックしていない。ファーストパーティとして<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>がセットされれば、他の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>ではそれが追跡<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>として機能する。あなたが<a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>をデフォルト設定で使っていても、ある程度普通にインターネットをしていれば、doubleclick.netの<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>がセットされることになるだろう。</p> </div> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送信が有効であることによって生じるセキュリティ上の問題</h4> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>が有効であることによって発生している問題が多くある。それは<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>によって認証された状態で他の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>に埋め込まれることによって、ユーザーが意図しない情報の漏洩が発生したり、操作が行われたりするという問題だ。この手の問題は、ブラウザ側でもリスクが軽減されるように修正がされることも多いが、ブラウザ側で対応すべき問題なのか、Webサイト側で対応すべき問題なのかが曖昧になっている。クリックジャッキングはWebサイト側での対応を必要としたため、対策がされていない大半のサイトが危険に晒されている状態になっている。</p> <ul> <li>Webサイトに<a class="keyword" href="http://d.hatena.ne.jp/keyword/CSRF">CSRF</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>があった場合、画像やscriptタグやiframeで攻撃URLを埋め込むことでユーザーに気付かれずに実行することが出来る</li> <li>Webサイトに<a class="keyword" href="http://d.hatena.ne.jp/keyword/XSS%C0%C8%BC%E5%C0%AD">XSS脆弱性</a>があった場合、iframeで攻撃URLを埋め込むことでユーザーに気付かれずに実行することが出来る。</li> <li>フィッシングサイトにログイン状態のiframeを埋め込み、ユーザー名やアイコンなどを表示する事ができる。これによってフィッシングの成功率あがる。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/CSS">CSS</a>を使って透明にした状態のiframeを埋め込むことで、クリックジャッキングの問題が発生する。 <ul> <li>未ログイン状態であれば想定される被害は軽微になる、ということを過去に書いた <a href="http://d.hatena.ne.jp/mala/20090306/1236341606">http://d.hatena.ne.jp/mala/20090306/1236341606</a></li> </ul></li> <li>画像のクロス<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>読み込みや、<a class="keyword" href="http://d.hatena.ne.jp/keyword/WebGL">WebGL</a>でのクロス<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>テクスチャなどの問題 <ul> <li>本来データとしては読み込めない画像を読み込めてしまう問題であり、外部リソースを読み込む際には認証情報を送らないというポリシーによって影響を軽減できる</li> </ul></li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/JSON">JSON</a>ハイジャックの問題 <ul> <li>ログイン状態で機密情報を含む<a class="keyword" href="http://d.hatena.ne.jp/keyword/JSON">JSON</a>レスポンスを他の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>から読み出すことが出来る問題</li> </ul></li> <li>HTTPレスポンスの差異によってログイン状態の判別が出来る問題 <a href="http://hacks.mozilla.org/2011/02/an-interesting-way-to-determine-if-you-are-logged-into-social-web-sites/">http://hacks.mozilla.org/2011/02/an-interesting-way-to-determine-if-you-are-logged-into-social-web-sites/</a> <ul> <li>画像やjsのレスポンスで使ってるサービスを判別することができてしまう</li> </ul></li> </ul><p>もちろん、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>以外で認証がかかっているケースもあるので、ブラウザ側での対策も取られなければならないのだが、</p> <ul> <li>ユーザー毎に固有のレスポンスを返すようなURLに対しては、アクセス制限をかけた上で</li> <li>リソースが外部<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>に埋め込まれて参照された際には「認証情報を送らない」=「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を送信しない」</li> </ul><p>というシンプルなルールで、将来に渡って、この手のsame origin policyを突破するバグによる影響を軽減することができる。</p><p>特にログイン状態の判定、ログインしているかどうかに応じて<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B9%A5%C6%A1%BC%A5%BF%A5%B9%A5%B3%A1%BC%A5%C9">ステータスコード</a>が変わるもの、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B1%FE%C5%FA%BB%FE%B4%D6">応答時間</a>が変わるものなどまで含めると、Webサイト側では殆ど対応のしようがないだろう。多くのWebサイトはログイン済みの状態で外部サイトに埋め込まれることを想定していないし、必要ともしていない。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送信を必要としている一部のサイト、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>にまたがったト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>を行なっている広告や<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%AF%A5%BB%A5%B9%B2%F2%C0%CF">アクセス解析</a>、ログイン状態を必要とする<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A6%A5%A3%A5%B8%A5%A7%A5%C3%A5%C8">ウィジェット</a>・ガジェット・<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D6%A5%ED%A5%B0%A5%D1%A1%BC%A5%C4">ブログパーツ</a>と呼ばれるもの、ダメな仕組みの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B7%A5%F3%A5%B0%A5%EB%A5%B5%A5%A4%A5%F3%A5%AA%A5%F3">シングルサインオン</a>、などのために、ブラウザはデフォルトの設定を変更することができないし、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送信を必要としない大多数のサイトのユーザーが<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%F8%BA%DF%C5%AA">潜在的</a>な危険が大きい設定でインターネットを利用し、被害をうけることになる。</p> </div> <div class="section"> <h4>Webサイト側からみた問題点</h4> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>を「送って欲しくない」ことを指示する方法が無い。</li> <li>例えばクリックジャッキング対策では、サイト運営者側が「未ログイン状態で埋め込まれるならば構わない」と考えていても、そのように指示する手段がない <ul> <li>X-Frame-Optionsはフレーム内での参照を丸ごと拒否することになる。</li> </ul></li> <li>我々はト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>をしないし、ログイン済みの状態で他の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>に埋め込まれることも望んでいない、と表明する手段がない</li> </ul> </div> <div class="section"> <h4>ここまでのまとめ</h4> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の設定に関するポリシーはブラウザ毎に異なる</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/P3P">P3P</a>コンパクトポリシーをHTTPレスポンスヘッダに追加さえしていれば、主要なブラウザ全てのデフォルト設定で<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送信が行われる</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>は今でも広く使われているし、ブラウザはデフォルト設定を変えることができない</li> <li>ログイン状態で外部サイトに埋め込まれることによって発生しているセキュリティ上の問題が数多くあり、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送信をオフにすることで影響を軽減することができる。</li> <li>大半のユーザーはこのような問題に無関心であるのでブラウザをデフォルト設定のまま使うし、デフォルト設定に依存してWebサイトが<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>に依存した設計をする。</li> <li>著名なセキュリティ研究者でもブラウザの腐った実装や<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の利用の実態について良く知らない</li> </ul><p>これは三部構成の記事なので、次の記事に続きます。Part2ではWebアプリケーションにおける利用、外部<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>向けの埋め込みパーツでの利用とその問題点について書きます。</p> </div> Fri, 25 Nov 2011 17:46:59 +0900 hatenablog://entry/17680117127139888575 mixi足あと廃止に寄せて https://mala.hatenadiary.org/entry/20110817/1313579812 <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>が6年以上に渡って放置してきた足あと機能を使って訪問者の個人特定が可能な<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>を修正した。簡単に説明すると<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>以外のサイトからでもユーザーに気付かれずに、その人の<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>アカウントを特定するということが出来たが、出来なくなった。(正確にはユーザーが気付いたとしても特定された後)</p><p>アダルトサイトが訪問者の<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>アカウント収集したり、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EF%A5%F3%A5%AF%A5%EA%A5%C3%A5%AF%BA%BE%B5%BD">ワンクリック詐欺</a>サイトが<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>アカウント特定して追い込みかけたり、知らない人からメッセージ送られてきてURL開いたら<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>アカウント特定されてたり、そういうことが今まで出来ていたのが出来なくなった。</p><p>過去にもいろんな人が言及してるし、すでに終わった議論だと思ってる人もいるだろう。世間一般にどれぐらい認知されていたのかはよく分からないが、少なくとも技術者やセキュリティ研究者の間ではよく知られている問題だった。</p> <ul> <li><a href="http://internet.kill.jp/wiki/index.php?%B5%BB%BD%D1%2Fmixi%C2%AD%A4%A2%A4%C8%A5%ED%A5%B0%CC%E4%C2%EA%A4%DE%A4%C8%A4%E1%A5%B5%A5%A4%A5%C8">http://internet.kill.jp/wiki/index.php?%B5%BB%BD%D1%2Fmixi%C2%AD%A4%A2%A4%C8%A5%ED%A5%B0%CC%E4%C2%EA%A4%DE%A4%C8%A4%E1%A5%B5%A5%A4%A5%C8</a></li> <li><a href="http://www.fladdict.net/blog-jp/archives/2005/12/mixi.php">http://www.fladdict.net/blog-jp/archives/2005/12/mixi.php</a></li> <li><a href="http://d.hatena.ne.jp/yaneurao/20060202#p1">http://d.hatena.ne.jp/yaneurao/20060202#p1</a></li> <li><a href="http://hxxk.jp/2006/02/03/0007">http://hxxk.jp/2006/02/03/0007</a></li> <li><a href="http://twitter.com/#!/lumin/status/77772103918690305">http://twitter.com/#!/lumin/status/77772103918690305</a></li> </ul><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/twitter">twitter</a>に書いて結構RTとかされたんだけど、多分周知が十分ではない気がする</p> <ul> <li><a href="http://twitter.com/#!/bulkneets/status/101886631560224768">http://twitter.com/#!/bulkneets/status/101886631560224768</a></li> </ul><p>「訪問履歴が残る」という部分については今でも検証できるので、キャプチャを取っておいた</p> <ul> <li><a href="https://plus.google.com/112675818324417081103/posts/ZKYGSbqooJL">https://plus.google.com/112675818324417081103/posts/ZKYGSbqooJL</a></li> </ul><p>自分はこの修正を全面的にではないが支持している。が、足あと機能の復活を求める署名運動などが始まって色々面白いことになってて、あー、この人達は足あと機能の存在に何の疑問も持ってこなかったのかー平和だなーと思っていたのだけど、色々見過ごせないことが多くなってきたのでブログに書く次第です。</p> <ul> <li><a href="http://getnews.jp/archives/135279">http://getnews.jp/archives/135279</a></li> <li><a href="http://getnews.jp/archives/136071">http://getnews.jp/archives/136071</a></li> </ul> <div class="section"> <h5>何のためにこんなことを書いているのか</h5> <p>足あと機能の廃止によってセキュリティが低下したとする主張を見過ごすことが出来ないためです。</p><p>典型的にはこういったものです</p> <blockquote> <p>すべての足あとが表示されないのはセキュリティ上不安</p><p>新しい『先週の訪問者』では、「友人」「友人の友人」「<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi%C6%B1%B5%E9%C0%B8">mixi同級生</a>」「同僚ネットワーク」 しか表示されない。<br /> つまり、全く関係ない垢の他人や第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>は一切表示されなくなります。<br /> これでは、何らかの悪意を持つ誰かが「ログイン時間のチェック」を繰り返すなどのストーカー行為を繰り返していても対処ができくなる。<br /> また、誰が日記を読みにきたかもわからない。 </p><p><a href="http://www47.atwiki.jp/ashiato/pages/13.html">http://www47.atwiki.jp/ashiato/pages/13.html</a></p> </blockquote> <blockquote> <p> ・反対派の会員の間には、リアルタイムでの足あと表示がなくなることにより<br /> 「ストーカー対策やプライバシー保護などに関して、 セキュリティの低下では<br /> ないか?」と心配する意見も出ているようですが、御社としてはどのようにお考<br /> えでしょうか?</p><p><a href="http://officeyoucan.com/wp/2011/06/18/mixi%E3%81%95%E3%82%93%E3%80%81%E7%A7%81%E3%81%9F%E3%81%A1%E3%81%AE%E8%B6%B3%E3%81%82%E3%81%A8%E8%BF%94%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%EF%BC%81/">http://officeyoucan.com/wp/2011/06/18/mixi%E3%81%95%E3%82%93%E3%80%81%E7%A7%81%E3%81%9F%E3%81%A1%E3%81%AE%E8%B6%B3%E3%81%82%E3%81%A8%E8%BF%94%E3%81%97%E3%81%A6%E3%81%8F%E3%81%A0%E3%81%95%E3%81%84%EF%BC%81/</a></p> </blockquote> <p>自分の情報を誰が参照したのか分かるようにする、という方式のセキュリティも勿論あるだろうし、それについて否定をしているわけではない。しかし、足あと機能が存在することによって生じてきたセキュリティやプライバシー上の問題について十分な理解のないままで「セキュリティが低下した」という主張を通すのは無理がある。ストーカー行為を問題だとするならば、ストーカーが足あと機能を使ってあなたの<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>アカウントを特定するといったことも出来た。そのユーザーに関する全てのページで足あとが付くわけでも無かったし、例えばマイミク一覧を表示するlist_friend.plなんかは足あとが付かないしマイミクの増減監視して交際関係にあった誰と誰が別れただとか特定するネットストーカーの話なんてのは、皆さんよくご存知のとおりですね。足あと機能を監視カメラに例えている人がいたが、その監視カメラはそもそも写らないこともあってぶっ壊れていたし、取り外して<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>の外に設置することが出来た。</p> </div> <div class="section"> <h5>アカウント特定されて何か問題あるの?</h5> <p>外部サイトからアカウントを特定される問題について述べたときに「どうせ漏れるのは公開情報なので問題が無い」という主張をする人が(たまに)居るのだけど、それは問題を軽視している。もちろん秘密の情報を読み取られる方が、深刻な<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>ということになるけれど、あなたが匿名でいることを選択したときに(自分が誰であるのかをまだ教えていないときに)相手にとって自分が誰であるのかということは「非公開情報」だ。</p><p>ログインしたままで居ると他のサイトからでも情報を取得できる(他のサイトに入力した情報が読み取られる)ということが、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>ではなく「そういうものだ」と受け入れられてしまってはいけない。それは、インターネットにおけるサービス全般の信用を損ねてしまうからだ。(ただし、現実的な問題として、この手の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>は多くのサイトにあるので、ユーザーが適宜ブラウザのシークレットモードを使うなどして自衛したほうがいい)</p><p>外部サイトで把握している既存のidと関連付けられたり、収集したidが売り渡されたり、交換されたりする行為が行われていてもユーザーが気付くことが出来ず、技術的・法的に十分な抑止力がない。ついでに、<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>がソーシャルアプリの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a>に対して生のユーザーidを渡さないようにするという変更方針を出してることも参考にすべきで、足あと機能を通じて訪問者のidを気軽に取得できるという状況を放置したままで、こういった変更を行っても片手落ちということになる(優先順序おかしいとツッコミが入るだろう) <a href="http://developer.mixi.co.jp/news/news_apps/16239/">http://developer.mixi.co.jp/news/news_apps/16239/</a><br /> </p> </div> <div class="section"> <h5><a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>は足あとを使ったト<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E9%A5%C3%A5%AD%A5%F3%A5%B0">ラッキング</a>について知っていたのか?</h5> <p>勿論知ってる。6年前から知ってる。笠原社長も知っている。知っていたが対策をしてこなかった。</p> <ul> <li><a href="http://b.hatena.ne.jp/kusigahama/20060203#bookmark-1329065">http://b.hatena.ne.jp/kusigahama/20060203#bookmark-1329065</a></li> <li><a href="http://yagi.xrea.jp/2005/12/mixilogfull.png">http://yagi.xrea.jp/2005/12/mixilogfull.png</a></li> </ul><p>また、方法は違うけれど<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>においても同様の問題、訪問者のアカウントを意図せずに取得可能である(実名登録してれば実名がわかる)という文章を書いて<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>日本法人の社長に送りつける際に<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>のCTOを伝言係に使った(前回の日記参照)。その際に「<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>にも関係のあることだと思います」と言付けしたので、そういった行動が<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>の判断に何らかの影響を与えた可能性がありますが17000人に恨まれるのはゴメンだ。</p> </div> <div class="section"> <h5>悪用されないように対策すればいいだけじゃないの?</h5> <p>外部サイトに埋め込まれた場合には足あとを付けないという対策は出来ます。簡単にいえば<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>のページを表示した後に、追加で足あとを記録するための画像をロードするなり<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8">スクリプト</a>を実行するようにすれば可能です。そういった変更を加えることで意図せずに足あとを付ける、というケースを防ぐことが出来ますが、その場合には(ブラウザ内で行われる足あと記録のための処理をブロックすることで)足あとを付けずに訪問することも可能になります。足あと機能を監視カメラの類だと思っている人からすれば、訪問しても足あとを残さない抜け穴を作ることになります。</p><p>「悪用されないように<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>だけ修正することはできないの?」か、と言われれば「大幅な仕様変更を加えない限り、不完全な対策しか出来ない」 <a href="http://twitter.com/#!/bulkneets/status/103836004267458560">http://twitter.com/#!/bulkneets/status/103836004267458560</a><br /> </p> </div> <div class="section"> <h5>なぜ5年も6年も放置されてた問題を今直す必要があるのか?</h5> <p>UIエンジニア的観点から言うと、イイネボタンが読んだことを伝える機能の代替手段として十分に機能するだろうという算段が整ったからでしょう。そして一部のユーザーの反発を買っているが、いつものことで仕方ないと思ってるんでしょう。提示された代案が今よりマシではないと認識されることで「難しいことは分からないけど、悪用する人がいなければいいだけでしょ、良いから元に戻して!!」という感情的な反対運動に押しつぶされてしまうことを危惧しています。大変ですね。</p><p>セキュリティリサーチャー的な観点から言うと「<a class="keyword" href="http://d.hatena.ne.jp/keyword/CSRF">CSRF</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>を放置したままログイン状態で外部サイトを訪問することを前提とした機能を開発すること自体が誤り」かつ「ブラウザが<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の送信をデフォルトでブロックするような流れにもなってない」ので、今、修正しないといけない。ブラウザが外部リソースをロードする際に「個人を特定しないように無個性化・匿名化してリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トする」というのが、もしも一般的になっていたとすれば、<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>側でこの問題を解決する必要はなかった。(あくまで外部サイト埋め込みの場合は。バレても良い前提で<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>のURLを踏ませる場合には対策にならない)</p><p>もう少しくだけた言い方で書くと「それは<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>の仕様なので使い終わったらログアウトしてください」という言い訳が、もはや通用しなくなった。<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>自身が外部のWebサイトに対する埋込みのイイネボタンなどを提供するようになり、<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>にログインしっぱなしでネットサーフィンしてくれないと外部サイトとの連携機能の魅力が無くなってしまうからだ。こういった状況で「<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>にログインしたまま外部サイトを訪問すると意図せずに<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>アカウントを特定されるリスクがありますよ」と周知させないでいるのは、ユーザーに対する不義理であるだろう。</p><p>それから単純に5年6年前と比べて<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>のユーザーが増えた(訪問者が<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>にログインしている確率が高くなった)ので悪用されるリスクが高くなったというのもあるだろう。</p> </div> <div class="section"> <h5>こんな記事書いてるお前は<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>と何らかの関わりがあるのか?</h5> <p>親しいエンジニアが何人かいます。<a class="keyword" href="http://d.hatena.ne.jp/keyword/memcached">memcached</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C7%A5%D0%A5%C3%A5%B0">デバッグ</a>手伝ったら<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EC%A5%C3%A5%C9%A5%D6%A5%EB">レッドブル</a>が一箱送られて来たり、関連サービスの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>を指摘したら茶菓子とコーヒーが送られてきたことがあるし、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BC%E9%C8%EB%B5%C1%CC%B3">守秘義務</a>に反しない程度の範囲で内情とか裏側についての情報交換をすることもある。お世話になっております、ありがとうございます、しかし俺は<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>があったということを大々的に広めようとしているわけですから、蜂の巣をつつくな余計なことを言うなと思われているでしょう。どうせ炎上するならそっちの方がマシだ!!!この件については何も聞いてないし俺の独断で勝手にやってる。</p> </div> <div class="section"> <h5><a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>やコミュニティに望んでいること</h5> <p>足あと機能に存在していた問題点について理解した上で、もう一度足あと機能が必要なものかどうか考えなおして欲しい。少なくとも「他人の足あとがリアルタイム」で表示されるのは、プライバシー・セキュリティ上の問題が大きいものだということを理解した上で議論して欲しい。</p> <ul> <li><a href="https://plus.google.com/112675818324417081103/posts/ZKYGSbqooJL">https://plus.google.com/112675818324417081103/posts/ZKYGSbqooJL</a></li> </ul><p>に書いてあるけど、自分は「友人はリアルタイムに反映でもいいんじゃねーの」という考えで、セキュリティ上の問題がある形で復活するようなことが無ければどうでもいい。</p><p>蛇足だけれど、足あと機能の復活を望んで署名をしているのは本当に一般ユーザーだけなのだろうか?「赤の他人の足あとも表示して欲しい」という点に重きをおいた主張をするのは、もしかすると「足あと<a class="keyword" href="http://d.hatena.ne.jp/keyword/spam">spam</a>行為によるアクセス稼ぎ」や「強制足あとによるid収集や<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CC%BE%B4%F3%A4%BB">名寄せ</a>行為」によって、利益を得ていた側の人達が紛れていて扇動をしているのではないか、という邪推をしてしまう(特定の人物がそうだと言っているわけではないが、署名の水増し程度なら簡単にできる)</p><p>長文乙、終わり。</p> </div> Wed, 17 Aug 2011 20:16:52 +0900 hatenablog://entry/17680117127139888874 主人がFacebookアカウントを剥奪されて3週間が過ぎました https://mala.hatenadiary.org/entry/20110328/1301299332 <p><a href="http://ma.la/fb/">http://ma.la/fb/</a> というのを書いたので、経緯と補足を書きます。</p><p>読むのが面倒くさい人向けに、ものすごく簡単に要約しておきます。</p> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>にはリンクを他人と共有するいいねボタン(likeボタン)というのがある。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>の「ファンページ」なるものをつくると、いいねボタンを押したのが誰だか分かる機能がある。</li> <li>ユーザーに気付かれないように細工したiframe内のボタンをクリックさせたりするクリックジャッキングという攻撃手法があり、いいねボタンを強制的に押させることが出来る</li> <li>これによって悪意のあるサイトは、訪問者の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>アカウントを特定することが出来る <ul> <li>この手の問題は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>に限った話ではない。<a class="keyword" href="http://d.hatena.ne.jp/keyword/CSRF">CSRF</a>やクリックジャッキングで行われたアクションの結果が第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>から観測可能な全てのサービスにある。</li> <li>例えば強制的に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%D6%A5%C3%A5%AF%A5%DE%A1%BC%A5%AF">はてなブックマーク</a>させたり<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%B9%A5%BF%A1%BC">はてなスター</a>を押させる方法があるなら、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>のアカウントが分かる。</li> <li>通常ならそのサービスのidと、公開状態のプロフィールが分かることになる。</li> </ul></li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>の場合は実名登録の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CD%F8%CD%D1%B5%AC%CC%F3">利用規約</a>を強く徹底しているので、本名を登録してるならば(例えば日本の法律においては個人情報と定義されているところの)本名が分かる</li> </ul><p>クリックジャッキングは方法の一つでしか無くて、主旨ではありません。これは<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>の設計上の問題の一面にしか触れておらず、あとで<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>についての問題を書く予定です。</p> <div class="section"> <h4>アカウント停止後の経緯とかやり取りとか</h4> <p>今までの経緯をさらりと書く。</p> <ul> <li>3/2 <a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>アカウントが停止される、自動確認のメール送る、返事を出す</li> <li>3/3 <a class="keyword" href="http://d.hatena.ne.jp/keyword/facebook">facebook</a> -> me <a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>から最初の返事、テンプレっぽい。身分証を送れというもの</li> <li>3/3 me -> <a class="keyword" href="http://d.hatena.ne.jp/keyword/facebook">facebook</a> 免許持ってないよ。この写真じゃ駄目か、と年賀状の写真送る。 <ul> <li>アカウントは個人利用、ハンドルネームじゃなくて実世界で使ってる名前だと強調。</li> <li>いくつかma.laで実世界での活動実績が分かるリンク貼る</li> </ul></li> <li>3/8 <a class="keyword" href="http://d.hatena.ne.jp/keyword/facebook">facebook</a> -> me 大体5日程度で返事が来るようだ。 <ul> <li>不便をかけて謝るが政府発行の写真付き証明書じゃないと駄目</li> <li>そうじゃないとあなたのリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トを処理できない</li> </ul></li> <li>3/9 me -> <a class="keyword" href="http://d.hatena.ne.jp/keyword/facebook">facebook</a> このようなメールを送る <a href="https://gist.github.com/859854">https://gist.github.com/859854</a> <ul> <li>要約すると、お前のサイトのセキュリティがダメダメだから今の状態で個人情報を入れたくないよ、セキュリティ担当者と代われ</li> </ul></li> <li>3/15 <a class="keyword" href="http://d.hatena.ne.jp/keyword/facebook">facebook</a> -> me 返事が来る。長いが主に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CD%F8%CD%D1%B5%AC%CC%F3">利用規約</a>のコピペ。言ってることは同じ。 <ul> <li>セキュリティ担当者に転送しろと言ったのにスルーされる。</li> </ul></li> </ul><p>ここまでが前回のあらすじで、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookpad">Cookpad</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%B4%A4%CF%A4%F3%C6%FC%B5%AD">ごはん日記</a>までチェックしている俺の熱心なストーカーの皆さんは御存知のとおりです。</p> <ul> <li>3/16 このままでは進展しないので、もっとマシな方法で連絡を取ろうと試みる。 <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/twitter">twitter</a>のtaroooという人が<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>日本法人の代表者だと教えてもらう</li> </ul></li> <li>3/17 2つほど@を飛ばすが返事なし。</li> <li>3/17 <a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>の問題点について英語で書くの大変なので取り敢えず日本語で書く。後で誰かに翻訳してもらおう。</li> <li>3/18 <a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>日本法人代表から相変わらず返事なし。その間、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C5%EC%B5%FE%C5%C5%CE%CF">東京電力</a>公式アカウントをフォローしたのを確認したので<a class="keyword" href="http://d.hatena.ne.jp/keyword/twitter">twitter</a>を見ているがreplyを無視してるのだろうと推測する。</li> <li>3/18 <a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>日本法人代表がフォローしている誰かを経由して<a class="keyword" href="http://d.hatena.ne.jp/keyword/twitter">twitter</a>のDMを送ってらうことを画策する。</li> <li>3/18 <a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>のCTOに送る。<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>にも関係する内容なので。すぐに転送してもらう。</li> <li>3/19 児玉太郎氏連絡が取れて<a class="keyword" href="http://d.hatena.ne.jp/keyword/twitter">twitter</a>のDMが来る。メールを送る。 <ul> <li>停止されたアカウントについて</li> <li>セキュリティ上の問題点については、必要だったら認証かけるよ</li> </ul></li> <li>3/19 児玉太郎氏からメールの返信が来る。 <ul> <li>セキュリティについて:問題を認識しており調査中 アカウントについて:特別対応可能か調整してみるとのこと。</li> </ul></li> <li>3/22 本社のユーザーオペレーションから日本語のメール。 <ul> <li>「お客様の実名をお知らせいただき次第、こちらでお客様のお名前を変更し、アカウントを再開いたします。」</li> <li>プライバシー設定についてのコピペが付いてくる。</li> <li>実名を知らせたくない場合はファンページを作れるとか、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B8%A1%BA%F7%A5%A8%A5%F3%A5%B8%A5%F3">検索エンジン</a>向けの公開設定が出来るとか。</li> </ul></li> <li>3/22 すぐにMa Laが本名ですと送る <ul> <li>今まで送ったメールの内容をまるで無視して日本語で書きなおしただけに思われたので、再度情報共有するようにと書く。</li> <li>こちらが指摘したセキュリティ上の問題点に対しての解決策になってない。</li> <li>自分はユーザーとして「私のプライバシーが心配、不安」ということではなく技術者として「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>がある」と主張している。</li> </ul></li> <li>3/25 すぐに対応するみたいに書いてあるのに返事が来ない。</li> <li>3/25 <a href="http://ma.la/fb/">http://ma.la/fb/</a> を <a class="keyword" href="http://d.hatena.ne.jp/keyword/twitter">twitter</a>に張る。</li> <li>3/26 だいたい8時間後に<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>から返事が来る。</li> </ul><p>まだやりとり中なので仔細は省くけど、大まかな流れはこんなところ。この手の問題に対するサービス側、ユーザー側で取れる対策方法と<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>の問題についても別途書かないといけない。さて日本法人代表とコンタクトを取ることによって、本名だと主張して<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CD%F8%CD%D1%B5%AC%CC%F3">利用規約</a>のコピペが返ってくるという、アカウントの復帰もできないし<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>についての議論もできないというループ状況から一歩前進したわけであった。</p> </div> <div class="section"> <h4>児玉太郎氏への私信、公開質問状</h4> <p>今さっき、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>日本法人代表の児玉太郎氏から「対策が完了している」という主旨のメールがあった。<br /> そして案内されたURLがこちらだ <a href="http://forum.developers.facebook.net/viewtopic.php?pid=327314">http://forum.developers.facebook.net/viewtopic.php?pid=327314</a></p><p>私が指摘した問題は解決していません。また、対策完了の連絡を受ける前に<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>本社ユーザーオペレーションの人から「クリックジャッキングが行われていると疑われるページ」を検知する改良を行っているという連絡を受けています。そして、そういった対策方法の問題点は既にこちらから送ったメールに書いた通りで、問題について正しく認識していないようなので大変残念に思っています。</p><p>問題について正確に理解していないようなので補足します。</p> <ul> <li>ユーザーにリンクを強制的に投稿させることで、宣伝リンクを拡散させる<a class="keyword" href="http://d.hatena.ne.jp/keyword/spam">spam</a>行為や、ブラウザや<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D7%A5%E9%A5%B0%A5%A4%A5%F3">プラグイン</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>を利用した<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A5%EB%A5%A6%A5%A7%A5%A2">マルウェア</a>の配布に使われるといった問題があります。</li> <li>そしてこういった問題は、過去にも指摘されていますし、幾つかのニュースサイトが取り上げたのも記憶にあります。 <ul> <li>例えば <a href="http://www.sophos.co.jp/pressoffice/news/articles/2010/06/clickjacking.html">http://www.sophos.co.jp/pressoffice/news/articles/2010/06/clickjacking.html</a></li> </ul></li> <li>3/17に書いた文章内に書いてあるとおりですが、クリックジャッキング対策のコードが<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>内に含まれているのを認識しています、その上で書いています。</li> </ul><p>自分が指摘しているのは、linkが他者と共有されることによって<a class="keyword" href="http://d.hatena.ne.jp/keyword/spam">spam</a>行為や<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DE%A5%EB%A5%A6%A5%A7%A5%A2">マルウェア</a>の配布に使われる、という点ではなく「誰がボタンを押したのかが分かる」ということです。今のところ私が認識しているのはファンページの管理者が、誰がいいねボタンを押したのかを把握することができます。そして、クリックジャッキングによって強制的にボタンを押すことが出来る、あるいは、iframeのデザインによって「自分が何についていいねボタンを押そうとしているのかを認識できない状態」でボタンを押すことが出来るのが問題だと主張しています。これによってユーザーは自分の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Facebook">Facebook</a>アカウントが第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>に通知されることを認識しないままでlikeボタンをクリックします。</p><p>そこのところを取り違えないようにしてもらいたいと思います。また「全力で取り組む」「真剣に考えている」といった精神論ではなく、具体的な対策や問題が解決したか(する予定があるか)どうかを確認したいと思っています。</p> </div> <div class="section"> <h4>継続中なので</h4> <p>何か進展があったらまた書きます。</p> </div> Mon, 28 Mar 2011 17:02:12 +0900 hatenablog://entry/17680117127139889138 任天堂スペインから個人情報盗んでハッカーが脅迫したとされる事件について https://mala.hatenadiary.org/entry/20110216/1297883428 <p>スペインの話なんだけど<br /> <a href="http://www.inside-games.jp/article/2011/02/15/47390.html">http://www.inside-games.jp/article/2011/02/15/47390.html</a></p><p>「脅迫事件」であるのに、犯人が何を要求していたのか分からないというニュース記事で、大変な違和感がある。そして参考リンクのAFP通信の記事を読んでも良くわからない。軽く調べた結果、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C7%A4%C5%B7%C6%B2">任天堂</a>スペインのなんかのキャンペーンのサイトにとてもひどい<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>があり個人情報を取得した<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%CF%A5%C3%A5%AB%A1%BC">ハッカー</a>(adan_<a class="keyword" href="http://d.hatena.ne.jp/keyword/gecko">gecko</a>さん)が<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>の報告と共にお前のサイトは個人情報保護のための適切な手段をとっておらず犯罪なのでデータ保護当局に告発する用意がある、法的トラブルを避けるために交渉したいと電話番号書いたメールを送信、サイトは停止、adan_<a class="keyword" href="http://d.hatena.ne.jp/keyword/gecko">gecko</a>さんがelotrolaob.netのフォーラム上で<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>があったこと個人情報を入手していることを告白、脅迫と受け取られてスペインのメディアが2つほど報道、adan_<a class="keyword" href="http://d.hatena.ne.jp/keyword/gecko">gecko</a>さん<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C7%A4%C5%B7%C6%B2">任天堂</a>に対するメールの内容と<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>の詳細をフォーラム上で公開、数日後逮捕、警察が発表「4000人の個人情報が一般公開されるのを防いだ」、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B1%D1%B8%EC%B7%F7">英語圏</a>メディア報道、という経緯のようだ。</p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B9%A5%DA%A5%A4%A5%F3%B8%EC">スペイン語</a>で事件の経緯がまとまっている。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%CB%DD%CC%F5">Google翻訳</a> <a href="http://translate.google.com/">http://translate.google.com/</a> など使って読める。</p> <ul> <li>イベント詳細 <a href="http://www.elotrolado.net/wiki/Prueba_y_ver%C3%A1s">http://www.elotrolado.net/wiki/Prueba_y_ver%C3%A1s</a></li> <li>事件の詳細 <a href="http://www.elotrolado.net/wiki/Caso_Prueba_y_ver%C3%A1s">http://www.elotrolado.net/wiki/Caso_Prueba_y_ver%C3%A1s</a></li> <li>議論してるスレッド <a href="http://www.elotrolado.net/hilo_hilo-oficial-caso-quot-prueba-y-veras-quot_1571331">http://www.elotrolado.net/hilo_hilo-oficial-caso-quot-prueba-y-veras-quot_1571331</a></li> </ul><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%B5%A1%B3%A3%CB%DD%CC%F5">機械翻訳</a>だが引用する</p> <pre class="code" data-lang="" data-unlink>データにアクセスするための手順: (明らかに我々ができなくなります場合は、それは私の一部には非常に無責任な可能性もあるそうだが) アクセスが http://admin.pruebayveras.com 。 を押して、ユーザー名とパスワードを入力せずに入力してください。 ほら! あなたは、彼らが&#34;技術をハッキング&#34;されていることと思いますか?</pre><p>ずさんなセキュリティを棚にあげて被害者であることを強調するのはまさに<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A5%A4%A5%D0%A1%BC%A5%CE%A1%BC%A5%AC%A1%BC%A5%C9%C0%EF%CB%A1">サイバーノーガード戦法</a>に通じるところがあり、これはひょっとすると、admin画面に認証がかかっていなかったため、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C9%D4%C0%B5%A5%A2%A5%AF%A5%BB%A5%B9">不正アクセス</a>やハッキングの罪を(向こうではどういう基準なのか分からないが)適用することができないので、脅迫として無理やり逮捕したのではないだろうか。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B5%A1%B3%A3%CB%DD%CC%F5">機械翻訳</a>なので正確なニュアンスが分からないのだが、フォーラム上でも指摘されてるのでメールの内容は実際に「脅迫」だと受け取られる可能性はあるのだろう。しかし<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>を発見してそれにともなって個人情報を入手してしまっている場合に、どうするのが適切な対応なのだろうか、認証がかかっていない管理画面とはいえ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C9%D4%C0%B5%A5%A2%A5%AF%A5%BB%A5%B9">不正アクセス</a>だ何だのと茶番のような裁判を繰り広げることになる可能性は充分にある。もし俺が同じ立場であったならば「要求」するのはこういったことだろう。「入手した個人情報の消去の引換に、法的手段に訴えないことを保証してくれ」</p><p>もしハッキングを受けたとして法的手段を取られた場合に、容疑者は裁判に巻き込まれて面倒なことになり、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C7%A4%C5%B7%C6%B2">任天堂</a>はずさんなセキュリティだったことが公にされて評判が下がり、両者ともに損をすることになる。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%CF%A5%C3%A5%AB%A1%BC">ハッカー</a>側には「個人情報の消去」や「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>の詳細を公表しない」、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C7%A4%C5%B7%C6%B2">任天堂</a>側には「法的手段に出ない」「サイトの停止についてユーザーに誠意のある告知をする」「謝礼」などの交渉材料があっただろう。(スペインにおけるPマーク的なものがどうなっているのか知らないが、事故が起こったことを当局に報告する義務があるのかもしれないがそれはさておき)</p><p>犯人が愉快犯であることも可能性に入れた上で、個人情報が公開されないことを最優先として考えた場合に、警察沙汰にすることは正しい選択であるかもしれない。しかしながら(<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B5%A1%B3%A3%CB%DD%CC%F5">機械翻訳</a>なので正しいニュアンスが伝わっていないかもしれないが)個人的にはadan_<a class="keyword" href="http://d.hatena.ne.jp/keyword/gecko">gecko</a>さんの振る舞いは、充分に紳士的に思える。なぜならば、悪意のある人間であれば、修正前に公表されるし、とっくにすべての個人情報が漏洩しているし、犯人を特定することができないか、あるいは逮捕しても無駄な状況になっているだろうからだ。身元を明らかにした上で対話の用意があると連絡してきた時点で、充分に紳士的な振る舞いだ。もし<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B9%A5%DA%A5%A4%A5%F3%B8%EC">スペイン語</a>に堪能な人がいたら犯人のメールが脅迫と読めるのかどうか「4000人分の個人情報をオンライン上で公開する用意がある」なのか「データ保護当局に告発する用意がある」なのか、次々に個人情報を公開していってやがてすべての情報を公開するつもりがあったのかどうか、正確な翻訳を教えてほしい。少なくとも<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B5%A1%B3%A3%CB%DD%CC%F5">機械翻訳</a>では4000人分の個人情報をオンライン上に公開する意思があると書かれているようには全く読めなかった。非公開のメールでそういうやりとりがあった可能性も否定できないし、あるいは本当はものすごい高度なハッキング技術で個人情報を取得したのにパスワードが必要ない状態だったと吹聴して印象操作している可能性も無くはないだろうが、いくつかのメディアの報道は警察発表を鵜呑みにして、中立性を欠いており、事実を正確に伝えようとしていない、と思える。事実を正確に把握した上で「交渉が下手だ」とか「そのような行いは正しくない」だとか、そういう批判もあるだろう。しかしろくに取材をしないで警察発表や企業の言い分を鵜呑みにして印象操作の道具にされてしまうようなメディアは本当に世界的に残念なインターネットだ。</p> <div class="section"> <h4>報道した英語のメディア</h4> <ul> <li><a href="http://www.bbc.co.uk/news/technology-12456922">http://www.bbc.co.uk/news/technology-12456922</a></li> <li><a href="http://www.pcworld.com/businesscenter/article/219598/spanish_police_arrest_alleged_nintendo_hacker.html">http://www.pcworld.com/businesscenter/article/219598/spanish_police_arrest_alleged_nintendo_hacker.html</a></li> <li><a href="http://mmomfg.com/2011/02/15/nintendo-hacker-police-0215/">http://mmomfg.com/2011/02/15/nintendo-hacker-police-0215/</a></li> </ul> </div> <div class="section"> <h4>報道した日本のメディア</h4> <ul> <li><a href="http://www.inside-games.jp/article/2011/02/15/47390.html">http://www.inside-games.jp/article/2011/02/15/47390.html</a></li> </ul> </div> Wed, 16 Feb 2011 04:10:28 +0900 hatenablog://entry/17680117127139889265 生活と意見 プログラマが知るべき97のことに寄稿していません https://mala.hatenadiary.org/entry/20101212/1292171293 <p>12月18日に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%AA%A5%E9%A5%A4%A5%EA%A1%BC">オライリー</a>から発売される<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D7%A5%ED%A5%B0%A5%E9%A5%DE">プログラマ</a>が知るべき97のことに寄稿していません。</p><p><div class="hatena-asin-detail"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873114799/saisoku-22/"><img src="https://images-fe.ssl-images-amazon.com/images/I/511RPej0BNL._SL160_.jpg" class="hatena-asin-detail-image" alt="プログラマが知るべき97のこと" title="プログラマが知るべき97のこと"></a><div class="hatena-asin-detail-info"><p class="hatena-asin-detail-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4873114799/saisoku-22/">プログラマが知るべき97のこと</a></p><ul><li><span class="hatena-asin-detail-label">作者:</span> 和田卓人,Kevlin Henney,夏目大</li><li><span class="hatena-asin-detail-label">出版社/メーカー:</span> <a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%AA%A5%E9%A5%A4%A5%EA%A1%BC%A5%B8%A5%E3%A5%D1%A5%F3">オライリージャパン</a></li><li><span class="hatena-asin-detail-label">発売日:</span> 2010/12/18</li><li><span class="hatena-asin-detail-label">メディア:</span> 単行本(ソフトカバー)</li><li><span class="hatena-asin-detail-label">購入</span>: 58人 <span class="hatena-asin-detail-label">クリック</span>: 2,107回</li><li><a href="http://d.hatena.ne.jp/asin/4873114799/saisoku-22" target="_blank">この商品を含むブログ (350件) を見る</a></li></ul></div><div class="hatena-asin-detail-foot"></div></div></p> Sun, 12 Dec 2010 01:28:13 +0900 hatenablog://entry/17680117127139889464 最近のネットデマについて https://mala.hatenadiary.org/entry/20101206/1291624685 <ul> <li>ソースをろくに確認せずに取り敢えず拡散する</li> <li>自分の発言の責任が希薄になるように計算されたテンプレート <ul> <li>詳細はリンク先で</li> <li>真偽不明ですが取り敢えず拡散</li> <li>自己責任で</li> </ul></li> <li>元情報が訂正されても、拡散した誤情報は消えない</li> </ul> <div class="section"> <h4>「あなたの<a class="keyword" href="http://d.hatena.ne.jp/keyword/Gmail">Gmail</a>をすべて盗まれる」問題</h4> <ul> <li><a href="http://b.hatena.ne.jp/entry/jp.techcrunch.com/archives/20101120whoa-google-thats-a-pretty-big-security-hole/">http://b.hatena.ne.jp/entry/jp.techcrunch.com/archives/20101120whoa-google-thats-a-pretty-big-security-hole/</a></li> <li><a href="http://topsy.com/jp.techcrunch.com/archives/20101120whoa-google-thats-a-pretty-big-security-hole/">http://topsy.com/jp.techcrunch.com/archives/20101120whoa-google-thats-a-pretty-big-security-hole/</a></li> <li><a href="http://disqus.com/guest/84d6bff45c2112e083c425e39f954f5e/">http://disqus.com/guest/84d6bff45c2112e083c425e39f954f5e/</a></li> <li><a href="http://twitter.com/yomoyomo/status/6692549821464576">http://twitter.com/yomoyomo/status/6692549821464576</a></li> </ul><p>「メールアドレス」を「メール」と誤解したのはともかく「すべて」はどっから出てきたんだ「すべて」は。面白おかしく大げさにかきたてようとしてるからこういうことになるんじゃないのか?この情報を拡散したバカどもは「(編集部からの修正とお詫び)記事の見出しに「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Gmail">Gmail</a>をすべて盗まれる」とありますが、正しくは<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>にログインしている(<a class="keyword" href="http://d.hatena.ne.jp/keyword/Gmail">Gmail</a>の)メールアドレスを盗まれるが正しい表現でした。修正してお詫びいたします。(2010年11月27日)」という文言を読みましたか?</p> </div> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi%A5%A2%A5%D7%A5%EA">mixiアプリ</a>で個人情報漏洩する騒動</h4> <ul> <li>12/06日現在 <a class="keyword" href="http://d.hatena.ne.jp/keyword/twitter">twitter</a>での言及 約6500件 <a href="http://topsy.com/mixi.jp/manage_acl.pl">http://topsy.com/mixi.jp/manage_acl.pl</a></li> <li>12/06日現在 <a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>内 1276件 <a href="http://mixi.jp/search_diary.pl?keyword=http%3A%2F%2Fmixi.jp%2Fmanage_acl.pl&x=0&y=0&submit=search&type=dia">http://mixi.jp/search_diary.pl?keyword=http%3A%2F%2Fmixi.jp%2Fmanage_acl.pl&x=0&y=0&submit=search&type=dia</a></li> </ul><p>メールアドレスから<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>アカウントを検索できる機能が問題になったのは記憶に新しいが、</p> <ul> <li>メールアドレスを知っているが、その持ち主を知らない</li> <li>メールアドレスと、その持ち主を知っているが、<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>アカウントを知らない</li> </ul><p>というケース、つまり文字列は知っているが関係性を知らない、というケースで「非公開の情報」がデフォルトで公開になった。だから問題が起きた。</p><p>それに対してこれ <a href="http://mixi.jp/manage_acl.pl">http://mixi.jp/manage_acl.pl</a> は 元々「(<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>内で全体)公開されている情報」を<a class="keyword" href="http://d.hatena.ne.jp/keyword/API">API</a>経由で取得できるようにするか、という設定だ。そのユーザーのマイミク一覧も、マイミク一覧から辿って取得できる全体公開されているプロフィールも、<a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>アカウントを持っていれば誰でもアクセスできる情報だ。(実際に大量に取得しようとしたら足あと付けまくってアクセス制限を受けるだろうが)</p><p>他のサービスと比較してみよう</p> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/twitter">twitter</a>はprotected(許可した人にのみ公開)にしていても(あなたのフォロワーが許可すれば)OAuthで第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>から読まれるし、それを拒否することは出来ない。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/twitter">twitter</a>のDM(特定相手にのみ届くメッセージ)であっても(<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C1%F7%BF%AE%C0%E8">送信先</a>の相手が許可すれば)OAuthで第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>から読まれるし、それを拒否することは出来ない。</li> <li>あなたが送ったメールを第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>に見られたくないと思っていても<a class="keyword" href="http://d.hatena.ne.jp/keyword/Gmail">Gmail</a>は(あなたの友人が許可すれば)OAuthでアクセスすることが出来る <a href="http://code.google.com/intl/ja/apis/gmail/oauth/">http://code.google.com/intl/ja/apis/gmail/oauth/</a></li> <li>あなたがメールアドレスを第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>に知られたくないと思っていても(あなたの友人が許可すれば)<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a> Contacts <a class="keyword" href="http://d.hatena.ne.jp/keyword/API">API</a>を通じて取得することが出来る <a href="http://code.google.com/intl/ja/apis/contacts/">http://code.google.com/intl/ja/apis/contacts/</a></li> </ul><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/mixi">mixi</a>は「あなたの友人が許可しても」全体公開ではない情報にはアクセス出来ない、という<b>世界的</b>に<b>成功</b>している<b>グローバルなサービス</b>と比較して見ると極めて消極的で限定的なアクセスしか許可していない(参考: <a href="http://developer.mixi.co.jp/appli/spec/pc/permission_model">http://developer.mixi.co.jp/appli/spec/pc/permission_model</a> )</p><p>このデフォルト設定を本気で不適切だと思っている人は、今すぐ<a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>とか<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>とか使うのやめた方がいいし、<a class="keyword" href="http://d.hatena.ne.jp/keyword/gmail">gmail</a>使ってる人にメール送るのも止めた方がいいし、アドレス帳に入らないように関わるのも避けたほうがいい。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Twitter">Twitter</a>上で言及している人間は滑稽だ。</p><p>その設定は危険だから今すぐ変えましょう、などと言われてホイホイ変える人間は逆の行動も容易に起こすので、例えば</p> <ul> <li>安全のためと言われて偽セキュリティソフトをインストールしたり</li> <li>パスワードの変更したほうが良いと促されて偽サイトにパスワードを入力したり</li> <li>PCを高速化するコマンドだと言われてHDDをフォーマットするコマンドを入力したり</li> <li>体に良いと言って水銀をゴクゴク飲んだり、お節介で井戸水に水銀を入れたりする</li> </ul><p>つまり人間が大量に死ぬ、暴動が起こり核戦争で人類が滅びる。</p> </div> <div class="section"> <h4>ネットデマを防ぐために今、我々が出来ること</h4> <p><font size="6" color="red">そのような人間を忘年会に誘うのを止めろ!</font></p> </div> Mon, 06 Dec 2010 17:38:05 +0900 hatenablog://entry/17680117127139889566 図書館クロール補足 https://mala.hatenadiary.org/entry/20100709/1278641896 <p>なんか技術的におかしなことを言っている人がいたら追記していくかも知れません。</p> <div class="section"> <h4>クロール頻度が妥当かどうかの話</h4> <p>ウェブサーバーはマルチスレッド、マルチプロセスなどで複数のリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トを同時に処理できるようになっているのが一般的であるため「前回のリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トが完了してから、次のリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トを投げる」実装になっている限りは「サーバーの性能を100%使いきって他の利用者が利用できない状態」になることは、通常起きません。</p><p>例外的なケースもあります。</p> <ul> <li>ウェブサーバーがリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>ト完了後に何らかの処理を行うような実装になっていて、リク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トのペースによっては処理が溜まっていって追いつかなくなる。</li> <li>ロードバランサ、リバースプロキシを使ったフロントエンド/バックエンドの構成になっているサーバーで、フロントエンドが<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%BF%A5%A4%A5%E0%A5%A2%A5%A6%A5%C8">タイムアウト</a>と判断して早々にエラーを返したが実際はバックエンドで処理が続いている。</li> </ul><p>例えば1秒で処理が終わらないページ(例:LIKE検索)に対して、レスポンスの受信を待たずに1秒に1回のペースでリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トを投げ続けたら、サービス停止を引き起こせるでしょう。ですが、並列してリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トを投げていないのに「お前のリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トが原因で他の利用者が利用できない状態になった」という主旨のことを言われたのであれば、それは通常言いがかりです。他の利用者のリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トと合わせて過負荷状態になっている(一人の責任にされるべきものではない)か、アプリケーションのバグが原因の事故であると考えるのが自然です。</p><p>「サーバーリソースが限られているので遠慮してくれ」というのは、別段おかしなことではありません。が、サービス停止の責任を追求されるのは異常なことです。</p><p>1秒1回のペースが妥当かどうかとか、どの程度のウェイトを入れるべきなのかという話は、クロール対象のサービスの規模や、静的ページか動的ページかなどによっても変わるでしょう。もし書いたプログラムを配布する場合は、複数の利用者によってリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トが同時に投げられることになるので、慎重さが要求されるでしょう。</p><p>開発中で自分の手元でしか動いていない相手先のサーバーに並列アクセスしないクローラが原因でサービスが落ちて他の利用者が迷惑しているといって責任を追求されるというのは、技術的におかしいことを言われているのです。それは予見できない事故です。並列アクセスしてないのにサーバーが落ちるのであれば、それはサーバー側のバグが原因である可能性が高い(実際そういう考察をしている人が何人かいますね)。</p><p>という程度のことを警察が判断できるようになると良いですね。</p> </div> <div class="section"> <h4>適切なエラーハンドリングについて</h4> <p><a href="http://librahack.jp/okazaki-library-case/conclusion.html">http://librahack.jp/okazaki-library-case/conclusion.html</a></p> <blockquote> <p>相手サーバからのレスポンスHTTP500を細かくハンドリングせず単にスキップだけしていた</p> </blockquote> <p>これ特におかしなことではないです。おかしいと思っている人は、今回のケースでエラー処理を怠ることによって相手先のサーバーに何か損害を与えうると考えていますか?むしろ不適切なエラー処理(際限なくリトライなど)をしたほうが損害を与える可能性が高いです。</p><p>一部の特に行儀の良いクローラであれば500エラーが返ってきた際に同一のサーバーに対するクロール頻度を下げるなどするでしょう。一度エラーが起きたURLに対してリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>ト内容を修正せずに、間を置かずにリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トを繰り返すのは、同様のエラーが返ってくる可能性が高いので避けるべきです。しかしスキップして次のURLを取得するのであれば、別のリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トですから正常に返ってくる可能性があります。</p><p>連続して500エラーを返していた場合でも、それが自分のリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トによってサービスダウンを招いているという(並列アクセスを捌けるサーバーに並列アクセスしてないのに自分のリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トだけが原因でサービスダウンが引き起こされることは無いだろうという技術者としての常識を覆しての)推測は通常されるものではありません。ましてや500エラーから図書館業務が妨害されたことを推測してクロールを中止せよというのは無茶苦茶なことを求めています。</p><p>ちなみに503エラーであればサーバーが過負荷かメンテナンスです。時間をおかずに次のURLにアクセスしても503の可能性が高いです。サーバーの負荷が高いためウェイトを入れてくれというのは、Retry-AfterというマイナーなHTTPヘッダを使うことで実現できます。ただしRetry-Afterを出力するサービスも考慮するクローラも、ぶっちゃけあまり無いと思います。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a> Code Searchで検索したところいくつか実装例が出てきましたが、数少ないです。<br /> <a href="http://www.studyinghttp.net/status_code#Code503">http://www.studyinghttp.net/status_code#Code503</a></p><p>逆に問題があるエラーハンドリングは以下のようなものでしょう(サーバーが落ちても良いと思っていると判断されかねないもの)</p> <ul> <li>エラーが解消されるまで(適切なウェイトや最大試行回数を考慮せずに)リトライする</li> <li>負荷が原因でアクセス制限を受けているということを知った上で、アクセス制限を回避するための工夫をする。</li> </ul> </div> <div class="section"> <h4>正しい技術的知見の適切な啓蒙について</h4> <p>ソフトウェアのバグ、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>、不具合であれば、それが直ったかどうかが明確に判別が出来るだろうし、時にはそのようなバグは恥ずかしいと非難を浴びせることもあるでしょう(それが技術レベルの向上に繋がることもあります)。しかし「クローラにどの程度の安全機構を組み込むのか」という問題になると、人によって感覚が異なるようです。事故を起こさないためにどの程度の対策をしておけばいいのかというのは、個々の経験則に依る部分が大きいのでしょう。(ここで交通事故に例えるのは不適切です)</p><p>私が主張したいのは以下のようなことです(クローラに限った話ではなく一般論として)</p> <ul> <li>お前らは人が趣味で数時間で作った程度のものに一体どの程度のレベルを要求しているのか、身の程を知れ。</li> <li>実態を知らない初心者(もしくは<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CF%B7%B3%B2">老害</a>)が「これぐらいのことやって当然だよね」などと平然と口にする、何様のつもりだ。</li> <li>普段はまるで問題にしていないようなことを事故が起きたときに限って「過失があった」といって騒ぎ立てるなクズども。</li> </ul><p>世の中で稼働しているソフトウェアはバグだらけです、例えば<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%AA%A1%BC%A5%D7%A5%F3%A5%BD%A1%BC%A5%B9">オープンソース</a>プロダクトのChangesを読めばわかるでしょう。仕様や<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D7%A5%ED%A5%C8%A5%B3%A5%EB">プロトコル</a>を守っているソフトウェアばかりではないし、それでも世の中は動くように出来ているのです。全くお前らは人のミスを責めたてることにばかり夢中で全く生産的ではないばかりか、時に全く問題のないことに対してまで、過失があった、不注意であったと、騒ぎ立てて間違いを広める。そのような行為は啓蒙ではないし、害悪だ。</p> </div> <div class="section"> <h4>良いクローラの条件</h4> <p>自分が考える良いクローラの条件は、事故起こさない方法を追求しても限度があるので「何か問題が起きた場合にアクセス拒否する方法が分かりやすい」ことです。アクセス拒否したときに他のユーザーが巻き添えを食わないことなども含みます(動的IPやブラウザに偽装してたりすると面倒)。今回の事件に関して言えば、最初に稼働させたのが固定IPの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EC%A5%F3%A5%BF%A5%EB%A5%B5%A1%BC%A5%D0">レンタルサーバ</a>ーなので、まあ問題ないでしょう。そもそも図書館側がアクセス拒否する方法を知らなかった可能性がある。</p><p>という程度のことを警察が判断できるようになると良いですね。</p> </div> Fri, 09 Jul 2010 11:18:16 +0900 hatenablog://entry/17680117127139889697 法と技術とクローラと私 https://mala.hatenadiary.org/entry/20100707/1278514965 <p>こんにちは、趣味や業務で大手<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DD%A1%BC%A5%BF%A5%EB%A5%B5%A5%A4%A5%C8">ポータルサイト</a>のサービスで稼働しているいくつかのクローラの開発とメンテナンスを行っているmalaです。</p><p>さて先日、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B2%AC%BA%EA%BB%D4">岡崎市</a>立中央図書館Webサイトをクロールしていた人が逮捕、勾留、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BC%C2%CC%BE%CA%F3%C6%BB">実名報道</a>されるという事件がありました。</p><p>関連URL: <a href="http://librahack.jp/">http://librahack.jp/</a><br /> 電話してみた的な話</p> <ul> <li><a href="http://www.nantoka.com/~kei/diary/?20100622S1">http://www.nantoka.com/~kei/diary/?20100622S1</a></li> <li><a href="http://blog.rocaz.net/2010/06/945.html">http://blog.rocaz.net/2010/06/945.html</a></li> <li><a href="http://blog.rocaz.net/2010/07/951.html">http://blog.rocaz.net/2010/07/951.html</a></li> </ul><p>この件につきまして法的なことはともかくとして技術者視点での<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%E4%B8%AB">私見</a>を書きたいと思います。法的なことは差し置いて書きますが、それは法的なことを軽んじているわけではなく、法律の制定やら運用やらは、その法律によって影響が出る全ての人々の常識やら慣例やらも含めた実態に即していなければ意味が無いばかりか害悪になると考えるからです。また技術的に解決できる問題については、先ずは技術的な解決を試みるべきであって、特にインターネットの世界では、人間や機械がアクセス先のサービスの<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CD%F8%CD%D1%B5%AC%CC%F3">利用規約</a>や、アクセス先のサーバーが置いてある国の法律を解釈することが必ずしも期待できないため、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%AD%C1%B1%C0%E2">性善説</a>もクソもない、機械が読めない法律や<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CD%F8%CD%D1%B5%AC%CC%F3">利用規約</a>など、そもそも全く配慮されることを期待すべきではない!と考えるべきであり、また人間や機械がそのサービスに固有の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CD%F8%CD%D1%B5%AC%CC%F3">利用規約</a>やその国に固有の法律などを理解していたとしても、必ずしもそのルールが尊守されるとは限らないし、ルールが守られることを前提としたシステムの設計は技術的な欠陥が放置されることにつながり、結果として人々の安全やプライバシーを脅かす危険な存在であると言える。つまり、技術者の世界においては、地域や民族に固有のローカルルールや常識や慣例や風習に従わずに、技術的に解決すべきことは技術的に解決すべきであるというのが常識や慣例であり、そういったポリシーを法律家も含めて理解していただく必要があると考えています。</p><p>話を戻して、もし意見を聞かせてくれと言われたならば</p> <ul> <li>クローラには問題ない(刑事責任も民事責任もない)</li> <li>サービスの運用に支障をきたしているのであればアクセス拒否して終わり</li> <li>処理能力の向上やバグの修正などの改善を求めるのは図書館と開発ベンダーで相談して勝手にやればいい</li> <li>警察の対応が特別におかしい</li> </ul><p>と答えるでしょう。</p> <div class="section"> <h4>もし自分が同様のクローラを書いたらどうなるか</h4> <p>個人的な感覚では、<a class="keyword" href="http://d.hatena.ne.jp/keyword/librahack">librahack</a>さんが書いたクローラは当然悪意があるものだとは思わないし「特別に行儀が悪い」とも思わない。自分が同じ目的のプログラムを書いたならば、おそらく大差ない内容になるでしょう。</p><p>具体的には</p> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/robots.txt">robots.txt</a>を無視します</li> <li>metaタグを無視します</li> <li>ウェイトを入れません(入れるとしてもごく短い)</li> <li>一部500エラーが出てもクロールの中止やプログラムの見直し等は行わない <ul> <li>むしろ適切なウェイトと最大試行回数を設定した上でリトライすることを検討する</li> </ul></li> <li>一度取得したページについてはキャッシュしてしばらくアクセスしないような制限を加えるが、開発中ならその限りではない</li> <li>開発中、あるいは自分専用サービスとして作っている限りは、UserAgentを変えない(使用しているライブラリのデフォルト)</li> </ul><p>もちろん事前にアクセス先のサービスに対して何らかの知識があるなら、多少加味するだろうが、同様の事例であれば逮捕される可能性が高い。俺じゃなくてよかった。</p> <div class="section"> <h5>なぜ<a class="keyword" href="http://d.hatena.ne.jp/keyword/robots.txt">robots.txt</a>やmetaタグを無視しても良いと考えるのか</h5> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/robots.txt">robots.txt</a>やmetaタグによる<a class="keyword" href="http://d.hatena.ne.jp/keyword/bot">bot</a>の拒否は、ロボット型の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B8%A1%BA%F7%A5%A8%A5%F3%A5%B8%A5%F3">検索エンジン</a>のクローラが際限なく動的に生成されるリンクを辿っていって双方のサーバーリソースに過大な負荷をかけたり、公開されるべきでないコンテンツが<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B8%A1%BA%F7%A5%A8%A5%F3%A5%B8%A5%F3">検索エンジン</a>経由で公開されたりといった事故を防ぐのが目的(という認識)なので、特定サービス向けに特定パターン以外のリンク先を探索しない個人的な使用目的の巡回ツールに対してまで、<a class="keyword" href="http://d.hatena.ne.jp/keyword/robots.txt">robots.txt</a>やmetaタグの規定するルールを適用するのは適切ではないと考えているからです。</p> </div> <div class="section"> <h5>なぜウェイトを入れる必要がないと考えるのか</h5> <p>リク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トを並列して投げない(前回のリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トの完了を待ってから次のリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トを発行するようになっている)ならば、相手先のサーバーに対して与える負荷は限定的であり、一般ユーザーが通常の利用目的でブラウザを使ってかける負荷の上限と大差がないと考えるからです。更新チェックなどの目的で同一の(更新されている確率が低い)URLに対してウェイトを入れずに数秒、数分の間隔で自動アクセスするのは、非常識であると考えます。しかし、同じURLに対する重複したアクセスがなく、同一<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>のリンク先をn段階辿ってまとめて保存するような機能は、本来ブラウザに備わっていてもおかしくないようなもので、自前で書いたツールを使っているだけで通常の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D6%A5%E9%A5%A6%A5%B8%A5%F3%A5%B0">ブラウジング</a>行為の延長線上であると捉えるべきです。古い<a class="keyword" href="http://d.hatena.ne.jp/keyword/IE">IE</a>には実際そういう機能がありました(ウェイト入れてたかどうかとかは調べてない)。</p> </div> <div class="section"> <h5>なぜ500エラーが出てもクロールを中止する必要がないと考えるのか</h5> <p>自分のリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トが原因でエラーが出ているのか区別がつかないので、単に時間をおいて再試行すれば良いと考えるからです。全てのレスポンスがエラーを返すようになったならば、その段階で目的が達成できないのでプログラムの見直しを行うことになるでしょう。500レスポンスは単にそのリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トに対してエラーが出ているというだけなので、自分のリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トに原因があるとは考えません。なのでこの場合の適切なエラーハンドリングはクロールの停止やプログラム開発の停止ではありません(適切なウェイトを入れた上で再試行します)。もし403エラーが返ってきているのであれば、自分のリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トが何らかの理由で拒否されているだろうから、処理内容を見直す必要があると考えます。403レスポンスが返ってきたら、別の<a class="keyword" href="http://d.hatena.ne.jp/keyword/UA">UA</a>や別の回線からのアクセスを試して、何らかの自動的な制限に引っかかったのか、あるいは自分の書いたプログラムが決め打ちでアクセス拒否されているかどうかを判断したうえで、サービス運営者に問い合わせるなどするでしょう(アクセス拒否されないためにはどうすればいいか聞く)。気軽に問い合わせできる感じでなかったら開発を中止する。</p> </div> <div class="section"> <h5>なぜUserAgentを変える必要がないと考えるのか</h5> <p>単にライブラリの機能を叩いて3分で作れるようなレベルの<a class="keyword" href="http://d.hatena.ne.jp/keyword/bot">bot</a>についていちいちUserAgentを変更すべきだとは思わないし、もしサービス運営者に何らかの迷惑をかけたならば<a class="keyword" href="http://d.hatena.ne.jp/keyword/IP%A5%A2%A5%C9%A5%EC%A5%B9">IPアドレス</a>で制限されれば良いと考えるから。また、もしサービス運営者側に<a class="keyword" href="http://d.hatena.ne.jp/keyword/bot">bot</a>によるアクセス全般を拒否するポリシーがあるのであれば、あらかじめ拒否するルールが設定されている可能性があるので(全ての<a class="keyword" href="http://d.hatena.ne.jp/keyword/bot">bot</a>がユニークな<a class="keyword" href="http://d.hatena.ne.jp/keyword/UA">UA</a>を名乗っているのであれば、単にサーバー管理者の手間を増やすだけだ)</p><p>自分がUserAgentを変えるべきだと考えるのは以下のようなケースだ</p> <ul> <li>書いたプログラムを配布する場合</li> <li>書いたプログラムを元に何らかのサービスを第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>に提供する場合 <ul> <li>つまり自分の意思以外でリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トが自動送信されるケースで責任の所在を明確にするため</li> </ul></li> <li>ライブラリの作者が悪評を被るレベルの常軌を逸した使い方をする場合</li> </ul> </div> </div> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/bot">bot</a>がサービス運営に支障を来す場合にサービス運営者の取るべき行動について</h4> <ul> <li>使用している<a class="keyword" href="http://d.hatena.ne.jp/keyword/httpd">httpd</a>のマニュアルとにらめっこして該当の<a class="keyword" href="http://d.hatena.ne.jp/keyword/bot">bot</a>に対して403を返すようにしましょう</li> <li>もし過剰なアクセスにより金銭的な負担が発生しているのであれば402 payment requiredを返すのも良いでしょう。<a class="keyword" href="http://d.hatena.ne.jp/keyword/youtube">youtube</a>が使っています。</li> <li>手動でルールを追加するのが面倒であれば<a class="keyword" href="http://d.hatena.ne.jp/keyword/IP%A5%A2%A5%C9%A5%EC%A5%B9">IPアドレス</a>毎の帯域制限やアクセス回数の制限を行ないましょう。大抵の<a class="keyword" href="http://d.hatena.ne.jp/keyword/httpd">httpd</a>で適切なモジュールがあるはずです。</li> <li>403を返すだけの処理だけでもサーバーのリソースを大量に消費してサービス運営に支障が出るレベルのアクセス回数であるのなら、<a class="keyword" href="http://d.hatena.ne.jp/keyword/iptables">iptables</a>で拒否するなどしましょう。</li> <li>アクセス拒否されていることを検知して自動的に複数の<a class="keyword" href="http://d.hatena.ne.jp/keyword/IP%A5%A2%A5%C9%A5%EC%A5%B9">IPアドレス</a>からのアクセスを行って来たり、UserAgentを偽装してアクセス拒否することを困難にしていたり、帯域の消費だけでサービス運営に支障をきたすようなレベルであれば攻撃とみなしましょう。警察の出番だ。</li> </ul> </div> <div class="section"> <h4>行儀の良い<a class="keyword" href="http://d.hatena.ne.jp/keyword/bot">bot</a>の話</h4> <ul> <li>ウェイトを入れるのは良い慣習だ。</li> <li>エラーが返ってきたらクロール頻度を調整するのは良い慣習だ。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/bot">bot</a>の目的や連絡先が分かるようにするのは良い慣習だ。 <ul> <li>例えば<a class="keyword" href="http://d.hatena.ne.jp/keyword/IP%A5%A2%A5%C9%A5%EC%A5%B9">IPアドレス</a>逆引きで組織名が分かる</li> <li>例えばUserAgentに<a class="keyword" href="http://d.hatena.ne.jp/keyword/bot">bot</a>の目的や連絡先が分かるURLが含まれている</li> </ul></li> </ul><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/bot">bot</a>の世界には実効性があるのかどうか不明な慣習があります。これらを守ってなくても大した問題ではないと考えています。</p> <ul> <li>Fromヘッダにメールアドレスを入れる → <a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%AF%A5%BB%A5%B9%A5%ED%A5%B0">アクセスログ</a>に残らない、自称しているだけで確実にそのメールアドレスの持ち主とは限らない</li> <li>過負荷時のRetry-Afterヘッダ → 守ってくれなければ意味が無い、行儀の悪い<a class="keyword" href="http://d.hatena.ne.jp/keyword/bot">bot</a>はそもそも守らない、処理能力改善することを考えたほうがマシ</li> </ul><p>これらはあくまで良い慣習であって、守っていないからと言って悪意があるものだとは言えない。ライブラリの機能を叩いて3分で作れるような書き捨ての<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8">スクリプト</a>でいちいちそのようなことが配慮されることを期待すべきではない。攻撃目的で作られたツールというものは、もっと行儀が悪いものであることを知るべきだ。</p><p>攻撃目的で作られたツールではなくても問題になることはある。困ったことになる代表例は</p> <ul> <li>ab(<a class="keyword" href="http://d.hatena.ne.jp/keyword/Apache">Apache</a> Bench)を管理外のサーバーに対して行う → 普通に落ちたり帯域使い尽くしたりする</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>スキャンツールの類 → <a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>ある無しに関係なく大量のリク<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A8%A5%B9">エス</a>トを投げるし場合によっては何かデータ書き込んだりする</li> </ul><p>これでサービスを落とした人の実例を何件か知っている。</p> </div> <div class="section"> <h4>まとめ</h4> <p>403返して終わりって事例で<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%DD%A5%EA%A5%B9%BA%BB%C2%C1">ポリス沙汰</a>にするな。</p> </div> Wed, 07 Jul 2010 00:02:45 +0900 hatenablog://entry/17680117127139889806 Google ToolbarやGoogle Chromeで秘密のURLが漏れるといった話 https://mala.hatenadiary.org/entry/20100403/1270324870 <p><a href="http://d.hatena.ne.jp/m-bird/20100402/1270190863">http://d.hatena.ne.jp/m-bird/20100402/1270190863</a> とか <a href="http://anond.hatelabo.jp/20100403084111">http://anond.hatelabo.jp/20100403084111</a> とか<br /> ずいぶん適当なこと書いてあるなと思ったので調べた。</p> <div class="section"> <h4>見ているページのURLが送られるかという話</h4> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C4%A1%BC%A5%EB%A5%D0%A1%BC">ツールバー</a>は使ってないので<a class="keyword" href="http://d.hatena.ne.jp/keyword/Chrome">Chrome</a>についてだけ軽く検証したので書いておく。検証したバージョンは<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Chrome">Google Chrome</a> 5.0.366.2 devでモニタに使ったのは<a class="keyword" href="http://d.hatena.ne.jp/keyword/Fiddler">Fiddler</a>。</p><p>見ているページのURLを自動で送信する機能は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Chrome">Chrome</a>自体には無い。アドレスバーにURLを貼りつければ検索語句の補完機能が動いて送られることがある。<br /> ただし<a class="keyword" href="http://d.hatena.ne.jp/keyword/https">https</a>の場合はホスト名まで、httpの場合はクエリストリング(URLの?以降)は含まれない。</p><p>フォームの自動入力を有効にしたらなんか<a class="keyword" href="http://d.hatena.ne.jp/keyword/XML">XML</a>が送られるけど、これは見てるページのURLは含まれない。フォーム構造の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B7%A5%B0%A5%CD%A5%C1%A5%E3">シグネチャ</a>を作って送信しているようだ。<br /> <a href="http://www.google.com/support/toolbar/bin/answer.py?answer=81841">http://www.google.com/support/toolbar/bin/answer.py?answer=81841</a></p> <blockquote> <p>オートフィル機能はウェブ フォームに自動入力するオプション機能であり、これを有効にした場合は、ウェブ フォームを含むページの構造に関する限定された情報やフォームの配置に関する情報などが<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C4%A1%BC%A5%EB%A5%D0%A1%BC">ツールバー</a>から <a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a> に送信され、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a> でそのページのオートフィル機能を改善するために利用されます。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C4%A1%BC%A5%EB%A5%D0%A1%BC">ツールバー</a>から送信される情報には、フォームに入力したデータが含まれることがありますが、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C4%A1%BC%A5%EB%A5%D0%A1%BC">ツールバー</a>の同期機能を使用してデータをアカウントとともに保存するよう設定している場合を除き、各欄に入力した実際のテキストが <a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a> に送信されることはありません。 </p> </blockquote> <p>フィッシングサイト対策もオフラインで検証していて、見ているページのURLは送らない。 <a href="http://www.google.com/support/chrome/bin/answer.py?answer=99020">http://www.google.com/support/chrome/bin/answer.py?answer=99020</a><br /> クラッシュレポートと使用統計データについては調べてない。 <a href="http://www.google.com/support/chrome/bin/answer.py?answer=96817">http://www.google.com/support/chrome/bin/answer.py?answer=96817</a></p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Toolbar">Google Toolbar</a>でも<a class="keyword" href="http://d.hatena.ne.jp/keyword/https">https</a>のURLとクエリストリングはそもそも送られないように配慮されてる。</p> <ul> <li><a href="http://takagi-hiromitsu.jp/diary/20051127.html#p03">http://takagi-hiromitsu.jp/diary/20051127.html#p03</a></li> </ul><p><ins>追記: <a class="keyword" href="http://d.hatena.ne.jp/keyword/IE">IE</a>用<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Toolbar">Google Toolbar</a>のVersion: 6.4.1321.1732について調べた。現在は<a class="keyword" href="http://d.hatena.ne.jp/keyword/https">https</a>のページのホスト名まで送るようになっている。クエリストリングは以前と変わらず送らない。</ins></p><p>そんなわけなので、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E1%A5%C3%A5%BB%A5%B5%A5%F3%A5%AA%A1%BC">メッセサンオー</a>の話に限って言えば「クエリストリングにパスワードを含む<a class="keyword" href="http://d.hatena.ne.jp/keyword/https">https</a>のURL」は<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Toolbar">Google Toolbar</a>でも<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Chrome">Google Chrome</a>でも送信されない。<br /> ただし「クエリストリングにパスワードを含む<a class="keyword" href="http://d.hatena.ne.jp/keyword/https">https</a>のURL」に対してリンクが貼られたhttpのURLについては自動送信される可能性があるよ。</p><p>もちろん見てるページのURLを信頼出来ない経路で自動で送るような<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%C8%C4%A5%B5%A1%C7%BD">拡張機能</a>もある。</p> </div> <div class="section"> <h4>送信されたURLが適切に取り扱われるかという話</h4> <p>「送信された情報が適切に取り扱われているかどうか」については、サーバーサイドの話なんで想像で何を言われても仕方ないとは思うけど、クロールされるかどうかは外部の人間からも検証することが出来る。<br /> 第<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BB%B0%BC%D4">三者</a>から検証できるので「プライバシーに配慮しない方法で未発見のURLを見つけてクロールする」のはリスクが高い。</p><p>実際に<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Toolbar">Google Toolbar</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/PageRank">PageRank</a>機能を有効にしたうえで秘密のURLにアクセスして<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>にインデックスされるかという実験が行われて、それに対する<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>の中の人のコメントがある。</p> <ul> <li><a href="http://www.sem-r.com/20/20061211122827.html">http://www.sem-r.com/20/20061211122827.html</a></li> <li><a href="http://blogoscoped.com/archive/2006-12-10-n75.html">http://blogoscoped.com/archive/2006-12-10-n75.html</a></li> <li><a href="http://www.mattcutts.com/blog/debunking-toolbar-doesnt-lead-to-page-being-indexed/">http://www.mattcutts.com/blog/debunking-toolbar-doesnt-lead-to-page-being-indexed/</a></li> </ul><p>普通に考えてリスクが高い。俺ならやらない。眠いし寝る。終わり。</p> </div> <div class="section"> <h4>追記</h4> <p><a href="http://b.hatena.ne.jp/amatanoyo/20100406#bookmark-20536320">http://b.hatena.ne.jp/amatanoyo/20100406#bookmark-20536320</a><br /> 自分で調べろクソが。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C4%A1%BC%A5%EB%A5%D0%A1%BC">ツールバー</a>のウェブ履歴機能を指しているなら<a class="keyword" href="http://d.hatena.ne.jp/keyword/PageRank">PageRank</a>調べるクエリで送られたURLを残しているので、<a class="keyword" href="http://d.hatena.ne.jp/keyword/https">https</a>はホスト名まで、httpはクエリを除くURLになる。検索結果からクリックした場合はクエリ付きの<a class="keyword" href="http://d.hatena.ne.jp/keyword/https">https</a>のURLもウェブ履歴に残る。</p><p>翻訳機能を<a class="keyword" href="http://d.hatena.ne.jp/keyword/https">https</a>のページに対して使うと警告が出る <a href="http://gyazo.com/6df6b44f1f825e7e58896348f52793ea.png">http://gyazo.com/6df6b44f1f825e7e58896348f52793ea.png</a><br /> ウェブページ翻訳はそもそも<a class="keyword" href="http://d.hatena.ne.jp/keyword/https">https</a>のページを翻訳できない <a href="http://gyazo.com/74331ff3bf3477e6c446e2b7f2137080.png">http://gyazo.com/74331ff3bf3477e6c446e2b7f2137080.png</a><br /> サイドウィキは<a class="keyword" href="http://d.hatena.ne.jp/keyword/https">https</a>のページに対しては使用できない <a href="http://www.google.com/support/toolbar/bin/answer.py?hl=jp&answer=157471">http://www.google.com/support/toolbar/bin/answer.py?hl=jp&answer=157471</a></p> </div> Sat, 03 Apr 2010 05:01:10 +0900 hatenablog://entry/17680117127139889962 XSSとセキュリティリスクと正しい脆弱性報告のあり方 https://mala.hatenadiary.org/entry/20100222/1266850703 <p>適当</p> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/XSS">XSS</a>がある=なんでもやり放題ではない</h4> <p>ブログサービスなど自由にHTMLをかけるようなサービスでは、害が及ばないように表示を丸ごと別の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>に分けていたり、あるいは別<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>のIFRAME内で実行したりしているのが普通です。個人情報を預かってるサイトは、重要個人情報については<a class="keyword" href="http://d.hatena.ne.jp/keyword/HTTPS">HTTPS</a>じゃないと参照できなかったり、そもそも表示しなかったり(パスワードやカード番号等)、決済用のパスワードや暗証番号を入れないと操作できなかったりする。</p><p>参考までに</p> <ul> <li><a href="http://blog.bulknews.net/mt/archives/001274.html">http://blog.bulknews.net/mt/archives/001274.html</a> (2004年の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A2%A5%E1%A5%D6%A5%ED">アメブロ</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>の話)</li> <li><a href="http://d.hatena.ne.jp/yamaz/20090114">http://d.hatena.ne.jp/yamaz/20090114</a> (信頼できないデータを取り扱う<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>を分ける話)</li> </ul><p>管理用と別<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>に分けたにも関わらず、script実行できることに対してDISられている例がこちら。</p> <ul> <li><a href="http://d.hatena.ne.jp/rosylilly/20091216/1260961264">http://d.hatena.ne.jp/rosylilly/20091216/1260961264</a></li> <li><a href="http://d.hatena.ne.jp/rosylilly/20091219/1261254527">http://d.hatena.ne.jp/rosylilly/20091219/1261254527</a></li> </ul><p>scriptが書ければ<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D6%A5%E9%A5%AF%A5%E9">ブラクラ</a>を置いて閲覧者に対して嫌がらせすることは出来るし、ブラウザやpluginに<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>がある場合「scriptを書けること自体」が深刻な脅威になりうるので、scriptを一切書けないようにするというポリシーも勿論ある。同じ会社が運営しているサービスでも<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>ごとに<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%BB%A5%AD%A5%E5%A5%EA%A5%C6%A5%A3%A5%DD%A5%EA%A5%B7%A1%BC">セキュリティポリシー</a>がある。たとえば<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>ダイアリだったら、ユーザーの入力したscriptは実行不可、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20AdSense">Google AdSense</a>や一部の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D6%A5%ED%A5%B0%A5%D1%A1%BC%A5%C4">ブログパーツ</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8">スクリプト</a>は実行されて良い、といった具合に決まってる。単にscriptが実行できるというだけで「あのサービスは<a class="keyword" href="http://d.hatena.ne.jp/keyword/XSS%C0%C8%BC%E5%C0%AD">XSS脆弱性</a>がある、危険だ」と騒ぎ立てるのは良くないことだと思う。</p> </div> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>があった場合の影響範囲を抑える</h4> <ul> <li>もし初心者が<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A6%A5%A7%A5%D6%A5%A2%A5%D7%A5%EA%A5%B1%A1%BC%A5%B7%A5%E7%A5%F3">ウェブアプリケーション</a>を作るのであれば、まず最初に「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>があっても大丈夫にする」ことを覚えるのが良いと思う。</li> <li>さまざまな攻撃手段や、それに対する対策方法を網羅的に学習するのは時間がかかるし、長年運営しているサイトにも放置されている<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>があったりする。</li> <li>個人情報を預からないようにするとか、決済機能は外部サイトに頼るとか。</li> </ul><p>単純な例を言うと「重要な機能にはパスワードの再確認を入れる」ことだ。重要な機能は例えば、パスワードの変更、メールアドレスの変更、サービスの退会などだ。これらの機能にパスワードの再確認が無い場合、<a class="keyword" href="http://d.hatena.ne.jp/keyword/XSS">XSS</a>が一つあるだけで、アカウントを乗っ取ったり、サービスを退会したり出来てしまう。(パスワード再確認は<a class="keyword" href="http://d.hatena.ne.jp/keyword/CSRF">CSRF</a>対策にもなる)</p> </div> <div class="section"> <h4>正しい<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>報告のあり方</h4> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/IPA">IPA</a>を通したりすると、対応が遅くなるのが普通です。<a class="keyword" href="http://d.hatena.ne.jp/keyword/IPA">IPA</a>を通じて<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>の報告が来るということは、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>の発見者がセキュリティ専門家だったりするため、対策が取られるまで公開されないことが予測できる。つまり<a class="keyword" href="http://d.hatena.ne.jp/keyword/IPA">IPA</a>から<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>の報告が来る=緊急ではないという図式が成り立ってしまう!!</p><p>早急に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>が修正されることを望んでいるのであれば「俺はゼロデイ<a class="keyword" href="http://d.hatena.ne.jp/keyword/XSS">XSS</a>のURLを<a class="keyword" href="http://d.hatena.ne.jp/keyword/twitter">twitter</a>に晒したくてウズウズしてるんだよォォォ!!!!」という姿勢を見せながら中の人に連絡するのが良いでしょう。大体その日のうちに何とかしてくれるはずです。</p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>の報告は<a class="keyword" href="http://d.hatena.ne.jp/keyword/IPA">IPA</a>通すと諸々の手続きが面倒くさくなることを知っているため、サービス開発者同士のネットワークでは、<a class="keyword" href="http://d.hatena.ne.jp/keyword/IRC">IRC</a>、各種IM、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Skype">Skype</a>などで中の人に直接知らせるのが普通です。そして<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>の報告を受けたら、お礼として焼肉や寿司を奢るという慣習がある。</p><p>ところが京都に本社を置くHという会社は、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>報告の謝礼を「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%DD%A5%A4%A5%F3%A5%C8">はてなポイント</a>」や「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%AB%A5%E9%A1%BC%A5%B9%A5%BF%A1%BC">カラースター</a>」で代用するという風習があるため、必然的に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%C8%BC%E5%C0%AD">脆弱性</a>を報告するメリットが少なくなる。これは非常に危険な状態であるため、猛省を促したい。</p> </div> Mon, 22 Feb 2010 23:58:23 +0900 hatenablog://entry/17680117127139890069 Google Buzzで意図せず本名公開される箇所がある件 https://mala.hatenadiary.org/entry/20100212/1265944402 <p>「ちゃんと警告出てただろ、注意すれば防げるんだよ情弱が」派と戦争だよ!!!!!!</p> <div class="section"> <h4>実験してみた</h4> <ul> <li>「非公開の 本名」という名前で<a class="keyword" href="http://d.hatena.ne.jp/keyword/Gmail">Gmail</a>アカウントを取る <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/Gmail">Gmail</a>サインアップ時の姓と名は「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>の各種サービスで公開される可能性がある」ことは書いてない。</li> </ul></li> <li>知らない人の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>プロフィール(例: <a href="http://www.google.com/profiles/bulkneets">http://www.google.com/profiles/bulkneets</a> )を開く</li> <li>なんか面白そうだな、フォローしてみよう</li> </ul><p>別アカウントから見た場合は隠れてるけど<br /> <a href="http://gyazo.com/2553e733fddde6a721c580f81ef1e43e.png" class="http-image" target="_blank"><img src="http://gyazo.com/2553e733fddde6a721c580f81ef1e43e.png" class="http-image" alt="http://gyazo.com/2553e733fddde6a721c580f81ef1e43e.png"></a></p><p>bulkneetsさんから見た場合こうなる。<br /> <a href="http://gyazo.com/359bcfc9cb07003f577409c7e4b086a9.png" class="http-image" target="_blank"><img src="http://gyazo.com/359bcfc9cb07003f577409c7e4b086a9.png" class="http-image" alt="http://gyazo.com/359bcfc9cb07003f577409c7e4b086a9.png"></a></p><p>そんなわけだから本名設定されてる<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google">Google</a>アカウントでフォローボタンを押すだけで、少なくともbulkneetsさんには非公開の本名が公開されてるけど、なんの警告も出てないですよ。</p><p>例えば<a class="keyword" href="http://d.hatena.ne.jp/keyword/Gmail">Gmail</a>で「本名が表示されないように」メール送信者の名前を変えるのは<a class="keyword" href="http://d.hatena.ne.jp/keyword/Gmail">Gmail</a>の設定から出来るけど、<br /> <a href="http://gyazo.com/d82efe7a72030fa4fcc5c37e54f547f8.png" class="http-image" target="_blank"><img src="http://gyazo.com/d82efe7a72030fa4fcc5c37e54f547f8.png" class="http-image" alt="http://gyazo.com/d82efe7a72030fa4fcc5c37e54f547f8.png"></a></p><p>本名バレないように<a class="keyword" href="http://d.hatena.ne.jp/keyword/Gmail">Gmail</a>使ってたのに、<a class="keyword" href="http://d.hatena.ne.jp/keyword/Google%20Buzz">Google Buzz</a>の自動フォロー機能やオススメユーザーポチポチしてたら本名バレた!!みたいな人が居そうだなー。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Amazon">Amazon</a><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%A6%A5%A3%A5%C3%A5%B7%A5%E5%A5%EA%A5%B9%A5%C8">ウィッシュリスト</a>の時なんかでもそうだけど、明らかに<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%E6%A1%BC%A5%B6%A1%BC%A5%A4%A5%F3%A5%BF%A1%BC%A5%D5%A5%A7%A1%BC%A5%B9">ユーザーインターフェース</a>に欠陥があるのに「注意すれば防げる」みたいな無茶なことを言うのは止めましょう。お前らこそが情弱だ!!くたばれ!!!!!!!!!</p> </div> Fri, 12 Feb 2010 12:13:22 +0900 hatenablog://entry/17680117127139890143 ネットで実名を出せないサラリーマンの皆さんへ https://mala.hatenadiary.org/entry/20091008/1254999291 <blockquote> <p>「くっ、俺だって本当は実名で活動したい、だが会社に禁止されていて出来ないんだ、そういう人間の気持ちも考えろ!」</p> </blockquote> <p>みたいなことを言ってしまう人は、やっぱり会社の奴隷なんじゃないかと思います。</p> <ul> <li>会社の業務を実名ですることを強制される <ul> <li>営業で実名入りの名刺配ったり、社員紹介ページに実名顔写真セットで掲載されたり。</li> </ul></li> <li>実名出しただけで会社名と紐づけられる状況が発生する</li> <li>個人の活動を会社の活動と紐づけることを禁止する</li> </ul><p>という合わせ技で「実名で業務外の活動をすることが制限される」ってことになって、つまり「ネットで実名出せない」という現象が起こります。それを平然と受け入れちゃうのがオカシイんですよ。貴方は人権を侵害されているし、そんなのが当たり前の世の中になったら俺も困るからお前も戦え。</p><p>会社が禁止してるのか個人が自重してるのか知らないですが、一般に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%BD%A2%B6%C8%B5%AC%C2%A7">就業規則</a>に書かれるのは、会社に不利な情報発信すんなとか社名出して副業すんなとか犯罪起こすなとか、そんなのでしょうから「ネットで実名出すな」なんてのは現場レベルの判断でしょう。本当にそんな会社があるのかどうか知らないですし、仮想敵かもしれません。</p><p>例えば貴方のハンドルネームがパンチラ太郎であったとして、3歳になる娘の心臓手術のためにネットで募金を集めようとするとしましょう。会社に「実名でネットするな」と禁止されている貴方は、パンチラ太郎で娘のために募金を集めようとしますが、残念ながらパンチラ太郎では不特定多数の人間の信用を得ることは難しいでしょう。あなたは娘の命を救えない。人は時としてネットで実名を出して戦わなくてはいけないときがあるんだ!貴方は会社から重大な権利を奪われている!何で戦わないんだ!!</p><p>単に就業時間内に私用でネット利用してるのがバレると困るとかいう人は、どっちにしろバレてるんで、いつでも無能なお前のクビを切れる口実を経営者に与えているだけだ!!転職や独立に有利になるようにどうせなら実名で行動しておけ!!!</p><p>僕はどうしているかというと、会社の業務をハンドルネームで行うという方向で戦っています。</p> Thu, 08 Oct 2009 19:54:51 +0900 hatenablog://entry/17680117127139890254 オープンソースでない物がオープンソースと呼ばれてきた歴史まとめ https://mala.hatenadiary.org/entry/20090620/1245460714 <p><a href="http://twitter.com/mhatta/status/2241748771">http://twitter.com/mhatta/status/2241748771</a></p> <blockquote cite="http://twitter.com/mhatta/status/2241748771" title="Twitter / Masayuki Hatta: そんなのどうでもいいじゃないか。困るのは、オープンソ ..."><p>そんなのどうでもいいじゃないか。困るのは、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%AA%A1%BC%A5%D7%A5%F3%A5%BD%A1%BC%A5%B9">オープンソース</a>・ライセンスの下で公開されてないものが<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%AA%A1%BC%A5%D7%A5%F3%A5%BD%A1%BC%A5%B9">オープンソース</a>と呼ばれる、ただその一点だけですよ。それさえなければ後はどうでもいいですよ。</p> </blockquote><p>↓</p><p><a href="http://d.hatena.ne.jp/ktdisk/20090524/1243154905">http://d.hatena.ne.jp/ktdisk/20090524/1243154905</a><br /> <a href="http://d.hatena.ne.jp/n_euler666/20070723/1185117376">http://d.hatena.ne.jp/n_euler666/20070723/1185117376</a><br /> <a href="http://cocoa.2ch.net/unix/kako/1000/10004/1000484092.html">http://cocoa.2ch.net/unix/kako/1000/10004/1000484092.html</a></p> Sat, 20 Jun 2009 10:18:34 +0900 hatenablog://entry/17680117127139890344 楽天が抱えている問題点その11 https://mala.hatenadiary.org/entry/20090603/1244006802 <p><a href="http://cubic.sblo.jp/article/29540800.html">&#x697D;&#x5929;&#x3078;&#x306E;&#x554F;&#x3044;&#x5408;&#x308F;&#x305B;&#x3000;&#x305D;&#x306E;&#xFF12;</a><a href="http://b.hatena.ne.jp/entry/http://cubic.sblo.jp/article/29540800.html" class="http-bookmark"><img src="//b.hatena.ne.jp/entry/image/http://cubic.sblo.jp/article/29540800.html" alt="" class="http-bookmark" /></a></p> <blockquote> <p>この度の掲載記事に関しては多くのお客様をご不安なお気持ちと<br /> させてしまう内容となっており、まことに遺憾であるとともに、<br /> <strong>当社としても到底静観できる状況ではないと考えております。</strong></p><p>当該ニュースサイトにつきましては、当社でも確認のうえ、<br /> 今後しかるべき対応をおこなって参る所存でございます。 </p> </blockquote> <p><a href="http://www.nsjournal.jp/column/detail.php?id=159887&dt=2009-05-29">&#x697D;&#x5929;&#x3000;&#x9867;&#x5BA2;&#x60C5;&#x5831;&#x306E;&#x6D41;&#x51FA;&#x9A12;&#x52D5;&#x3000;&#x4F1A;&#x793E;&#x5074;&#x306F;&#x4E00;&#x8CAB;&#x7121;&#x8996;&#x306E;&#x59FF;&#x52E2;</a><a href="http://b.hatena.ne.jp/entry/http://www.nsjournal.jp/column/detail.php?id=159887&dt=2009-05-29" class="http-bookmark"><img src="//b.hatena.ne.jp/entry/image/http://www.nsjournal.jp/column/detail.php?id=159887&dt=2009-05-29" alt="" class="http-bookmark" /></a></p> <blockquote> <p>一部インター<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%CD%A5%C3%A5%C8%B7%C7%BC%A8%C8%C4">ネット掲示板</a>を発端として、これに関連した記述が各個人ブログなどに波及したが、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>側では「事実誤認の大間違い」(広報担当)といちべつ。正式な対応をとる予定もなく、<strong>完全無視の姿勢を貫くことで事態が自然に沈静化するの待つ意向だ。</strong></p> </blockquote> <p>どっちなんだよ。</p> Wed, 03 Jun 2009 14:26:42 +0900 hatenablog://entry/17680117127139890404 楽天のサポートに問い合わせた https://mala.hatenadiary.org/entry/20090530/1243664357 <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>で商品購入の際に出店者にメールアドレスが通知されるのかということが純粋に気になったので、客として<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>のサポートに問い合わせました。</p><p>文面はこんな感じです。<br /> <a href="http://gyazo.com/12bdebc38f8412d776836fb5c983a11e.png">http://gyazo.com/12bdebc38f8412d776836fb5c983a11e.png</a></p><p>まともな回答が得られなければ出店者側に聞いてみるつもりでしたが、サポート担当者からはっきりとした回答が得られました。</p> <blockquote> <p>お問い合わせの件で、ご心配をおかけしております。</p><p>この度、「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Gigazine">Gigazine</a>」で掲載されておりました「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>、利用者の<br /> メールアドレスを含む個人情報を1件10円で<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C0%A5%A6%A5%F3%A5%ED%A1%BC%A5%C9%C8%CE%C7%E4">ダウンロード販売</a>」は<br /> 全くの事実誤認でございます。</p><p>(中略)</p><p>注文のステップ4で表示されておりますお客様の情報<br /> (お名前、メールアドレス、フリガナ、住所、電話番号等)が<br /> [この内容で注文する]のボタンをご利用いただいた時点で、<br /> 該当のショップへ送信されます。</p><p>何とぞ、ご了承いただきますようお願いいたします。</p><p>弊社は<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>の個人情報保護方針にもとづいて<br /> 個人情報の取扱いに関して万全の管理体制を敷いておりますので、<br /> お客様におかれましては、今後とも安心してお買い物をお楽しみ下さい。</p> </blockquote> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/GIGAZINE">GIGAZINE</a>の件については聞いてないんですけども、注文の際には該当のショップに「お名前、メールアドレス、フリガナ、住所、電話番号等」が送信されるという回答を得られました。「メールアドレスを秘匿できるようにするシステムの実施」については回答がありませんでした。</p><p>そんなわけですから<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7%BB%D4%BE%EC">楽天市場</a>で注文をする際に、出店者にメールアドレスは送信されます。実際のところ、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>にはチンポatマラじゃなくてもう少しマシなメールアドレスで登録してあるんですけど、いずれにせよメールアドレスにマラとか入ってるのが倫理的に考えて良いわけが無いですし、yumichan_love_foreverとかそんな感じの痛いメールアドレス使ってる人は注意した方が良いと思いますよ。</p> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/INTERNET%20Watch">INTERNET Watch</a>の記事について</h4> <p><a href="http://internet.watch.impress.co.jp/cda/news/2009/05/28/23591.html">http://internet.watch.impress.co.jp/cda/news/2009/05/28/23591.html</a></p> <blockquote> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>は<a class="keyword" href="http://d.hatena.ne.jp/keyword/INTERNET%20Watch">INTERNET Watch</a>の取材に対して、「現在もクレジットカード情報とメールアドレスを店舗に渡していない」と説明する<br /> (中略)<br /> また、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>が審査をした上で利用者のメールアドレスを提供していること関しては、「個人情報保護方針に沿ったかたちで、正当な理由と判断された場合は提供することもある」とコメント。ただし、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>が認める「正当な理由」については、機密なので明かせないという。</p> </blockquote> <p>要約すると</p> <ul> <li>(原則として) メールアドレスを店舗に渡していない</li> <li>(例外的に) 正当な理由と判断された場合は提供することもある(条件は機密)</li> </ul><p>という内容ですよね。機密なので明かせないと書いてあるので勝手な想像をする方が悪いのかも知れませんが、記事中に<a class="keyword" href="http://d.hatena.ne.jp/keyword/GIGAZINE">GIGAZINE</a>での報道内容が引用されており、</p> <blockquote> <p>ただし、月間売り上げ1000万円以上または月間受注件数1000件以上の店舗であれば、メールアドレスについては、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>の審査に通過した上で、メールアドレスを外部に提供しない旨などを記した誓約書を提出すれば取得できる。</p> </blockquote> <p>と書かれているため「月間売り上げ1000万円以上または月間受注件数1000件以上で<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>の審査に通過して誓約書を書けばメールアドレスが提供される」と勘違いしている人が多いんじゃないですかね。(実際にそういう勘違いをしたので<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>に問い合わせました)</p><p>しかしながら、サポートに問い合わせた内容と照らし合わせて推測するに、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>が機密なので明かせないと主張するメールアドレスを提供する「正当な理由」というのは「ショップで買い物をすること」です。<a class="keyword" href="http://d.hatena.ne.jp/keyword/INTERNET%20Watch">INTERNET Watch</a>はろくな検証もせずに<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>の言い分をそのまま載せただけで、読者に誤解を与える記事を掲載しているのですから、追記するなり訂正記事を出すなりして、きちんとメディアとしての責務を果たすべきだと思いますよ。</p> </div> <div class="section"> <h4>誇張表現について</h4> <p><a class="keyword" href="http://d.hatena.ne.jp/keyword/GIGAZINE">GIGAZINE</a>のメディアとしての信憑性が下がりすぎていて、皆さん公正な判断が出来なくなってるんじゃないですか。</p> <ul> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/GIGAZINE">GIGAZINE</a>: メールアドレスを含む個人情報を1件10円で<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C0%A5%A6%A5%F3%A5%ED%A1%BC%A5%C9%C8%CE%C7%E4">ダウンロード販売</a></li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>の主張: メールアドレスを店舗に渡していない、渡すこともあるが条件は秘密</li> </ul><p>いずれも誇張表現ですけど<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>のケースの方が悪質だと思います。<a class="keyword" href="http://d.hatena.ne.jp/keyword/GIGAZINE">GIGAZINE</a>の記事は記事タイトルが全力釣りなだけで、<a class="keyword" href="http://d.hatena.ne.jp/keyword/spam">spam</a>業者に全アドレスを1件10円で販売なんて書いてないですし、長すぎて読む人がいないってだけで本文中に条件や対象範囲が書かれてますよね。対して<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>の主張は、記事本文を見たって条件が分からないんですし、規約を見てもはっきりしません。</p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>オフィシャルからのお知らせなんて事実誤認としか書いてないですし。<br /> <a href="http://www.rakuten.co.jp/help/whatsnew/">http://www.rakuten.co.jp/help/whatsnew/</a></p><p>これだけ誤解を招く情報がネット上に錯綜しているのに<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>の広報って何の仕事してるんですかね!</p> </div> <div class="section"> <h4><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>でアンケートを取った</h4> <p><a href="http://q.hatena.ne.jp/1243598560">http://q.hatena.ne.jp/1243598560</a></p><p>こういう書き込みした後で <br /> <a href="http://twitter.com/bulkneets/status/1958479429">http://twitter.com/bulkneets/status/1958479429</a><br /> <a href="http://twitter.com/bulkneets/status/1958885128">http://twitter.com/bulkneets/status/1958885128</a></p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/twitter">twitter</a>から誘導してしまったのでバイアスはかかってると思いますが、このアンケートの結果では、ショップにメールアドレスが知られないと思っている人が20%は居るということになりました。結構な割合の人が「ショップにメールアドレスが知られないと思って買い物をしている」のではないかと想像されます。繰り返しになりますが、チンポatマラとかyumichan_love_foreverとかそんな感じの痛いメールアドレス使ってる人は注意した方が良いと思いますよ。</p> </div> <div class="section"> <h4>メール<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D5%A5%A9%A5%EF">フォワ</a>ーディング機能について</h4> <p>2005年の時点で、「メール<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D5%A5%A9%A5%EF">フォワ</a>ーディング機能」「メールアドレス匿名サービス」というふうに言われる機能が提供される予定だと<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>からのリリースがあります。<br /> <a href="http://itpro.nikkeibp.co.jp/free/NCC/NEWS/20050801/165646/">http://itpro.nikkeibp.co.jp/free/NCC/NEWS/20050801/165646/</a></p><p>サポートに対する質問で、この部分を華麗にスルーされてしまったのですが、その後のリリースも無いし、現時点では導入されていないと考えるのが自然だと思います。<br /> 信頼できるかどうか分かりませんが、出店者向けのリリース情報が転載されています。<br /> <a href="http://jbbs.livedoor.jp/bbs/read.cgi/shop/960/1122130979/151">http://jbbs.livedoor.jp/bbs/read.cgi/shop/960/1122130979/151</a><br /> <a href="http://jbbs.livedoor.jp/bbs/read.cgi/shop/960/1122130979/157">http://jbbs.livedoor.jp/bbs/read.cgi/shop/960/1122130979/157</a></p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%CD%F8%CD%D1%B5%AC%CC%F3">利用規約</a>には「その取引に必要な範囲で、お客様の個人データをサービス提供者に提供します。」というのがあって、<br /> <a href="http://privacy.rakuten.co.jp/#5">http://privacy.rakuten.co.jp/#5</a></p><p>問題になりそうなのって、その取引に必要な範囲にメールアドレスが含まれるのかどうかということですよね。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CD%F8%CD%D1%B5%AC%CC%F3">利用規約</a>の解釈としては連絡手段として必要ってことになるんでしょうけども、<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>が出店者と注文者のメールアドレスを知ってるんだから、取り引きの間だけ有効 or その店舗<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%AB%A4%E9%A4%B7">からし</a>か送れない転送メールアドレスを作ってやればいい話で、そういう予定だったのだけども、未だに開発できていないか、開発コストと<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B8%C4%BF%CD%BE%F0%CA%F3%CE%AE%BD%D0">個人情報流出</a>のリスクを天秤に掛けて見合わないと判断されたとか、店側からの反発があったとか、そんなんで未だに実現できていないのではないですかね。元々店舗側は個人情報の目的外利用を禁止されているはずですし生メールアドレスだろうと転送アドレスだろうと関係ないはずで、商取引に生メールアドレスが必須かどうかとか、そういうくだらないことで言い争うのは、技術者をバカにしてんのかと思いますね。全員死ね。</p><p><a href="http://q.hatena.ne.jp/1243598560">http://q.hatena.ne.jp/1243598560</a><br /> このアンケートでは、74%の人が、出店者がメールアドレスを知る必要はないと考えています。</p> </div> <div class="section"> <h4>まとめ</h4> <ul> <li>サポートに問い合わせたら聞いてもいないことを答える & 聞いてることに答えないのコンボ。</li> <li>注文した際には店にメールアドレスは送信される。<a class="keyword" href="http://d.hatena.ne.jp/keyword/%CD%F8%CD%D1%B5%AC%CC%F3">利用規約</a>とは矛盾してないが、20%の人が知られないと思っている(<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%A2%A5%F3%A5%B1%A1%BC%A5%C8">はてなアンケート</a>調べ)</li> <li>出店者がメールアドレスを知る必要がないと考えている人が74%いる(<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%A2%A5%F3%A5%B1%A1%BC%A5%C8">はてなアンケート</a>調べ)</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/INTERNET%20Watch">INTERNET Watch</a>の記事は誤解を招きやすいので、追記するか訂正記事を出せ。</li> <li>技術的に可能か不可能かだけが重要だし、根拠もないのに安心してくださいとかナメてんのか。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>に出店している店舗が商品注文の際に知ったメールアドレスを<a class="keyword" href="http://d.hatena.ne.jp/keyword/spam">spam</a>業者に<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B2%A3%CE%AE%A4%B7">横流し</a>することは契約上不可能でしょうけど、技術的に可能ですよね。</li> <li>だから信頼していないし、安心して買い物をしてはない。米は買うけど。</li> <li><a class="keyword" href="http://d.hatena.ne.jp/keyword/%B3%DA%C5%B7">楽天</a>に登録しているメールアドレスは変えようと思う。</li> </ul> </div> Sat, 30 May 2009 15:19:17 +0900 hatenablog://entry/17680117127139890463 ルネッサンス吉田 茜新地花屋散華 https://mala.hatenadiary.org/entry/20090328/1238216182 <p><div class="hatena-asin-detail"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4863490585/saisoku-22/"><img src="https://images-fe.ssl-images-amazon.com/images/I/61ATxP2vH%2BL._SL160_.jpg" class="hatena-asin-detail-image" alt="茜新地花屋散華 (EDGE COMIX)" title="茜新地花屋散華 (EDGE COMIX)"></a><div class="hatena-asin-detail-info"><p class="hatena-asin-detail-title"><a href="http://www.amazon.co.jp/exec/obidos/ASIN/4863490585/saisoku-22/">茜新地花屋散華 (EDGE COMIX)</a></p><ul><li><span class="hatena-asin-detail-label">作者:</span> <a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%EB%A5%CD%A5%C3%A5%B5%A5%F3%A5%B9">ルネッサンス</a>吉田</li><li><span class="hatena-asin-detail-label">出版社/メーカー:</span> <a class="keyword" href="http://d.hatena.ne.jp/keyword/%B0%AB%BF%B7%BC%D2">茜新社</a></li><li><span class="hatena-asin-detail-label">発売日:</span> 2009/03/27</li><li><span class="hatena-asin-detail-label">メディア:</span> コミック</li><li><span class="hatena-asin-detail-label">購入</span>: 10人 <span class="hatena-asin-detail-label">クリック</span>: 97回</li><li><a href="http://d.hatena.ne.jp/asin/4863490585/saisoku-22" target="_blank">この商品を含むブログ (32件) を見る</a></li></ul></div><div class="hatena-asin-detail-foot"></div></div></p> <blockquote> <p>「余録・うなぎまつり」単行本描き下ろし<br /> 好きな作家さんが「うなぎには暗いところに潜り込む習性があるんだよ」と教えてくれたのでそれはとてもいい話だと思って書きました。</p> </blockquote> Sat, 28 Mar 2009 13:56:22 +0900 hatenablog://entry/17680117127139890630 美人時計の画像ファイルをグリッチしたい! https://mala.hatenadiary.org/entry/20090312/1236829596 <p><a href="http://blog.hatena.ne.jp/youpy/">id:youpy</a>による<a href="http://userscripts.org/scripts/show/9653">GlitchMonkey</a>というuserscriptがあるのですが、ページ表示後に挿入された画像ファイルに関しては<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B0%A5%EA%A5%C3%A5%C1">グリッチ</a>されないので、DOMNodeInsertedを使って対応してみました。<br /> <a href="http://gist.github.com/77891">http://gist.github.com/77891</a></p><p>DOMノードが挿入される度に美人時計の画像ファイルをダウンロードして<a class="keyword" href="http://d.hatena.ne.jp/keyword/%C0%B5%B5%AC%C9%BD%B8%BD">正規表現</a>による置換を行って<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B0%A5%EA%A5%C3%A5%C1">グリッチ</a>されます。</p><p><a href="http://gyazo.com/86f20b7f80543061e482554ccb330be9.png" class="http-image" target="_blank"><img src="http://gyazo.com/86f20b7f80543061e482554ccb330be9.png" class="http-image" alt="http://gyazo.com/86f20b7f80543061e482554ccb330be9.png"></a></p> Thu, 12 Mar 2009 12:46:36 +0900 hatenablog://entry/17680117127139890708 「サードパーティのCookieも保存する」をオフにするとGM_xmlhttpRequestでCookieを送らない https://mala.hatenadiary.org/entry/20090308/1236473533 <p>先日のエントリで<a class="keyword" href="http://d.hatena.ne.jp/keyword/AutoPagerize">AutoPagerize</a>が動かなくなったという人が居たので調べた。<br /> 同一<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>なら<a class="keyword" href="http://d.hatena.ne.jp/keyword/AutoPagerize">AutoPagerize</a>側でどんな<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>送ってるか分かるので、とりあえずこれで動くようになった。</p> <pre class="code lang-javascript" data-lang="javascript" data-unlink> <span class="synIdentifier">var</span> headers = <span class="synIdentifier">{}</span> <span class="synStatement">if</span> (isSameDomain(<span class="synIdentifier">this</span>.requestURL)) <span class="synIdentifier">{</span> headers.Cookie = <span class="synStatement">document</span>.cookie <span class="synIdentifier">}</span> <span class="synIdentifier">var</span> opt = <span class="synIdentifier">{</span> method: <span class="synConstant">'get'</span>, url: <span class="synIdentifier">this</span>.requestURL, headers: headers, overrideMimeType: mime, onerror: <span class="synIdentifier">this</span>.error, onload: <span class="synIdentifier">function</span>(res)<span class="synIdentifier">{</span> <span class="synStatement">self</span>.requestLoad.apply(<span class="synStatement">self</span>, <span class="synIdentifier">[</span>res<span class="synIdentifier">]</span>) <span class="synIdentifier">}</span> <span class="synIdentifier">}</span> </pre><p><a href="http://blog.hatena.ne.jp/swdyh/">id:swdyh</a></p> Sun, 08 Mar 2009 09:52:13 +0900 hatenablog://entry/17680117127139890753 そろそろクリックジャッキングについて一言いっておくか https://mala.hatenadiary.org/entry/20090306/1236341606 <p>Firefox3で「<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/Cookie">Cookie</a>も保存する」をオフにする。<br /> <a href="http://gyazo.com/03649bab0ec916979e64b3c7910d6b98.png" class="http-image" target="_blank"><img src="http://gyazo.com/03649bab0ec916979e64b3c7910d6b98.png" class="http-image" alt="http://gyazo.com/03649bab0ec916979e64b3c7910d6b98.png"></a><br /> 防げる。<br /> <a href="http://gyazo.com/8433286bcca3a79c0db6a43d28eed75b.png" class="http-image" target="_blank"><img src="http://gyazo.com/8433286bcca3a79c0db6a43d28eed75b.png" class="http-image" alt="http://gyazo.com/8433286bcca3a79c0db6a43d28eed75b.png"></a></p><p>いずれのブラウザにも<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a>製の<a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>を制限するオプションがあるが、Firefox3以外だと、フレーム内表示された場合に「新規に<a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>を保存しない」だけで保存済みの<a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>は送信してしまう。</p><p>軽く調べてみたところ、次のようになった。(間違ってたら教えてください)</p> <table> <tr> <td> </td> <th><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>の新規保存</th> <th><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a>の保存済み<a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>の送信</th> <th>表示中の<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>の<a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>の保存/送信</th> </tr> <tr> <td>IE6,7,8(デフォルト) </td> <td> x </td> <td> o </td> <td> o</td> </tr> <tr> <td>IE6,7,8(セキュリティ高) </td> <td> x </td> <td> x </td> <td> x </td> </tr> <tr> <td>Opera9.6(デフォルト) </td> <td> o </td> <td> o </td> <td> o</td> </tr> <tr> <td>Opera9.6(制限) </td> <td> x </td> <td> △ </td> <td> o</td> </tr> <tr> <td><a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>(制限/デフォルト) </td> <td> x </td> <td> o </td> <td> o</td> </tr> <tr> <td><a class="keyword" href="http://d.hatena.ne.jp/keyword/Safari">Safari</a>(全て受け入れる) </td> <td> o </td> <td> o </td> <td> o</td> </tr> <tr> <td>Firefox2(デフォルト) </td> <td> o </td> <td> o </td> <td> o</td> </tr> <tr> <td>Firefox2(ブロック) </td> <td> x </td> <td> x </td> <td> x </td> </tr> <tr> <td>Firefox3(デフォルト) </td> <td> o </td> <td> o </td> <td> o</td> </tr> <tr> <td>Firefox3(制限) </td> <td> x </td> <td> x </td> <td> o </td> </tr> </table><p>oは送られた。xは送られなかった。<a class="keyword" href="http://d.hatena.ne.jp/keyword/Opera">Opera</a>が△なのは画面遷移したら、<a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>が送られてしまったため。</p><p>個人的な見解だけれども、ブラウザはアドレスバーに表示されている<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>以外への<a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>の送信を(ユーザーが明示的に許可しない限り)やめるべきだし、それが適切なデフォルトだと思う。サイト側の<a class="keyword" href="http://d.hatena.ne.jp/keyword/JavaScript">JavaScript</a>でフレーム拒否とか、<a class="keyword" href="http://d.hatena.ne.jp/keyword/JavaScript">JavaScript</a>有効になってる前提だし、(現実的な対策ではあるけれども)本質的な対策ではないでしょう。外部<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%C9%A5%E1%A5%A4%A5%F3">ドメイン</a>への<a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>の送信が無効であれば、クリックジャッキングで可能な攻撃は大幅に制限される。認証が不要な<a class="keyword" href="http://d.hatena.ne.jp/keyword/%B7%C7%BC%A8">掲示</a>板に自動で犯行予告を投稿させて<a class="keyword" href="http://d.hatena.ne.jp/keyword/IP%A5%A2%A5%C9%A5%EC%A5%B9">IPアドレス</a>をログに残させるぐらいだ。(それはクリックジャッキングを使わなくても出来る)</p><p><a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%B5%A1%BC%A5%C9%A5%D1%A1%BC%A5%C6%A5%A3">サードパーティ</a>への<a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>の送信が制限されても、外部サイトへの<a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>の送信を前提としているサービス<a href="#f-c19b2b63" name="fn-c19b2b63" title="例:はてなスター">*1</a>が使えなくなるぐらいだ。フレーム禁止しないと、本物のサイトに攻撃者のサイトを重ね合わせる手法が防げないけれど、それに引っかかる人間は元々<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A5%D5%A5%A3%A5%C3%A5%B7%A5%F3%A5%B0%BA%BE%B5%BD">フィッシング詐欺</a>に引っかかる。<a href="#f-815c35b9" name="fn-815c35b9" title="例:はてなCTO">*2</a></p><p>X-FRAME-OPTIONSのような、サイト側からの意思表示が出来る仕組みを作るのであれば「外部サイトに埋め込まれた場合は決して<a class="keyword" href="http://d.hatena.ne.jp/keyword/cookie">cookie</a>を送信しないでください」があってもいいんじゃないかなあ、と思います。</p> <div class="footnote"> <p class="footnote"><a href="#fn-c19b2b63" name="f-c19b2b63" class="footnote-number">*1</a><span class="footnote-delimiter">:</span><span class="footnote-text">例:<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA%A5%B9%A5%BF%A1%BC">はてなスター</a></span></p> <p class="footnote"><a href="#fn-815c35b9" name="f-815c35b9" class="footnote-number">*2</a><span class="footnote-delimiter">:</span><span class="footnote-text">例:<a class="keyword" href="http://d.hatena.ne.jp/keyword/%A4%CF%A4%C6%A4%CA">はてな</a>CTO</span></p> </div> Fri, 06 Mar 2009 21:13:26 +0900 hatenablog://entry/17680117127139890816 Fedora 10について https://mala.hatenadiary.org/entry/20090228/1235805132 <p>「<a class="keyword" href="http://d.hatena.ne.jp/keyword/Fedora">Fedora</a> 10が〜」<br /> 「<a class="keyword" href="http://d.hatena.ne.jp/keyword/TENGA">TENGA</a>?」</p> Sat, 28 Feb 2009 16:12:12 +0900 hatenablog://entry/17680117127139890900