要約
- 固定して検証した公開コミット
3c2068477eb38ebbbe70039ee6e1b7b004fc69cdでは、新しい選挙のリンク回復モードは選挙種別にかかわらずALLになる。管理者はONLY_BRまたはNONEを明示的に選べる。 - 入力メールは正規化された後、投票者、会員組織の連絡先、推薦支持者という別々の記録を検索する。各クラス最大十件まで、異なるトークン付きリンクが送信キューに入る。
- 一律の受付表示とクラス別上限は評価すべき制御である。さらに、規則、役割、設定の由来、トークンの寿命、配送、利用、無効化を結ぶ非公開の「権限回復受領記録」が要る。
公開された選挙システムには、短いが重い関数がある。ElectionLinkRecoveryMode.defaultForElectionType は選挙の種類を引数に取る。それでも返す値は常に ALL だ。
Election の二つのコンストラクターは、新規オブジェクトをまず BOARD とし、この関数で回復モードを決める。回帰テストも新規の理事会選挙に ALL を期待している。公開ガイドも、公開配布版では新しい選挙が種類を問わず ALL で始まると説明する。列挙値には ONLY_BR と NONE もあり、明示設定は可能だ。
この事実から、稼働中のLACNIC選挙が同じコミットや設定を使うとは言えない。回復要求を試した証拠も、実在するメールやトークンを見た証拠もない。ここで確認できるのは公開ソフトウェアの設計だけである。
それでも設計は重要だ。遠隔選挙では、最初のメールを失うという平凡な事故が参加機会を奪い得る。迷惑メール判定、端末交換、担当者交代は、資格とは無関係に起きる。回復機能は制度への入口を修復する。
同時に、修復されるリンクは単なる案内ではない。行為を可能にするベアラ能力である。利便性を守るなら、その再交付が元の権限に忠実だったことも証明しなければならない。
一つのフォームの背後に三つの台帳
回復パネルは、入力されたメールの前後空白を除き、小文字にする。その値を同じ選挙IDのもとで三回検索する。第一は UserVoter.mail、第二は Organization.membershipContactEmail、第三は SupportNomination.supportingContactEmail である。
これらは一つの「利用者」テーブルを別名で呼んだものではない。投票者の力は選挙人名簿から生じる。組織連絡先の力は、会員組織が候補を出す手続から生じる。支持連絡先の力は、すでに存在する推薦への支持手続から生じる。同じメール文字列でも、根拠は三本ある。
コードはリンク種別も分ける。投票者には VOTER_VOTE_LINK、組織には推薦トークンが空でないとき NOMINATION_LINK、支持者には SUPPORT_LINK を扱う。送り先は一致した記録のアドレスであり、画面にリンク一覧を返すわけではない。
検索上限はクラスごとに十件だ。つまり全体で十件ではない。三つの検索がそれぞれ上限を持つ。ALL では国による絞り込みがなく、ONLY_BR では投票者の国、組織の国、または推薦を出した組織の国を使ってブラジルに限定する。
この上限は、広く再利用されたメールが無限の処理を生むことを防ぐ。だが、十という数字は権限の妥当性を証明しない。現在も有効な行が何か、そのメールが今も指定経路か、下流の行為がまだ可能かは別の確認である。
見つかったかどうかを隠す制御
公開画面の応答は意図的に曖昧だ。運用上の失敗がなければ、記録が一致した場合も、一件もなかった場合も、同じ受付メッセージを返す。ガイドは、利用者に検索結果を明かさないと明記している。
これは有効な列挙対策である。第三者はフォームの表示から、あるアドレスが投票者や組織連絡先かを確認できない。批判のために、この利点を無視すべきではない。
ただし、表示の秘匿と権限の配送は異なる。リクエストを送った者に一致を見せなくても、登録アドレスの受信箱には複数種類のリンクが届き得る。前者は外部からの名簿探索を防ぐ。後者は、現在の受信箱管理者がどの力を受け取るかを決める。
パネルは一致件数とキュー投入件数を集計する。あるクラスで一致があったのに一件もキューへ入らなければ、運用失敗とする。これは「該当なし」と「送信処理失敗」を区別する良い制御だ。それでもキュー投入は配送完了ではなく、配送完了は正しい主体による利用でもない。
設定値は統治判断の代わりにならない
既定値は操作を減らす。新しい選挙を作るたびに同じ質問へ答えなくてよい。一方、統治判断には理由が必要だ。理事会、財政委員会、選挙委員会、PDP共同モデレーター、ASO AC、IANA Review Committeeでは、選挙人、候補資格、監督者、日程が同じとは限らない。
同じ回復方針を全てに適用することは可能である。だが、その同等性は「関数が全部 ALL を返す」ことから生まれない。担当者が規則とリスクを確認し、採用したという証拠が必要だ。
後日の監査でデータベースに ALL があっても、三つの経路を区別できない。明示承認したのか、作成時のままか、代替手段がない期間だけ暫定採用したのか。値は結果を示しても、判断の来歴を持たない。
時間も借り物である。コード上、選挙が閉じておらず、モードが NONE でない場合だけ回復が有効になる。公開ランディングも有効で、N_1 に達している必要がある。ガイドによると、回復独自のカレンダーはない。
一方、リンク先には固有のゲートがある。投票期間、投票済み状態、推薦期間、支持の状態などだ。遅れて届いたリンクがブロックされるなら、それは下流制御が働いた証拠になる。まだ使えるなら、なぜ有効かを元の役割まで遡れる必要がある。回復ログだけでは結論にならない。
受信箱は配送先であり、権限の発行者ではない
メール回復が置く仮定は、「登録済みの受信箱へ、以前から存在する能力を再配送してよい」というものだ。日常的で合理的な仮定である。しかし組織の共有アドレスでは、複数の職員が読める。外部事業者が運用することもある。担当者が変わっても選挙データの更新が遅れることもある。
反対に、正当な参加者でもメールが届かない場合がある。バウンス、隔離、遅延は資格を否定しない。「送信キューへ入った」は配送証拠の一段目にすぎない。
OWASPのパスワード回復ガイドは、一律応答、同程度の応答時間、アカウント単位のレート制限やCAPTCHA、ランダムで一回限り、適切に期限切れとなるURLトークンを勧める。NIST SP 800-63Bは、デジタルIDの文脈で代替回復方法を記録されたリスク分析に基づかせ、回復イベントに通知を伴わせる。これらはLACNIC選挙の規則ではない。投票リンクはパスワード再設定でもない。比較できるのは、回復が独立した権限イベントだという設計原則である。
固定コードには、共通応答、クラス別上限、選挙IDによる範囲限定、任意のCAPTCHA、送信処理へのクライアントIP引き渡しがある。CAPTCHAは、回復が有効で、全体設定が許可し、サイトキーが存在するときだけ検証される。実運用で有効か無効かは分からない。
また、資料だけではトークンの乱数強度、期限、再送時のローテーション、利用後の無効化、メール配送結果、受信箱の管理権限を確認できない。他のモジュールや運用で実装されている可能性がある。確認できないことを脆弱性と呼ぶべきではない。
オープンソースが作る証拠の境界
LACNICは、遠隔選挙システムをオープンソースで、関心のある者が監査・検証できるものとして説明する。公開リポジトリは、その目的に応える。三つの検索経路、三つのリンク、上限、画面応答、既定値を追跡できる。
2026年9月11日の互換性コミットは、サーバーやライブラリを更新しつつ、ALL を期待するテストを残した。その後のヘッドコミットは、ディスクに置かれたExcelとPDFアップロードを読むテストを加えた。日付とハッシュは検証対象を固定する。
しかし、公開コミットは稼働ビルドの証明ではない。設定値、ネットワーク制御、メールサービス、特定選挙との結合も示さない。本稿は本番利用を推定しない。また、以前の「認証済みレポート検索でメールがGETパスに入る」という記事とも範囲が違う。ここでは、メールが三種類の能力再配送を開始する点だけを扱う。
公開できる最小情報は、選挙ごとのビルドID、実効モード、回復可能なクラス、有効期間、自動化対策の状態、設定を承認した役割である。個別メール、IP、トークン、回復履歴は非公開のままでよい。
最小の権限回復受領記録
非公開受領記録の先頭には、選挙ID、ソフトウェアビルド、設定世代を置く。選挙種別と根拠規則を示し、ALL、ONLY_BR、NONE が既定値の継承なのか、明示選択なのかを記録する。承認した役割と日付も要る。
次に、権限クラスを分ける。「ユーザー」だけでは足りない。投票者、組織推薦者、推薦支持者を別々にし、個人情報を出さない不透明な参照で元レコードにつなぐ。要求時点でレコードが有効だったか、どの期間と状態が行為を許したかも残す。
トークンについては、既存リンクを再送したのか、代替を発行したのかを区別する。世代、期限、旧トークン無効化、最終状態を保存する。最終状態は利用、期限切れ、取消し、置換のどれかである。キュー、配送、利用は別フィールドにする。
最後に閉鎖を証明する。投票終了、推薦終了、支持完了、選挙閉鎖は同じ出来事とは限らない。履歴表示のためURLが開き続けても、決定能力が消えたことを示せる設計が望ましい。
公開版は集約でよい。ビルド、モード、クラス、期間、制御状態、集約件数、無効化方針、レビュー責任者を示す。小さな選挙人集団は数値を抑制し、参加者を逆算させない。
回復を難しくする必要はない。失った案内を取り戻す便利さと、権限の出所を追える厳格さは両立する。受信箱はリンクを受け取る場所であって、票を与える制度そのものではない。
出典
会員向け解説
プロフィールの詳細
適切な会員レベルでログインすると、解説全文と出典メモをご覧いただけます。
Strategic Circle 限定
Strategic Circle
すべての読者に公開されています。参加してログインすると プロフィール解説 を閲覧できます。
Strategic Circle に参加Leadership Alliance 会員限定
Leadership Alliance
対象となる IP 資産の所有者・管理者向けです。ログインすると Leadership Alliance の解説を閲覧できます。
Leadership Alliance に参加
