Pelajaran pemungutan suara elektronik di Moscow City Duma 2019

Kami terus berbicara tentang kegiatan DIT Moscow (lihat posting kami sebelumnya ), tetapi pada saat yang sama kami beralih ke topik berikutnya, yang tiba-tiba menjadi relevan dan telah mendapatkan momentum - topik pemungutan suara elektronik.

Jika tahun lalu, pemungutan suara jarak jauh dari warga dianggap lebih sebagai keingintahuan atau percobaan, kesimpulan yang akan ditarik beberapa waktu kemudian, maka pada tahun 2020 kita semua tiba-tiba menemukan bahwa ini adalah kenyataan yang akan kita hadapi segera dan penuh. Sebagian besar, pembatasan karantina mendorong hal ini - pelaksanaan pemilihan dipertanyakan, dan kehidupan partai-partai politik berhenti.

Secara umum, permintaan bertemu dengan penawaran - dan tagihan jatuh. Partai-partai diizinkan untuk melakukan pemilihan pendahuluan melalui Gosuslugi / ESIA, daerah melaporkan satu demi satu tentang keinginan untuk mengatur DEG (pemilihan elektronik jarak jauh) pada bulan September pada pemilihan lokal.

Untungnya atau sayangnya, pembuatan undang-undang saja tidak cukup - kita juga membutuhkan implementasi teknis, yang tidak begitu sederhana. Seseorang percaya bahwa semuanya sudah dilakukan di Moskow tahun lalu (bahkan ada blockchain di sana!), Seseorang - bahwa DEG pada umumnya tidak mungkin untuk diterapkan pada tingkat yang tidak memungkinkan pemalsuan besar-besaran, dan oleh karena itu perlu untuk mengabaikan prinsip DEG.

Karena itu, kami memutuskan untuk mencurahkan serangkaian kecil artikel dan pertemuan untuk analisis masalah ini:

  1. Alexey Scherbakov - "Pelajaran dari pemungutan suara elektronik di Duma Kota Moskow 2019"
  2. Oleg Artamonov - “ Pemilihan elektronik jarak jauh: arsitektur sistem pemilihan umum yang tepercaya
  3. Meja bundar “Tekan tombol: teori dan praktik pemilihan elektronik”



Kami akan memulai artikel pertama sekarang, dan kami akan menggantung yang kedua dan pengumuman meja bundar besok (dan menambahkan tautan di sini).

Sebenarnya, ini bukan artikel, tetapi teks yang sedikit diedit secara harfiah dari pidato eponymous oleh Alexei Shcherbakov (alexeishch) di konferensi kami pada 5 Maret tahun ini.

Alexey adalah pakar yang diundang dari tim Roman Yuneman tentang persiapan laporan “ Pemilihan Elektronik. Risiko dan Kerentanan ”, pemimpin pengembang backend di FoodPlex.

Laporan tersebut menceritakan bagaimana tepatnya pemilihan elektronik jarak jauh secara teknis diatur dalam pemilihan MHD 2019, apa kelebihan dan kekurangan dalam solusi teknis dan bekerja dengan kelompok ahli.

Selain teks ini, Anda juga dapat membaca dua artikel lagi yang sudah diterbitkan di Habré:


Jika Anda lebih suka video atau audio, Anda dapat menonton laporan lengkap di YouTube .

***


Halo, nama saya Alexei Shcherbakov, saya adalah seorang ahli di tim Roman Uneman yang diundang pada pemungutan suara Moskow. Nah, secara umum, sebelum berbicara tentang pemungutan suara itu sendiri, ada baiknya mengatakan bagaimana ini umumnya terjadi.



Semuanya dimulai pada Maret 2019, ketika percobaan diumumkan, kemudian pada bulan Mei sebuah undang-undang tentang pemungutan suara diadopsi, dan pemungutan suara itu sendiri berlangsung pada 8 September di tiga distrik di Moskow. Voting berlangsung melalui Internet selama 12 jam.

Sistem itu sendiri dibangun berdasarkan blockchain Ethereum oleh Parity. Skema enkripsi El Gamal juga digunakan di sana. Sistem logging digunakan oleh Graylog dan beberapa jenis implementasi AMQP digunakan untuk mentransfer data antar pesan, kami berasumsi bahwa kemungkinan besar itu adalah RabbitMQ, sama seperti standar perusahaan. Sistem itu sendiri terlihat seperti ini:



