← すべての記事

オープンソース投票:ハイプではなく必要性

あなたの投票を数えるソフトウェアは秘密です — そしてそれを信頼するよう求める当局者たちは、それが彼らが言う通りに機能していることを証明する方法がありません。

2021年1月7日 — 議会議事堂が侵入された翌朝 — コンピュータフォレンジックチームはジョージア州コーヒー郡の選挙事務所に入り、すべてのコピーを持ち出しました。選挙管理システム。投票用紙マーキングデバイス。ステートワイドのドミニオンソフトウェア。すべてが、ドライブに焼き込まれ、持ち出されました。

コーヒー郡の投票システムは、保護する価値のある秘密として扱われていました。コードを隠す、マシンを保護する、当局者を信頼する。その戦略は、鍵を持つ誰かが規則が自分たちに適用されないと判断した瞬間に崩壊しました。

秘密は安全ではありません。 コーヒー郡がそれを証明しました。しかし、見出しの下には、より深い教訓が隠されています — そしてそれは誰かが侵入するかどうかに関係なく当てはまります。


秘密のコードについての問題は、誰もそれをチェックできないということです

投票機が独自のソフトウェアを実行する場合、そのコードを読むことができるのはベンダーと、時々、機密保持契約に署名する政府公認のテスターの小チームだけです。あなたはそれを読むことができません。あなたの郡委員は読むことができません。それを認証する州務長官はおそらく読むことができません。

代わりに誰もが得るのは約束です:我々はそれをテストしました、問題ありません、信頼してください。

これはセキュリティモデルではありません。これはビジネス上の取り決めです。

2006年にプリンストンの研究者たちが、アメリカの数百万の有権者に配備されたのと同じタイプのタッチスクリーン、ディーボルド AccuVote-TS マシンを分解したとき、そのソフトウェアはメモリカードでわずか約1分で破壊される可能性があることを発見しました。改ざんされるだけではなく、すべてのログとカウンターを書き換えて内部的に一貫性を保つ方法で破壊されました。痕跡は検出不可能なまま残ります。コードは通常の選挙夜の転送中に他のマシンに自身を広げることさえできました。研究者たちはこのマシンを持っていたため、これを発表しました。彼らはソフトウェアを見ることができました。ほとんどの人はその機会を得ることはありません。

AccuVote-TS は外れ値ではありませんでした。それは窓でした — 一度だけ開かれた — 通常は密閉されたままのシステムへの。

そして、ここが不快な質問です:独立した分析が1週間で見つけたのがそれなら、一度も公開検査されたことのないシステムに何が検出されずに残っているかもしれません? 我々に知る方法はありません。それがまさに問題なのです。


「我々はそれを監査しました」は結論ではなく主張です

当局者たちは選挙後の監査が結果を確認すると言うのが好きです。時々それは本当です。しばしばそれはより複雑です。

2020年11月のミシガン州アントリム郡では、誤った非公式の結果が発表されました。わずかにずれているのではなく — 間違った欄に数千票。エラーは検出されましたが、内部セーフガードによってではありません。それは誰もが共和党寄りであると知っている郡にとって結果が不当に不可能だったために検出されました。より微妙なエラーは、より接近した郡では見落とされたかもしれません。

その後、12月に、当局者たちは修正されたマシン集計を確認するために大統領投票用紙すべての完全な手作業集計を実施しました。手作業集計は、投じられた約15,700票のうちマシン合計から12票の分散で戻ってきました。12票。

一方的なレースでは、12票は丸め誤差です。しかし、ここが問題です:本当に接近したレース — 50票、または20票、または5票によって決定されるレース — では、それ自体が12票オフである手作業の再計数は何も解決することはできません。 できません。数学的に。「ゴールドスタンダード」の手作業監査はそれ自体の削減不可能な人的エラーを伴います:曖昧なマーク、午前2時の疲労、異なる手の対によって異なる方法で行われた異議を唱える裁定呼び出し。

ミシガン州務長官が監査が「精度を確認した」と言ったとき、それは安心でした。それは証拠ではありませんでした。12票のギャップは、当局者が記者会見を開くため消えません。

ここでの本当の議論は誰かが不正行為をしたということではありません。議論は、「州務長官がそれで大丈夫だと言っている」と「手作業集計がそれを確認した」は独立した検証可能性の代替品である — そして代替品は本物ではないということです。


投票システムに対してオープンソースが実際に意味すること

人々は「オープンソース投票」を聞いて、ハッカーが選挙を破ることに招待されることを想像します。それは間違った絵です。

