企業がマーケティング施策としてプロモーションサイトで人気投票を行ったり、選挙前に国民世論や政策へのコミットメントを計る為にインターネットを利用した投票システムの利用が増えています。しかしネット投票システムはそのメディア特性ゆえ、図らずも"炎上ネタ"とされたり不正アクセスによって信憑性の低い結果に終わることがあります。

そこで、"炎上ネタ"とならない為にも、現在一般的に実施されているネット投票システムの不正防止機能について考察してみます。

特に何も対策をしない
これは特に重複投票対策を行わず、ユーザが何回でも対象に投票できる仕様ですが、主にコスト面でそうなっている場合と、投票自体がサイトや企画を活性化させる効果を狙ってあえてそうなっている場合があります。設問自体もサイトの盛り上げを目的にした内容なので、投票結果で何かが影響されることが無い場合に向いています。

Cookieを用いた不正防止
ブラウザはWebサイト閲覧の利便性を向上させるために、CookieというデータをPCに記録してログイン状態やショッピングカートの内容の保持などを行う仕組みがあります。このCookieに「投票しましたよ」というフラグを記録しておくことで重複投票が防止できます。
ただしこの仕様には大きな欠陥があって、Cookieファイル自体を消去してしまえば、「投票していない」と同じ状態になるので、この仕組みを熟知しているユーザは不正にCookieを操作することで何度も何度も投票を行う事が可能になります。猛者になると不正投票を行うプログラムを作って、現実ではあり得ないような投票を行うことが可能です。この不正操作によって、最も得票数が低そうな候補に異常な票が集まったりすると、Twitterなどでどんどん拡散して"祭り"や"炎上"といった事態に発展します。

IPアドレスによる不正防止
Webサイトにアクセスする際にユーザは必ずグローバルIPアドレスを持っていますので、このIPアドレスを投票時に記録しておくことで、また同じIPアドレスから投票されても照合して排除することができます。ただしこの場合、企業などで同一ネットワーク中におり、インターネット接続に使用しているIPアドレスは一つだけという環境では、従業員が何十人いても投票できるのは一人だけというデメリットがあります。不正防止には強力な仕様で、投票結果も統計手法的には信憑性が高いものとなると思いますが、投票数が"稼げない"ことがサイト運営者にとって嫌われる事になるかもしれません。

SNS会員認証を利用する
FacebookなどSNSサイトの認証を既に受けている状態を利用して投票を行います。SNSのユーザIDを投票データに保持することで重複の排除に使えると思います。この場合のデメリットはSNSのアカウントが必須なことと、ログインしていない状態では投票できないことです。ちなみに各SNS会社のAPI利用規約などを熟読して利用方法が抵触していないか自己責任で判断してください(ユーザIDを記録するのはNGかもしれません)。

チケット方式
結局のところ、不正防止にはユーザにひと手間かけさせる必要がありそうです。実際の選挙では投票用紙引換券が有権者個人に郵送され、さらに投票所でも選挙違反が行われないように住民登録表と照合が行われたのちに投票用紙が渡されますね。したがってこれと同じ様な仕組みをWebで実装することが最も不正防止になると思います。
例えば投票前に"ネット投票権"を獲得するためにフォームでメールアドレスを入力してもらい、その段階でメアドの重複をチェックして問題が無ければユニークなアクセスKEYをメールで送信します。このアクセスKEYは数千万数億回程度アタックしてもマッチしないような冗長性を持たせます。ユーザは投票の際に候補の選択とともにこのアクセスKEYをチケット(投票券)として入力します。このアクセスKEYは二度と使用できないような仕組みにできるので重複投票はできません。ただし、、このチケット方式でもメールアドレスを任意にいくらでも作れる環境にある人は複数の投票券を得ることが可能なのでもうひと工夫必要ですね。


昨今、若年層の投票率改善やコスト削減の為にネット投票システムの導入が議論され始めていますが、国政を左右するわけですから、絶対に不正や二重投票が起きないシステムにする必要がありますね。そうなった場合でも、郵送によるリアルなインターネット投票用紙の配布は欠かせないのはないでしょうか。