ataque multi-voto a sistema vot.ar
DESCRIPTION
El sistema de voto electrónico vot.ar escogido para las elecciones locales de la ciudad de Buenos Aires, inspeccionado por la Facultad de Ciencias Exactas y Naturales de la UBA a solicitud del Tribunal Superior de Justicia de la ciudad, permite alterar los resultados del escrutinio en cada mesa.TRANSCRIPT
-
Julio3,2015
Ataque a sistema de voto electrnico Vot.Ar (BUE) permite sumar multiples votos con una sola boleta.
Introduccin Elsistemadevotoelectrnicovot.arescogidoparalaseleccioneslocalesdelaciudaddeBuenosAires,inspeccionadoporlaFacultaddeCIenciasExactasyNaturalesdelaUBAasolicituddelTribunalSuperiordeJusticiadelaciudad,permitealterarlosresultadosdelescrutinioencadamesa.Eldomingo5dejuliodel2015serealizaporprimeravezenlaCiudaddeBuenosAiresunaeleccinempleandounsistemadevotoelectrnico.Sonmuchaslaspolmicasquegeneratantoanivellegalcomotcnicoenelmbitodelaseguridadinformtica.Durantesemanaspreviasalaselecciones,ungrupodeentusiastasdelaseguridadinformticaintentamosofrecernuestraayudapordiferentesmediosteniendoinnumerablesreunionesconresponsablesypolticos,todasellasenvano.Nuestroobjetivoeralarealizacindeuninformesobrelosaspectosfsicos,lgicosyprocedimentalesdeseguridadquefueratotalmenteindependienteyporsobretodo,nopartidario.Simplementedesdelaposicindeunciudadanoms.Antelafaltadecolaboracin,nuestroltimorecursofuelarecoleccindeinformacinpblicaeninternetylautilizacinpararealizarpruebasdelospuestospblicosdecapacitacin.Estedocumentodemuestraunodeloserroresdeseguridadmsgravesencontrados,quepermitequecualquierelectormalintencionadodepositeunaboletaenlaurnaconunchipgrabadoparaalterarelresultadodelescrutinioprovisorio.
-
Descripcin e impacto del Ataque Multivoto Elpresidentedemesaentregaacadavotanteinscritoenelpadrnunaboleta.Estacontieneuntagdeidentificacinporradiofrecuencia(RFID),compuestodeuncircuitointegrado(chip)yunaantena.MediantelasmquinasdeVot.Ar,elelectoreligeloscandidatosdesupreferencia,yestaseleccinsegrabaenelchipyseimprimeenlaboleta,queesluegodepositadaenunaurnatradicional.Alfinalizarloscomicios,elpresidentedemesaabrelaurnaycomienzaelconteodelosvotosempleandolamismamquinavot.armedianteotrafuncindelprograma.Paraefectuarelconteo:
Apoyalaboletaenlamquina>secontabilizaunvoto. Apoyalaprximaboleta>secontabilizaotrovoto.
Yashastafinalizarelrecuento.Elsoftwaredelamquinadevoto(PCcorriendosistemaoperativoUbuntu14.04)nopermiterestarvotosalrecuentosinvolveracero.Durantenuestrainvestigacindescubrimosqueesteprocesonoestcorrectamenteimplementado,yatravsdeunerrordeprogramacinesposiblegrabarelchipmedianteunsimplesmartphonedeformaquecontengamltiplesvotosaunmismocandidato.Cuandoelpresidenteapoyelaboletaenlamquina,ocurrirlosiguiente:
Unaboletaconchip>secontabilizanmltiplesvotos.
Video de demostracin
https://www.youtube.com/watch?v=CTOCspLn6Zk
-
Detalles tcnicos Elpseudocdigodelprogramaqueleeycuentalosvotoses:class Selection(object): ... def from_string(TAGcontent): datatag = parse(TAGcontent) ... candidates = [] for e in datatag.vote: party_code = e["party"] category_code = e["category"] candidate = CandidateClass.get(category_code, party_code) candidates.append(candidate) Primeroseleenlosdatosdelchipdelaboletaysealmacenanenlavariabledatatag.Despusseinterpretalaseleccinyseagregaalalistacandidatos.ElcdigoNUNCAverificasihaymsdeunvotoparaelmismocandidatoporelector,ytampocolimitaunnmeromximodevotosporboleta.Lafuncinparse()fallatambinenverificarlosdatosdeformaalguna.Luego,laclase"Count()"sumalosvotos.Esteeselpseudocdigo:class Count(object): ... def add_selection(self, selection, RFIDserial=None): if not RFIDserial or not self.serial_exists(RFIDserial): for candidate in selection.candidates: self.results[candidate.party_code, candidate.category_code] += 1 if RFIDserial: self._RFIDserials.append(RFIDserial) ... else: raise RepeatedSerial()
-
Aqulalistaquecontienelosmltiplesvotosesagregadaalavariable'results'.Nuevamente,nohaymecanismoalgunoquedetectevotosrepetidos.
Falla de Recuento Esteproblemapodrahabersesubsanadoenlafasederecuentodevotosasegurndosedequelasumadevotoscoincidaconlacantidaddeboletas.Comopuedeverseenlasiguientefotografadelaimpresin,estaverificacinnoserealiza:
LamquinaemiteactaconuntotaldevotosaJefedeGobiernomayoraltotalgeneral.
Prueba de concepto Hemosintentadohacerllegarnuestrapreocupacinsobrelafragilidaddeestesistemayalertarsobrelosriesgosadiferentesautoridadessinxito.Fracasadaestaopcin,nuestraresponsabilidadcomociudadanosycomopracticantesdelaseguridadinformticanosobligaapublicarestainformacinparaqueautoridadesdemesayfiscalesestnalertaduranteelrecuento.Elerrordetectadonoesnico,sinounejemplodeunproblemalgicoenunadelasfuncionesprincipalesdelsistema.Suconstatacinhaceevidentequelosprogramasnofueronauditadosconformealasreglasdelarte,enparticularparaunaaplicacinqueescrticaenlaejecucindeunprocesofundamentaldelademocracia.Lainformacinquepermitereproduciresteataquedeboletamultivotoyasehahechopblicapordiversosmedios.Comomedidapaliativa,nopublicaremoscdigoquefacilitelacreacindeboletasfraudulentashastadespusdetranscurridalaeleccin.
-
Estamosadisposicindelasautoridades,lospartidosy/operiodistasqueestninteresadosencomprobarlavulnerabilidadquesedescribeenestedocumento.
Solucin Paliativa Lasolucindefondodeesteproblemaesnoemplearsistemasdeemisindelsufragiopormediosinformticos.Estosagregannuevasposibilidadesdeataquesyfraudessinsolucionarningunodelosproblemascaractersticosdenuestrosistemaelectoralquenopuedaserresueltoconlaboletanicadepapel.Elsistemafueimpuestodeformaapresurada,sineducacinapropiadaalosciudadanosnilasautoridadesysinunaauditoradecdigoexhaustiva,comoclaramentedejaenevidenciaesteejemplodeerrordeprogramacin.Porotraparte,laexperienciainternacionalmuestraquetodosistemadevotoelectrnico,mstempranoquetarde,haresultadovulnerableaalgunaformadeataque.Comopaliativo,recomendamosenfticamentealospresidentesdemesayalosfiscalesrealizarlacontabilidadboletaporboletahaciendonfasisenlaimpresinporsobrelainformacindelchip.Esindispensableasegurarsedequelacantidaddeboletascoincideexactamenteconlosvotoscontadosporlamquina.Concarctermsgeneral,peronomenorimportancia,recomendamosnoconfiarenlosresultadosgeneradosporlamquinavot.ar,yaqueaunquenohubierasidomanipuladamaliciosamente,laaparicindeestegruesoerroranteunainspeccinlimitadaentiempoymediospermiteinferirunaprogramacindeficienteyelprobablesurgimientodeotroserrorescrticos.Aconsejamosdesarrollarunprocedimientomanualenparalelo,ejecutadoporlasautoridadesdemesaylosfiscalesdelmismomodoquehistricamentesehaejecutadoparalaseleccionesconvencionales.
LLEVARCALCULADORAPARACONTROLARELACTAEnlamedidadenuestrasposibilidadesdesarrollaremosunaaplicacinmvilparadetectarelataqueenlasboletaselectrnicas.
Recomendacin Durantenuestrainvestigacin,notamosquelaformayelestilodelaprogramacindelsistemanoparecerealizadabajolosestrictosestndaresquerequierenaplicacionesdeinfraestructuracrtica.Durantenuestrainvestigacinnopudimosdeterminarsiesteyotroserroresdeseguridadencontradossonintencionalesosedebenalatorpezadelosprogramadoresyfaltadeadecuadosprocesosdecontroldecalidaddelsoftware.
-
Desdeelcampodelaseguridaddelossistemasdeinformacin.evaluamosquelosriesgosqueintroduceelvotoelectrnicoentrminosdeerroresaccidentalesoataquesmaliciososagranescalayfcilesdeencubrirsuperanconholguralosbeneficiosrealesopercibidosdelaautomatizacindeunpasocrticodelsistemaelectoral.Sehageneralizadolacreenciaquetodosistemasocialpuedesermigradoaunsistemadecomputadoras,yqueestoimplicaautomticamenteunamejoraentrminosdeagilidadyeconoma,sinningunacontrapartida.Existenciertasaplicaciones,conrequerimientoscrticosdeseguridadinformtica,privacidadyusabilidad,paraloscualeslatecnologaactualannopuededarrespuesta.Estossistemassoncomplejosyamayorcomplejidad,mayoreselriesgodefalla.Lacomunidadacadmicaylaindustriaannosabencmohacermquinasysistemassegurosdeestetipo.Porestarazn,labuenaintencindeexplorarlamigracintecnolgicadelsistemadevotacindebeestarenglobadaenunproyectoqueincluyamltiplesiteracionesdeanlisisyretroalimentacinconlosdiversosactoresdelacomunidad.Ningnavancetcnicodebedebilitarlademocracia.Adhieren:AlfredoOrtegaIvanArielBarreraOroEnriqueChaparroFernandoRussFranciscoAmatoJavierSmaldoneJulianoRizzoNicolasWaismanSergioDemianLernerYgentedelaInternet..