オープンソースは、ソフトウェアのソースコード — マシンが実行するすべての命令 — が誰でも読むことができる場所に公開されることを意味します。セキュリティ研究者。学者。プログラミングクラスを2つ取ったあなたの甥。他のベンダー。ジャーナリスト。独立したウォッチドッググループ。誰でも。

これは、ほぼあまりに単純に聞こえる理由で重要です:誰もが読むことができるコードにバックドアを隠すことはできません。 または、できますが、独立した読者の数が増えるにつれて、検出の確率は低下します。

現代の暗号投票研究はさらに進みます。オープンソースは基盤ですが、その上に構築された構造は「あなたはそれを読むことができます」を「あなたはそれを証明することができます」に変えるものです。

ピースがどのように組み合わさるかここにあります:

公開ソースコード は誰もがソフトウェアが何をすることになっているかを検査できることを意味します。それはステップ1ですが、ステップ1だけです — コンパイルされたコードとマシン上で実際に実行されているコードは異なる可能性があるからです。

再現可能なビルド はそのギャップを閉じます。投票システムのビルドプロセスが再現可能である場合、公開されたソースコードを取得して公開されたステップに従う誰もが、認定マシン上で実行されているバイナリと同一のバイナリ — 実際のマシン実行可能ファイル — に到達することを意味します。ハッシュをチェックできます。マッチしたら、マシンはそれが言う通りのものを実行しています。マッチしなかったら、誰の言葉も信頼せずに、すぐに知っています。

暗号整合性レイヤー はさらに進みます。エンドツーエンド検証可能(E2E-V)投票などの技術により、各有権者は自分たちの投票用紙が意図した通りに投じられた、投じられた通りに記録された、記録された通りに数えられたことを確認できるようにする領収書を受け取ることができます。誰に投票したかは明らかにしません。数学は公開です。検証は公開です。結果は、どの当局者、どのベンダー、どの監査人も信頼する必要がありません。

これら3つのレイヤーを一緒に、質問を*「あなたはベンダーを信頼しますか?」から「あなたは自分で数学をチェックできますか?」*に移します。

その転換がすべてです。


なぜコーヒー郡は秘密が間違った戦略であることを証明するのか

コーヒー郡に戻りましょう、なぜなら教訓はほとんどのカバレッジが示唆するのとは全く異なっているからです。

侵害は主にカストディーセキュリティの物語として扱われました:認可されていない人々がアクセスすべきではなかったシステムにアクセスしました。本当。しかし、その物語の下には、侵害をこれほど重大にした構造的仮定があります。

システムのセキュリティモデルはソフトウェアが秘密のままであることに依存していました。

ソフトウェアがオープンソースだったなら、「彼らはコードのコピーを取得した」は大幅に少ないアラーム判定になったでしょう — なぜなら誰でもすでにコードのコピーを持つことができたからです。選挙の整合性はコードを隠し続けることに依存しなかったでしょう。それは数学に依存したでしょう:暗号コミットメント、公開監査ログ、誰もがチェックできて誰も静かに変更できない検証可能なレコード。

オフィスに入ってきた人々が取得したものは独自のものでした。賞としてのその価値はそれが秘密であることに完全に依存していました。透明性と改ざん防止のために構築されたシステムは、彼らにほぼ多くを渡さなかったでしょう。

Lawfareによるコーヒー郡エピソードの再構成は全文で読む価値があります。アトランタ・ジャーナル・コンスティチューション報道は、何がコピーされたか、どのように広がったかについての追加の詳細を追加します。一緒に、彼らは何十年もセキュリティ専門家が理解している原則を説明します:不明確さに依存するシステムは、最も重要な方法で脆弱です。


再現可能なビルドの問題は理論的ではありません

「再現可能なビルド」はソフトウェア開発のハウスキーピング問題のように聞こえます。それではありません。

これが解決する具体的な問題です。投票機ベンダーがソースコードを公開していると想像してください。ジャーナリストと研究者がそれを読みます。問題ないようです。認証ラボはそれをテストします。合格します。州務長官はそれを認証します。

今度は、ベンダーがそのコードを、実際にマシン上で実行されるバイナリにコンパイルする際に、小さな変更を加えると想像してください。公開されたソースではなく — コンパイル段階で。1つの異なる命令。すべての配備マシン上のバイナリは、誰もが監査したバイナリと異なります。その方法で、選挙後のペーパーチェックは検出されません。リスク制限監査は検出されません。紙記録自体が危険にさらされていない限り、完全な手作業集計でさえ検出されません。