Sebagian besar sistem berada di luar Departemen Teknologi Informasi Moskow (DIT) [ ini adalah poin yang sangat penting, karena hanya DIT Moskow yang dikomunikasikan dengan para ahli eksternal - kira-kira. ed. ], tetapi blockchain ada bersama mereka. Mereka bekerja sama dengan portal Layanan Negara. Deskripsi tentang bagaimana sistem ini dibuat, DIT dari Moskow diterbitkan di Habr. Dan mereka sudah berbicara di sana khususnya bahwa mereka mempunyai masalah, pada dasarnya, hanya selama satu jam, sekitar 400 orang terkena dampak ini.



Kami melakukan analisis data berdasarkan unduhan dari blockchain, yang disajikan oleh Medusa. Dan mereka secara terpisah memeriksa kesaksian saksi, yang sudah dikumpulkan langsung oleh pengamat di TPS. Itu adalah situs elektronik, di mana bacaan di layar difoto, saya akan memberi tahu Anda lebih banyak nanti.



Sebelum berbicara tentang analisis yang dilakukan, saya akan memberi tahu Anda bagaimana kami mendekati tugas. Jika saya merancang sistem ini sendiri, saya akan menggunakan standar tertentu untuk merancang sistem ketersediaan tinggi. Secara khusus, metrik akan digunakan untuk memantau langsung kesehatan sistem. Untuk memahami bahwa beberapa masalah sudah mulai - dan meresponsnya dengan cepat. Dan selain tim yang harus melakukan semua ini, pengamat sendiri harus melihatnya - yaitu, pengamat harus entah bagaimana memahami bahwa ada yang tidak beres. Dan komisi pemilihan kantor polisi, yang terletak di kantor polisi ini, juga harus memahami apa yang salah jika sesuatu tiba-tiba salah.



Dalam kasus kami, metrik waktu untuk menghitung blok blockchain tampak seperti ini. Ini menunjukkan beberapa masalah secara terpisah, masalah pertama yang terkait dengan penghentian blockchain, ini adalah tiga zona pertama. Dan zona lain adalah masalah yang tidak diketahui yang tidak kita lihat secara khusus pada metrik ini. Dan pada akhirnya kita melihat degradasi yang mulus yang terjadi sampai akhir pemungutan suara.



Jika kita mempertimbangkan metrik kedua - jumlah transaksi per blok - maka oleh mereka kita melihat masalahnya secara lebih rinci. Pertama, kita melihat bahwa di area shutdown, tidak ada transaksi yang dicatat. Di zona mencurigakan kami, kami melihat sangat sedikit transaksi, dan kemudian kami melihat momen menarik ketika sifat rekaman perubahan data blockchain. Apa alasannya? Awalnya, ketika data ditulis, mereka ditulis pada interval tertentu, ini dilakukan sehingga tidak mungkin untuk menentukan dengan tepat orang yang memilih pada saat pemungutan suara. Data diakumulasikan dan dibuang ke blockchain. Namun, kemudian setelah semacam konfigurasi ulang blockchain, data mulai direkam secara acak. Artinya, beberapa operasi dilakukan, tetapi kami tidak dapat secara akurat mengatakan berdasarkan metrik ini apa yang sebenarnya dilakukan DIT. Tapi bisa kita katakanbahwa dalam kasus ini, DIT entah bagaimana mengganggu sistem.



Berdasarkan metrik ini, kita dapat menghitung waktu penghentian blockchain. Di daerah operasi stabil, waktu blok sekitar 4 detik. Dengan demikian, kita dapat menghitung di zona berhenti berapa blok cocok untuk 4 detik dan berapa banyak waktu blok yang tersisa dihentikan. Dan berdasarkan ini, kami mendapatkan batas bawah untuk waktu berhenti 2 jam. Ini adalah waktu ketika blockchain tidak sepenuhnya berfungsi .



