故安倍元総理デジタル献花「50万人突破」の虚構

自己紹介

みりんと申します。
普段は所謂ITエンジニアをやっており。Twitterで主に政治とテクノロジーについてつぶやいています。
最初は5:5くらいのつもりで始めたものの、今では9:1以上政治に寄ってしまってる有様です。

政治について語る時に、常に自分のスタンスを明確にするべきとの持論を持っております。そうしたとき、私のスタンスは明確に反自民ですが、
しかし決して親立憲でも、親維新でも、親共産でもまして親れいわでもありません。
社民が入ってない、つまり社民支持だとか難癖をつけられそうなので親社民でもないと念のため付け加えておきます。
所謂無党派と言われる層に当たると思っています。

どの政党支持者にも認知の歪んだ人が一定おり、そういう人達は得てして狂信的であり、そしてネット空間においては声が大きくなりがちです。
個人的には党派を超えて誰に対してもおかしなことを言ってる人にはユーモアを交えて指摘してさしあげているつもりですが、
どうしてもネトウヨと呼ばれる人達が目につくのでネトウヨいじりが多くなりがちです。

本題

さて、今回思わずnoteのアカウントを作ってまで語ろうと思ったのは、掲題にある故安倍晋三元総理のデジタル献花について、技術者として看過し難いトンデモ言説が飛び交っているので、不毛な話の息の根を止めたいから。

私は明確に右よりの方々に負のバイアスがあることを自覚しているが、技術には右も左もない。ここに書かれていることは世界中のどのエンジニアに聞いても揺るがないことを先にお伝えしておく。

問題のデジタル献花プロジェクトのツイート

デジタル献花は9/30までで受付を終了し、最終的に50万を超える献花がされたとのこと。

プロジェクト自体の評価は話がブレるので今回はそこはさておこう。別に直接誰かに損害を与えるわけでもなく、直接献花出来ない人達の思いを受け止めるサイトとして、公益性があるんだと言う事に異論はない。勝手にされればよい。
問題は

520,429名の皆さま

と言い切っている点。これは技術的には明確に誤りであり、分かってやっているなら(分かってないわけはないが)欺瞞である。

結論から

技術的な話はさておき結論から。このサイトはその気になればほんのちょっとした手間で一人が何度でも献花を行うことが出来る。
実際当初私が気になってやってみたので間違いない。なので2/520,429は私の献花である。なんの気持ちもなく投稿したのが悪いとすれば先に謝っておきます。しかしすでにこの時点で"n名"が明確に誤りであることは確定したわけだ。
わざわざそんなことをするヤツがそんなにいるわけないと言う人がいるだろうが、私がいいたいのは「n名」と言い切っているのは技術的に間違いであり、信用に値しないサイトだということ。
私が同じ仕組みで「安倍総理の国葬を歴史に残させない署名」という悪意に満ちたサイトを作って、自分で自動投稿のプログラムで1000万投稿させることができるわけだが、その数に意味があるだろうか。
そんなものと一緒にするなと言われても、技術的にはそんなものと一緒なのだから仕方ない。
技術は善意と悪意を区別しない。

Webサイトがユーザを識別する仕組みについて

ここからはなぜ「n名」と言い切ることが誤りであるのか技術的に解説。
そもそも一般的なWebサイトがどのようにアクセスしてくるユーザを識別しているか。
結論は出しているので興味がなければ読み飛ばしてくれて構わないが、今後も雨後の筍のように出てくるであろう、投稿数のようなものとユーザ数を混同させてくる様々なサイトに対して、基本的な知識として身につけて置くことでこのような数字の欺瞞に気づくことができるようになるので、ご存知なければぜひ一読いただきたい。

何らかの仕組みを利用しないとWebサイトはユーザを識別出来ない

そもそも、WebサイトはHTTPと言われるルールでデータのやり取りを行うが、HTTPの素の機能にはユーザを識別する方法がなく、あなたのアクセスと、なんの関係もない他人のアクセスを識別することが出来ない。
今ではネットショップなど当たり前過ぎてユーザを識別するなど不思議でもなんでも無いと思われているだろうが、ネットショップで商品をカートに入れた後決済画面に進むことも、実はHTTP的には当たり前の処理ではないのである。
デジタル献花のサイトでは、一度献花した状態でそのままアクセスすると、献花IDなる文字が表示され、一見重複して投稿出来ないように見えていた。
つまり、ユーザが投稿したことを何らかの形で覚えて、次にアクセスしてきた時何らかの方法でそのユーザであることを識別し、保存した状態を呼び出していたわけだ。

Cookieの利用

Webサイトがアクセスしてくるユーザを識別するための最も普及した一般的な方法はCookieを使ったものであり、ご多分に漏れずデジタル献花サイトもCookieを利用していた。Cookieは非エンジニアでも名前を聞いたことがあるのではないだろうか。これはどのように動作するか。
Cookieとは要するにサイトにアクセスした時サイト側が払い出し、ユーザ、つまりブラウザに保存され、その後サイトにアクセスする際常にサイトに送る文字情報である。
Cookie含めヘッダと呼ばれるデータはブラウザの画面に出て来るものではなく内部的にやり取りされている。