再現可能なビルドなしではこれを検出できません。それらを使って、あなたはできます:自分でソースをコンパイル、ハッシュを比較、そして知ります。すぐに。誰も信頼しません。

これは修辞的効果のために構築された仮定のシナリオではありません。SolarWindsに対する供給チェーン攻撃 — 選挙とは関係ありませんが、原則とはすべての関係があります — は、洗練された行為者がコンパイル段階でソフトウェアを変更できることを示しました。ソースコードはきれいに見えたままで、配備バイナリはそうではありません。投票ソフトウェアにビルドが独立して再現可能でないところでは、同じ攻撃対象がソフトウェアに存在します。

現在、大規模でアメリカで配備されている投票システムは、公開のどのメンバーも検証できる独立して再現可能なビルドを提供しません。そのギャップは実在します。それは測定可能です。そしてそれは誰かがシステムがテストされたとあなたに言うことによって閉じられていません。

このギャップが世界中の管轄区域全体でどのように比較されるかを見てください →


「検証可能」が実際に意味するもの — そしてそれでも意味しないもの

ここで正確であることは価値があります、なぜなら「検証可能」は緩く使われるからです。

コロラドが2017年に開拓したリスク制限監査、またはジョージアが2020年にステートワイド規模で配備したものは、固定パーセンテージ抜き取り検査よりも本当の改善です。紙の投票用紙を手で検査することは、マシン計数が正しいこと — 紙が信頼できて かつ サンプリングが本当にランダムである場合 — についての統計的信頼を与えます。

それらは本当の「ifs」です。しかし、完璧なRLAでさえ、紙とマシンが同意したことだけを検証します。それは、それらのマシンを実行したソフトウェアが何であると主張されたかについては教えません。それはコンパイル段階を検証しません。有権者が自分の特定の投票用紙が含まれて数えられたことを確認できるようにしません。紙に対してタリーを確認します。それはソフトウェア自体をチェック可能にしません。

オープンソース、再現可能なビルド、エンドツーエンド検証可能なシステムは監査を置き換えません。それは監査が立つための何か堅固なものを与えます。

階層はこのように見えます:

  • 独自のクローズドソフトウェア:ベンダーを完全に信頼
  • オープンソースのみ:誰かがビルドに何か悪質なものを挿入しなかったことを信頼
  • オープンソース + 再現可能なビルド:公開されたコードと実行中のバイナリが一致していることを独立して確認可能に信頼
  • オープンソース + 再現可能なビルド + E2E検証可能性:数学を信頼、人々ではなく

各レイヤーは、あなたが信仰で取る必要がある1つの別のものを削除します。目標は完璧さではありません。目標は、「これは正しく機能しましたか?」という質問を、当局者ではなく利益を言う必要がある誰でも — コンピュータと確認するための時間を持つ人なら誰でも答えできるようにすることです。


シェア可能な真実

ここはスクリーンショットする価値のあるラインです:

「選挙当局者が『信頼してください、我々はそれを監査しました』と言うたびに、彼らはあなたに監査人を信頼するよう求めています。検証可能な投票のポイントは、あなたが信頼する必要がないということです。」

このピースの事件 — チェックできないコード、明らかに間違っていないまで間違っていた結果、郡事務所からハードドライブでコピーされたソフトウェア — 選挙が不正であるという議論ではありません。それらは、現在のモデルがアーキテクチャが正当化できないレベルの信頼を求めるという議論です。

紙記録は助けになります。監査は助けになります。しかし、結果を生成するソフトウェアがブラックボックスである場合、マシン上で実行されているバイナリを公開ソースコードに対して独立して検証できない場合、有権者が自分たちの投票用紙が数えられたことを確認する数学的な方法がない場合、それらは十分ではありません。

これを誰でもチェック可能にするのは何ですか?3つのもの、現在ほとんどのアメリカの管轄区域で未解決:

  1. すべての投票システムの完全な公開ソースコード — NDAの下の利用可能なソースではなく、本当に公開
  2. 再現可能なビルド 公開されたハッシュを持つ誰もが検証できる
  3. エンドツーエンド暗号領収書 個々の有権者が自分たちの投票用紙の包含を監査できるように

これら3つが存在するまで、「監査がそれを確認しました」は、当局者が見たときに見つけたことについての声明です。それは、部屋の外の誰もが独立して検証できる声明ではありません。

それは陰謀論ではありません。それはエンジニアリング要件です。

これらのギャップの2分バージョンを読んでください → 今日、オープンソースギャップを持つどのシステムと管轄区域を見てください → ギャップアトラスで再現可能なビルド失敗を探索してください →


出典