Analisis del Fraude Electoral e inyección de votos a nivel presidencial en el año 2017. Evidencia en los archivos JSON y errores en la firma electronica que permitían la inyección de votos al TREP de HONDURAS.
2. Dr. Edwin A. Hernandez
www.edwinhernandez.com
@edwinhm
• MSECE y PhD en Computacion – University of Florida – Experto en
Software, Sistemas de Nube, Ciberseguridad, Innovacion y Patentes
• Dueño y fundador del EGLA CORP y el EGLAVATOR – Incubadora y
Aceleradora de Tecnologia en Boca Raton, FL
• 12 Patentes en diferentes areas de tecnologia en USA, y otras en Europa
• Experto en licencias e innovacion & startups
• Ex-Motorola, Ex-Microosft, Florida Atlantic University – Board Member
Electrical & Computer Eng.
• Consultor para asesorias en propiedad intelectual
• Inversionista y fundador de startups en areas de healthtech, fintech,
wireless
• Ha asesorado empresas y casos legales con Verizon, Google, Bank of
America, Sprint, Samsung, LG, y muchos mas.
4. Dos Etapas : Primera Etapa
•Etapa #1, el TREP y el uso de MER y archivos
JSON aparentemente funcionaba – por lo
menos se acepto por la oposicion que los
resultados eran validos
•Cada envio de un acta esta almacenada en
un archivo JSON – Que describiremos aca.
5. Dos Etapas : Segunda Etapa – Votos Rurales INFOP
•Etapa #2, Se generan los mismos
archivos JSON y hay ciertos patrones
que indican ciertas anomalias, los
votos rurales y el cambio de
tendencia
6. Donde estan las
Actas?
• No hay evidencia de que el 100% de las
actas se pueden cotejar, solamente las que
recibio el PLH y LIBRE en forma
electronica, y unas pocas que se
reportaron en forma manual.
• Como se puede probar que los votos
rurales son fraudulentos o inventados?
• Aca presentare evidencia que no necesitan
las actas para demostrar la existencia de
un:
• Un Segundo Sistema de generacion de
actas
• Evidencia que el patron de generacion
de actas, recepcion y creacion que es
indicador de fabricacion
7. Archivo JSON
• Este proceso de acuerdo con la OEA
carece de medidas de seguridad y no hay
logs de las mismas (Pg 5) :
• “Del análisis de la aplicación que toma
las imágenes del servidor y las empaqueta
bajo la tecnología JSON a cargo de la
empresa responsable por el escaneo en
INFOP y transcripción de las actas, no lleva
logs (registros o bitácora propia), ello a
alusión que el conjunto de actas
escaneadas formato JPG donde el paquete
JSON presentaba inconsistencias, fueron re-
empaquetadas bajo esta modalidad, no
obrando registros de dicha acción.
8. El archivo JSON se crea y envia a los partidos
y a AWS - Amazon
Timestamp, de creacion debe coincidir
Con el momento de su archivamiento
Timestamp, de recepcion debe coincidir
Con el momento de su archivamiento
Enviar
Servidores de otros partidos
9. Que viene en cada archivo JSON – OEA los ”miro”
pero no los analizo
• Obsérvese que corresponden a archivos firmados digitalmente
con el certificado del TSE, eso es indicador que los archivos
tienen en su interior un JSON con:
• La imagen del acta,
• Dia de creación, o Timestamp
• MER
• Información del MER, nivel de votación, etc.
10049 104.json
159.json
10049
10049
MER Presidente, Alcalde, Diputado
405.json
10. Se puede ahora
comparar los
archivos creados
y tiempos de
creacion de
cada archivos el
dia de la
eleccion y los
dias posteriores
Timestamp – Archivo Creado
por el MER o por el escaneo
Timestamp – Archivo
almacenado en el disco duro
de los servidores del TSE
11. Logs de la OEA – muy limitado – confirman el uso de los archivos JSON y
los diferentes timestamps
Analisis de la OEA – Superficial – Descriptivo
13. Comparacion
de archivos
JSON del INFOP
vs MER del 27
de Noviembre
Al usar la llave privada para decriptarlo, solo se explica con DOS
codigos distintos que generaron los archivos JSON
Orden de los elementos del archivo es distinto, al decriptarlo
14. Evidencia
de dos
sistemas
Posiblemente el ingeniero del primer
Sistema uso una estructura con los mismos
valores pero organizados en forma diferente
No hay forma de cambiar esto, ya que el
archive JSON estaba encriptado y no es
possible modificarlo
Inconsistencia que hace evidente dos “Code
Bases”
15. Como se puede extraer el tiempo de CREACION del archive JSON si
se sta encriptado – con la llave publica!
• El programa de .NET provisto por el TSE de la forma siguiente en ValidadoArchivoExtractor:
foreach (var pair in objeto)
{
if (pair.Key == "mer") {
mer = (String) pair.Value;
}=
if (pair.Key == "timestamp")
{
//Console.WriteLine(pair.Value);
//Console.WriteLine(Convert.ToDouble(pair.Value));
DateTime Fecha = new DateTime(1970, 1, 1);
DateTime dout = Fecha.ToLocalTime().AddSeconds(Convert.ToDouble(pair.Value));
Console.WriteLine(mer+","+dout);
; }
else
{
Console.WriteLine("{0}: {1}", pair.Key, pair.Value);
}
16. Error – No
habia
auditoria de
quien tenia la
llave
PRIVADA
• La llave privada y la publica estaban en
posesion de todos los partidos!! No hay
forma de auditor quien la uso y cuantos la
usaron.
• Cualquiera podia inyectar el codigo si tenia la
llave privada.
17. Se puede
observer un
DATA INJECTION
ATTACK al
Sistema del TSE
• Cualquiera que copiase la llave privada
podia inyectar archivos JSON al Sistema en
forma irregular.
18. Archivos enviados de
las MER o escaneados
por el ATX
• Llegan en forma aleatoria, no
en secuencia. MER 03376 llega
antes que 15449 y luego 09647.
• Eleccion presidencial con los
caracteres “104.json” con el
nombre del archivo
03376104.json 3376 2017-11-27 01:08:32
15449104.json 15449 2017-11-27 01:08:36
09647104.json 9647 2017-11-27 01:08:38
05912104.json 5912 2017-11-27 01:08:45
09151104.json 9151 2017-11-27 01:08:46
09217104.json 9217 2017-11-27 01:08:58
12966104.json 12966 2017-11-27 01:09:50
03608104.json 3608 2017-11-27 01:10:19
11789104.json 11789 2017-11-27 01:11:17
04123104.json 4123 2017-11-27 01:12:11
04836104.json 4836 2017-11-27 01:12:40
11021104.json 11021 2017-11-27 01:12:40
14790104.json 14790 2017-11-27 01:12:40
19. Post 27 de Noviembre
– Envios Comienzan a
las 23:00
• Archivos JSON y
sus tiempos de
RECEPCION
• No es igual al
tiempo de
CREACION
Archivo Fecha de Transmisión Delta de
Tiempo
Diferencia
En
Segundos
10888104.json 2017-11-27 23:48:48 0:00:04 4
10889104.json 2017-11-27 23:48:52 0:00:04 3
10890104.json 2017-11-27 23:48:55 0:00:03 3
10891104.json 2017-11-27 23:48:58 0:00:03 4
10892104.json 2017-11-27 23:49:02 0:00:04 3
10893104.json 2017-11-27 23:49:05 0:00:03 4
10894104.json 2017-11-27 23:49:09 0:00:04 3
10895104.json 2017-11-27 23:49:12 0:00:03 4
10896104.json 2017-11-27 23:49:16 0:00:04 4
10966104.json 2017-11-27 23:50:20 0:01:04 1
10971104.json 2017-11-27 23:50:21 0:00:01 35
10995104.json 2017-11-27 23:50:56 0:00:35 7
10997104.json 2017-11-27 23:51:03 0:00:07 7
10999104.json 2017-11-27 23:51:10 0:00:07 3
11000104.json 2017-11-27 23:51:13 0:00:03 4
11001104.json 2017-11-27 23:51:17 0:00:04 10
:Nota, los votos rurales no habian sido recibidos?
20. Si se observa, no son del mismo centro de votacion – 10895, 10896 y 10966 y 10971
estan en lugares distintos en Francisco Morazan, pero se :escanearon”: y ”crearon”: en
forma casi simultanea
10895 08 01 08010203901
FRANCISCO
MORAZAN
DISTRITO
CENTRAL ESC.JUAN LINDO 134 51 16 2 1
10971 08 01
080102067
01
FRANCISCO
MORAZAN
DISTRITO
CENTRAL
ESC.FRANCISCO
MORAZAN 70 33 8 0 0
10966 08 01
080102063
01
FRANCISCO
MORAZAN
DISTRITO
CENTRAL
ESC. CRISTOBAL
COLON 117 23 17
21. Si se observa, no son del mismo centro de votacion – 10895, 10896 y 10966 y 10971
estan en lugares distintos en Francisco Morazan, pero se :escanearon”: y ”crearon”: en
forma casi simultanea
10895 08 01 08010203901
FRANCISCO
MORAZAN
DISTRITO
CENTRAL ESC.JUAN LINDO 134 51 16 2 1
10971 08 01
080102067
01
FRANCISCO
MORAZAN
DISTRITO
CENTRAL
ESC.FRANCISCO
MORAZAN 70 33 8 0 0
10966 08 01
080102063
01
FRANCISCO
MORAZAN
DISTRITO
CENTRAL
ESC. CRISTOBAL
COLON 117 23 17
10895104.json 2017-11-27
23:49:12
0:00:03 4
10896104.json 2017-11-27
23:49:16
0:00:04 4
10966104.json 2017-11-27
23:50:20
0:01:04 1
10971104.json 2017-11-27
23:50:21
0:00:01 35
22. El Date o
Timestamp
Puede
cambiarse en
el Sistema
Operativo
Si, Claro, es facil y es un cambio sencillo
que es indetectable.
Pero los contenidos de
un archive encriptado
NO ES POSIBLE!
No se puede cambiar ni un byte o un
”bit” de un archive encriptado sin
destruirlo.
Entonces observemos que paso cuando
los archivos se crearon.
23. • Entonces usaremos el TimeStamp dentro
del archive JSON – Estp Garantiza que es
valido
24. Rango de archivos fue creado el 11:49AM a las
11:59AM del 28 de Noviembre, 2017
MER CodMuni CodDepa Municipio Nacional Diferencia VGanador Ganador
10764 1 8 DISTRITO CENTRAL 171 151 171 PARTIDO NACIONAL DE HONDURAS
10765 1 8 DISTRITO CENTRAL 171 149 171 PARTIDO NACIONAL DE HONDURAS
10783 1 8 DISTRITO CENTRAL 189 159 189 PARTIDO NACIONAL DE HONDURAS
10784 1 8 DISTRITO CENTRAL 174 122 174 PARTIDO NACIONAL DE HONDURAS
10785 1 8 DISTRITO CENTRAL 179 131 179 PARTIDO NACIONAL DE HONDURAS
10800 1 8 DISTRITO CENTRAL 91 49 91 PARTIDO NACIONAL DE HONDURAS
10802 1 8 DISTRITO CENTRAL 81 47 81 PARTIDO NACIONAL DE HONDURAS
10809 1 8 DISTRITO CENTRAL 97 73 97 PARTIDO NACIONAL DE HONDURAS
10810 1 8 DISTRITO CENTRAL 97 75 97 PARTIDO NACIONAL DE HONDURAS
10828 1 8 DISTRITO CENTRAL 105 57 105 PARTIDO NACIONAL DE HONDURAS
10829 1 8 DISTRITO CENTRAL 83 27 83 PARTIDO NACIONAL DE HONDURAS
10830 1 8 DISTRITO CENTRAL 99 57 99 PARTIDO NACIONAL DE HONDURAS
10838 1 8 DISTRITO CENTRAL 179 129 179 PARTIDO NACIONAL DE HONDURAS
10839 1 8 DISTRITO CENTRAL 155 116 155 PARTIDO NACIONAL DE HONDURAS
10840 1 8 DISTRITO CENTRAL 152 101 152 PARTIDO NACIONAL DE HONDURAS
10841 1 8 DISTRITO CENTRAL 192 155 192 PARTIDO NACIONAL DE HONDURAS
10866 1 8 DISTRITO CENTRAL 103 44 103 PARTIDO NACIONAL DE HONDURAS
10867 1 8 DISTRITO CENTRAL 104 67 104 PARTIDO NACIONAL DE HONDURAS
10868 1 8 DISTRITO CENTRAL 74 64 74 PARTIDO NACIONAL DE HONDURAS
10869 1 8 DISTRITO CENTRAL 67 65 67 PARTIDO NACIONAL DE HONDURAS
10884 1 8 DISTRITO CENTRAL 95 66 95 PARTIDO NACIONAL DE HONDURAS
10937 1 8 DISTRITO CENTRAL 132 120 132 PARTIDO NACIONAL DE HONDURAS
10947 1 8 DISTRITO CENTRAL 63 31 63 PARTIDO NACIONAL DE HONDURAS
10961 1 8 DISTRITO CENTRAL 122 115 122 PARTIDO NACIONAL DE HONDURAS
10967 1 8 DISTRITO CENTRAL 120 100 120 PARTIDO NACIONAL DE HONDURAS
10974 1 8 DISTRITO CENTRAL 87 75 87 PARTIDO NACIONAL DE HONDURAS
25. Lugares de votacion y escuelas que se
escanearon casi simultaneamente.
10841 08 01
080102027
01
FRANCISCO
MORAZAN
DISTRITO
CENTRAL
ESC.JOSECECILIO
DEL VALLE 182 37 7 0 3
10866 08 01
080102032
01
FRANCISCO
MORAZAN
DISTRITO
CENTRAL
ESC.FRANCISCO
MORAZAN 104 60 42 0 0
10867 08 01
080102032
01
FRANCISCO
MORAZAN
DISTRITO
CENTRAL
ESC.FRANCISCO
MORAZAN 104 37 32 0 0
10868 08 01
080102033
01
FRANCISCO
MORAZAN
DISTRITO
CENTRAL
ESC.DIONISIODE
HERRERA 73 10 16 0 0
26. Mas rangos
subidos en
secuencia
• En una forma muy similar el rango de 10494 a 11562 contiene un grupo
creado el 28 de NOVIEMBRE 11:39 AM y otro grupo creado ell 28 de
NOVIEMBRE a las 3:32AM y fue subido en su mayoria el 28 de
NOVIEMBRE a las 3:30AM en su totalidad.
• Se crearon al mismo tiempo y se subieron 2 minutos
depues!
• El siguiente rango 10006 a 10097 presenta similares anomalías, fueron
subidos en su totalidad el 28 de NOVIEMBRE a las 11:25AM y fueron
creados en su totalidad 28 de NOVIEMBRE a las 11:25AM (e.g.
Timestamp en 10006 28 de NOV 11:25AM y el 10097 a las 11:33AM del
mismo dia 28 de NOVIEMBRE. Como se observa fueron subidos
inmediatamente despeas de su creación y supuesto escaneo.
• 11090 – 11104 Subidas de acuerdo a la tabla Creadas
todas a las 12:50PM Hora EST de Honduras Es decir, cerca de 24 mesas
creadas simultáneamente y firmadas por el JWT/Llave privada del TSE
• 11078 fue creado a la 1:34PM hora de HONDURAS, es decir en un tiempo
de 30 minutos se crearon y se subieron al internet 287 mesas que se
escanearon y revisaron en 30 minutos. Con muchas creadas
simultáneamente.
27. Imagen 10764
Imagen 10765
Imagen 10766-10782
Imagen 10783
Imagen 10784
Imagen 10785
11:49 Nov 28
11:49 Nov 28
11:49 Nov 28
11:50 Nov 28
11:50 Nov 28
Nov 27
INFOP y Archivos JSON LIBRE, PINU, PLH
Muchas actas creadas simultaneamente
Imagen 10786-10789
Imagen 10790 11:50 Nov 28
Nov 27
28. Imagen 10764
Imagen 10765
Imagen 10766-10782
Imagen 10783
Imagen 10784
Imagen 10785
11:49 Nov 28
11:49 Nov 28
11:49 Nov 28
11:50 Nov 28
11:50 Nov 28
Nov 27
INFOP y Archivos JSON LIBRE, PINU, PLH
Muchas actas creadas simultaneamente
Imagen 10786-10789
Imagen 10790 11:50 Nov 28
Nov 27
Mesas y archviso seguros
creados a diferentes horas
dle dia y al “random”
29. Imagen 10764
Imagen 10765
Imagen 10766-10782
Imagen 10783
Imagen 10784
Imagen 10785
11:49 Nov 28
11:49 Nov 28
11:49 Nov 28
11:50 Nov 28
11:50 Nov 28
Nov 27
INFOP y Archivos JSON LIBRE, PINU, PLH
Muchas actas creadas simultaneamente
Imagen 10786-10789
Imagen 10790 11:50 Nov 28
Nov 27
Mesas y archviso seguros
creados a diferentes horas
dle dia y al “random”
Por la forma que se van
creando aparecen que a)
Las imagenes ya existian, b)
Solo se empaquetaban y se
subian muchos en secuencia
30. 11807 26 8 VALLE DE ANGELES 190 180 190 PARTIDO NACIONAL DE HONDURAS
11820 26 8 VALLE DE ANGELES 110 81 110 PARTIDO NACIONAL DE HONDURAS
11821 26 8 VALLE DE ANGELES 114 80 114 PARTIDO NACIONAL DE HONDURAS
11862 28 8 VALLECILLOS 64 13 96 PARTIDO LIBERAL DE HONDURAS
11865 28 8 VALLECILLOS 90 35 90 PARTIDO NACIONAL DE HONDURAS
11867 28 8 VALLECILLOS 105 72 105 PARTIDO NACIONAL DE HONDURAS
Observe : Valle de ANGELES, 11808-11819 fueron
recibidos via ATX, sin embergo 11807 and 11820-
11821 no – Observe VALLECILOS
31. Evidencia – Patron es
sistematico y repetitivo
• Concluyo que hay evidencia de fabricacion e inyeccion de
los archivos JSON, los archivos estaban escaneados todos
en secuencia, creados y subidos en segundos
• Se encapsularon todos en secuencia y se subieron todos al
mismo tiempo
• Explicacion:
• Las actas se iban agrupando en orden y se iban
subiendo al Sistema
32. Solucion: Tener las Actas en Azul y Cotejarlas
Problema: No existia ninguna o habian “algunas”
no 4000, no habian ni 100!
Secuencia de Archivos
creados y “escaneados” en
INFOP
Resolucion diferente,
imagenes no tienen alto nivel
de ruido, Gana el PNH
Recepcion en forma aleatoria
33. Prevencion
• Autenticacion por GPS o certificados digitales generados por un tercero
• Validacion e impression de QR Code o una firma electronica generada del acta
• Tomar una fotografia del acta, generar un codigo de authenticacion via App que no
necesite internet y colocarselo al acta con un lapiz. Cada Partido podria generar eso y
validar el acta cotejada
• Envio rapido de foto con acta a todos los partidos, y con copia del mismo codigo fuente en
uso por el CNE o TSE
• El peso de las urnas debe grabarse cada 15 minutos, y enviarse como parte del dia de
votacion.