Selain itu, kami masih memiliki zona lain di mana data tidak mencapai blockchain. Secara total, semua zona patahan ini membutuhkan waktu 4 jam. Zona degradasi memakan waktu sekitar 6 jam, dimulai setelah makan siang dan berlanjut hingga akhir pemungutan suara. Karena fakta bahwa mereka tidak memonitor blockchain dengan cara apa pun, mereka bahkan tidak curiga ada masalah. Terlebih lagi, orang-orang yang hadir di TPS itu sendiri, bagian dari komisi pemilihan, mengatakan bahwa yang dapat mereka lakukan hanyalah duduk di sofa dan menonton apa yang terjadi di layar. Artinya, mereka tidak mengerti apa yang sedang terjadi, dan belajar tentang beberapa masalah secara eksklusif dari media. Mereka tidak punya alat sama sekali untuk mengamati masalah .

Selain itu, ada satu hal yang menarik: pengamat harus memiliki akses ke blockchain itu sendiri. Artinya, mereka dijanjikan bahwa mereka akan memiliki simpul pengamatan khusus dan mereka akan dapat langsung mengakses blockchain, melakukan operasi di atasnya dan menonton apa yang terjadi. Tetapi kesempatan ini diambil dari mereka! Mengapa? Tidak jelas. Dan statistik hanya ditampilkan di layar.



Beginilah tampilan layar, hanya ada empat posisi: "saluran penjualan" klasik, ketika kami memiliki jumlah orang yang pergi ke halaman pemungutan suara, masuk, menerima surat suara dan memberikan suara, dan itu berkurang dengan setiap langkah.

Ada poin yang sangat penting di sini - kehidupan buletin. Jika pemilih tidak punya waktu untuk mengisi surat suara dalam 15 menit, maka dia dianggap dibatalkan. Dan statistik itu sendiri juga berjalan dengan interval 15 menit. Artinya, jika pemilih kami tidak melalui bagian corong dalam 15 menit, maka kami dapat dengan yakin mengatakan bahwa pada tahap statistik berikutnya ia tidak diperhitungkan. Dan pada setiap tahap kami mendapat jumlah yang lebih kecil. Berkat ini, dimungkinkan untuk melacak anomali statistik yang menarik.



Corong ini ditampilkan di sini, warna menunjukkan waktu kerusakan blockchain. Ada anomali yang menarik di sini, misalnya, ketika garis merah melewati kuning - jumlah surat suara yang dikeluarkan ini menjadi lebih dari jumlah orang yang telah login dengan memasukkan kode dari SMS. Secara fisik tidak mungkin secara sederhana, untuk menerima buletin, Anda harus memasukkan kode. Dan ini terjadi dalam waktu dua jam.



Ini adalah perbandingan statistik yang diperoleh dari pengamat dan statistik yang diperoleh dari pembongkaran dari blockchain. Seperti yang Anda lihat, mereka praktis bertepatan, tetapi ada sedikit perbedaan ketika, tampaknya, ada masalah kecil dalam statistik di front-end. Ini memberi kami peluang untuk mengatakan bahwa statistik yang diperoleh pengamat independen dan statistik yang diperoleh dari blockchain berdasarkan unggahan hampir sama, kecuali untuk tahap ketika kami memiliki beberapa masalah.

Selain statistik, kami memiliki rekaman audio yang menarik - waktunya sekitar 17 jam, sekitar 2.000 orang memilih, salah satu perwakilan dari Administrasi Informasi Moskow mengatakan intervensi apa yang mereka lakukan pada sistem kerja. Secara khusus, ia mengatakan bahwa sekitar 900 orang berulang kali menerima SMS untuk otorisasi.



Ini memberitahu kita, pertama, bahwa karena sistem logging yang mereka gunakan, Administrasi Informasi Moskow dapat melanggar kerahasiaan suara . Mereka dapat membandingkan waktu pemungutan suara, status surat suara dan nomor telepon, yang sangat penting! Mereka mengidentifikasi orang-orang yang memiliki masalah, mengidentifikasi nomor telepon mereka dan mengirim SMS berulang. Jumlah orang-orang ini adalah sekitar 40% dari semua pemilih di TPS ini. Perbedaan antara dua kandidat, yang pertama dan kedua, hanya berjumlah 84 orang, sedangkan untuk 900 orang kita bahkan tidak bisa mengatakan apa hasilnya. Karena beberapa tindakan telah diambil pada mereka.Kami tidak dapat mengatakan bahwa suara ini dicurangi, tetapi kami dapat mengatakan bahwa 900 orang memiliki masalah, kami tidak dapat mengatakan siapa yang mereka pilih dan apakah mereka memilih sama sekali. Artinya, jumlah orang yang mengalami masalah adalah sepuluh kali lebih banyak daripada jumlah orang yang memisahkan satu kandidat dari kemenangan.