Cookieにはサイト側が任意にどんな文字でも入れる事もできるが、ここに他のユーザと重複しない(一意の)文字情報を入れると、以後のアクセスの際その文字情報を添えてアクセスされるため、一度アクセスしてきたユーザを識別することができる。Cookieをこのように使った機能のことをセッションと言ったりするが別に覚えなくても良い。
実際にこの用途(セッション)として使われるCookieは多くの場合「YTAbDWVtj1pqvaJGA0mAxMEVtLRPp」のようなものが続く長いランダムな文字列だが、図では簡単のために「いろはにほへと」という文字列としている。

想定される処理フローは以下の通りだ

デジタル献花登録想定フロー
  1. ブラウザからデジタル献花サイトへアクセスする。

  2. アクセスしてきたブラウザに対してサイトのトップ画面と一緒にCookie「いろはにほへと」を払い出す。「いろはにほへと」のCookieを持つユーザ(ブラウザ)はそのサイトにおいては世界で一つだけであり、他のユーザには「あさきのゆめみし」を払い出すかもしれないし「かめんらいだー」かも知れない(要するに文字自体に意味はない)

  3. ユーザは献花を投稿する。確か必要なのは任意に設定できるユーザ名とメッセージ、年齢、あと花の種類だったか。この登録の際、最初に払い出された「いろはにほへと」を一緒にサイトに渡す(オウム返し)。

  4. サイトはユーザを識別する「いろはにほへと」と一緒に投稿された内容と、献花IDを払い出し保存する。通常このCookieと投稿内容は保存先が違うが、ここでは簡単のために一緒にしている。本論には関係がない。

  5. サイトは払い出された献花IDとともに献花の完了画面を表示する。

  6. ユーザは以後も常に「いろはにほへと」を添えてアクセスしてくる。

  7. サイトはCookie「いろはにほへと」を保存されたデータから探す

  8. 見つかったデータを抜き出す。

  9. 読み出したデータから一度投稿したユーザであると同定し、投稿した内容を画面に表示し、あたかも複数回の投稿は出来ないようにする。

複数回の投稿制限の回避方法

前項の説明を読めば敏い人はなんとなくわかったのではないかと思うが、Cookieでユーザを識別しているのだから一度ブラウザに保存されたCookieを削除すれば良いことが分かる。
今一般的に使われてるブラウザには全てCookieを削除する機能があるのでそれを使ってもいいのだが、Twitterやnoteも含めてあらゆるサイトのログイン状態が解除されるので面倒。
一番簡単な方法は、やはりこれもどのブラウザにも搭載されているシークレットウィンドウ(タブ)を使う方法。

シークレットウィンドウ(タブ)は保存されたCookieを使わずにサイトにアクセスするので、改めて投稿していない新たなユーザとして振る舞う事ができる。
なおTwitter民ならブロックされたアカウントのツイートを読むのにも使える。仕組みは全く同じであって、CookieがなければTwitterもまたユーザを特定出来ないからログインしていないゲストとして扱われるわけだ。
複数回投稿するための手間は「メニュー選択」「シークレットウィンドウを開く」の2タップ。ご丁寧にリンクの長押しメニューに「シークレットタブで開く」のような機能すらある。
やっていない人がいないというほうが無理があるだろう。

偉そうに講釈を垂れたが、こんなのはWeb屋にはまさにいろはのいであり、エンジニアじゃなくても今どきの若い子は常識として備えている人も少なくない。ちょっと調べれば誰だってわかるしできる。

サイトの言い分を鵜呑みにして「50万"人"」と言ってしまっている人達

ここからは余談というか私のバイアスのかかった話になります。
以下に、知ってか知らずか、デジタル献花サイトの言い分を鵜呑みにして50万"人"と言い切ってしまっている主だったツイートを並べます。

テレビ製作者にはちゃんとそれが"人"ではないと判断出来る人がいるということだと思いますよ。

これを50万人として報道してたとすればそのほうがやばいです。
産経新聞は18万の頃に「18万人」として記事にしていますが、現時点では最終的な数を報じて居ません。気づいたんじゃないのかな。

かける言葉がありません。

みなさんTwitterをもう使うななんて言いませんが、今後テクニカルな話に手をだすのはやめたほうが良いでしょう。
尤も、現代においてネットの仕組みも知らずにネットでまともな言論の発信が出来ると私は思いませんが。

小川サンにいたっては「何回でも投稿できるのだから意味がない」という指摘に対してこの有様
(ちなみにこの記事を書こうと思った動機がこのツイート)

出来ることを出来ませんと言い切るのはどうかおやめください。
その指摘は極めて真っ当なものです。

いくら文系でも仕組みも理解せずにできるか出来ないかを断定してしまっているとすれば、言論人としてそもそもどうなんでしょうかと言いたくなります。
他の問題でも根拠なく出来るの出来ないの言ってそうだ思われても仕方ないでしょう。
イメージの話なんかしてないんですよ。技術的にできるかどうかはっきりし
てるんです。
逆に何を根拠に出来ないと言い切っているのか是非伺いたい。
あるいは私の知らないオーバーテクノロジーが存在するのかもしれない。(2%くらい本気です)
まぁそんな技術があったとして私は複数回投稿できちゃいましたけどね。
あれれーおかしいぞー?

