維新学生部の活動に参加しよう!!

学生部の新たなディジタル投票システム

ディジタル投票とは?

国政や地方の政治において、様々な種類の選挙が存在します。一番直近に行われたのは2023年4月に行われた統一地方選挙ですね。選挙権のある皆さんは選挙に行かれましたか?

選挙に行かれたことのある方であれば選挙とはどのようなものか、分かるかと思います。投票用紙に名前を書き、投票箱に入れる。たったこれだけで投票が終わります。

投票箱のイラスト(選挙)

しかし、たったこれだけの選挙であっても、その周りにはさまざまな脅威が潜んでいます。投票用紙は誰かに覗かれていないか、投票者を書き換えられていないか、きちんと数えられているか…などなど

そういった脅威に対応するため、公平に選挙を取り扱う「選挙管理委員会」という組織が存在します。選挙管理委員会は公職選挙法の定めるルールに従って公平に選挙を扱います。

この選挙システムの大きな問題点は、人間に大きく依存するシステムであるというところです。選挙を扱う人間がエラーを起こさず、公平性を保つことができるかというところで、選挙結果が大きく作用することもあり得ます。

この記事にて詳しく取り上げられているように、ヒューマンエラーによる不正選挙の事例は、過去にも幾らか発覚しています。

このエラーを減らすにはやはり、選挙集計において高度なセキュリティ技術によって保護されたディジタルなシステムが必要なのではないでしょうか。IPAのセキュリティキャンプを修了した筆者はそのように考えております。

そこで、2023年5月に行われた関西学生部部長信任選挙において、匿名性を守りつつ公平に投票を行うディジタル投票システムを実際に発案し、試験的に行ってみましたので、今回はそのシステムについてご説明いたします。

システム概要

システム全体の概要は、以下の図のようになっております。

関西学生部 部長信任選挙 投票システム

まず使用したのは、今年4月に開発した学生部員向けポータルサイトです。

ポータルサイトはこの学生部HPに併設される形で、学生部員であれば誰でもアカウントを発行してログインし、学生部における様々な情報を知ることのできるものになっております。

関西の学生部員であれば同時に今回の投票に参加できるよう、アカウント作成時に投票コードが送られるようなシステムを組み込みました。

ポータルサイトのアカウント発行画面
配付される投票コード

この時に、wordPressよりphpのメールにて送信されるのですが、送信Boxなどが存在せず、ログを残すような設定を特にしていなければ(今のところはしていない)、送信側にそのデータが残ることはありません。

ログは管理していませんが、投票コードを照会できるように、その本体をどこかデータベースに残す必要があります。そこで、スプレッドシートに投票コードをハッシュ化した暗号で残すようにしました。

ハッシュ化する必要性については不正の防止のところで詳しくご説明致します。

次に、この投票コードを使用し、以下のような投票フォームで投票を行います。

選挙フォーム

ここで投票を行うと、まず投票コードが正しいかspread sheetのものと照会されます。もし同じものであれば、選挙結果を同じ行の隣の列に自動で入力します。

投票結果の閲覧

これで投票が完了となります。同じ投票コードを用いて再度投票を行えば、自分の投票を修正することも可能になります。

秘密投票の実現

Google Formは学生部総務課のGoogleアカウントにて作成しているため、そこにログインできなければ結果を閲覧することは本来できません。

また、結果を閲覧しても投票コードは本人しか知らないため、誰が投票したかも確認することはできません。

全員が見ることのできるスプレッドシートの結果を閲覧しても同様に、誰が投票したかという情報を取得することは不可能になります。

秘密のポーズのイラスト

しかしもし投票コードが漏れてしまった場合、同じプロセスでハッシュ化して照会すればこれは簡単に破られてしまいます。そのため、この匿名性は個人が情報を保護できるかという個人の情報リテラシーに依存しています。

不正の防止

今回、個人しか知り得ない投票コードなのに、なぜ記録に復号が不可能なハッシュ値を用いる必要があったのか、についてご説明させていただきます。

それは最初に問題点として挙げた、「投票の書き換え」を防ぐためです。

ハッカー・ネットワーク犯罪のイラスト(セキュリティー)

もし全員が閲覧することのできるスプレッドシートに投票コードがそのままの状態で保存されていたとします。

今回は投票コードで投票を修正することが可能なため、そのスプレッドシートから投票コードを取得し、投票フォームにて入力し書き換える不正投票を行えてしまうことになります。

そこで、復号することが不可能(同じプロセスでハッシュ化すれば照会することは可能)なハッシュ値を用いることで、こういった不正を防いでいます。

まとめ

いかがでしたでしょうか。今回は、学生部総務課のシステムチームが発案した学生部のディジタル投票システムについてご紹介させていただきました。

今後はこのような投票システムをポータルサイトに組み込み、学生部内において高度な選挙のディジタル化を行っていきたいと考えています。

学生部総務課システムリーダー Jin