もしソフトウェアがテスト後に変更されたら?
投票ソフトウェアはあらゆるテストに合格しました。その後、誰かが選挙事務所に入り、システム全体をハードドライブにコピーして去りました。その後「認証済み」とは何を意味するのでしょうか?
2021年1月7日の朝、コンピュータ・フォレンジックス・チームはジョージア州コーヒー郡の選挙事務所の玄関を通って入ってきました。すべての鍵を持つ郡職員によって入室を許可されていました。彼らは調査官ではありません。監査人でもありません。その後数時間をかけて、彼らはすべてをコピーしました。選挙管理システムサーバー、投票用紙マーキング装置、高速スキャナー、ジョージア州全域のDominion投票システムソフトウェア。すべてです。彼らはそれをハードドライブに入れて去りました。
彼らがコピーしたシステムはテストされていました。認証されていました。実際の選挙を実施していました。
その後に起きたことを止めるものは何もありませんでした。
「認証済み」が実際に意味すること
投票システムが実際の投票用紙に触れる前に、認証プロセスを通ります。テスト機関はハードウェアとソフトウェアを検査します。機械がドキュメントで述べていることを実行することを確認します。レポートを発行します。管轄区域がシステムを受け入れます。
これは十分であるように見えます。そして時間のスナップショットについては、実際にそうです。
しかし認証は監視カメラではなく、一つの写真です。 それは検査機関がそれを検査した日に存在していたシステムをキャプチャします。その後、システムがラボから投票所へ、そして選挙から選挙へ行く間に何が起こるかは、完全に異なる問題であり、認証プロセス自体によってはほぼ答えられていません。
重大なギャップはこれです。誰も、公開が独立して確認できる方法で、選挙当日に実行されているソフトウェアがテストに合格したソフトウェアと同じであることを日常的に証明していません。
そのギャップには名前があります。私たちはそれを選挙前のソフトウェア交換問題と呼んでいます。それは理論的ではありません。
コーヒー郡:鍵が間違った人々に渡ったとき
コーヒー郡のエピソードは、連邦訴訟Curling v. Raffenspergerでの証言書で記録され、後にフルトン郡の起訴状で、選挙ソフトウェアの秘密主義がいかに脆い安全保障戦略であるかを最も明確に実証するものです。
システムの完全性は、部分的には、認可された人々のみがそれにアクセスすることができるという仮定に基づいていました。その仮定は、郡職員がフォレンジックス・チームを入れた瞬間に破綻しました。違反に関連した数人は後に有罪を認めました。ジョージア州事務局長官事務所はそれを州法違反の不正アクセスと説明しました。
有罪答弁の後に続く質問はこれです:ソフトウェアがコピーされ、あなたが管理していない場所にあるかもしれない選挙システムについて、あなたは何をしますか?
現在の認証モデルの下での正直な答えは:それほど多くはありません。パスワードを変更できます。システムにパッチを適用できます。職員がしたように、違反が後続の選挙の完全性に影響しなかったと主張できます。しかし、あなたを既に信頼する傾向がない人に対してはそれを証明することはできません。システムがそもそも独立して検証可能であるように設計されていなかったからです。
Curling事件で記録されたように、裁判所への専門家証言は、サイバー攻撃が実行可能に投票を入れ替えたり削除したり、システムを危険にさらす可能性があるという調査結果を含みました。裁判所はQRコードベースの集計システムが「投票者に検証可能で監査可能な投票記録を提供していない。なぜなら、それは実際の投票の集計にQRコードに依存し、そのコード自体は投票者によって読み取りおよび検証されない」と判断しました。紙の印刷出力は、印刷出力が人間が読むことのできないバーコードで実際の投票をエンコードしている場合、投票者検証可能なレコードではありません。
不透明性による安全保障はコーヒー郡で失敗しました。なぜなら不透明性は常に最終的に失敗するからです。誰かは常に鍵を持っています。
より深い問題:認証と選挙当日の間に何が起こるか?
コーヒー郡はありふれた問題の劇的なバージョンです。
選挙システムは運用期間中全体にわたってパッチ、構成変更、およびソフトウェアアップデートを受け取ります。ベンダーは修正をプッシュします。郡はアップデートを適用します。メモリカードは選挙間に再プログラムされます。これは正常で、合理的なソフトウェア保守です。そして、それはほぼ完全に公開されていません。
2007年のカリフォルニア上から下への見直し。カリフォルニア大学のコンピュータ科学者が認証された投票システムのソースコードを検査したもので、認証されたすべてのシステムで深刻な脆弱性を発見しました 。マシン間に拡散する可能性のある悪意のあるソフトウェアからのリスクを含む。同年のオハイオEVERESTレビュー。3大ベンダーの認証されたシステムを研究したもので、それらすべてが「重大なセキュリティ障害を備えている」と結論付けました。そして、監査ログが通常は登録可能であるか、それらが監視されることになっていた人々によって消去可能であったことを注記しました。これらはアクティブに使用中で、ソースコードを与えられた独立した専門家に検査された認証されたシステムでした。
カリフォルニア州とオハイオからのレッスンはコーヒー郡からのレッスンと同じです。「それは認証されました」は質問の終わりではなく、始まりです。
米国政府説明責任局は本質的に2005年にこの点を指摘しました。20年以上前に発行されたレポートで、投票システムセキュリティを改善するための連邦の努力は進行中であるが「主要な活動は完了したままであった」と判断しました。安全なソフトウェアリポジトリの確立と脆弱性に関する情報の共有を含む。それらのギャップの一部はその後狭くなりました。構造的問題はそうではありません。
プリンストン実験、そしてそれがなぜまだ重要なのか
2006年、プリンストン研究者アリエル・フェルドマン、J・アレックス・ハルダーマン、エドワード・フェルテンは実際のDiebold AccuVote-TSを入手しました。米国全体で使用されている種類のマシンで、それに対して約1分間の物理的アクセスを持っていました。彼らが構築したものは、メモリカードを通じてそれ自体をインストールし、すべての内部記録を一貫性を保ちながら集計を変更し、通常の選挙当日の操作中にマシン間に拡散できる投票盗難ウイルスでした。
マシンは認証されていました。ソフトウェアはテストに合格していました。
プリンストン論文は今ほぼ20年前のもので、投票システムは変わりました。しかし構造的なレッスンはそうではありません。選挙当日に実行されているソフトウェアが検査したソフトウェアであることを独立して検証できない場合、検査はそれほど多くを確立しません。
認証されてから更新、認証されてからパッチ、または認証されてからコピーされたシステムは必ずしも検査機関がテストしたシステムではありません。そして現在のほとんどの認証フレームワークの下では、ルーチンで独立した公開メカニズムはありません。
再現可能なビルド:質問を変える技術的な修正
ソフトウェアエンジニアリングの概念があります。これは直接的に対処します。再現可能なビルドと呼ばれています。
ここで考え方を平易な言葉で説明します。ソフトウェアがコンパイルされるとき。人間が読めるソースコードが実際にマシンで実行されるバイナリに変換されるときに、プロセスは通常、タイムスタンプ、コンパイラ設定、その他の変数に応じて毎回わずかに異なる出力を生成します。つまり、ソースコードを公開した場合でも、それ自体でコンパイルする独立した当事者は、展開されたマシンで実行されているバイナリと正確に一致しないバイナリを取得します。あなたは、ビット単位で、実行中のコードが公開されたコードと一致することを検証することはできません。
再現可能なビルドはこれを変更します。ビルドが再現可能である場合、公開されたソースコードを取得し、記録されたビルドプロセスに従う人は誰でも、まったく同じバイナリ、バイト単位で得ます。 その後、展開されたマシン上のバイナリの暗号化ハッシュを、独立してコンパイルされたバイナリのハッシュと比較できます。一致する場合、実行されているコードを知っています。一致しない場合、何かが変わった。そして、あなたはそれが何であるかを調べることができます。
これはサイエンスフィクションではありません。Debian Linuxプロジェクトは2013年から再現可能なビルドを追求しています。Tor Browserはそれらを達成しています。Bitcoin Coreはそれらを達成しています。これらは実装された実システムです。独立した当事者がバイナリが公開されたソースと一致することを確認できます。
投票ソフトウェアの場合、再現可能なビルドはこれを意味するでしょう。任意のアップデートまたは構成変更の後、管轄区域はバイナリハッシュを公開します。誰でも。ジャーナリスト、研究者、キャンペーン、投票者擁護グループ。独立してソースをコンパイルし、ハッシュが一致するかどうかを確認できます。一致しない場合、それは公開、偽造不可能な事実です。
これは「私たちを信頼してください」を「自分自身で確認してください」に置き換えることを意味します。彼ら自身のシステムをチェックする職員による監査ではなく。認証スナップショットではなく。ソースコードから実行マシンまでの継続的で、独立した、公開可能な検証済みのチェーン。このギャップについてと実際の修正がどのように見えるかについてもっと読んでください。
オープンソースがなぜ必要だが十分でないのか
ロサンゼルス郡のVSAPシステム。2018年に認証されました。カリフォルニア州の最初の認証されたオープンソース選挙集計システムとして。これは本当に前向きな発展です。投票ソフトウェアの公開所有権とオープンソースコードは、カウントプロセスがベンダー貿易秘密として隠されている代わりに独立した専門家によって検査されることを意味します。
しかし、オープンソースは問題の最初の部分のみを解決します。誰もがソースコードを見ることができますか? それは自動的には第二部に答えません。マシン上のコードはリポジトリ内のコードと同じですか?
スイスはこの境界を2019年にこの境界を発見しました。スイスポストは公開精査のためにインターネット投票システムの完全なソースコードを公開しました。透明性の注目すべき行為。独立した研究者サラ・ジェイミー・ルイス、オリビエ・ペレイラ、ヴァネッサ・ティーグがそれを読みました。彼らが見つけたものは暗号化的なトラップドアでした。秘密の値を知っていた権限は、実際には投票を改変している一方で、数学的検証に合格する証拠をシャッフルしてシャッフル証拠を生成できました。その欠陥は認証されたブラックボックスでは見えませんでした。独立した暗号化グラフィーがソースを公開し、それを見たときに検出可能になりました。
出版により検出が可能になりました。しかし検出は、誰かが暗号化証明そのものを詳しく見て、証明が嘘をつく可能性があることを発見したために発生しました。
レッスン:オープンソースは保証ではなく、前提条件です。再現可能なビルドは第二層を追加します。読んだコードが実行されたコードであることを証明します。そして独立した暗号化監査は第三を追加します。コードが正しく実行されたとしても、その設計が隠れた操作を許可しないことを証明します。
3つすべてが必要です。ほとんどの選挙システムはそれらのいずれも持っていません。
あなたが今検証できないもの、そしてそれを検査可能にするもの
ここに状況が平易に述べられています。
選挙が終わり、職員が結果を発表したとき、いくつかのことを検証することができます。手数え集計から手をつないで集計からマシン合計が一致するかどうかを確認できます。ジョージア州の2020年全州手カウントが示したように。約10分の1パーセント以内です。紙の投票用紙の保管記録を検査できます。数え方を観察できます。
あなたが検証できないもの。ほとんどの管轄区域では、公開に現在利用可能なメカニズムによって。それはテストラボが検査したソフトウェアであるか、認証から選挙当日の間にどの時点でも変更されたかどうかは、それらのバロットを集計したソフトウェアでした。
あなたは、見ることができないチェーンを信頼しています。
修正は不思議ではありません。それが必要とします。
- 再現可能なビルド。したがって、各マシン上のバイナリは、公開されたソースに対して独立して検証できます。
- 公開されたハッシュ値。署名され、タイムスタンプ。ソフトウェアまたは構成が更新されるたびに。その前に任意の選挙。そのソフトウェアが触れます。
- 独立したコンパイル監査。ベンダーの外側と選挙権限の外側の当事者によって。ソースをコンパイルし、ハッシュ一致を検証します。
- 投票者が読む紙の投票用紙。だから、ソフトウェアが何をするか、しないか関係なく。独立した成果物があります。投票者によってマークされ、人間が読める。手作りで数えられる。質問を解決できます。
その最後のポイントは、最初の3つが失敗したときにほとんど重要です。2020年ジョージア州の手カウントは、投票者によってマークされ、ソフトウェアなしで読める紙の投票用紙が存在するためにマシンの結果を10分の1パーセント以内で確認しました。Curling裁判所のジョージア州のQRコードシステムについての懸念はまったく同じでした。紙の印刷出力は、集計された投票を人間がマシンなしで読む形式でエンコードします。つまり「手の計算」それらのバロットの。実際は同じソフトウェアチェーンを再度信頼するリスキャンです。
最後のポイントは、最初の3つが失敗したときに非常に重要です。纸は、紙を読むことができない場合は十分ではありません。ソフトウェアは、検証されない場合は十分ではありません。ソフトウェアスワップに対して回復力がある唯一のシステムは、投票者がマークした、人間が読める記録が数えるための入力と数える数えるソフトウェアの独立したチェック両方であるものです。
事務局長官の保証はこれを変えません。「監査は結果を確認しました」プレスリリースはそれに対処しません。質問は、システムの外側の誰もが何が実行されたかを独立して検証できるかどうかです。今、ほとんどの場所では、答えはいいえです。
共有可能な真実
認証は、ソフトウェアが一度テストに合格したことを示しています。選挙当日に実行されたソフトウェアがテストされたソフトウェアと同じであることを示していません。そのギャップは陰謀ではなく、既知の解決策を持つエンジニアリング問題です。検証可能性のために構築する管轄区域は、あなたが彼らを信頼する必要はありません。それがポイントです。
詳細なソフトウェア交換ギャップを探索してください | 世界中でどのように一般的な完全性ギャップを見てください | 2分バージョン
ソース
- Lawfare — ジョージア州コーヒー郡では何が起こりましたか?
- Atlanta Journal-Constitution — コーヒー郡はサイト2021年の選挙違反
- Curling v. Raffensperger, No. 1:17-cv-2989-AT, 意見と命令 (N.D. Ga. Oct. 11, 2020)
- フェルドマン、ハルダーマン&フェルテン。Diebold AccuVote-TS投票マシンのセキュリティ分析 (USENIX/EVT)
- カリフォルニア国務事務官。トップツーボトム見直し (2007) — 決定とレポート
- Diebold投票システムのソースコードレビュー (カリフォルニア大学, 2007)
- Sequoia投票システムのソースコードレビュー (カリフォルニア大学, 2007)
- Hart InterCivic投票システムのソースコードレビュー (カリフォルニア大学, 2007)
- EVEREST: 最終レポート (December 7, 2007), オハイオ国務事務官
- GAO-05-956, '選挙:電子投票システムのセキュリティと信頼性を改善するための連邦の取り組みは進行中ですが、主要な活動を完了する必要があります' (Sept. 21, 2005)
- ルイス、ペレイラ、ティーグ。Ceci n'est pas une preuve (Scytl-SwissPostインターネット投票システムのトラップドア承認), 2019
- カリフォルニア国務事務官のニュースリリース (Aug. 21, 2018): LA郡VSAP集計の認証
- ジョージア州公開放送。リスク制限監査はバイデンがジョージア州を獲得したことを確認しています