サイト作成者はどうすればよかったか

そもそもこのサイトが「献花の数を出せるように作られたのか」が問題です。
システム構築における要件です。
開発者と起案者が同じなのかもわかりませんが、開発者は「人」は同定出来ないと言っていたのを小川サンのような起案者が「n名」と表記させたのではないか。
これは完全に私の想像ですが。
(我が国のシステム開発ではよく見られる光景)
あくまで「n件の献花」という言い方をしていればなんの問題もありませんでした。

そもそもできるのか

ここからは更に余談の余談です。興味のあるひとだけ。

厳密に一人1投稿と絞ったシステムを作りたい、が要件だとするならそもそも相当難しい。
マイナンバーカードや運転免許証の登録を求めることになるでしょう。
急造のシステムで出来ることではありませんし、まともなセキュリティ意識を持った開発者であれば、稼げもしないサイトで個人情報を受け取るリスクを取る判断はしません。第一運営主体のよくわからないサイトにおいそれと個人情報を登録する人はそうそういないでしょう。

多少の複数投稿には目をつぶるものの、基本的には1投稿としたい。
くらいの要件であれば、携帯番号による認証を行うことが考えられます。
登録時に携帯番号を入れて、その番号に認証IDのSMSが飛び、URLにアクセスさせるなり、IDを入力させるなりすると初めて投稿が完了する、といったフローです。
もちろん複数の携帯(番号)を持っていればその数分投稿できますが、そんな人は相当限られるし、多くても3台とかが良いところでしょうから、これをやっていれば「ほぼ50万人とみなし」ても嘘にはならないと思います。
飛ばし携帯のようなことも考えられますがコストも掛かるしそこまでやるならむしろ複数人にカウントしてあげてほしい。
しかし携帯番号を登録するハードルもそこそこ高いので数は相当絞られてしまうでしょう。

IPアドレスがどうのという話が途中で出ていたように思います。よく開示請求などでも出てくるのでIPアドレスによって人が特定出来るのではないかと考えている人が居ますが、IPアドレスはそれだけでは人の特定には使えません。
きちんと説明すると長くなるので端折りますが、
集合住宅でまとめてネットワークを契約している場合、全て同じになることが多いですし、モバイルでも多くの場合一人に1アドレスは割り当てられません。一軒家の固定回線でも接続し直すとIPがつけ変わることが多い。
IPで識別していたとすれば、投稿したことのない人が献花投稿しようとしたら他人の献花情報が表示されるようなことが頻発していたでしょう。
なお、IPアドレスによって連続投稿を制限する以下のような記載がありますが

デジタル献花プロジェクトのサイトより

一般的にこういった規制はごく短時間、3秒とか長くても10秒とかの間に同一のIPでの投稿を縛るものにすぎません。

ちょっと特殊な方法としてデバイスのフィンガープリントを取るという技術がありますが、現状あまり推奨されませんし、やはり完全には特定出来ないので割愛します。

気休め程度ではあるものの、メールアドレスやツイッターアカウントの登録を必須とすればまだ多少は信頼性を高められたかもしれません。
もちろん複垢は作れますが、若干の手間を増やすだけでこういった行為は相当に減じられます。
その点で国葬の反対署名などと比較しても人数のカウントという点ではまともな議論に耐えない作りです。

終わりに

ここで説明したような方法を使う人間が全体の1%いるかというと、個人的には恐らく居ないと思います。
しかしそれはそのような方法で投稿された数が1%未満であることを意味しません。少し技術をかじっていれば、自動化して延々と投稿し続けるロボットを作るくらいは極めて容易です。つまり、献花した人のうち、複数回投稿した様な人は1%もいないとしても、ほんの数人そういうことをする人間がいれば、簡単に倍以上の投稿が行なえるということです。
これは邪推がどうとかいう話ではありません。可能性がある以上、その数を確固たるものとして「n人」と表明するのはよく言って無知、悪く言うと嘘です。

私はこのサイトが故人に対する全国の市井の人達の思いを残すというプロジェクトとして十分に価値があるものだと思っています。これは本当に。
しかし、投稿数=人数と言い張る限りその価値すら毀損することになるでし
ょう。
単に「n件」と言えばいいものを政治的な意味をもたせたがったせいで価値を下げているわけです。50万件の弔意で多いに結構じゃないですか。

現実の人間とネット上の人を同定することは、今のインターネットの仕組み上めちゃくちゃにハードルの高いことですので、軽はずみにできるなどと言わないことです。(それが急造のシステムで出来るくらいならとっくにネット投票が実現してる)
また、そもそもメカニズムを理解せずに出来るだの出来ないだの言うのは恥をかくことになりますので何卒慎まれることをおすすめします。

この記事が気に入ったらサポートをしてみませんか?