Repositori data dan kode yang digunakan untuk analisis dapat ditemukan di tautan ini .

Kami juga menganalisis kode yang digunakan untuk pemilihan itu sendiri. Kami berharap sebagian besar operasi akan berlangsung langsung di blockchain itu sendiri dan bahwa kode tersebut harus dipublikasikan. Kami menerima kontrak pintar, kode formulir, dan kode yang bertanggung jawab untuk mengirim pesan. Tapi ada bagian yang masih belum diketahui, karena dilakukan di sisi Departemen lain - mos.ru portal.



Apa yang menarik ditemukan dalam kode? Ternyata dia tidak membatasi kemampuan satu orang untuk memilih di distrik yang berbeda. Ini adalah poin yang menarik, karena belas kasihan dari backend, yang terletak di tempat lain dan yang kode sumbernya tidak dapat kita lihat.Tidak jelas mengapa sistem menggunakan blockchain - karena masih tidak mengendalikan semuanya, itu bisa diganti dengan database biasa . Nah, kode ajaib telah ditambahkan ke kode formulir hanya sehari sebelum pemungutan suara, yang memungkinkan untuk memasukkan skrip tambahan dalam formulir menggunakan satu variabel di sisi backend, yang sangat menarik! Mengapa mereka melakukan ini? Bahkan, ini adalah kemampuan untuk mengeksekusi kode arbitrer pada saat pemungutan suara pada perangkat pengguna .



Kriptografi juga merupakan hal yang menarik. Awalnya, mereka memilih enkripsi 256-bit, meskipun pada tahun 1999 diusulkan untuk menggunakan 768 bit untuk skema ini, dan 10 tahun yang lalu 1024 bit ditawarkan. Dan jika Anda sekarang membuka rekomendasi dari Uni Eropa, maka akan ada persyaratan "setidaknya 1024 bit", tetapi jika perlindungan diperlukan sebelum tahun 2030, disarankan untuk menggunakan 3072 bit. Ada juga poin menarik dalam cara mereka menghitung entropi. Jelas bahwa orang tidak sepenuhnya mengerti mengapa mereka membutuhkan semua ini .

Apa yang bisa saya katakan tentang sistem ini?

Pertama, DIT Moskow tidak mampu memberikan setidaknya 90% kinerja . Secara umum diyakini bahwa sistem ketersediaan tinggi, ia harus memiliki setidaknya 90% dari waktu. Artinya, kita bahkan tidak bisa mengatakan bahwa dia sedang bekerja.

Kedua, operasi dilakukan pada sistem produksi yang tidak dikontrol oleh siapa pun, tidak ada yang bisa mengerti apa yang terjadi. Jika Anda melihat persidangan di pengadilan [untuk mengajukan banding atas hasil pemilihan - kira-kira. ed. ], ternyata baik orang, pengamat, maupun komisi itu sendiri tidak mengerti apa yang sedang terjadi . Namun, perlu untuk entah bagaimana mempersiapkan mereka untuk prosedur itu sendiri, yang sedang berlangsung.

Alih-alih sebuah kesimpulan


Kami tidak ingin mengatakan bahwa pemilihan elektronik selalu berantakan, masalah konstan, solusi teknis aneh dan kesalahpahaman tentang apa yang terjadi saat ini.

Namun demikian, seperti yang kita lihat dari materi ini, pertanyaan tentang kepercayaan pada hasil pemungutan suara pada dasarnya adalah masalah kepercayaan pada organisasinya - interaksi yang ternyata sangat ambigu. Tampaknya bagi kita bahwa ini menjawab pertanyaan yang sangat topikal apakah Sistem Informasi dan Informasi Moskow memiliki pengalaman yang cukup untuk menskalakannya ke seluruh Moskow, dan bahkan lebih lagi ke seluruh negeri, dan pada pertanyaan apakah mungkin untuk mengambil semacam "suara" dengan blockchain ”, luncurkan di server dan mulai melakukan pemilihan.

Hampir sama, apakah mungkin untuk membangun sistem pemungutan suara digital secara umum, kredibilitasnya dijamin oleh arsitekturnya sendiri, dan bukan oleh kejujuran penulisnya - kita akan berbicara di artikel berikutnya.

All Articles