Twitterの仕様を利用し言っていないことを言ったことにする方法

ソースを示すURLを見せることにより検証可能であると見せかけて、嘘をつく方法の実例。怖すぎる。

概要はこちらに詳しい。

詳細は発言を捏造された本人のエントリーにて。

この方法が成立する条件。

  1. 出典を示すこと自体がその主張の信頼性を高めるとみなされている
  2. TwitterではURLが指し示す発言がもともと存在しない場合とURLが指し示す発言を後から削除した場合で同じエラーメッセージが表示される
  3. ある行為をしていないことを証明するのは原理的に難しい(悪魔の証明

「出典を示すこと自体がその主張の信頼性を高めるとみなされている」については、私もなぜ、引用・転載をする際には出典を明記しなければいけないのか出典の明記をしないので責任どっかぶりの予感で書いているようにしょっちゅう「出典を明記せよ」と主張していますし、信頼できそうな情報のフィルターとしてまさにそのままの提案うまいレッテルをどう貼るかをしている。で、今回の例はそれを悪用している。

TwitterではURLが指し示す発言がもともと存在しない場合とURLが指し示す発言を後から削除した場合で同じエラーメッセージが表示される」については、データベースの設計変更やインターフェースの種類増加を抑えているためかもしれない。また、別の側面としてはこれまでは発言者のミスを影響がないように処理するという視点でサービスが設計されているというのもあると思う。情報セキュリティの観点から、アプリケーションのログイン処理においては 1) そのユーザーがそもそもいない。 2) パスワードが間違っている。という1)と2)のどちらのケースでも同じエラーメッセージを出せと言われているし(ユーザーがいないことをメッセージとして返したり、パスワードが間違っていることを返したりするとそれを手がかりに次の攻撃が行われるため)。

TwitterFacebook、ブログなどの発言や記事が第一次情報源とみなされるようになってきたので、これからは、否認(自分が行った行為をやっていないと言い張る)防止や今回のような発言の捏造防止のためには、今後のソーシャル的なWebサービスでは、そもそもURLが指し示すリソースが存在しないことと、リソースがあったのに削除されてしまったことを区別して表示できるようにしないといけなくなったと思う。

今回の例でいえば発言のIDの偽造の稚拙さが説明されたので、よりうまい偽造が登場するのもあと数時間のうちだと思われる。なので、Twitterの発言を使った今回のようなやり方が頻発するのは、ほぼ確実。可能ならばTwitterには仕様を変更して欲しい(データベース設計の変更は必要なく、削除したTweetのメッセージ部分を空にし、そもそもそのIDがなければ「存在しない」、IDはあるのにメッセージが空であるならば「削除された」と表示すれば良い)。ただ、扱っているデータの量が半端じゃないものなぁ。

余談ながら、レポートや論文でWebページを参考文献にしてはいけない理由の一つはこの「簡単に跡形もなく削除できる」点にある。簡単に跡形もなく削除できるので「私が見たときには存在したけど、今は見れない」という主張が否定しづらい。ISBNやIBBNがない本や雑誌、学術誌や会議録に採録されていない論文も同様の主張がしやすい。そうすると、検証可能という発想から外れる。

「ある行為をしていないことを証明するのは原理的に難しい(悪魔の証明)」はよく知られた話。科学的発見において従来の主流仮説と反する仮説を主張する場合には、新しく仮説を主張する方がその仮説が妥当であることを説明しなければならない。ちなみにニセ科学未科学の悪いところは「新しい仮設がダメだということを相手に説明させる」点にある。さまざまな交渉後と(裁判含む)も「した/ある」を説明するのが基本であり、「しなかった/ない」は説明しなくて良いことになっている。

今後の対応

防衛するために

  • Qu記(仮):Twitterの発言を捏造されて2ちゃんねるで炎上した件についてに書いてあるように、普段からWeb上に公開する情報を問題ないものにしておく
  • 普段から発言や記事を削除せず、訂正で対応するようにする。そして「あの人は自分の発言や記事を削除する人ではない」というコンセンサスを得ておく。
  • 発言や記事を機械的に蓄積しておくようなサービス(本人からの削除も受け付けない)を利用する。ただし、そんなサービスがあるかどうかは知らない。


加害者にならないために

  • 比較的偽造が難しい情報源を一緒に提出していない批判的・非難的主張にのらない。たとえば、ウェブ魚拓スクリーンショット(追記とコメント欄参照)を同時に提示しない主張はURLを示していたとしても信用しない。
  • 特にTwitterの場合は前後の発言を見る。その上で文脈上おかしい発言は信用しない。
  • 電子的な情報源において、何が比較的偽造が難しいのかの知識を得る。
  • その他は普通のTwitterでの注意と一緒(あなたがTwitterを使うときに気をつけるべきことより転載)
    • 広まることを希望している発言は広めない。「拡散希望」とか「身近な人に広めてください」というような発言は基本的にリツィートしない
    • 広まることで特定の個人、組織、会社にダメージが発生しそうな発言は基本的にリツィートしない
    • 元発言者のID、紹介されているURLを削らない。Twitterの公式リツィート機能(発言をそのままリツィートする)を使う
    • 記録しておきたいだけならばリツィートでなく、お気に入りをつかう
    • 本当に広めたいことは、自分が管理できるブログやWiki、Webページに記載し、そのURLをセットでTwitterに流す

追記(2012年1月12日):はてなブックマークのコメントより

  • "スクリーンショットを同時に提示しない主張はURLを示していたとしても信用しない。"フォトショで加工できるでしょ。何このイタチごっこ。
  • 存在しないのと削除されたのを見分けられるようにしても、削除済みURL添えて発言捏造できるから無意味なのでは(仕様変更で対処するなら、削除できないようにするしか無い)

基本的にゼロ・イチの問題でいうと、いかなる証拠も偽造されてしまう。なので、気にすべきは程度問題。Twitterが削除済みと存在しない発言を区別して表示するのならば、発言の捏造に使える都合のよい削除済み記事があるときしか偽造がおこなえなくなるので難易度があがり、偽造をやりづらくなる。スクリーンショットも加工が可能だけれども、加工の質の問題があるので偽造がやりづらい。

追記2(2012年1月12日):フォトショ不要だった

  • フォトショ以前にWeb開発者向けのツール使えば簡単に偽の画面作れて便利

そういえば、そもそもHTMLファイルを修正すれば良いのだったというのに気がついた。Gizou.png 直のように存在しない利用者&発言をつくるのは至極簡単だった(所用時間5分)。

  1. 任意のツイート画面をダウンロード
  2. HTMLファイル中のJavascriptを削除
  3. 適宜書き換える。
  4. ブラウザでそのファイルを開く
  5. URL欄に適当なURLを用意する。
  6. スクリーンショットをとる(今回はGimpでとった)

思った以上に簡単に完璧な偽造画像つくれるのでスクリーンショットは何の証拠にもならない。