PROYECTO FINAL DE CARRERA. Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica

Tamaño: px
Comenzar la demostración a partir de la página:

Download "PROYECTO FINAL DE CARRERA. Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica"

Transcripción

1 PROYECTO FINAL DE CARRERA Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica (Study of evoting System using blockchain protocol) Estudios: Enginyeria de Telecomunicació Autor: Antonio Marín Bermúdez Director/a: Israel Martín Any: 2016

2 Índice 1 INTRODUCCIÓN AL PROYECTO ANÁLISIS INICIAL DE VOTACIONES ELECTRÓNICAS PRINCIPIO DE LOS SISTEMAS DE VOTACIÓN SISTEMAS DE VOTO ELECTRÓNICO SOLUCIONES DE SISTEMAS DE VOTO ELECTRÓNICO Cifrado por criptografía de clave pública Cifrado homomórfico Sistemas de mezclado de votos EJEMPLOS DE SISTEMAS DE VOTACIÓN CONCLUSIONES ANÁLISIS DE LA TECNOLOGÍA BLOCKCHAIN BITCOIN: MONEDA DESCENTRALIZADA P2P USUARIOS DIRECCIONES TRANSACCIONES LA CADENA DE BLOQUES (BLOCKCHAIN) PRUEBA DE TRABAJO (PROOF OF WORK) CONSENSO OTRAS CARACTERÍSTICAS DE LA IMPLEMENTACIÓN DEL BITCOIN UTXO (Unspent transaction output) Cadena de Merkle Recompensas: minado y comisiones INCONVENIENTES, PUNTOS DÉBILES Y ATAQUES SOBRE BITCOIN Alta latencia Software bitcoin Ataques de doble gasto [17] Escalabilidad CONCLUSIONES DEL ANÁLISIS DE LA TECNOLOGÍA BLOCKCHAIN DISEÑO FUNCIONAL DE LA SOLUCIÓN ACTORES PREPARACIÓN DE LA VOTACIÓN REGISTRO DE VOTANTES FASE DE VOTACIÓN FINALIZACIÓN Y RECUENTO DE LA VOTACIÓN SOFTWARE DE VOTACIÓN OTROS ASPECTOS DE LA SOLUCIÓN DESCRIPCIÓN DETALLADA DE LA SOLUCIÓN PREPARACIÓN DE LA VOTACIÓN Clave troceada (Procedimiento de Blakely-Shamir) Direcciones de voto...59

3 5.2 REGISTRO DE VOTANTES Firma digital ciega (blind signature) TRANSACCIONES CADENA DE BLOQUES Bloques especiales RECUENTO SOFTWARE, NODOS Y MINEROS ARQUITECTURA Y ANÁLISIS DE COSTE DE LA SOLUCIÓN ELEMENTOS DE LA ARQUITECTURA Servicio de registro Servicio de acreditación Nodo de votación IMPLEMENTACIÓN DE LA ARQUITECTURA ANÁLISIS DE COSTE Coste de hardware y software base Coste de desarrollo de aplicaciones Coste total CONSIDERACIONES SOBRE LA SOLUCIÓN PROPUESTA TIEMPO DE PROCESO DE LA VOTACIÓN DESCENTRALIZACIÓN INCOMPLETA Entidad de Registro Nodo de la entidad organizadora SEGURIDAD DE LA SOLUCIÓN Caso bipolarización de fuerzas políticas Desviación de potencia bitcoin CONCLUSIONES REFERENCIAS... 99

4 Lista de ilustraciones Ilustración 1. Ejemplo de operación sobre cifrado homomórfico Ilustración 2. Ejemplo de sistema de votación mediante cifrado homomórfico 13 Ilustración 3. Esquema de sistema de mezclado de votos (mixing net) Ilustración 4. Ejemplo doble gasto con moneda digital Ilustración 5. Ejemplo doble gasto controlado por entidad centralizada Ilustración 6. Esquema de transformación de una clave pública ECDSA a una dirección bitcoin Ilustración 7. Ejemplo de funcionamiento de transacciones Ilustración 8. Cadena de bloques de transacciones Ilustración 9. Representación detallada de la cadena de bloques de transacciones Ilustración 10. Ejemplo consenso en caso de fork. Figura Ilustración 11. Ejemplo consenso en caso de fork. Figura Ilustración 12.Ejemplo consenso en caso de fork. Figura Ilustración 13. Ejemplo consenso en caso de fork. Figura Ilustración 14. Ejemplo consenso en caso de fork. Figura Ilustración 15. Ejemplo consenso en caso de fork. Figura Ilustración 16. Ejemplo consenso en caso de fork. Figura Ilustración 17. Ejemplo consenso en caso de fork. Figura Ilustración 18. Ejemplo Hash Merkle Tree Ilustración 19. Esquema de verificación de la transacción 4 en un hash de Árbol de Merkle Ilustración 20. Gráfico de crecimiento de la cadena bitcoin Ilustración 21. Fases de la votación Ilustración 22. Proceso de registro de votante en dos fases Ilustración 23. Proceso de votación Ilustración 24. Proceso de solicitud de registro de votantes Ilustración 25. Proceso de obtención de credenciales de votación Ilustración 26. Vista de contexto de la solución Ilustración 27. Componentes del servicio de registro Ilustración 28. Componentes del servicio de acreditación Ilustración 29. Componentes del nodo de votación Ilustración 30. Arquitectura 3 capas servicio web... 85

5 Lista de tablas Tabla 1. Estructura de transacción Tabla 2. Estructura de entrada de una transacción Tabla 3. Estructura de la salida de una transacción Tabla 4. Estructura de un bloque de la cadena Tabla 5. Estructura de la cabecera del bloque Tabla 6. Componentes del servicio de registro Tabla 7. Componentes del servicio de acreditación Tabla 8. Componentes del nodo de votación Tabla 9. Coste de servicios AWS... 86

6 1 Introducción al proyecto

7 1 Introducción al proyecto En los últimos años, la aparición del bitcoin (la moneda virtual creada por Satoshi Nakamoto), ha supuesto una revolución no sólo en el ámbito económico, en el que ha tenido un éxito notable afianzándose como moneda alternativa y generado incluso la aparición de otras monedas virtuales o criptomonedas basadas en el mismo concepto (Litecoin, Dogecoin, PeerCoin, etc.), sino también en el ámbito tecnológico donde su protocolo blockchain se ha establecido como el referente del concepto de registro distribuido. El éxito de bitcoin, y por lo tanto de blockchain, así como su puesta a prueba durante estos años (bitcoin se lanzó en 2009) en un entorno tan sensible como es el económico, donde se ha podido comprobar su seguridad y robustez, valida el concepto de registro o consenso distribuido, el cual permite registrar de forma eficaz y segura transacciones de elementos virtuales. Y este concepto, que al fin y al cabo está resolviendo un problema fundamental del entorno digital, la copia y propiedad, se puede aplicar a otros ámbitos aparte del económico o las criptomonedas. Por ejemplo el arte digital, derechos de autor, o la votación electrónica. El objeto de este proyecto es el de estudiar la aplicación de la tecnología blockchain para construir un sistema de votación electrónica que ofrezca mayor seguridad y ventajas que los actuales debido al carácter de seguridad basada en criptografía y descentralización que aporta esta tecnología. Primero se definirá el escenario de votación electrónica, detallando todas las necesidades y requisitos que demanda una solución de este tipo, tomando como ejemplo los sistemas actuales de votación electrónica ya implementados, que emplean principalmente tecnologías basadas en sistemas centralizados. A continuación se analizará la tecnología blockchain, tomando como ejemplo su implementación en criptomonedas (principalmente bitcoin) y las características y elementos principales de esta tecnología. A partir de estos dos análisis se propondrá una solución de votación electrónica basada en tecnología blockchain, que dé respuesta a los requisitos de voto electrónico, y que represente una mejora respecto a los sistemas actuales basados en tecnologías centralizadas de almacenamiento y procesamiento de las transacciones. Se hará también una descripción detallada de la solución, de la implementación y despliegue, así como de las tecnologías y algoritmos que se utilizarían. Una vez detallada la solución, se procederá a realizar un análisis de la misma, observando las debilidades e inconvenientes del sistema, haciendo especial hincapié en la comparación con las soluciones actuales de voto electrónico. Por último se presentaran las conclusiones de todo este trabajo, el sistema propuesto de votación electrónica, los condicionantes del mismo, y la idoneidad del uso del protocolo blockchain para solventar este tipo de problemáticas. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 4

8 2 Análisis inicial de votaciones electrónicas PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 5

9 2 Análisis inicial de votaciones electrónicas La mayoría de sistemas políticos actuales (y algunos no políticos) basan su organización interna y, en mayor o menor medida, su toma de decisiones, en sistemas de votación. Una votación es en esencia una consulta a una serie de personas (votantes) para que elijan entre distintas opciones. Aunque pueden aplicarse reglas diferentes en las votaciones, el espíritu de las mismas suele ser que se lleve a cabo la opción con más apoyos. De hecho hay todo un campo de estudio de los sistemas de votaciones. La teoría de las votaciones, que abarca subcampos de la teoría política y las matemáticas. Por lo tanto, aunque existen muchos tipos y sistemas de votaciones (por ejemplo a mano alzada), este análisis se va a centrar en las votaciones asociadas a sistemas políticos (elecciones y participación ciudadana), ya que es uno de los más complejos (elevado número de participantes dispersos geográficamente, necesidad de privacidad en el voto, necesidad de identificación de votantes, etc.) y las soluciones aplicadas a este tipo de votaciones resolverían otras casuísticas más sencillas. 2.1 Principio de los sistemas de votación Los sistemas de votación que se están analizando (elecciones y participación ciudadana) tienen una serie de características y requisitos que deben cumplirse. Estas características y requisitos son previos y universales, y por lo tanto independientes de la tecnología y procedimientos que se vayan a usar para realizar la votación. A continuación se enumeran los requisitos más importantes de una votación: 1. Voto único: El voto sólo puede ejercerlo aquel que tiene derecho, y sólo puede ejercerlo de forma efectiva una vez durante la votación. 2. Voto privado: El voto es secreto. Nadie debe ser capaz de averiguar qué ha votado un elector concreto. 3. Integridad de los votos: Una vez emitido, nadie debe ser capaz de cambiar el sentido de un voto. 4. Integridad de la votación: De la misma manera no debe ser posible modificar el resultado global de la votación. 5. Auditoría individual: Debe asegurarse que un voto individual se cuenta correctamente. 6. Auditoría universal: Debe asegurarse que el proceso y recuento electoral se hace correctamente. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 6

10 Estos requisitos se cumplen en la mayoría de elecciones de sistemas democráticos de forma similar. A continuación se explica cómo se cumplen en el sistema electoral español: 1. Voto único: Este requisito se cumple gracias al censo, el sistema de DNIs y al sistema de colegios electorales. a. Al tener un censo de la población es fácil acotar las personas que tienen derecho a participar en una votación (en este caso porque cumplen los requisitos de edad, pertenecía a un territorio, etc.) b. El sistema de colegios electorales obliga al elector a depositar su voto en un lugar concreto (una urna de un colegio electoral). De esta manera se facilita el control del voto, ya que los miembros de la mesa electoral tienen la lista de personas que pueden votar, anotan las personas que han votado y no permiten doble voto. i. En otros países donde no tienen estos sistemas de censo y colegios, usan otros sistemas, como realizar una marca (por ejemplo con una tinta indeleble) a la persona que ha votado para que no pueda volver a votar. c. Al tener un identificador único por ciudadano (el DNI), es fácil asegurar la identidad de la persona y evitar suplantaciones. 2. Voto privado: Este requisito se cumple gracias a: a. Los electores entregan su voto en una papeleta dentro de un sobre cerrado. De esta manera se consigue que los miembros de la mesa y otras personas no puedan saber el contenido del sobre y por tanto el voto emitido. b. Estos sobres se introducen en una urna, donde se van depositando todos los sobres. Una vez la urna se va llenando de sobres es imposible distinguir qué sobre pertenece a cada persona que ha ido a votar. (este sistema a veces tiene problemas en circunscripciones donde votan muy pocas personas, y es posible inferir, aunque no asegurar, a quien pertenece cada voto.) 3. Integridad de los votos y Auditoría individual: Se asegura mediante el sistema de mesas electorales, compuesto de varias personas elegidas mediante un sorteo, y la posibilidad que los diferentes partidos elijan apoderados e interventores que pueden supervisar el proceso y asegurar que no se manipulan los votos de una urna y se cumplen las regles establecidas. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 7

11 4. Integridad de la votación y Auditoría universal: El sistema de recuento y la redundancia aseguran esta integridad: a. Cada mesa recuenta los votos, los anota y transmite electrónicamente los resultados a la junta electoral central. b. Además los votos y el recuento en papel se depositan en custodia por si es necesario hacer un recuento posterior. c. El sistema de apoderados e interventores permite que los partidos tengan acceso al recuento, y por lo tanto cualquier partido o interesado podría hacer su propio recuento para comprobar que coincide con el oficial. d. Todo el sistema y proceso es público y transparente pudiendo ser supervisado tanto por los partidos participantes como por asociaciones de transparencia, etc. 2.2 Sistemas de voto electrónico Frente al sistema de votación tradicional, basado en urnas y papeletas, se han ido introduciendo y probando nuevas propuestas aplicando nuevas tecnologías. Se puede definir como voto electrónico la aplicación de las TIC a un proceso de votación. En general se distinguen dos tipos de voto electrónico: - Voto electrónico presencial: Estos sistemas son continuistas con el sistema de voto tradicional, en el que la persona debe comparecer físicamente en un puesto de votación. Se introduce la tecnología en los instrumentos de papeletas y urnas (papeletas electrónicas o con banda magnéticas, urnas electrónicas con menús para seleccionar el voto, etc.) Generalmente estos sistemas de voto electrónico utilizan la tecnología para agilizar el recuento e impedir el acceso y manipulación de los votos por parte de personas no autorizadas. - Voto electrónico por internet: en este caso los votantes pueden votar desde el lugar en el que se encuentren, sin necesidad de desplazarse a un puesto concreto, utilizando medios electrónicos (internet, sms, etc.) Este análisis se centrará en el voto electrónico por internet (o voto telemático), ya que sería el tipo de aplicación tecnológica que ofrecería un mayor número de ventajas sobre el sistema presencial. Por lo tanto en los siguientes apartados, al hacer referencia al voto electrónico, se está hablando del voto electrónico por internet o voto telemático. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 8

12 2.3 Soluciones de sistemas de voto electrónico Los sistemas de voto electrónico deben ser capaces de ofrecer las mismas garantías que los sistemas de voto tradicionales, y el uso de la tecnología y los sistemas informáticos deberían ayudar a ofrecer incluso más garantías, como por ejemplo la comprobación por parte del votante de que su voto se ha contabilizado correctamente [1]. En general los sistemas de voto telemático siguen una secuencia similar a la del voto tradicional: 1. Registro / identificación: El sistema debe identificar a todos los posibles votantes. En ocasiones y dependiendo del sistema no es preciso un registro previo, pero si concretar la forma de identificación de los votantes (por ejemplo certificado digital del DNI electrónico) 2. Preparación del voto: Deben especificarse las condiciones del voto: candidatos, selecciones que pueden realizarse en cada voto, etc. Dependiendo el tipo de votación el votante debe recibir los códigos correspondientes a los candidatos, y las reglas de votación para que el voto sea válido. 3. Envío del voto: El votante selecciona su voto, lo prepara y lo envía al sistema de votación. En este punto el sistema de voto telemático debe utilizar algoritmos que permitan posteriormente verificar el voto preservando el anonimato del votante. 4. Recuento de votos: El sistema debe gestionar todos los votos recibidos, contabilizando y ofreciendo el resultado final. 5. Verificación de votos: si es posible el sistema debería permitir a los votantes algún sistema de comprobación de que en el resultado final su voto se ha contabilizado correctamente (manteniendo el anonimato del votante) Para conseguir un sistema de votación telemático con todas las garantías de seguridad se utilizan distintas técnicas y algoritmos criptográficos. A continuación se detallan algunas de las más utilizadas y que se han considerado más relevantes para este estudio. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 9

13 2.3.1 Cifrado por criptografía de clave pública Es la base de la mayoría de criptografía actual y se basa en la existencia de una pareja de claves (una clave pública y una clave privada). La característica principal de este cifrado es que cualquier mensaje cifrado con la clave privada sólo puede ser descifrado utilizando la clave pública. Por lo general los usuarios de este sistema publicitan y ponen a disposición pública su clave pública para que cualquier interesado les pueda enviar un mensaje cifrado con la absoluta certeza de que sólo él puede descifrarlo. Estas soluciones criptográficas son muy comunes y se usan en la mayoría de sistemas de seguridad informática: cifrado de mensajes y correos electrónicos, firma digital, protocolos de comunicación e identificación entre servidores, etc. En el contexto de los sistemas de votación telemáticos, se suele utilizar la criptografía de clave pública para cifrar el voto, de forma que sólo el poseedor de la clave privada pueda acceder a él y contabilizarlo: 1. En la fase previa de preparación de la votación, se genera el par de claves; pública y privada. 2. La clave pública se distribuye a todos los votantes para que cifren su voto con ella. 3. La clave privada se custodia por parte de la junta o comité electoral. Generalmente esta clave se trocea y se distribuye entre los miembros, de forma que un solo miembro no puede acceder a descifrar los votos. 4. Una vez finalizada la votación, los miembros de la junta o comité electoral introducen la clave privada para poder descifrar los votos y hacer el recuento. De esta forma se asegura que sólo con la connivencia de los miembros de la junta o comité electoral se puede acceder a los datos de las votaciones Cifrado homomórfico Los cifrados homomórficos son un tipo específico de algoritmos criptográficos que tienen una propiedad muy interesante: - Suponiendo una función E(x, k) que es el algoritmo que cifra un mensaje x utilizando una clave k - Suponiendo una función D(x,k) que es el algoritmo que descifra un mensaje x usando una clave k - Si el sistema de cifrado es correcto se cumple que: D(E(x,k),k)=x PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 10

14 Es decir si se cifra el mensaje con la función E, puedo descifrarse con la función D y volver a obtener el mensaje en claro - Si el cifrado además es homomórfico, se cumple que: D(f(E(x,k)),k)=f (x) Es decir, si al mensaje cifrado le aplico una operación (f), el resultado al descifrar es equivalente a haber aplicado al mensaje en claro una operación (f ) En ocasiones y dependiendo del sistema estas operaciones (f) y (f ) pueden ser la misma operación, aunque no siempre es así. El siguiente esquema representa un ejemplo sencillo en que f(x)=f (x)=x 2 Ilustración 1. Ejemplo de operación sobre cifrado homomórfico Esta propiedad de los sistemas de cifrado homomórficos es sumamente interesante, ya que permite operar de forma segura en sistemas cifrados sin necesidad de conocer la clave y podría mitigar algunas consideraciones de seguridad sobre la tendencia actual de algunas empresas y particulares de mantener datos privados en la nube (es decir en posesión de otras empresas y/o países). Un ejemplo claro sería el de una empresa que tuviera en un proveedor externo una base de datos cifrada. En esa base de datos estaría la tabla clientes. Si la empresa necesitara un listado de todos sus clientes en Barcelona, debería: 1. Descargar la tabla del proveedor externo a un sistema local 2. Descifrar la tabla 3. Realizar la consulta Si la base de datos está cifrada con un sistema homomórfico que permita operaciones de cadena de texto, el usuario: PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 11

15 1. Cifraría la palabra clave a buscar: Barcelona con la misma clave que está cifrada la base de datos A efectos del ejemplo se supondrá que el resultado del cifrado sería anolecrab 2. Realizaría directamente contra la base de datos en el proveedor externo la consulta: select * from Cliente where localidad = anolecrab 3. Descifraría el resultado de la consulta De esta manera podría mantener la base de datos en un proveedor externo y utilizar sus servicios de computación de forma segura. Actualmente no hay implementados sistemas de cifrado homomórficos completos [2] que puedan realizar de forma práctica operaciones complejas como las del ejemplo, pero sí algunos sistemas que permiten con restricciones algunas operaciones sencillas (denominados sistemas parcialmente homomórficos): - ElGamal [3]: En este algoritmo, para el cifrado (E) de un mensaje (m) E(x 1 ) E(x 2 ) = E(x 1 x 2 ) - Goldwasser-Micali [4]: En este algoritmo, para el cifrado (E) de un bit (b) E(b 1 ) E(b 2 ) = E(b 1 b 2 ) siendo la suma binaria XOR - Benaloh [5]: En este algoritmo, para el cifrado (E) de un mensaje (m) con un tamaño de bloque (c) E(x 1 ) E(x 2 ) = E(x 1 +x 2 mod c) Otros posibles sistemas parcialmente homomórficos son: Paillier, Okamoto Uchiyama, Damgård Jurik, etc. Estos sistemas pueden ser enormemente útiles en su aplicación en una votación telemática, ya que servirían para poder contabilizar el resultado total de los votos sin necesidad de descifrar cada voto individualmente [6]. Por ejemplo: 1- Se genera un sistema intermedio (urna virtual) que no posee la clave de descifrado que usará la junta o comité electoral. 2- Los votantes envían su voto cifrado a la urna virtual 3- La urna virtual una vez tiene todos los votos (cifrados), les aplica una operación de suma (sin descifrarlos) PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 12

16 4- El resultado de la operación de la suma se envía al sistema central 5- En el sistema central, la junta o comité electoral usa la clave privada para descifrar el mensaje que envía la urna, y que contiene el resultado ya sumado. De esta forma la junta central no tiene acceso a los votos individuales, mientras que la urna intermedia no tiene acceso al contenido de cada voto. Ilustración 2. Ejemplo de sistema de votación mediante cifrado homomórfico Para implementar un sistema de este tipo, el mensaje de votación se construye como un vector. Este vector tiene tantas posiciones como candidatos, y el votante usa un sistema binario 1/0 para indicar su voto: Formato de voto. (Candidato 1, Candidato 2, Candidato 3) Votante 1. ( 1, 0, 0 ) Votante 1. ( 0, 1, 0 ) Votante 1. ( 1, 0, 0 ) Votante 1. ( 0, 0, 1 ) Votante 1. ( 1, 0, 0 ) Una vez sumados los votos: Resultado Final ( 3, 1, 1 ) En este ejemplo gana el Candidato nº 1 PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 13

17 Se ha de tener en cuenta que este tipo de solución sólo sirve para un determinado tipo de votaciones, que se podrían denominar simples, en las que sólo se debe escoger algunas opciones o que se puedan resolver mediante operaciones simples como la suma directa de los votos. Otros tipos de votaciones más complejas no podrían resolverse mediante esta solución Sistemas de mezclado de votos Se basa en el concepto de mix-net inventado por Chaum [7]. Estas técnicas se utilizan para romper la correlación entre las entradas a un sistema y su salida, en este caso entre los votos emitidos y los votos contabilizados. Básicamente se trata de una serie de servidores encadenados (mix-net) que realizan una permutación cifrada de los votos. De esta manera en el servidor final, el orden de los votos contabilizados no tiene relación con el orden de los votos emitidos imposibilitando asociar el voto a un usuario mediante técnicas de monitorización (uso de logs, monitorización del canal, asociación de ips, etc.) Ilustración 3. Esquema de sistema de mezclado de votos (mixing net) El funcionamiento (simplificado) sería: - Dado un número de votantes n, se crean n votos (V) - Cada votante cifra su voto y lo envía. Denominados al voto cifrado (C) - Se crea en el servidor que recibe los votos el conjunto de votos C 1,0, C 2,0, C 3,0,, C n,0 (donde el primer sufijo indica el orden en el que llegó el voto, y el segundo sufijo indica el número de servidores por los que ha pasado. En este caso es 0 que indica que es el servidor inicial de recepción de los votos) Para asegurar el anonimato, el sistema ha separado la firma digital de los votos del contenido del voto. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 14

18 - El sistema está formado por t servidores de mezclado S 1, S 2, S 3,, S t - En cada servidor S i se produce una mezcla, consistente en, sobre el conjunto de votos de entrada: {C 1,i 1, C 2,i 1, C 3,i 1,, C n,i 1, } permutar el orden del conjunto usando un algoritmo secreto y realizar sobre los votos una secuencia de re-encriptado (o descifrado dependiendo del sistema escogido), para impedir relacionar los datos de entrada con los de salida. {C 1,i, C 2,i, C 3,i,, C n,i, } - Una vez se finalizado el proceso de mezclado de votos, pueden descifrarse (si no se ha realizado el descifrado durante el proceso) y publicarse los resultados. El uso de estos sistemas requiere añadir garantías de que los procesos de mezclado no modifican el sentido del voto. Generalmente los servidores que realizan el mezclado también realizan una serie de pruebas para comprobar la coherencia entre la entrada y la salida que se almacenan para auditorías posteriores. Aunque es cierto que estas comprobaciones y auditorías podrían mermar la seguridad del sistema, un atacante debería poder acceder a todas las pruebas de todos los servidores de mezclado y a todos los datos de entrada y salida de los mismos para ser capaz de relacionar un voto de entrada con el voto final. Hay diferentes aproximaciones a la implementación de estos sistemas denominados mixing nets [8] [9]. Aunque su funcionamiento básico es el mismo, tienen diferencias en el tipo de protocolos de mezclado usado, de aplicación de cifrado y descifrado, o de generación de las pruebas de trabajo para validar la integridad de las operaciones. 2.4 Ejemplos de sistemas de votación Ya existen actualmente distintos sistemas de voto telemático que utilizando estas u otras soluciones tecnológicas se han utilizado en escenarios reales. Algunos ejemplos: - Scylt. Es una empresa española especializada en soluciones de democracia y participación. Tienen varias soluciones para las distintas fases y tipos de elecciones. Tienen como clientes a varios gobiernos y organizaciones, e incluso se encargaron de la consolidación de resultados de las últimas elecciones generales en España. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 15

19 - Indra. Es una empresa de tecnología y consultoría. Ha sido tradicionalmente la encargada de gestionar las elecciones en España. Tiene una solución de voto telemático (NetVote) con el cual han realizado alguna prueba piloto en elecciones a nivel estatal y se ha usado en algunos casos reales. - ElectionBuddy. Sistema de votación online ( que permite configurar y gestionar votaciones y elecciones totalmente online. - Helios voting: Organización que ha diseñado un sistema verificable de votación online ( PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 16

20 2.5 Conclusiones Desde hace varios años se está trabajando en mejorar las capacidades democráticas mediante la tecnología gracias a sistemas de votación telemáticos que aseguren igual o mayor garantía que los sistemas de votación presencial actuales, y además ofrezcan ventajas en su condición de sistemas basados en el uso de nuevas tecnologías, algunas de las cuales son: - Coste: Las elecciones actuales tienen un coste muy alto debido a todo el material, logística y personal necesario. Un sistema de voto telemático, una vez implementado tendría un coste muy bajo en cada uso. - Ubicuidad: Los sistemas actuales requieren o el desplazamiento físico del votante, o una serie de trámites burocráticos engorrosos que en ocasiones desincentivan o no permiten el voto de algunas personas. Un sistema de voto telemático eliminaría estos problemas. - Verificación del voto: Actualmente una vez el votante introduce el voto en la urna no tiene forma de comprobar i se ha contabilizado correctamente. Debe confiar en el sistema de comprobación de papeletas y recuento. Las soluciones criptográficas de los sistemas de voto telemático pueden permitir de forma segura y anónima comprobar cada voto de forma individual. Actualmente hay soluciones aplicadas para construir sistemas de voto electrónico que aplican las diversas soluciones y tecnologías que se han analizado para garantizar la seguridad y anonimato del voto. A veces incluso combinan estas soluciones (cifrado + homomorfismo + mix-net) para dar más robustez al sistema. Sin embargo estas soluciones adolecen de un problema fundamental: confianza. Al final la votación se procesa en uno o varios servidores con un software del gestor de la votación y unas claves en poder de los gestores de la votación. Esta centralización del proceso puede generar desconfianza, tanto por la posibilidad de un ataque sobre alguno de los servidores de voto que pueda alterar la votación, como por la facilidad del gestor de la votación de alterarla en beneficio propio, pese a los sistemas de seguridad y auditoría. Además se tiene que tener en cuenta la dificultad de las personas sin conocimientos en tecnología en comprender los sistemas en los que se basan estos sistemas y por lo tanto su desconfianza. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 17

21 3 Análisis de la tecnología blockchain PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 18

22 3 Análisis de la tecnología blockchain El objetivo del protocolo blockchain es conseguir un sistema descentralizado, es decir, compuesto por varios nodos independientes siguiendo el esquema peer to peer (P2P), que gestione un registro único donde se anoten todas las transacciones y operaciones que se realizan (en el ámbito financiero sería el equivalente al libro mayor de contabilidad donde se anotan todos los movimientos, pagos, cobros, etc.). En los siguientes apartados se detalla el funcionamiento del protocolo y sus características principales: Descentralización peer to peer (P2P). Se trata de una red de pares, o red entre iguales, donde todos los nodos que forman la red se comportan como iguales entre sí, actuando a la vez como servidores y clientes del resto de nodos de la red. Anonimato. El protocolo se utiliza para realizar transacciones entre direcciones (equivalentes a lo que sería una cuenta bancaria). Pero estas direcciones las generan los propios usuarios, por lo que no hay un registro centralizado que permita asignar una dirección a una persona concreta. La cadena de bloques (blockchain). Es el fundamento principal del sistema. Representa el registro donde se anotan todas las transacciones que se van realizando. Tiene toda la información de todos los elementos y todas las transacciones que se han llevado a cabo desde el inicio del sistema. Transacciones. Es una operación de la cual se quiere dejar constancia en el sistema. Por ejemplo la transferencia de un elemento (por ejemplo un bitcoin) de un usuario a otro. Una transacción una vez se considera válida se incluye en la cadena de bloques. Consenso distribuido. Es la lógica que hace funcionar el sistema. En una red distribuida en la que diferentes nodos pueden estar haciendo operaciones simultáneas que deben propagarse por la red y en ocasiones colisionan entre sí, se establece un sistema claro para determinar qué transacciones son válidas y se incorporan a la cadena y cómo se resuelven los conflictos y colisiones. Criptografía. Los algoritmos criptográficos son los responsables de la seguridad del sistema así como de su robustez y fiabilidad tanto ante ataques maliciosos como a situaciones comprometidas (doble gasto, duplicidades, etc.). El protocolo blockchain se basa en el uso de: PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 19

23 o Firma digital o Hashes y Árbol de Merkle o Proof of work 3.1 Bitcoin: moneda descentralizada P2P Hay que tener en cuenta que blockchain nace como un protocolo para dar soporte a una solución concreta, el bitcoin, que pretende solucionar un objetivo concreto, la creación de una moneda y un sistema de transacción de esa moneda entre varios usuarios sin depender de una entidad centralizada. En un entorno digital es complicado asignar valor a un objeto (digital). En la economía tradicional, el valor de un objeto se determina en gran medida por su escasez (ley de oferta y demanda). Pero un objeto digital no es más (en última instancia) que una secuencia numérica. Por tanto un objeto digital puede replicarse tantas veces como se necesite a un coste ridículo. Esta propiedad resta valor (en el sentido tradicional) a los objetos digitales. Las copias de software, canciones etc. Son un claro ejemplo de esta problemática, y los sistemas DMR ejemplos de intentos de encarecer el sistema de copia y por lo tanto mantener la escasez del producto. El caso de las monedas es paradigmático, ya que son por definición elementos escasos. El uso principal de las monedas es el intercambio: se entrega una cantidad de monedas a cambio de una contraprestación (un servicio, un objeto, etc.). Por lo tanto su uso principal es realizar transacciones: enviar unidades monetarias de un usuario a otro. Una moneda en un entorno digital debe enfrentarse al problema del doble gasto. Cada unidad monetaria puede tener un código único ( ), e incluso una firma digital de una entidad emisora, pero será muy fácil copiarla y usarla 2 veces. 1. El usuario A hace una transacción a un destinatario B enviándole una unidad monetaria a cambio de un servicio 2. El usuario A realiza otra transacción a un destinatario C enviándole una copia de esa misma unidad monetaria a cambio de otro servicio 3. Como la unidad monetaria es auténtica y las 2 copias son idénticas, los destinatarios no tienen manera de saber que se está usando esa unidad más de una vez y el usuario A recibe los 2 servicios. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 20

24 Ilustración 4. Ejemplo doble gasto con moneda digital La solución tradicional a este problema es utilizar una entidad centralizada que controle las transacciones. En general es lo que sucede actualmente con los bancos. Un banco sería una entidad centralizada, que lleva un registro de las unidades monetarias que poseen sus usuarios así como de las transacciones que realizan. De esta manera el banco detectaría un intento de doble gasto si un usuario intenta utilizar dinero que ya ha utilizado y no lo permitiría. Ilustración 5. Ejemplo doble gasto controlado por entidad centralizada PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 21

25 1. El usuario A hace una transacción a un destinatario B enviándole una unidad monetaria a cambio de un servicio 2. El destinatario B confirma con el banco la transacción. 3. El banco, que tiene el registro de todas las monedas y transacciones, valida que esa transacción puede realizarse. 4. El destinatario B, una vez recibida la confirmación del banco, acepta el pago y da el servicio al usuario A 5. El usuario A realiza otra transacción a un destinatario C enviándole una copia de esa misma unidad monetaria a cambio de otro servicio 6. El destinatario C confirma con el banco la transacción 7. El banco rechaza la transacción, ya que esa moneda ya se ha usado anteriormente 8. El destinatario C no acepta el pago y no presta el servicio al usuario A Esta solución tiene algunos inconvenientes, siendo los más obvios: - La seguridad. Al ser una arquitectura centralizada, si se consigue atacar al nodo central (el banco) se pone en riesgo todo el sistema. - Privacidad. Se deposita la confianza en la entidad centralizada. Los usuarios deberán registrase en esa entidad para operar con ella, y por lo tanto está al tanto de los fondos y transacciones de los usuarios. - Dependencia. El usuario es totalmente dependiente de la entidad centralizada, expuesto a cualquier cambio que quiera realizarse (por ejemplo devaluación de la moneda, congelación de cuentas, etc.) Como solución, basándose en los protocolos p2p [10] tipo Bittorrent, podría construirse una base de datos descentralizada, que permita copiar cada transacción en múltiples nodos. Esta opción soluciona los problemas anteriormente expuestos: - La caída de un nodo no tiene un gran impacto en el sistema que seguiría funcionando. - La confianza no se deposita en una entidad centralizada, se deposita en el protocolo, que debe garantizar el buen funcionamiento del sistema distribuido, pero no en los nodos individuales. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 22

26 - No hay dependencia, ya que un nodo no puede decidir unilateralmente cambios en el protocolo Aun así, una base de datos descentralizada de este tipo también conlleva unos inconvenientes a tener en cuenta: - Sincronización y latencia: No todos los nodos tendrán la misma información a la vez. Hay que tener en cuenta los tiempos de propagación de la información en los nodos. - Doble gasto: Un usuario podría enviar dos transacciones de gasto usando la misma unidad monetaria a dos nodos distantes entre sí, con la esperanza que estos nodos validen la transacción antes de que llegue la información que la misma unidad monetaria se ha usado en otro nodo. - Consenso: Al actualizar información de diferentes nodos, pueden darse casos de transacciones contradictorias (doble gasto). Quién y bajo qué criterios toma decisiones al respecto? Todos estos inconvenientes (y alguno adicional) son los que soluciona el protocolo blockchain, permitiendo el uso del bitcoin como criptomoneda. 3.2 Usuarios Direcciones Para resolver el problema de los usuarios, el protocolo que da soporte a bitcoin prescinde totalmente de un registro de usuarios. En su lugar se utiliza un sistema de direcciones basados en criptografía de clave pública o criptografía asimétrica [11]. La criptografía asimétrica se basa en la generación de 2 claves para un usuario, una llamada clave pública y que el usuario puede distribuir libremente, y una clave privada que solo debe conocer el usuario. Para enviar un mensaje seguro al usuario cualquiera puede cifrar el mensaje con la clave pública, y de forma que sólo el poseedor de la clave privada (el usuario) podrá descifrarlo y leerlo. Los algoritmos de criptografía de clave pública se basan en problemas matemáticos de difícil solución para generar las 2 claves relacionadas sin que sea posible inferir una clave a partir de la otra. En concreto bitcoin para la generación de claves de usuario utiliza el algoritmo ECDSA [12] basado en criptografía de curva elíptica [13]. Básicamente cada usuario que quiera usar bitcoin, mediante este algoritmo criptográfico se genera un par de claves asimétricas. El usuario que quiere recibir un pago puede enviar al pagador su clave pública, y éste vincula el pago a esta clave pública, de forma que sólo el usuario que tiene la clave privada puede acceder al pago y por tanto a esos fondos. Aunque bitcoin permite este tipo de pagos a una clave pública, como las claves públicas son largas (las claves públicas ECDSA tienen 64 bytes) y complejas PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 23

27 es fácil equivocarse al transcribirlas. Por esta razón el protocolo bitcoin en lugar de pagos directos a una clave pública suele usar pagos a direcciones. Una dirección no es más que un resumen de la clave pública. Mediante la aplicación de diversos algoritmos se transforma la clave pública de 64 bytes en una dirección de 25 bytes más corta y que incorpora algunos códigos de control y mecanismos de corrección de errores [14]. Este modelo es totalmente abierto, cualquier usuario puede construirse de forma autónoma todas las direcciones que necesite. Además, al ser un proceso que realiza el propio usuario, independiente de la red, y sin necesidad de un registro o autorización centralizada, no hay forma de vincular una dirección a su poseedor. Ilustración 6. Esquema de transformación de una clave pública ECDSA a una dirección bitcoin 3.3 Transacciones Las transacciones son el elemento central del sistema. El objetivo final es que se puedan realizar de forma segura transacciones de unidades monetarias entre usuarios. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 24

28 En este protocolo, una transacción se compone de dos elementos principales: - Salidas de la transacción. Es la transferencia de fondos. Indica la cantidad de fondos a transferir y el destinatario de los fondos. - Entradas de la transacción. Son los fondos que se utilizaran para la transacción. Estos fondos deben provenir de una transacción anterior. Por lo tanto en realidad las entradas de una transacción serán referencias a salidas de transacciones anteriores. Además las transacciones tienen las siguientes características: - Pueden combinar distintas transacciones de entrada y salida. Es decir una única transacción puede coger fondos de distintas transacciones anteriores y repartirlos de la forma que estime oportuna a distintos destinatarios - La suma de importes de entrada debe ser mayor o igual que la suma de importes de salida. Es decir la suma de los fondos de las entradas debe ser igual (o mayor) a la suma de los fondos de las salidas. En la mayoría de los casos un usuario no tendrá transacciones anteriores cuyos fondos sumados den exactamente la cantidad que quiere enviar a la transacción. Lo que se hace es tomar como entradas transacciones anteriores cuyo importe sea superior al necesario, y en la transacción hacer la salida de los fondos que se quieran enviar al destinatario, más otra salida con el importe restante (el cambio) en la que el destinatario es el propio usuario que está haciendo la transacción. - Comisión. Un usuario, además de las salidas a los destinatarios y a si mismo (el cambio) puede dejar pendiente un importe. Es decir los importes de las entradas de la transacción son mayores que los importes de salida. Este excedente se denomina comisión y es totalmente voluntario (ya que el usuario que crea la transacción puede establecer las entradas y salidas como prefiera). Esta comisión será para el nodo que procese la transacción, siendo un incentivo para que los diferentes nodos dediquen recursos a procesar las transacciones de los usuarios. El siguiente diagrama ejemplifica el funcionamiento de las transacciones: PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 25

29 Ilustración 7. Ejemplo de funcionamiento de transacciones En este ejemplo puede observarse: - Unas transacciones iniciales (Transacción 1, transacción 2 y Transacción 3) - Una transacción 4, en la cual el usuario tiene que pagar 6 bitcoin. Para ello la transacción: o Recoge 5 bitcoin de la transacción 1 o Recoge otros 5 bitcoin de la transacción 2 o Realiza la transacción de salida (pago) de 6 bitcoin o Realiza otra transacción de salida a sí mismo (el cambio) de 3 bitcoin o La diferencia entre las entradas (5+5=10 bitcoin) y las salidas (6+3=9 bitcoin) deja una comisión de 1 bitcoin - Una transacción 5 en la cual el usuario debe hacer 2 pagos, de 5 y 2 bitcoins. Para ello la transacción: PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 26

30 o Recoge los 3 bitcoin de cambio de la transacción 4 o Recoge 4 bitcoins de la transacción 3 o Realiza una transacción de salida (pago) de 5 bitcoin o Realiza una transacción de salida (pago) de 2 bitcoin o En este caso todas las entradas (4+3=7 bitcoin) se convierten en salidas de pago (5+2=7 bitcoin) por lo que no queda comisión. Para realizar una transacción, es necesario que el usuario utilice fondos sobre los que tenga derecho, es decir que posea la clave privada de la dirección de la entrada de la transacción. Como la transacción origen se envía a una dirección, para disponer de los fondos el usuario debe realizar un proceso de firma digital con la clave privada. Este proceso asegura que el usuario es el legítimo propietario de la dirección a la cual se enviaron los fondos y asegura poder disponer de los fondos enviados a esa dirección. En realidad el sistema es más complejo, ya que la verificación del uso de los fondos no es una simple firma, sino que incluye la ejecución de un script que se genera unificando un código residente en la transacción origen (y que posee la clave pública), con un código que genera el usuario destinatario (con la clave privada) y que debe dar un resultado concreto para considerarse válido. A efectos de este documento no se considera necesario detallar más este sistema, simplemente conocer que: - Es un sistema seguro que permite asegurar que sólo poseyendo la clave privada de una dirección se pueden usar los fondos que se han enviado a dicha dirección. - Al ser un sistema basado en scripts, se puede usar para permitir distintos tipos de destinatario. El más usual (cerca del 99% de las transacciones) es el pago a una dirección bitcoin, pero también hay scripts que permiten pagos directamente a una clave pública (no a la dirección generada a partir de ella), pagos multifirma (que requieren autorización de varias claves privadas), etc. 3.4 La cadena de bloques (blockchain) La cadena de bloques es el pilar del bitcoin. Una vez se establece un sistema de direcciones y de transacciones entre direcciones, en un entorno distribuido p2p debe resolverse el problema fundamental: cómo se distribuye entre los nodos la información de las transacciones para que todos los nodos tengan la misma información y no haya problemas de concurrencia, seguridad, doble gasto, etc.? PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 27

31 Este problema se resuelve mediante la cadena de bloques, y es lo que hace posible que la moneda funcione. El blockchain es, en esencia, una base de datos distribuida, que almacena todas las transacciones que se han realizado desde el inicio del sistema (2009). Como su nombre indica es una cadena de bloques. Cada bloque incluye una serie de transacciones y la referencia al anterior bloque de la cadena. Y una transacción no se considera válida a menos que forme parte de la cadena de bloques. De esta manera el blockchain contiene todas las transacciones consideradas válidas. La siguiente figura ilustra el concepto de bloques de transacciones encadenados (con referencias entre un bloque y el siguiente). Ilustración 8. Cadena de bloques de transacciones Por lo tanto, el funcionamiento seria el siguiente: 1. Un usuario prepara una transacción con unas entradas y unas salidas. Con su clave privada certifica el uso de las entradas y especifica en las salidas la dirección del destinatario. 2. El usuario envía esa transacción a un nodo bitcoin para que lo valide. 3. El nodo valida la transacción: revisa que sea correcta, que en la cadena blockchain no haya ya incluida alguna transacción anterior que use los mismos fondos, etc. 4. El nodo agrupa varias transacciones que le hayan enviado y con ellas crea un nuevo bloque. 5. El nodo agrega el nuevo bloque a la cadena blockchain. 6. El nodo distribuye a otros nodos bitcoin la nueva cadena para que tengan en cuenta el nuevo bloque. Este esquema de funcionamiento depende por completo de la honradez de los diferentes nodos y de su capacidad de ponerse de acuerdo en cual es en cada momento el blockchain válido, ya que diferentes nodos pueden estar incorporando a la misma cadena base bloques distintos con distintas transacciones. Cómo se resuelve este problema de consenso distribuido? PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 28

32 3.5 Prueba de trabajo (proof of work) En realidad, la solución adoptada es introducir en la creación de los bloques una prueba de trabajo (proof of work) que obliga al nodo a realizar un esfuerzo computacional para crear el bloque. El bloque en realidad se compondrá de los siguientes componentes: - Transacciones. son las transacciones que ha recibido el nodo y que desea introducir en la cadena. Son transacciones que previamente debe validar para asegurarse de que pueden introducirse sin dar lugar a colisiones o incoherencias que provocarían que el resto de nodos rechazaran la introducción del bloque en la cadena. - Coinbase (Moneda base). Es una transacción especial sin origen. En esencia es la generación de una nueva unidad de bitcoin, y es la forma en que se genera la masa monetaria en bitcoin. Cada bloque que se genera lleva una nueva cantidad para el nodo que ha generado el bloque. - Cabecera. Se genera una cabecera del bloque con la siguiente información: o Hash de las transacciones. Se crea un hash de las transacciones incluidas en el bloque utilizando el algoritmo SHA256^2 (en realidad el SHA256^2 no es más que aplicar 2 veces el algoritmo SHA256). Este hash se realiza usando un esquema de árbol de Merkle o hash tree tal y como se detalla en el apartado o Hash del bloque anterior. Cada bloque incluye la referencia y el hash del bloque anterior. o Nonce. Es un bloque de 32 bits que puede contener cualquier valor. Es la que se utiliza para la prueba de trabajo. - Hash del bloque. Será el hash de la cabecera. En el protocolo para bitcoin se utiliza el algoritmo SHA256^2 que usa la construcción Merkle- Damgard [15] y una doble aplicación del algoritmo. Por lo tanto, la cadena blockchain sería más adecuado representarla de la siguiente manera: PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 29

33 Ilustración 9. Representación detallada de la cadena de bloques de transacciones Pero para que un bloque se considere válido, debe cumplir una condición especial, y es que su hash debe comenzar por un número determinado de bits cero (0). El número de bits 0 iniciales que debe cumplir el hash determina la dificultad de crear un bloque, y es algo que va ajustando la red bitcoin para intentar mantener constante el tiempo que se tarda en crear un bloque. Por lo tanto, suponiendo que la red obligara a que el hash del bloque comience por 61 bits 0 (15 caracteres 0 en hexadecimal), el hash del bloque debería ser de la forma: 0x @@@@@@@@@@@@@@@@@@@... Cómo se consigue generar un hash con un número determinado de 0 al comienzo? Debido a la propia naturaleza de los algoritmos hash (y también el empleado SAH256^2), no hay forma de calcular o predecir el resultado de un hash, por lo tanto sólo hay una forma de obtener un hash con estas propiedades; mediante la fuerza bruta: - El hash del bloque se crea a partir de 3 elementos: El hash de las transacciones, el hash previo, y el nonce. - El hash de las transacciones y el hash previo son inalterables, pero el nonce es un número de 32 bits que puede contener cualquier valor. - Por lo tanto, se deberá introducir un nonce, hacer el hash de la cabecera, y ver si el resultado cumple la regla (que comience por 61 bits 0). Si no, se cambia el nonce, se vuelve a hacer el hash y se vuelve a comprobar. - Y se va cambiando el nonce hasta que se encuentra un nonce con el cual el hash tiene el número de 0 iniciales deseados. Este método implica que un nodo, para construir un bloque válido, debe utilizar un tiempo de computación relevante. Aunque el tiempo es totalmente aleatorio (un nodo podría tener suerte y encontrar un nonce válido en sus primeros intentos), la red bitcoin intenta que la media de tiempo en generar un bloque nuevo sea de 10 minutos. Para mantener esta media, y teniendo en cuenta PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 30

34 que la capacidad computacional de los nodos crece, va ajustando la dificultad de los bloques aumentando el número de 0 iniciales que debe tener el hash. Como ejemplo, el bloque 1 de bitcoin, creado 9/1/2009 tenía un hash con 8 ceros en hexadecimal. Sin embargo el bloque creado el 15/05/2016 ya tenía un hash con 17 ceros en hexadecimal: e2e42a c25512b1bd693ee32b6d6992d Este proceso de encontrar el hash adecuado para generar un nuevo bloque se conoce usualmente como minar, y los nodos que realizan este trabajo como nodos mineros 3.6 Consenso Una vez se introduce la prueba de esfuerzo como factor estabilizador de la creación de los bloques aún debe establecerse el mecanismo para resolver conflictos cuando dos o más nodos crean un nuevo bloque e intentan añadirlo a la misma cadena. Esta situación se conoce como fork de la cadena: - Se comienza en una situación estable en la que todos los nodos de la red tienen la misma cadena (por ejemplo de 100 bloques) Ilustración 10. Ejemplo consenso en caso de fork. Figura 1 - Entonces un nodo consigue pasar la prueba de trabajo y genera el bloque 101 (101a). PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 31

35 Ilustración 11. Ejemplo consenso en caso de fork. Figura 2 - El nodo añade el nuevo bloque a la cadena y lo transmite a sus nodos más cercanos (aquellos a los que está directamente conectado). Ilustración 12.Ejemplo consenso en caso de fork. Figura 3 - Estos nodos verifican la nueva cadena, la dan por válida y a partir de ahora trabajan con ella para intentar añadirles nuevos bloques. Además la retrasmiten a otros nodos propagándolas por la red. Ilustración 13. Ejemplo consenso en caso de fork. Figura 4 - Otro nodo, al que no ha llegado aún la nueva cadena y aún está trabajando con la cadena de 100 bloques, consigue realizar la prueba de esfuerzo y también genera un nuevo bloque 101 (101b). PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 32

36 Ilustración 14. Ejemplo consenso en caso de fork. Figura 5 - Este nodo también lo añade a la cadena y lo retransmite a sus nodos más cercanos. Ilustración 15. Ejemplo consenso en caso de fork. Figura 6 - En algún momento los nodos empiezan a recibir 2 cadenas distintas de 101 bloques. La cadena con el 101a y la cadena con el 101b. En esta situación, lo normal sería que algún sistema de arbitraje decidiera cuál es la cadena correcta. En bitcoin no hay ningún sistema centralizado, y el sistema de consenso tampoco lo es. El consenso se determina por una única y sencilla regla: la cadena blockchain más larga es la correcta. Por lo tanto, en el caso anterior en el cual dos nodos creaban un fork con 2 cadenas distintas 101a y 101b, algunos nodos recibirán la cadena 101a y la tomaran como válida y trabajaran con ella, otros validaran la 101b y trabajaran con ella. En algún punto otro nodo generará un nuevo bloque y lo añadirá a una de las dos cadenas (por ejemplo la 101a generando el bloque 102a). PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 33

37 Ilustración 16. Ejemplo consenso en caso de fork. Figura 7 Este nuevo bloque se extenderá por la red y llegará a nodos que están trabajando con el bloque 101b. Como el bloque 102a es mayor que el 101b, estos nodos deberán tomarlo como válido, descartar el 101b, y seguir trabajando a partir del 102a. Finalmente la red se estabiliza con la cadena 102a. Ilustración 17. Ejemplo consenso en caso de fork. Figura 8 El bloque 101b se descarta (se conoce como bloque huérfano ) y no tiene validez. Las transacciones que había incluido vuelven a quedar pendientes de incluir (a no ser que se hayan ya incluido en el nuevo bloque 102ª) y se intentaran incluir en el próximo bloque. Estas situaciones no se dan muy a menudo (según las estadísticas de bitcoin sólo se producen forks en un 2% de las ocasiones, lo cual es aproximadamente un fork cada 50 bloques. La mayoría de forks son de 1 bloque y se resuelven rápidamente. Los forks que afectan a más de 1 bloque (hay un fork de 1 bloque y 2 nodos que trabajan con versiones diferentes encuentran un nuevo bloque a la vez siguiendo el fork) son muy raros. Sin embargo hay que tener en cuenta que durante un tiempo y para un grupo de nodos, el bloque 101b era válido, y sus transacciones estaban validadas. Por esa razón se recomienda esperar la validación de la cadena donde está tu transacción por un número suficiente de nodos (usualmente 6) antes de ser dada por realizada. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 34

38 3.7 Otras características de la implementación del bitcoin En los apartados anteriores se ha hecho una descripción a alto nivel del protocolo y las soluciones adoptadas por la implementación bitcoin. Aun así hay algunas particularidades que al considerarse interesantes se describen brevemente a continuación: UTXO (Unspent transaction output) Para validar una transacción, hay que validar que el origen de la transacción es válido. Es decir la transacción origen de la que se obtienen los fondos a transferir es una transacción con los fondos suficientes y es válida. Esto significaría que el nodo que quiere validar la transacción debería recorrer toda la cadena de bloques hasta encontrar la cadena que contiene la transacción origen. Después recorrer todos los bloques posteriores para asegurarse que esa transacción no se ha utilizado ya en otra transacción. Teniendo en cuenta el tamaño de la cadena de bloques, y que no para de crecer, esta validación requiere unos recursos computacionales importantes. Para optimizar estos recursos los nodos crean una tabla especial llamada UTXO (cache de transacciones de salida no gastadas). Lo que hace el nodo es realizar el barrido de la cadena de bloques una vez. Va recorriendo los bloques y va verificando las transacciones, anotando en esta caché las transacciones de salida que no han sido gastadas. Para cada transacción borra del UTXO las transacciones de entrada y añade las de salida. De esta forma el UTXO es una lista actualizada de todas las transacciones de salida utilizables. Así para validar una transacción no es necesario recorrer nuevamente la cadena de bloques, sólo verificar si la transacción de salida que se quiere usar está en el UTXO, agilizando enormemente la verificación de la transacción Cadena de Merkle Tal y como se ha explicado en el apartado 3.5, en la cabecera de cada bloque bitcoin reside un hash de todas las transacciones que incorpora el bloque. De esta forma el hash asegura que no se realiza ninguna modificación a posteriori sobre las transacciones, ya que cualquier modificación alteraría el hash, y por lo tanto la cabecera y toda la cadena de bloques. Sin embargo, la forma de realizar este hash de todas las transacciones influirá en el coste de validación de las mismas. Si por ejemplo simplemente se concatenaran todas las transacciones y se generara el hash, la verificación implicaría volver a concatenar todas las transacciones, es decir para verificar una transacción debería calcularse el hash de todas las transacciones. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 35

39 El protocolo bitcoin utiliza un algoritmo más eficiente que reduce el coste del cálculo de una transacción individual, el hash en cadena de merkle o Merkle Tree [15]. Ilustración 18. Ejemplo Hash Merkle Tree En esencia, este hash realiza un árbol de hashes: 1. Primero realiza el hash de cada una de las transacciones, en lo que será el punto más ramificado del árbol. 2. A continuación cada siguiente nivel del árbol hace un hash concatenando 2 hashes del nivel anterior. 3. Finalmente se llega a la raíz del árbol donde sólo queda un hash, el hash root que será el que se utilice en la cabecera del bloque. Este esquema supone una gran ventaja cuando se desea verificar una transacción, ya que no es necesario recalcular el hash de todas las transacciones del bloque, sino sólo el hash de la rama donde reside la transacción a verificar. De igual modo si un nodo quiere modificar una transacción de un bloque (antes de añadirlo a la cadena) puede recalcular el hash de forma eficiente, sólo recalculando la rama de la transacción. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 36

40 Ilustración 19. Esquema de verificación de la transacción 4 en un hash de Árbol de Merkle Recompensas: minado y comisiones Como se puede comprobar, la seguridad del sistema reside en que haya un número suficiente de nodos con una potencia de cálculo elevada minando para generar nuevos bloques. Para que eso ocurra, los nodos mineros deben tener incentivos para gastar sus recursos computacionales en esta tarea. La red bitcoin ofrece 2 tipos de incentivos: - Coinbase por minado. Cada bloque puede incluir una transacción especial (coinbase) que no tiene entrada y cuya salida puede determinar el nodo minero (generalmente se la asigna a sí mismo). Es como si el minero hubiera encontrado una nueva moneda (de ahí el símil de la minería). De esta forma aumenta la masa de bitcoins en circulación, pero este aumento no es infinito. El protocolo está definido para que cada bloques (o cada 4 años) la recompensa por cada bloque minado se reduzca a la mitad. Inicialmente cada bloque minado generaba 50 bitcoins. A Mayo de 2016, cada bloque genera una coinbase de 25 bitcoins y la masa de bitcoins en circulación es de aproximadamente bitcoins. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 37

41 Siguiendo este modelo, la masa total estimada final será de unos 21 millones de bitcoin. - Comisiones. En cada transacción, el usuario que la genera puede dejar una parte de los fondos sin gastar (suma de entrada < suma de salidas). En este caso el nodo minero que intenta incorporar la transacción a la cadena de bloques puede generar una salida asignándose esos fondos. Esto se conoce como comisión, y se supone un pago para el nodo minero y un incentivo (los nodos mineros tienen interés en incluir en los bloques las transacciones con más comisión). Gracias a estos 2 incentivos los nodos mineros reciben una recompensa por dedicar sus recursos a la red bitcoin. Al comienzo de la red, y debido a que no había transacciones, la mayoría de bloque eran bloques vacíos en los que simplemente aparecía la transacción del coinbase. Es decir se trataba únicamente de obtener nuevos bitcoins. A medida que la red va creciendo y se generan transacciones con comisiones los mineros se preocupan más de incluir las transacciones. Debido a la política de disminución del valor del coinbase, cada vez tomará más protagonismo la comisión. 3.8 Inconvenientes, puntos débiles y ataques sobre bitcoin Como cualquier sistema, y aunque está creado específicamente para ser seguro, se han detectado ciertos inconvenientes del sistema así como posibles ataques y fallos Alta latencia Es uno de los problemas de la red bitcoin: no es inmediata. Para realizar un pago o una transacción bitcoin hay que: - Generar una transacción - Enviar la transacción a uno o varios nodos - Algún nodo debe incluir la transacción en la cadena de bloques (teniendo en cuenta que el tiempo entre bloques está ajustado a 10 minutos, el tiempo de inclusión de una nueva transacción será al menos 5 minutos, pero puede ser más) - El nodo debe replicar la nueva cadena al resto de nodos. - La cadena debe estabilizarse como cadena dominante (se suele esperar a que un número significativo de nodos la hayan aceptado y ya estén trabajando con ella). PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 38

42 Todo este proceso puede durar decenas de minutos, por lo tanto un pago o transacción de bitcoins no es inmediato. Esta característica es intrínseca de su arquitectura y no podría cambiarse sin un cambio profundo de la esencia del bitcoin. Por esa razón la red bitcoin no se puede usar en entornos que necesitan una velocidad de transacción y de validez de transacción muy alta (por ejemplo entornos financieros o mercados de valores en los que los precios fluctúan muy rápido y las órdenes de compra y venta deben ejecutarse con mucha velocidad) Software bitcoin Al ser una red distribuida, y por consenso, cada nodo está ejecutando el software de forma independiente de los demás. Este software es el que mantiene las reglas de negocio del sistema que permiten las validaciones, el rechazo del doble gasto, etc. Un nodo podría alterar su software para cambiar las reglas de forma que le favorecieran, pero si el resto de nodos de la red siguen con el software y las reglas consensuados por todos, simplemente rechazaran los bloques generados por el nodo atacante, y este no tendrá ningún impacto en el sistema. Al contrario dejará de recibir compensaciones de sus bloques minados, por lo que en general a los nodos les es más conveniente actuar de forma legítima. Sin embargo se han producido problemas debido a las actualizaciones del software bitcoin. Como cualquier software a veces se encuentran errores o se introducen mejoras que se consensuan entre la comunidad, estas mejoras se concretan en una nueva versión del software que se distribuye a los nodos. Aquí el problema reside en que los diferentes nodos pueden estar usando distintas versiones del software, y por lo tanto aplicar reglas distintas. En 2013, debido a un upgrade de versión, de 0.7 a 0.8, un cambio involuntario en las reglas hizo que los nodos con la versión 0.8 validaban bloques que eran dados como inválidos por la versión 0.7. Esto produjo un importante fork de la cadena blockchain. Aunque debido a que la mayoría de nodos se actualizaban a la versión 0.8 el sistema estaba imponiendo este criterio, pero al determinarse que la versión 0.8 actuaba de forma incorrecta se decidió por la comunidad hacer un downgrade de todos los nodos a la 0.7 y tomar como base el blockchain de estos nodos [16] Ataques de doble gasto [17] Un ataque de doble gasto consiste en intentar lanzar dos transacciones que utilizan los mismos fondos de origen. La red bitcoin resuelve el problema de forma descentralizada: da como válida la primera transacción que se incluye en el bloque y rechaza la siguiente. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 39

43 A medida que al bloque que contiene la transacción se le van añadiendo nuevos bloques, la transacción es más segura, ya que si un atacante quisiera alterar esa transacción debería alterar ese bloque y todos los bloques posteriores, y hacerlo antes de que algún otro nodo consiga añadir un nuevo bloque, ya que si se añaden nuevos bloques deberá alterarlos también. Como la forma de generar un nuevo bloque se basa principalmente en la generación de un hash, para que un atacante fuera capaz de generar él solo bloques más rápido que toda la red, su capacidad de generar hashes debería ser mayor que la capacidad de todo el resto de la red. Esto se conoce como ataque del 51% (ya que el atacante debe poseer al menos el 51% de potencia de generación de hashes de toda la red). También sería posible lograrlo con menos del 50% de potencia, pero la probabilidad de éxito del ataque depende del porcentaje de hash rate que controlara y del número de bloques que debe alterar, decreciendo exponencialmente con ambos factores. Hay que tener en cuenta que aunque este tipo de ataque podría alterar los bloques, no podría alterar las transacciones. Como las transacciones están securizadas mediante criptografía de clave pública el atacante no podría alterarlas. Lo que sí podría hacer es eliminarlas del bloque. De esta manera podría realizar un pago, esperar a que el receptor confirme la transacción y obtenga el servicio, y luego alterar la cadena para eliminar ese pago e introducir un nuevo pago con los mismos fondos. En cualquier caso la inversión necesaria para obtener la potencia de cálculo suficiente es enorme, y probablemente no compensaría con los beneficios obtenidos Escalabilidad La cadena blockchain no para de crecer. Cada nuevo bloque se suma a los anteriores. Actualmente cada bloque está limitado a un máximo de 1 MB. Pero teniendo en cuenta que de media cada 10 minutos se genera un nuevo bloque, si suponemos que de media cada bloque ocupa 500Kb, significa que la cadena crece 3MB por hora. En mayo de 2016 la cadena de bloques de bitcoin ocupa ya 68 GB. En la ilustración 20 puede verse la curva de crecimiento de la cadena de bloques. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 40

44 Ilustración 20. Gráfico de crecimiento de la cadena bitcoin Otro factor a tener en cuenta es la limitación existente en el número de transacciones que es capaz de procesar la red. Si un bloque tiene una limitación (actualmente 1 MB) y por lo tanto puede almacenar un número máximo de transacciones (la media de una transacción es de 0,5 Kb. Por lo tanto un bloque podría almacenar un máximo de 2000 transacciones medias) Teniendo esto en cuenta, y que la red se encarga de que haya un nuevo bloque cada 10 minutos, resulta que bitcoin sólo es capaz de procesar 200 transacciones medias por minuto. Es una capacidad de procesamiento muy bajo para un sistema de pago, pero se puede regular aumentando el tamaño de bloque para que quepan más transacciones. 3.9 Conclusiones del análisis de la tecnología blockchain Bitcoin gracias a su protocolo blockchain, y pese a algunas limitaciones del mismo, se ha convertido en la criptomoneda descentralizada más popular, siendo un actor reconocido en los mercados financieros. Algunos datos a Mayo de 2016 [18]: - Cambio: 1 Bitcoin (BTC) se cambia a 457 $ USD - Masa monetaria: BTC (aprox.) - Capitalización total: $ USD (aprox. Valor en USD de todos los bitcoins en circulación) - Volumen de transacciones: Aprox. en media 140 transacciones por minuto - Valor de transacciones: Aprox. Transacciones diaria por valor de $ USD PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 41

45 De estos datos puede inferirse el éxito de bitcoin, y por lo tanto de su protocolo blockchain y las soluciones aplicadas: - No hay usuarios, sino direcciones o cuentas creadas usando criptografía de clave pública desde fuera de la red bitcoin. - Las transacciones usan las claves de dirección generadas por seguridad y anonimato. - Las transacciones se añaden a la cadena de bloques, que tiene todo el histórico de todas las transacciones efectuadas en la red, por lo que siempre se puede verificar si la nueva transacción es válida. - Para añadir un nuevo bloque a la cadena debe pasarse una prueba de trabajo, de esta forma se regula el ritmo de inserción de nuevos bloques y se impide la posibilidad de un ataque de denegación de servicio. - La forma de lograr el consenso en caso de bloques paralelos (fork) es sencilla: el bloque de mayor longitud es el válido. Además, aunque se ha analizado el caso de bitcoin, por haber sido el primer caso y más exitoso del uso de blockchain, hay que tener en cuenta que este protocolo es neutro. Es simplemente un protocolo de registro de datos y consenso distribuido, y aunque se ha aplicado en el ámbito de las criptomonedas podría perfectamente aplicarse a otros ámbitos. De hecho han surgido diversas iniciativas que proponen el uso del protocolo blockchain en distintos ámbitos. Algunos ejemplos serían: - Changetip ( que está orientado a realizar micropagos utilizando los fondos depositados en bitcoin. - Ethereum ( que es una plataforma descentralizada basada en blockchain para la ejecución de contratos inteligentes (smart contracts [19]). Los contratos se codifican en la cadena de bloques y se ejecutan de forma independiente por el sistema. Por ejemplo, se podría programar un pago a una cuenta en determinadas condiciones, y el propio sistema se encargaría de comprobar las condiciones y ejecutar el pago de forma autónoma. - Ascribe ( utiliza la tecnología blockchain para la gestión de derechos de autor de contenidos digitales. - Eris (erisindustries.com), también es una plataforma basada en blockchain para la gestión de contratos inteligentes (smart contracts). PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 42

46 - Followmyvote (followmyvote.com), que ofrece una plataforma para votaciones online utilizando la tecnología blockchain para garantizar la integridad del voto, en un entorno centralizado. Teniendo en cuenta todas las características, ventajas y posibilidades del protocolo blockchain, así como las limitaciones de los sistemas actuales de votación electrónica, se propone el desarrollo de una solución de votación electrónica descentralizada basada en la tecnología blockchain. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 43

47 4 Diseño de solución PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 44

48 4 Diseño funcional de la solución El objetivo de este trabajo es proponer una solución de voto telemático que, teniendo en cuenta las distintas tecnologías existentes y que se usan en este ámbito, utilice las soluciones de la tecnología blockchain para implementar un sistema más transparente y seguro. Como objetivo, la solución propuesta, además de los requisitos generales que se detallan en el apartado de análisis de votación electrónica (2.1), debería cumplir con los siguientes requisitos: 1- Transparencia: Debe ser un sistema transparente, tanto a nivel de software (qué algoritmos se usan, cuál es la solución, etc.) como de datos (cualquier persona interesada en cualquier momento podría acceder a los datos de la votación). 2- Descentralización: El sistema que da soporte a la votación debe ser descentralizado, permitiendo múltiples nodos trabajando en paralelo de forma que la confianza no debe residir en el nodo sino en el sistema global. 3- Flexibilidad: La solución debe ser suficientemente flexible como para soportar distintos tipos de votaciones, desde distintos aspectos de la votación. Algunos ejemplos de aspectos de la votación que permite configurar la solución son: a. posibilidades de voto: i. voto directo a un candidato o lista (p. ej. elecciones al congreso) ii. voto directo a varios candidatos (p. ej. Elecciones al senado) iii. voto con preferencia (se ordenan los candidatos según la preferencia) iv. puntuación de candidatos (se tiene una serie de puntos a repartir entre los distintos candidatos) v. etc. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 45

49 b. segmentación de voto i. Geográficamente (en la mayoría de elecciones generales en España los votos se agrupan por provincia) ii. Por tipologías (en algunos tipos de consultas como primarias se puede distinguir el voto de los afiliados y los simpatizantes) iii. etc. c. gestión del voto i. Posibilidad de modificar un voto antes del cierre de la votación ii. Posibilidad de delegar el voto a otro elector iii. Voto mixto: combinar voto telemático y voto presencial iv. etc. 4- Seguridad: La solución debe ser segura y robusta a. posibilidad de uso masivo en intervalos cortos de tiempo b. no debe permitir la modificación o eliminación de votos emitidos por otros usuarios c. no debe permitir alteraciones de la votación (ataques DDOS, ataques de interrupción al flujo de votación, etc.) La solución propuesta abarca todo el ciclo de vida de la elección, desde la preparación de la misma hasta el recuento final de los resultados. Aunque en ocasiones al explicar la solución se utilice un ejemplo concreto de votación, se especificaran las alternativas que permite la flexibilidad de la solución propuesta. La ilustración 21 presenta el esquema global de las fases de la votación según la solución propuesta. A continuación los siguientes apartados desarrollan funcionalmente la solución especificando los actores de la misma y detallando el funcionamiento de la solución para cada una de las fases. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 46

50 Ilustración 21. Fases de la votación 4.1 Actores En todo el proceso de votación intervienen distintos actores que se detallan a continuación: - Junta o Comité electoral: Serán los responsables de la organización de la votación. Deberán definir las reglas que debe seguir la votación (quien puede votar, que tipo de voto es, cómo se agrupa, etc.) - Entidad Validadora: Será la entidad que validará la identidad de los votantes para decidir si pueden votar o no. - Votante: Serán los individuos emisores que quieren participar en la votación emitiendo un voto - Nodos: Serán los distintos nodos donde se esté ejecutando la solución. Cualquier persona u organización interesada puede instalar el software, conectar con otros nodos y unirse a la red P2P que soporta la votación. Estos nodos tendrán dos funciones: PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 47

51 o Replicar la base de datos blockchain, asegurando la seguridad y la integridad de los votos o A partir de los votos recibidos generar nuevos bloques que se añadan a la cadena blockchain. Cualquier persona u organización que quiera auditar la votación tan sólo tendría que establecerse como uno de estos nodos, y monitorizar la cadena blockchain que contiene los votos. Podría ser un nodo pasivo que forma parte de la red y por lo tanto de la seguridad de la misma pero que no contribuye con nuevos bloques (aunque nada impide que lo haga). 4.2 Preparación de la votación Toda votación tendrá una fase preparatoria en la que se especificaran los parámetros bajo los cuales se regirá la votación. En esta fase se realizaran las siguientes tareas: - Generar la clave de la elección: La Junta Electoral generará un par de claves criptográficas (pública y privada) que serán las que se usaran para cifrar los votos. La Junta electoral publicitará la clave pública, y dividirá la clave privada entre sus miembros, de forma que sólo pueda utilizarse con la aquiescencia de todos los miembros (o de un número mínimo). - Definición de la votación: Deben establecerse los términos en que se realizará la votación: o Votantes. Por ejemplo todos los ciudadanos españoles mayores de 18 años o Agrupación de votos. Por ejemplo por provincia o Tipo de votación. p. ej. Voto a candidatura. Cada elector sólo tiene un voto con el que debe seleccionar una candidatura. o Reglas que se establecerán en el conteo de la votación. Por ejemplo, en una votación en que el votante puede emitir más de un voto pero a diferentes candidatos (como por ejemplo las del senado español), en caso que el votante envíe todos los votos al mismo candidato implica que todos sus votos son tratados como nulos? Se cuenta como un solo voto a ese candidato? PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 48

52 - Generación del resto de claves y elementos necesarios para la votación: o Direcciones de votación. Serán las direcciones a las que los votantes deberán enviar su voto y servirán para agrupar los votos (sería el equivalente a la mesa o colegio electoral). Por ejemplo en unas elecciones a nivel estatal puede haber una dirección por cada provincia, de esta forma los votantes emitirán su voto a la dirección donde tengan autorizada la votación y el recuento se hará agrupando por direcciones (provincias). o Certificados de firma de la entidad validadora. Necesitará un certificado por cada agrupación de votos (y dirección de votación) que se requiera. o Algoritmos de firma y cifrado que se utilizaran. o Generación de votos posibles. En analogía a la red bitcoin, la Junta electoral generará una transacción base con un número de votos idénticos al censo de los votantes. De esta manera se asegura que no habrá más votos que posibles votantes. 4.3 Registro de votantes Para acceder a la votación será necesario que el votante se registre. Es decir, que se compruebe su identidad para asegurar que: 1- Puede votar ya que cumple las condiciones de votación (edad, nacionalidad, etc.) 2- Sólo podrá emitir un voto. 3- No será posible vincular el voto con la identidad del votante. Para conseguir este resultado, el registro de votantes se realizará en dos fases diferenciadas: PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 49

53 Ilustración 22. Proceso de registro de votante en dos fases. 1. Fase 1. Solicitud de dirección de votación: En esta primera fase el votante realizará una solicitud para la votación, presentando sus credenciales a la Entidad Validadora. A partir de esta solicitud el votante obtiene un comprobante anónimo que certifica la posibilidad de voto. Este comprobante anónimo también contendrá datos suficientes que indiquen el tipo de voto que se podrá emitir. Por ejemplo en el caso de unas elecciones al congreso español la Entidad Validadora al comprobar la identidad del votante mediante un certificado digital, comprobaría la dirección y facilitaría que el comprobante anónimo de voto fuera válido para la provincia del votante. Esta fase para solicitar el registro de la votación se abriría con la suficiente antelación para que los votantes puedan hacer sus solicitudes en las semanas previas a la votación. Esta fase se cerraría unos días antes de la votación, permitiendo de esta manera las elecciones mixtas: las personas que hayan solicitado el registro de voto telemático no podrán votar presencialmente. 2. Fase 2. Recogida de credencial de voto: En esta segunda fase, el votante entregaría su comprobante anónimo, y a cambio obtendría una credencial para el voto con las claves criptográficas necesarias para realizar la votación, que serían el equivalente a las direcciones de bitcoin. Además, se generaría una transacción asignando a esta dirección los votos que podrá realizar durante la votación. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 50

54 Como esta transacción se realiza utilizando un comprobante anónimo, no es posible vincular la credencial de votación con la identidad del votante, y por lo tanto a partir de ese momento el sistema puede ser transparente y cualquiera puede auditar la votación, sin poner en peligro el origen de los votos. El proceso se divide en dos fases para reforzar la seguridad, ya que si el votante pudiera pedir la credencial justo después de obtener el comprobante sería sencillo a un atacante que monitorizara la red establecer la correlación entre la solicitante del registro y la credencial de voto. 4.4 Fase de votación Durante el período que esté abierta la fase de votación los votantes podrán emitir su voto, contra cualquiera de los nodos de la red. En realidad, es aconsejable emitirlo a más de un nodo. El voto será una transacción que emitirán los votantes con la siguiente información: Transacción de entrada: Es la transacción que da derecho al usuario a realizar la votación. La mayoría de veces será la transacción que se genera cuando se recoge la credencial de votación. Transacción de salida. Un voto puede tener más de una transacción de salida. Cada transacción de salida tendrá 2 partes: o Voto cifrado: En esta parte de la transacción el usuario consignará el sentido de su voto. Dependiendo de la votación será el código o nombre de la candidatura, si es la primera o segunda opción, etc. Esta parte de la transacción se cifrará con la clave pública de la votación generada por la Junta Electoral. Aunque el cifrado no sería necesario desde el punto de vista de la seguridad, ya que el sistema de credenciales anonimiza al votante, se realiza para asegurar la neutralidad de la votación: es decir que durante la votación no puedan conocerse resultados parciales que puedan provocar reacciones en los votantes o los grupos modificando el devenir de la votación. o Nº de votos emitidos: dependiendo del tipo de votación, un usuario podrá emitir uno o más votos. El número de votos que puede emitir le vendrá asignado por la transacción base de la Junta Electoral. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 51

55 Un ejemplo de uso de este campo, sería una votación en la que el votante tenga 6 puntos a repartir entre los candidatos. En su transacción base tendría 6 votos, y podría realizar 6 transacciones de salida a candidatos diferentes dando un voto a cada uno, o una sola transacción de 6 votos. Aunque esta información se podría consignar en la parte de voto cifrado, se ha considerado que es más útil tenerla separada, ya que permite utilizar las funcionalidades de la red para validar la transacción antes de incorporarla a la cadena blockchain. De esta forma si un votante emite más votos de los que tiene derecho no contabilizaría como un voto nulo al final de la votación, sino que ya desde el principio se informa al votante que su voto es inválido. Comparando con una votación física, los equivalentes serían votar con un sobre que dentro tiene varias papeletas cuando sólo puede haber una (que se verá durante el recuento y anulará el voto), o intentar introducir varios sobres con una papeleta (que la mesa no permitirá). Dirección destino: Es la dirección donde se deposita el voto. Sería el equivalente al colegio electoral. La dirección sirve únicamente a efectos de agrupar los votos a la hora de la votación. Firma digital: La transacción vendrá firmada utilizando las credenciales del votante. De esa forma se asegura que el votante tiene derecho a usar el voto de la transacción base. Los diferentes nodos recibirán las distintas transacciones y realizaran 2 acciones con ellas: 1. Validación de las transacciones: Los diferentes nodos se aseguraran que las transacciones son válidas verificando, a. Que la estructura de la transacción es correcta b. Que la firma digital es válida y por lo tanto el usuario puede utilizar la transacción base. c. Que la suma de votos emitidos en la transacción no es mayor que los votos de la transacción base. d. Que la dirección destino es una dirección válida para el votante. Esta comprobación se realiza utilizando la credencial del votante. Cada credencial sólo estará autorizada para unas direcciones determinadas. Por ejemplo en una votación a nivel estatal una PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 52

56 credencial sólo estará autorizada para la dirección correspondiente a la provincia del votante. 2. Inclusión en la cadena de bloques de la votación: Los nodos irán generando nuevos bloques de la cadena con las transacciones que van recibiendo. 3. Propagación del bloque: Cuando un nodo genera un nuevo bloque, lo remite a los diferentes nodos a los que está conectado para que lo incluyan en su cadena de bloques y lo propaguen a su vez, consolidando al final todas las transacciones en una cadena de bloques única distribuida en todos los nodos. Como la cadena de bloques es pública, el votante podrá verificar que su transacción está incluida en la cadena y por tanto será contabilizada. Ilustración 23. Proceso de votación 4.5 Finalización y recuento de la votación Una vez finaliza la votación, y para asegurar que no se producen más alteraciones en la cadena, la junta electoral genera un último bloque especial de cierre de la votación. A partir de ese momento, los nodos ya no generaran ni aceptaran más bloques en la cadena. De esta manera se considera la votación cerrada. Una vez cerrada la votación, y con la cadena de bloques definitiva, la Junta Electoral: PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 53

57 Procederá a recomponer la clave privada de la votación, que estaba dividida y compartida por sus distintos miembros. Publicitará la clave privada, de forma que a partir de ese momento cualquier interesado pueda auditar el recuento de la votación. Utilizará la clave privada para descifrar los votos cifrados de las distintas transacciones de los bloques de la cadena. Leerá esos votos y hará el recuento de los votos calculando los resultados de la votación Publicará los resultados de la votación. Gracias a la transparencia y descentralización del sistema, a partir de que la Junta Electoral hace pública la clave privada de la votación, cualquier interesado puede realizar los mismos pasos y auditar de esta manera el resultado de la votación. Y cualquier votante podrá verificar si su voto se ha contabilizado correctamente. Como se ha incidido en el apartado referente a la preparación de la votación, es imprescindible que el algoritmo y las decisiones en las que se base el recuento sean públicos y consensuados, ya que si no pueden dar pie a diferencias en el recuento. Por ejemplo si en la votación se tienen 3 votos para votar a distintos candidatos, y un votante usa los 3 votos para votar al mismo candidato, se puede optar por entender que es un voto nulo y no contar ningún voto, o contar sólo un voto y declarar los otros 2 nulos. Este tipo de decisiones de recuento deben ser tomadas y publicadas antes del inicio de la votación. 4.6 Software de votación Al ser una solución de voto telemático, será imprescindible que los votantes utilicen un software para realizar el proceso de votación. Desde el registro hasta la votación y auditoría del recuento. Este software se puede implementar de distintas formas: como aplicación integrada, o múltiples aplicaciones (una aplicación para el registro, otra para el voto, otra para auditar, etc.), como aplicación cliente o una aplicación web, etc. Lo más importante es que la aplicación sea segura y no provoque una merma en la seguridad global del sistema. Por esta razón la recomendación es: Utilizar una aplicación cliente, ya que las aplicaciones web son más vulnerables a diferentes ataques informáticos. Utilizar una aplicación de código abierto, ya que de esta manera se asegura que todos los procesos internos de la aplicación son correctos y PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 54

58 es más fácil detectar y corregir errores y vulnerabilidades en la aplicación. 4.7 Otros aspectos de la solución Aunque en este capítulo se ha hecho una descripción completa de la solución, a continuación se detallan algunos aspectos relevantes que quizá no quedan explícitos en esa descripción pero que aportan valor a la solución Delegación de voto. Esta solución permite la delegación de voto. Aunque en algunos tipos de votaciones no tiene sentido, en otros sí. Es común, por ejemplo, en las votaciones de las juntas de accionistas, que si los accionistas no pueden asistir a la junta deleguen el voto en otra persona o agrupación en la que confían para proteger sus intereses o por su afinidad ideológica. Con la solución propuesta, durante la fase de preparación de la votación, se generarían direcciones para estos grupos de delegación. Todo el proceso de generación de las direcciones de delegación y acreditación de los representantes de estos grupos para recoger las credenciales de estas direcciones, sería un procedimiento aparte, supervisado por la Junta Electoral y por tanto no serían direcciones anónimas. Durante la fase de votación, el votante en lugar de emitir su voto a una dirección de candidatura, lo emitiría a una dirección de delegación. Cuando se acerque el final de la votación, los grupos delegados emitirán su transacción, que contendrá tantos votos como votos les hayan delegado. Hay que tener en cuenta que debido a que esas direcciones de grupos delegados son públicas, en este caso no hay anonimato, y se conoce el sentido del voto de cada grupo de delegación. Lo que seguiría siendo anónimo es qué votante ha delegado el voto. Anulación de registro de voto telemático. Esta solución permite combinar voto telemático con voto presencial. El registro previo del votante en el sistema mediante solicitud de voto electrónico, impide realizar voto presencial, ya que para impedir doble voto, las personas registradas para voto electrónico se dan de baja en el censo de voto presencial. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 55

59 Sin embargo, el sistema aún permitiría revertir esa situación. Si una persona hubiera presentado una solicitud de voto electrónico y quisiera anularla, podría hacerlo siguiendo los siguientes pasos: 1. En la fase de preparación, debería crearse una dirección especial, de anulación de voto electrónico. 2. El votante debería crear una transacción de su voto, asignándolo a esta dirección. Esta transacción sería especial, ya que además de firmarla con su credencial de votación, el votante la firmaría usando su identificador personal, el que utilizó en la fase de solicitud. 3. Una vez la transacción llega a la cadena de bloques, el sistema de registro de solicitudes de voto electrónico da de baja a ese votante como registrado por voto electrónico y por lo tanto apto para voto presencial. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 56

60 5 Descripción detallada de la solución PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 57

61 5 Descripción detallada de la solución Aunque ya se ha descrito a nivel funcional la solución, en este capítulo se procederá a entrar al detalle de la implementación de cada módulo de la solución, indicando las tecnologías y algoritmos que se utilizarían. De forma general el sistema utilizará algoritmos criptográficos de clave pública ampliamente utilizados y reconocidos. En concreto se propone el uso de RSA [12], ya que la mayoría de certificados digitales personales de entidades de certificación reconocida utilizan protocolo RSA (DNIe, FNMT, CamerFirma, Catcert, etc.). Por lo tanto de forma general la solución propuesta utiliza RSA para la generación de claves, cifrado y firma. 5.1 Preparación de la votación Para preparar la votación la Junta Electoral debe realizar varias operaciones que se han descrito en el capítulo anterior. A continuación se detallan los algoritmos que se utilizaran para soportar dichas operaciones Clave troceada (Procedimiento de Blakely-Shamir) Una de las piezas angulares de la solución es la existencia de un par de claves (pública, privada) que permitirán cifrar los votos emitidos de forma que sólo al finalizar la votación puedan descifrarse y realizar el recuento. Como todo el proceso de votación es transparente y cualquier interesado puede acceder a la cadena de bloques en cualquier momento y revisar los votos emitidos, si algún miembro de la Junta Electoral poseyera la clave podría utilizarla para hacer recuentos parciales sin que quedara constancia de este acceso. Por esta razón, una vez que se genere la clave esta se troceará y dividirá entre los miembros de la Junta Electoral, de forma que se necesite un número mínimo de miembros para recomponer la clave y descifrar los votos. Para trocear la clave se utilizará el algoritmo de [20]. Este algoritmo permite dividir un mensaje (en este caso la clave) C en n partes: C 1, C 2, C 3,, C n de forma que con el conocimiento de un subconjunto k de estas partes, es posible recomponer C. El algoritmo se basa en las propiedades de polinomios interpoladores. Básicamente, es necesario conocer (n+1) puntos para definir un polinomio de grado n. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 58

62 Por ejemplo para definir una recta (polinomio de grado 1) se necesitan 2 puntos. Para definir una parábola (polinomio de grado 2) se necesitan 3 puntos y así sucesivamente. El método para realizar esta división seria el siguiente: 1. Suponemos que se quiere trocear una clave privada C pr = en 5 partes (n=5) de forma que se pueda recuperar con 3 de ellas (k=3) 2. Para recuperarlo con 3 datos (k=3) se generará un polinomio de segundo grado (k-1). Para generar el polinomio se generaran aleatoriamente 2 números (a 1 y a 2 ) que se utilizaran junto a la clave (C pr = a 0 ) para generar el polinomio. Suponiendo a1=100 y a 2 =200: f(x) = x + 200x 2 3. A partir de este polinomio se calculan 6 puntos que será la información que se distribuya: (1, 12645) (2, 13345) (3, 14445) (4, 15945) (5, 17845) (6, 20145) 4. Para reconstruir la clave simplemente habría que resolver el polinomio de grado 2, para lo cual se necesitan un mínimo de 2 puntos. Una vez resuelto el polinomio se sabe que la clave es el coeficiente a 0 del polinomio Direcciones de voto En la solución propuesta los votos se transfieren entre direcciones, de manera análoga a las transferencias de monedas de la red bitcoin. Estas transferencias se realizan generalmente entre direcciones, que son asimilables a una clave pública de una credencial. Lo positivo del sistema es que cualquiera puede autogenerarse su propia credencial y su propia dirección, sin necesidad de una entidad validadora de direcciones. Cualquier persona puede generarse una credencial, a partir de ella su dirección y publicarla y no es necesario que una entidad centralizada la valide, porque si no es válida y corresponde a la clave privada correspondiente no se podrán acceder a las transacciones enviadas a esa dirección. En esencia una dirección no es más que una transformación sobre una clave pública para convertirla en un alfanumérico de menor longitud (para que sea más fácil de manejar) y con algunas características que impidan errores mecanográficos (dígitos de control) La forma de crear una credencial y su dirección asociada sería: PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 59

63 1. A partir del algoritmo ECDSA generar un par de claves (pública y privada) (65 bytes) ECDSA es el algoritmo de curva elíptica que se utiliza en el protocolo Bitcoin para crear un par de claves privada y pública. La clave pública ECDSA se deriva de la clave privada, pero no se puede hacer el proceso inverso de derivar la clave privada a partir de la clave pública. 2. Generar la dirección base a. Hacer un hash con SHA-256 sobre la clave pública. b. Hacer un hash con RIPEMD-160 sobre el resultado anterior del hash SHA-256: RIPEMD-160 es una función hash no muy conocida. Se usa esta función hash porque crea hashes de longitud más corta permitiendo direcciones más cortas. Se usa en combinación con un hash SHA-256 por seguridad, para evitar colisiones entre hashes RIPEMD-160 directos sobre claves publicas ECDSA. c. Añadir el byte de versión delante del hash que ha creado RIPEMD-160 hash (0x00 para la Main Network del protocolo Bitcoin): De esta forma se distingue una dirección de Bitcoin de otras direcciones que utilicen el mismo protocolo. Por ejemplo, Namecoin, con direcciones que empiezan por N o M y la red de pruebas de Bitcoin llamada Testnet, cuyas direcciones empiezan por n o m. En nuestro caso permitiría utilizar la misma red para diferentes votaciones al mismo tiempo, diferenciando con este byte para qué votación es válida esta dirección. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 60

64 3. Generar los dígitos de control a. Hacer un hash SHA-256 sobre el resultado extendido de RIPEMD- 160 b. Hacer un hash SHA-256 sobre el hash anterior SHA-256: Con este paso se crean los dígitos de control de una dirección, permitiendo fácilmente identificar su validez. c. Seleccionar los primeros 4 bytes del último hash SHA-256 hash. Ese es el identificativo checksum de la dirección pública: Con los dígitos de control se puede identificar direcciones erróneas de forma automática. 4. Añadir los 4 bytes del checksum del punto anterior al hash extendido RIPEMD-160 del punto 2c. Esto es una dirección Bitcoin de 25 bytes binaria: Las direcciones públicas Bitcoin tienen dígitos de control, por eso en general no es posible equivocarse al teclear una dirección pública (de la misma forma que se validan las cuentas corrientes, o los DNI). Pero si por cualquier razón se creara una dirección con el formato correcto, pero sin propietario o el propietario de la dirección ha perdido su clave privada entonces el dinero estaría perdido para siempre. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 61

65 De manera idéntica si un votante perdiera su clave privada le sería imposible ejercer su voto. 5. Convertir el resultado de la cadena de bytes (string en este contexto) a una cadena con base58 utilizando el codificado Base58Check. Y con eso obtenemos finalmente nuestra dirección pública Bitcoin con este formato: El codificado Base58Check es un codificado especial que utiliza solo 58 símbolos de forma que el resultado final sea una cadena alfanumérica que sea fácil de manipular y evite errores de transmisión o mecanografía. Por ejemplo no usa algunos símbolos que pueden parecerse dependiendo del tipo de fuente, como (0 y O o también 1 y I) o algunos símbolos de puntuación que provocan en algunos programas como los gestores de correo o procesadores de texto la separación de la cadena a partir de ese signo de puntuación. Las direcciones públicas pueden tener de caracteres de longitud. Con este algoritmo, cualquier votante puede crear su propia credencial de voto (par de claves), generar su dirección, y usarla para la votación. Al comienzo de la votación la Junta Electoral generará las direcciones base de la votación. Una dirección por cada uno de los grupos de recuento de votos. Por ejemplo una dirección por cada circunscripción electoral (en el caso de elecciones estatales, una dirección por provincia) o por cada mesa electoral (si se quiere la misma granularidad que en las votaciones físicas). Una vez creadas se generará una transacción base en la que se asignará a cada dirección un número de votos igual al máximo número de votos que se pueden recibir en dicha circunscripción. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 62

66 5.2 Registro de votantes En esta fase de la votación, se produce la solicitud de registro de los votantes, y su adquisición de las credenciales para votar. El problema a resolver es cómo verificar la identidad de los votantes y entregarles una credencial de votación, de manera que no haya forma de vincular la credencial de votación con la identificación utilizada. La solución consiste en utilizar un algoritmo de blind signature [21] (firma digital ciega) que consiste en que una entidad firma unos datos, sin conocer el contenido de los mismos. De esta manera la Entidad Validadora puede firmar la autorización para conceder una credencial de votación, sin conocer el contenido concreto de la autorización, y por lo tanto vincular posteriormente esa autorización con la identidad del votante. El protocolo de solicitud de registro para la votación sería el siguiente: Ilustración 24. Proceso de solicitud de registro de votantes 1. El solicitante debe poseer un identificador válido en forma de certificado digital. Éste certificado digital debe ser reconocido por la Entidad validadora, y debe poseer datos suficientes para identificar unívocamente al votante. Actualmente en el estado español hay distintos tipos de certificados reconocidos que emiten diferentes entidades de certificación: DNI Electrónico (Policía), FNMT, Camerfirma, etc. 2. El solicitante genera una dirección de voto, tal y como se ha explicado en el apartado anterior. El usuario crea un par de claves (pública y privada) PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 63

67 mediante algoritmo ECDSA, y a partir de ellas genera la dirección de voto. Representaremos esta dirección de voto como { D V } 3. El solicitante realiza una operación de envoltura sobre la dirección de voto, aplicándole una operación de transformación. De esta forma la dirección queda cifrada de tal manera que una tercera parte no es capaz de conocer la dirección original. Representaremos la dirección trasformada como D T = T (D V ) Esta manipulación de la dirección suele explicarse con un símil, sería el equivalente a introducir un papel con el código en un sobre, de forma que no es posible ver el contenido de lo que hay dentro del sobre. Pero no sería un sobre normal, sería un sobre hecho de papel de calco, de forma que si se escribe algo en el sobre (por ejemplo una firma) se copia automáticamente en el papel de su interior, que queda firmado. 4. El solicitante envía entonces a la Entidad Validadora su solicitud de registro. Esta solicitud de registro será un mensaje compuesto por: a. La dirección transformada D T b. La identificación del votante c. La firma digital del mensaje, utilizando el certificado de identificación del votante. 5. La Entidad Validadora recibe el mensaje y comprueba la firma del mensaje y la valida comprobando: a. Que la firma es correcta y corresponde al mensaje enviado b. Que la firma corresponde al certificado de identificación del votante c. Que el certificado de identificación del votante es de uno de los tipos de certificados aceptados. d. Que el certificado de identificación del votante es válido y no ha sido caducado o revocado. 6. Una vez la Entidad Validadora ha validado el mensaje, comprueba en el registro que la identificación del certificado corresponde a un votante válido, es decir: a. El votante está en el censo de votantes, o si no hay censo que el votante cumple con los requisitos de la votación (en este caso el PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 64

68 certificado digital debe contener los datos necesarios para esta comprobación, como la fecha de nacimiento, o la Entidad Validadora debe tener acceso a alguna base de dato o servicio de consulta de datos). b. El votante no se ha registrado previamente 7. Si todo es correcto, la Entidad Validadora recupera del mensaje la dirección transformada D T, y la firma con el certificado digital de la Entidad Validadora para el grupo al que pertenece el votante. Por ejemplo la Entidad Validadora tendrá un certificado específico para votantes de la provincia de Barcelona. Representaremos la dirección transformada firmada como: D TF = F (D T ) 8. La Entidad Validadora marca al votante como registrado para voto electrónico y devuelve al solicitante un mensaje indicando que: a. La solicitud se ha tramitado correctamente b. La dirección transformada firmada D TF 9. En este punto el votante realiza la transformada inversa de la dirección transformada firmada D TF, obteniendo la dirección de voto firmada D VF D VF = T (D) = T (F(D T )) = T (F(T(D V ))) = F(D V ) En este punto del proceso, el votante tiene en su poder una dirección de voto firmado por la Entidad Validadora, que le habilita a conseguir una autorización de votación. Como esta dirección firmada sólo la conoce el votante, no hay forma en que la Entidad Validadora pueda relacionarla con la identidad del mismo. Por su parte la Entidad Validadora ha marcado al votante como registrado para voto electrónico, de forma que este no podrá solicitar una nueva credencial, ni presentarse para votar presencialmente. En otro momento del tiempo, cuando se abra el plazo de recogida de credenciales, el votante solicitará su credencial siguiendo el siguiente protocolo. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 65

69 Ilustración 25. Proceso de obtención de credenciales de votación 1. El solicitante envía un mensaje a la Entidad Validadora solicitando su autorización de votación. El mensaje contiene: a. La dirección de votación firmada D VF b. El grupo al que pertenece el votante (p. ej. Provincia de Barcelona) 2. La Entidad Validadora recibe la solicitud y valida la firma de la dirección de votación, comprobando que efectivamente es una firma realizada con la clave privada de la Entidad Validadora perteneciente al grupo que indica el solicitante. 3. Una vez verificado, la entidad validadora genera una transacción en la que transfiere a la dirección del votante el número de votos que puede efectuar. Esta transacción tendrá como origen la transacción base del grupo al que pertenezca el votante. Por ejemplo la transacción base de la provincia de Barcelona. De esta manera posteriormente se podrá trazar que estos votos corresponden a la provincia de Barcelona. 4. Finalmente la Entidad Validadora envía al solicitante un mensaje indicando al votante que se ha producido la autorización. Este sistema de registro de votantes, para garantizar la seguridad y anonimato de los votantes se basa en dos premisas, la firma digital ciega, y diferenciar en el tiempo la fase de registro y la de solicitud de la credencial. A continuación se analizan estas dos premisas. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 66

70 5.2.1 Firma digital ciega (blind signature) La firma digital ciega (blind signature) es un protocolo de firma digital que permite a un usuario obtener un mensaje firmado por otra entidad firmante, sin revelar a dicha entidad el contenido del mensaje. Un protocolo de firma ciega requiere de dos componentes: 1. Un protocolo de firma digital, que aplicará el prestador del servicio o firmante, que representamos S(m) : firma digital del mensaje m 2. Dos funciones f y g, que utiliza el usuario. Llamaremos a f la función de ocultación y a g la función de recuperación. Estas funciones deben cumplir la propiedad: g (S(f(m))) = S(m) En concreto para esta solución se utilizaría el protocolo de firma ciega basado en el criptosistema RSA creado por D.Chaum [21], en el cual los dos componentes son: 1. Protocolo de firma RSA con clave pública (n, e) y clave privada (d) donde n = p q es el producto de dos números primos aleatorios suficientemente grandes. 2. Las funciones de ocultación y recuperación se basan en un número entero aleatorio k que cumpla mcd(n, k) = 1. Con esta base, las funciones serian: f: Z n Z n m f(m) = m k e mod n g: Z n Z n m g(m) = m k 1 m mod n De esta forma se cumple la propiedad: g (S(f(m))) = g(s(m k e mod n)) = g(m d k mod n) = m d mod n = S(m) PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 67

71 5.3 Transacciones Durante la fase de votación los votantes emitirán su voto mediante el envío de una transacción. Estas transacciones tendrán una estructura similar a las transacciones bitcoin, con alguna diferencia para acomodar los distintos tipos de votación. Una transacción tendrá la siguiente estructura: Tabla 1. Estructura de transacción Campo Descripción Tipo de campo Versión Número entradas Lista de entradas Número salidas Indicará el nº de versión de la transacción. La descrita en este documento sería la versión genérica, pero se podrían construir versiones que controlaran aspectos de la votación (por ejemplo versiones que solo admitan una entrada y una salida). Este campo identificarías obre que versión del protocolo se ha realizado esta transacción. Es un entero positivo que indica cuantas entradas se usan en la transacción Detalle de las entradas que se utilizan en la transacción Es un entero positivo que indica cuantas salidas se realizan en la transacción Entero 4 bytes Entero 9 bytes Depende del nº de entradas Entero 9 bytes Lista salidas de Detalle de las salidas que se realizan en la transacción Depende del nº de salidas PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 68

72 Lock_time Fecha y hora a partir de la cual quiere procesarse la transacción. Si es 0, el procesamiento será inmediato, si no los nodos no intentaran incorporar la transacción a un bloque hasta que haya pasado la fecha indicada. Se usaría para emitir un voto a futuro manteniendo la posibilidad de cambiarlo: si una vez emitido el voto a futuro el votante cambiara de opinión, podría generar una nueva transacción de incorporación inmediata. Una vez la nueva transacción se incorporara a la cadena de bloques la transacción a futuro sería inválida, ya que los votos del votante ya están usados. Datetime Una entrada de transacción deberá identificar la salida de una transacción anterior des de la que se obtendrán los votos a emitir, y tendrá el siguiente formato: Tabla 2. Estructura de entrada de una transacción. Campo Descripción Tamaño Hash transacción anterior Será el hash SHA-256 de la transacción anterior donde se encuentra la salida a utilizar 32 bytes Índice salida de Es un entero positivo que indica cuál es la salida de la transacción que se quiere utilizar Entero 4 bytes Firma Firma de la transacción, utilizando la clave privada de la credencial del votante Firma ECDSA Clave pública Es la clave pública referente tanto a la firma generada para esta transacción de entrada como a la dirección de la transacción anterior 65 bytes Una salida de transacción debe identificar la dirección a la que se remiten los votos (mesa electoral), el número de votos, y el sentido del voto, y tendrá el siguiente formato: PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 69

73 Tabla 3. Estructura de la salida de una transacción Campo Descripción Tamaño Dirección destino Nº de votos Voto cifrado Será la dirección a la cual se envía el voto Es el nº de votos que se asignan en esta salida En este campo se consignará el sentido del voto. El contenido exacto del mismo dependerá del tipo de elección: puede ser el nombre del candidato, o además la preferencia, o una lista ordenada, etc. Este campo estará cifrado utilizando la clave pública de la votación distribuida por la Junta Electoral. Es importante que el contenido ocupe totalmente los 500 bytes del campo. Si el contenido del voto fuera menor, se rellenaría el espacio restante con caracteres aleatorios. De esta forma si deben consignarse opciones con distintos tamaños se dificulta un análisis del voto cifrado teniendo en cuenta el tamaño del campo. 33 bytes Entero 4 bytes 500 bytes Una de las diferencias con el protocolo bitcoin y su formato de transacción es la forma de asegurar la transacción mediante la firma de la misma. El protocolo bitcoin es más flexible, y en lugar de los campos donde se registra la firma y la clave pública de la transacción se guarda un script que contiene algunas instrucciones e información criptográfica (por ejemplo la firma y la clave pública). La combinación del script de la salida de transacción y el script de la entrada de transacción da un script que al ejecutarse comprueba los datos criptográficos y valida la transacción. Esta forma de trabajo es muy potente, ya que permite realizar diferentes formas de transacción sin variar el protocolo y el formato. Se puede transferir bitcoins a una dirección, una clave pública, incluso una ip, sólo variando el script que usa la transacción, acordándolo de forma autónoma entre emisor y receptor. En el caso de la solución para votaciones se ha optado por simplificar el procedimiento. Sólo se permiten las transacciones usando direcciones, y por lo tanto no es necesario utilizar un script. En las transacciones sólo viajaran los datos criptográficos necesarios: firma digital, clave pública y dirección, y los sistemas siempre usaran el mismo algoritmo para comprobar la validez de la transacción: PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 70

74 1- A partir de la clave pública calcularan la dirección, y comprobaran que coincide con la dirección de la transacción 2- Comprobaran la firma de la transacción y que corresponde a las credenciales de la clave pública 3- Si los dos pasos son correctos se comprueba que el ordenante de la transacción posee la clave privada asociada a la dirección, y por tanto tiene derecho a realizar la transacción. 5.4 Cadena de bloques Las transacciones se introducirán en la cadena de bloques de igual forma que lo hace la red de bitcoin. Se utilizará el mismo formato y protocolo utilizado por la red bitcoin y descrito en el apartado 3.4 de este documento. Los bloques tendrán: Una cabecera donde se guardará o La referencia al bloque anterior o Un hash de las transacciones o El nonce o El hash del bloque Una lista de transacciones que se incluyen en el bloque: o Transacciones de votación Y seguirán el siguiente formato: PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 71

75 Tabla 4. Estructura de un bloque de la cadena Campo Descripción Tamaño Número mágico Es un identificador de la cadena a la que hace referencia este bloque. Esto permite tener distintos bloques a la vez funcionando. 4 bytes Tamaño bloque del Tamaño en bytes del bloque Entero 4 bytes Cabecera bloque del Es una estructura con 6 componentes 80 bytes Contador de transacciones Indica el nº de transacciones que componen el bloque Entero 9 bytes Transacciones La lista de transacciones Variable La estructura de la cabecera será: Tabla 5. Estructura de la cabecera del bloque Campo Descripción Tamaño Versión Hash Bloque anterior Hash Transacciones Tiempo Bits Es un identificador de la versión del bloque. Permite introducir mejoras en el protocolo sin modificar bloques previos. Hash de 256 bits del bloque anterior Es un hash de 256 bits de las transacciones incluidas en el bloque utilizando el esquema de Árbol de Merkle Timestamp con formato: T00:00 UTC Indica la dificultad de la prueba de esfuerzo para construir el bloque. Es un número e indica que el hash de la cabecera debe ser menor que dicho número. Cuanto menor sea el número más difícil es cumplir el requisito. 4 bytes 32 bytes 32 bytes 4 bytes 4 bytes PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 72

76 Nonce Número de 32 bits que se ajusta para conseguir pasar la prueba de esfuerzo. 4 bytes Bloques especiales Durante la votación los diferentes nodos irán generando los bloques de la cadena donde incorporaran las transacciones de voto. Pero durante el ciclo de la votación se generaran 2 bloques especiales: 1. Bloque inicial. Este bloque se generará durante la preparación de la votación, y será el bloque que generará las opciones de voto que se ejecutaran más adelante. Tendrá tantas transacciones como direcciones de agrupación se hayan definido para la votación (por ejemplo mesas electorales, o circunscripciones). Estas transacciones no tendrán entradas, ya que es la generación de los votos, y en su salida emitirán un número de votos igual al máximo posible para esa agrupación. 2. Bloque final. Este bloque lo generará la Junta Electoral y significará el final del proceso de votación, y que no se puedan incluir más bloques en la cadena. Este bloque tendrá 2 características especiales que lo identificaran: a. El campo Bits de la cabecera será 0. Eso significaría que la dificultad del bloque es infinita y que la prueba de esfuerzo es imposible de resolver. Obviamente cuando se reciba este bloque no se comprobará la prueba de esfuerzo del bloque, sino que se entenderá que es el bloque de final de votación y se procederá a verificar la segunda característica. b. Tendrá una única transacción que será un mensaje de fin de votación firmado con la clave privada de la votación que está en poder de la Junta Electoral. Esto significa que al final de la votación, la Junta Electoral ha de reunir a sus miembros, recomponer la clave privada que se había dividido, y ejecutar este bloque de final de votación. A partir de este momento no se admitirán más bloques en la cadena. Estos dos bloques especiales permitirán controlar el inicio y el final del proceso de votación. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 73

77 5.5 Recuento Debido a las distintas soluciones aplicadas en las distintas fases de la votación, el recuento de los votos es trivial. Cualquier interesado tiene acceso a la cadena de bloques, que contiene todas las transacciones y por tanto todos los votos emitidos. Una vez se libera la clave privada de la votación, cualquiera puede acceder al contenido de todos los votos, y por tanto realizar el recuento de los mismos. Como se tienen todo el historial de transacciones, se sabe a qué grupo pertenece cada voto, y por tanto cómo hay que contabilizarlo para obtener un resultado final. 5.6 Software, nodos y mineros Como se ha comentado en el capítulo anterior al ser un sistema descentralizado basado en blockchain, para que el sistema funcione y sea seguro es necesario: Que todos los protocolos, algoritmos y formatos de la solución sean públicos, de manera que cualquier persona o entidad que lo desee pueda crear su nodo, o su software de emisión de votos o su software de auditoría de la votación. Siempre habrá como mínimo un nodo, que será el nodo de los organizadores de la votación. Desde este nodo se emitirán los bloques especiales de la cadena (bloque de inicio y bloque de finalización), pero en el resto del proceso funcionaran igual que el resto de nodos. Será necesario que se generen suficientes nodos como para que el sistema tenga sentido y realmente sea más seguro y eficiente que un sistema centralizado. El software de votación debería ser de código abierto, y que los diferentes interesados ofrezcan sus versiones, de forma que los votantes puedan usar distintas versiones del software implementadas por distintos interesados para validar que su voto se está emitiendo correctamente. Se ha de tener en cuenta entonces que cuantos más nodos existan mejor será el sistema, pero un nodo significa una inversión por parte de su dueño en capacidad de procesamiento, almacenamiento y comunicaciones (y por lo tanto una inversión económica). PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 74

78 Para lograr que diferentes actores acometan esta inversión y se sumen a la red convirtiéndose en mineros, la red bitcoin les ofrece compensaciones económicas en forma de bitcoins y comisiones cuando consiguen minar un bloque. La solución propuesta podría perfectamente realizar este tipo de compensaciones si se considera adecuado, siguiendo el mismo esquema que la red bitcoin: El minero en cada bloque añade una transacción especial que no es una transacción e voto sino que le identifica como el generador del bloque. Al final de la votación el organizador de la votación recompensa a cada minero en función de los bloques que haya logrado minar. Teniendo en cuenta que el presupuesto de unas elecciones a nivel estatal suele rondar los 100 millones de euros, se podrían destinar una parte del presupuesto al sistema telemático, siempre que redundara en un ahorro en el sistema presencial. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 75

79 6 Arquitectura y análisis de coste de la solución PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 76

80 6 Arquitectura y análisis de coste de la solución La solución propuesta se basa en la definición de la metodología, protocolos y algoritmos a utilizar para la ejecución de la votación, de forma que cualquier interesado pueda implementarlo con el hardware y software que estime oportuno. Aun así, en este capítulo se propondrá una arquitectura tecnológica de la solución, con el propósito adicional de realizar un cálculo de coste de implementación de la misma. 6.1 Elementos de la arquitectura A continuación se describe las relaciones, dependencias e interacciones entre la solución y su entorno (las personas, los sistemas y las entidades externas con las que interactúa). Esta visión será de interés para contextualizar los actores de la solución y ayudar a entender cómo se relacionan con los diferentes elementos del sistema. Ilustración 26. Vista de contexto de la solución PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 77

81 Por lo tanto se establecen los elementos principales que son necesarios para dar soporte a la solución: el servicio de registro, el servicio de acreditación y los nodos blockchain de votación. Aunque para la solución propuesta no es necesaria la separación física del servicio de registro y acreditación, ya se ha explicado que la separación de estos dos procesos durante la votación se realiza para aumentar la seguridad. Por esta misma razón la separación a nivel físico de ambos servicios aumenta la seguridad dificultando la trazabilidad y correlación entre las solicitudes de registro y las solicitudes de acreditación Servicio de registro El Servicio de registro gestionará toda la fase de registro de votantes. En la siguiente ilustración pueden observarse los componentes funcionales del servicio de registro. Ilustración 27. Componentes del servicio de registro Los componentes funcionales de negocio corresponden a las funcionalidades detalladas en los capítulos 4 y 5, y simplemente se indica qué componente de la arquitectura soportará cada funcionalidad. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 78

82 Tabla 6. Componentes del servicio de registro Componente Gestión de usuarios Gestión de errores Gestión configuración de Descripción Este componente se encargará de la seguridad y autorizaciones para acceder a las distintas funcionalidades de la aplicación. Es un componente técnico que gestionará el procesamiento de errores que puedan producirse. Este componente se encargará de la gestión de las distintas configuraciones del Registro (grupos de votantes, requisitos de registro, etc.) Gestión de credenciales de firma Este componente se encargará de almacenar y gestionar las distintas credenciales que utilizará el servicio para firmar los registros. Deberá contener una firma por cada grupo de votantes, y el componente debe estar fuertemente securizado. Gestión de votantes Será el componente que gestione la funcionalidad principal del flujo del registro. Validación de votantes Firma de solicitud Este componente realizará las validaciones que permitirán al votante registrarse (validez del certificado, cumplimiento de requisitos, no haberse registrado previamente, etc.) Será el componente que realizará la firma digital ciega sobre la solicitud del votante. Para hacerlo utilizará los certificados del módulo de gestión de credenciales de firma Mantenimiento registro de votantes Petición registro de Este componente mantendrá actualizado el registro de votantes según las solicitudes de registro que se hayan procesado. Será la interfaz que permitirá al votante solicitar el registro Petición baja en el registro Conexión con entidades validadoras Será la interfaz mediante la cual el sitema recibe la baja del registro de votante telemático Será la interfaz del sistema con las entidades validadoras de los certificados que utilizan los votantes para identificarse. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 79

83 6.1.2 Servicio de acreditación El Servicio de acreditación gestionará toda la fase de acreditación de votantes. En la siguiente ilustración pueden observarse los componentes funcionales del servicio de acreditación. Ilustración 28. Componentes del servicio de acreditación Los componentes funcionales de negocio aquí ilustrados corresponden a las funcionalidades detalladas en los capítulos 4 y 5, y simplemente se indica qué componente de la arquitectura soportará cada funcionalidad. A continuación se detalla brevemente la funcionalidad principal de cada uno de estos componentes. Tabla 7. Componentes del servicio de acreditación Componente Gestión de usuarios Gestión de errores Descripción Este componente se encargará de la seguridad y autorizaciones para acceder a las distintas funcionalidades de la aplicación. Es un componente técnico que gestionará el procesamiento de errores que puedan producirse. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 80

84 Gestión configuración de Este componente se encargará de la gestión de las distintas configuraciones de la acreditación (grupos de votantes, direcciones de votación de los grupos, etc.) Gestión de credenciales de firma Gestión de peticiones Validación de firma Este componente se encargará de almacenar y gestionar las distintas credenciales que utilizará el servicio para firmar los registros. Deberá contener una firma por cada grupo de votantes, y el componente debe estar fuertemente securizado. Será el componente que reciba las peticiones de acreditación y gestione la funcionalidad principal del flujo. Este componente realizará las validaciones de la firma recibida en la acreditación. Validará que es la firma ciega realizada por el sistema de registro, y que pertenece al grupo de votantes correcto. Generación transacciones de Será el componente que generará las transacciones para transferir los votos del grupo de votantes a la dirección acreditada. Mantenimiento de registro de direcciones Petición acreditación Conexión con nodos de red blockchain Conexión con entidades validadoras Este componente mantendrá actualizadas las direcciones que utiliza el componente de transacciones. Será la interfaz que permitirá al votante acreditar la dirección de voto. Será la interfaz mediante la cual el sistema se conecta con los nodos de la red de votación para enviar las transacciones con los votos acreditados. Será la interfaz del sistema con las entidades validadoras de los certificados que se utilizan durante la acreditación. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 81

85 6.1.3 Nodo de votación Los nodos de votación gestionaran toda la fase de acreditación de votantes. En la siguiente ilustración pueden observarse los componentes funcionales del servicio de acreditación. Ilustración 29. Componentes del nodo de votación Los componentes funcionales de negocio corresponden a las funcionalidades detalladas en los capítulos 4 y 5, y simplemente se indica qué componente de la arquitectura soportará cada funcionalidad. A continuación se detalla brevemente la funcionalidad principal de cada uno de estos componentes. Tabla 8. Componentes del nodo de votación Componente Gestión de usuarios Gestión de errores Descripción Este componente se encargará de la seguridad y autorizaciones para acceder a las distintas funcionalidades de la aplicación. Es un componente técnico que gestionará el procesamiento de errores que puedan producirse. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 82

86 Gestión configuración de Este componente se encargará de la gestión de las distintas configuraciones de la votación (direcciones de votación de los grupos, reglas de votación, etc.) Cálculo de hashes (proof of work) Gestión de transacciones (UTXO) Debido a su importancia, aunque es parte de la generación de bloques, se incluirá un componente específico de cálculo de hashes para el proof of work. Será un componente técnico que deberá optimizar los algoritmos de cálculo intentando hacer uso de hardware específico (por ejemplo GPUs) Será el componente que reciba las peticiones de transacciones y las gestione. También mantendrá actualizada la tabla de transacciones pendientes (UTXO) Validación transacciones de Este componente realizará las validaciones de las transacciones recibidas. Validará que es la una transacción correcta, que no utiliza más votos de los posibles y que cumple las reglas de la votación. Generación de bloques Será el componente que agrupará transacciones para generar los bloques. Para el cálculo del hash utilizará el componente específico. Validación de bloques Este componente validará los bloques y la cadena de bloques (por ejemplo al recibir una nueva cadena actualizada de otro nodo). Propagación bloques de Será el componente que gestione la propagación de los bloques entre los nodos. Este componente será clave en el consenso del blockchain. Descifrado de la cadena Recuento de resultados Este componente descifrará el contenido de las transacciones una vez se disponga de la clave privada. Será el componente que recorra la cadena y las transacciones leyendo los votos emitidos y contabilizando el resultado. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 83

87 Realizará el recuento según las reglas establecidas y gestionadas en el componente de gestión de la configuración. Petición de transacción Petición de cadena Petición resultados Conexión con nods de red blockchain Será la interfaz mediante la cual el nodo recibirá la petición de inserción en la cadena de una nueva transacción Será la interfaz mediante la cual el sistema recibe la petición para devolver la cadena de bloques. Será la interfaz mediante la cual el sistema recibe la petición para devolver los resultados de la votación. Será la interfaz mediante la cual el sistema se conecta con los nodos de la red de votación para enviar las transacciones con los votos acreditados. Aunque no se han tenido en cuenta en la implementación general del nodo, el nodo primario tendrá un componente más para gestionar el inicio y el fin de la votación. 6.2 Implementación de la arquitectura Según la arquitectura propuesta, se necesitan 2 tipos de implementaciones: - aplicación web, que soportará los servicios que se ofrecerán a los usuarios directamente por parte de la junta electoral: registro y acreditación. En este caso además se propone utilizar implementaciones separadas para cada uno de estos servicios - nodo blockchain, que prestará los servicios de nodo de votación y será parte de la red. En este caso existirán tantas instancias como nodos quieran incorporarse a la red. En cualquier caso se propone la implementación mediante una arquitectura típica de 3 capas en ambos casos. En el caso del nodo blockchain, aunque las funcionalidades del servicio no se proporcionen directamente, sino que será necesario el uso de una aplicación de usuario externa que invoque estas funcionalidades, se propone también la implementación mediante una arquitectura típica de 3 capas, usando la capa web para la exposición pública de los servicios que utilizaran tanto los software de votación como los otros nodos de la red PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 84

88 Ilustración 30. Arquitectura 3 capas servicio web 6.3 Análisis de coste La solución propuesta permite diferentes implementaciones, que representaran un coste distinto y que puede variar sustancialmente. Para realizar un análisis de los costes de la implementación propuesta se tendrán en cuenta dos costes fundamentales: el coste del hardware y software base y el cote de las aplicaciones que den soporte a la solución. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 85

89 6.3.1 Coste de hardware y software base Este análisis de coste se basará en los precios de soluciones de Amazon Web Services (AWS). AWS ofrece soluciones de servicios cloud que permiten soluciones de infraestructura y servidores de distintos tipos y dimensiones. Se ha optado por esta solución al realizar el análisis de coste por los siguientes motivos: - El análisis de coste basado en la compra del hardware necesario para implantar la solución es más complicado debido a la gran variabilidad de precios de los diferentes componentes y versiones en el mercado. - La opción de implantar la solución en un servicio tipo AWS tiene sentido, ya que estos servicios ofrecen elasticidad (se puede contratar más o menos potencia a medida que se va usando). Y precisamente en un sistema de uso estacional, como sería una votación, una solución elástica implicaría un ahorro importante. - El servicio AWS de Amazon es uno de los más importantes del mercado. Por lo que sus precios y sizing sirven de referencia. - El coste calculado en este caso sería: Tabla 9. Coste de servicios AWS Servicio Componente Detalle Coste mensual Servidor Web Servidor de Aplicaciones Sistema con 4 CPUs y 7.5 GB de Memoria 177,37 Sistema con 8 CPUs y 15 GB de Memoria y un SSD de 60 GB 514,37 Registro / Acreditación Servidor de BBDD Sistema con 4 CPUs y 130 GB de Memoria y un SSD de 80 GB 266,05 EBS (Elastic block Store) 500 GB 13,30 Transferencia de Datos 1 TB mensual tanto de entrada salida y entre servidores 79,82 TOTAL 1.050,90 PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 86

90 Servicio Componente Detalle Servidor Web Coste mensual Sistema con 4 CPUs y 7.5 GB de Memoria 177,37 Nodo de votación Servidor de Aplicaciones Sistema con 32 CPUs y 60 GB de Memoria y dos SSD de 120 GB Incluye 4 GPU NVIDIA de alto desempeño, cada una con núcleos CUDA y 4 GB de memoria de video (para cálculo de hashes) 2.039,73 Servidor de BBDD Sistema con 4 CPUs y 30 GB de Memoria y un SSD de 800 GB 665,13 EBS (Elastic block Store) 2000 GB 53,21 Transferencia de Datos 5 TB mensual tanto de entrada salida y entre servidores 399,08 TOTAL 3.334,52 Estos costes son mensuales por el mantenimiento de la infraestructura cloud y ya incluyen algunos servicios de mantenimiento y gestión de la misma. En este análisis no se ha tenido en cuenta el coste del software base, ya que todo el desarrollo de la aplicación puede realizarse sobre software sin coste: - Sistema Operativo: Linux - Servidor de aplicaciones: WildFly - Servidor de Base de Datos: MySQL - Servidor web: Apache - Desarrollo aplicaciones web: J2EE - Desarrollo aplicaciones cliente: Java PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 87

91 6.3.2 Coste de desarrollo de aplicaciones El coste de desarrollo de las aplicaciones necesarias para implementar la solución se estima en base a la complejidad de cada aplicación y los componentes de funcionamiento que integran cada aplicación (detallados en los esquemas del apartado 6.1. Para realizar una estimación del coste de desarrollo, se dividirán los componentes de cada aplicación según una clasificación de su dificultad y se asignará un número de horas de desarrollo según la dificultad. Las aplicaciones a desarrollar serán: - Aplicación de registro - Aplicación de acreditación - Aplicación de nodo de votación - Aplicación cliente de votación Servicio Registro Acreditación Nodo votación Cliente votación Dificultad Componente Número componentes Coste unitario (horas) Coste total (horas) Alta h Media h Baja h Alta h Media h Baja h Alta h Media h Baja h Alta h Media h Baja h TOTAL h Para convertir las horas de desarrollo en coste monetario se utilizará una tarifa media de desarrollo de aplicaciones java de 40 /hora. Se ha establecido esta tarifa utilizando el expediente público de contratación del Centre de Telecomunicacions i Tecnologies de la Informació de la Generalitat de Catalunya CCPP/CTTI/2011/1. Por lo tanto el coste de desarrollo sería de: PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 88

92 6.3.3 Coste total Por lo tanto, el coste total del sistema, suponiendo la implementación de una red de 10 nodos sería: Coste de desarrollo: Coste anual servidores: Teniendo en cuenta el presupuesto destinado a Correos para las elecciones de 2016 (unos 38 millones de euros), aunque en este presupuesto está incluido otros tipos de envíos electorales, la implantación de un sistema telemático como el propuesto para sustituir el voto por correo supondría una reducción considerable en el presupuesto electoral. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 89

93 7 Consideraciones sobre la solución propuesta PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 90

94 7 Consideraciones sobre la solución propuesta Aunque la aplicación de tecnologías blockchain en distintos ámbitos está avanzando, incluso en el ámbito de las votaciones (por ejemplo la solución followmyvote), la solución propuesta es una solución tecnológica y funcionalmente completa que permitiría implementar un sistema de votación telemático con un alto grado de seguridad y transparencia. Aun así hay ciertas consideraciones que pueden tener afectación en la solución. Algunas de ellas ya se han tratado en otros apartados del documento (como por ejemplo las compensaciones a los mineros) per a continuación se trataran algunas que se consideran relevantes. 7.1 Tiempo de proceso de la votación Uno de los parámetros importantes de la cadena de bloques es la dificultad del mismo, ya que permite ajustar el esfuerzo necesario para generar un bloque y por tanto el esfuerzo necesario de un atacante para poner en peligro la cadena de bloques. En la red bitcoin la dificultad está establecida para que se genere (en media) un bloque cada 10 minutos, y se ajusta la dificultad cada 2016 bloques (que son unas 2 semanas). Este ajuste de la dificultad no sería aplicable a la red de votación, ya que se requiere que todas las transacciones se incorporen a la cadena y se pueda realizar el recuento en un tiempo razonable (máximo una hora después de la hora de cierre de la votación). Por lo tanto teniendo en cuenta los siguientes parámetros aplicados a una elección a nivel estatal: - Nº de posibles votantes: (datos ultimas elecciones 2015) - Suposición % votos totales: 70% (suponiendo 30% abstención) - Nº de transacciones durante la elección = Nº de transacciones por bloque: Nº de bloques a generar: bloques - Tiempo necesario (suponiendo 10 minutos por bloque): horas. Obviamente no es asumible que una votación electrónica necesite horas (casi 3 meses) para finalizar su procesamiento. Para obtener tiempos asumibles debe trabajarse sobre 2 parámetros: la dificultad y el nº de transacciones por bloque. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 91

95 Asumiendo una dificultad que permita una media de 1 bloque por minuto, y bloques que permitan agrupar transacciones, el tiempo total de procesamiento sería de 43 horas. Este tiempo sería asumible dependiendo de las condiciones de la votación: - Estamos haciendo los cálculos suponiendo que el 100% de los votos van a ser electrónicos - En una solución de voto telemático suele permitirse realizar los votos durante un período de varios días (como en el voto por correo). Teniendo en cuenta estos dos factores, la solución podría gestionar la votación en un tiempo asumible, pero hay que tener en cuenta que es un punto débil importante de la solución. 7.2 Descentralización incompleta Aunque el objetivo de la solución es obtener un sistema de votación descentralizado, y se cumple dicho objetivo para todo el sistema de emisión y recuento de votos, en el flujo de la votación sigue quedando algún punto centralizado Entidad de Registro Por definición, una votación la organiza una entidad que decide qué personas pueden tomar parte en esta votación, y por esa razón el registro de votantes está centralizado. Aun así el sistema propuesto es lo suficientemente seguro cómo para mitigar las consecuencias de que la entidad centralizada de registro: - La lista de personas registradas para votar electrónicamente es pública (ya que deben eliminarse del censo de votantes en papel). Por lo tanto cualquier votante puede comprobar si está correctamente en el registro o se ha cometido una irregularidad. - Las personas registradas obtienen una transacción de votos para poder ejercer su derecho a voto. Esta transacción se envía a su dirección anónima por lo que una Entidad de Registro maliciosa podría generar transacciones a direcciones anónimas bajo su control para alterar la votación. Sin embargo sería sencillo comprobar el descuadre, ya que: o Si envían transacciones de direcciones válidas a direcciones comprometidas, los votantes dueños de la dirección válida verían que no les llega la transacción y se descubriría el malfuncionamiento. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 92

96 o Si generan transacciones adicionales, el número de transacciones no coincidiría con el número de usuarios registrados. En cualquier caso hay propuestas de protocolos descentralizados para el registro y la emisión de credenciales [22], pero no se ha considerado su incorporación debido a que son propuestas teóricas que no se han implementado y han recibido algunas críticas en base a su dificultad de implementación real de forma segura Nodo de la entidad organizadora Aunque el sistema es centralizado se requerirá que la entidad organizadora de la votación tenga o gestione un nodo. Este nodo será igual que los demás excepto por 2 características: generará el inicio de la votación, y finalizará la votación. El inicio de la votación no supone un especial problema, ya que se generan los bloques base y a partir de ahí se comienza el proceso de votación. Sin embargo la finalización de la votación sí que supone un problema: Cuándo se da por finalizada la votación? La problemática viene por las características intrínsecas de la red blockchain: - Es un sistema distribuido y descentralizado, sin una entidad central de sellado de tiempo. - Una transacción puede llegar en un momento temporal x, pero no se sabe cuánto tiempo necesita para incorporarse a la cadena de bloques. - Los usuarios envían las transacciones a uno o n nodos, pero no se puede asumir que todos los nodos conocen todas las transacciones pendientes. Por lo tanto en la solución propuesta la Junta Electoral, usando el nodo del sistema que controla, finaliza la votación en el momento que considera que se han procesado todas las transacciones emitidas a tiempo. Como sólo conoce las transacciones que se han enviado a su nodo, durante la votación los distintos softwares de votación deberían enviar la transacción siempre al nodo de la entidad organizadora, y adicionalmente a los otros nodos que considere oportunos. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 93

97 7.3 Seguridad de la solución Al estar basada en los mismos protocolos y algoritmos blockchain que la red bitcoin, el nivel de seguridad es que ofrece la solución es comparable a esta, y por lo tanto muy alta. Los diferentes sistemas que aseguran la solución son: - El protocolo de cadena blockchain, al tener todo el historial de todas las transacciones significa que si alguien quiere alterar un bloque debe alterar no sólo ese bloque, sino todos los bloques posteriores. Como la red sigue insertando bloques, debe ser capaz de generar bloques más rápido que el resto de la red. Por lo tanto el atacante debe controlar más del 50% de la potencia de la red. - Aun considerando que un atacante pueda alterar la cadena blockchain, podría entorpecer la votación pero no alterarla, ya que las transacciones van firmadas por cada votante con un algoritmo criptográfico de clave elíptica que asegura la corrección de cada transacción de forma individual. - La posibilidad de un ataque de denegación de servicio se ve mitigado por 2 características de la red: o Al ser distribuida un ataque DDOS enviando multitud de transacciones sólo afectaría a algunos nodos (aquellos nodos sobre los que se produjese el ataque) pero el resto de nodos podrían seguir funcionando y por tanto el sistema seguiría en marcha. o Un ataque DDOS sobre el sistema de bloques (ir generando bloques espurios para impedir la incorporación de bloques correctos), no sería posible debido a la prueba de esfuerzo que debe superar el bloque. Aun así, el uso del sistema en un contexto de votación implica una serie de características a tener en cuenta en la seguridad del sistema Caso bipolarización de fuerzas políticas Como se ha comentado anteriormente, para que el sistema funcione correctamente es necesario un consenso entre los nodos para aplicar correctamente los protocolos y algoritmos. En este caso a un atacante le resultaría difícil alterar la votación porque el resto de nodos rechazarían sus PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 94

98 bloques, y sólo si controlara más del 50% de la potencia de los nodos podría alterar la votación. Sin embargo en el ámbito electoral hay que tener en cuenta que hay situaciones en que pueden ponerse en riesgo el sistema, como en los casos de extrema polarización política. Imaginando un caso de elecciones de tipo bipartidista en que el los dos partidos que se presentan están enfrentados y quieren usar el sistema para tener ventaja, ambos competirán por controlar el mayor número de nodos y alterar convenientemente el sentido de la votación. Aunque hay que tener en cuenta que en ningún modo se podría alterar el sentido del voto de los votantes, sí que podrían alterarse algunas de las reglas de la votación. Por ejemplo, si en una votación sólo se permite transacciones de voto a un número determinado de direcciones, habiendo excluido a un candidato opositor, si este candidato tuviera suficiente apoyo podría desplegar nodos en la red que aunque funcionen correctamente en todas sus funciones, sí permitan estas direcciones (que actuarían como voto delegado). De esta forma los votantes podrían enviar votos a este partido y se produciría un fork de la cadena blockchain difícil de gestionar, ya que se produciría una elección paralela a la oficial con el candidato vetado Desviación de potencia bitcoin Debido al éxito de bitcoin y su sistema de minado se ha creado un ecosistema de servicios para minado de bitcoins. Hay hardware específico optimizado para operaciones hash y minado de bitcoins, así como granjas de servidores que incorporan este hardware y ofrecen su potencia de minado como SaaS (Software as a Services), de forma que cualquier persona que quiera minar bitcoins no necesita comprar su propio hardware sino que alquila potencia de minado en estos servicios. Esto podría ser una debilidad de la solución de voto propuesta, ya que utiliza el mismo tipo de proof of work que bitcoin, y por lo tanto estos servicios de minado podrían usarse en la red de votación. Como la red de votación probablemente cuente con una potencia de cálculo de hashes mucho menor que la red bitcoin, un usuario malicioso podría alquilar temporalmente potencia de la red bitcoin para realizar un ataque contra la red de votación. Aunque ya se ha comentado que estos ataques pueden interferir en la votación pero no alterar los votos (sería más como un ataque de denegación de servicio), una propuesta para mitigar el riesgo sería cambiar el sistema de proof of work. En lugar de tener que calcular hashes se debería buscar otro tipo de prueba matemática (por ejemplo factorizar el hash del bloque) que también fuera computacionalmente exigente, pero que no fuese óptima para el hardware especializado en cálculo de hashes. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 95

99 8 Conclusiones PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 96

100 8 Conclusiones El éxito del bitcoin y del protocolo que lo sustenta, el blockchain, ha despertado interés en los usos que se puede hacer de esta tecnología de base de datos y consenso distribuido en otros ámbitos. De este interés surgen algunas iniciativas como otras criptomonedas, o Ethereum (que registra contratos autoejecutables), ChangeTip (micropagos) incluso en el ámbito de las votaciones (FollowMyVote). En el ámbito de las votaciones, aunque en los últimos años se está intentando aplicar las nuevas tecnologías a los procesos electorales, aún no se ha conseguido implantar un sistema que ofrezca la misma seguridad a los electores que el sistema tradicional. Aunque existen buenas soluciones basadas en tecnologías seguras, existe una desconfianza del elector e incluso de expertos en tecnologías ante un voto telemático que gestionaría un sistema centralizado, posiblemente administrado por algunos de los participantes en la contienda electoral. Un sistema de este tipo sería fácil de manipular si el interesado tiene acceso directo al servidor donde se ejecutan los procesos electorales. En este sentido, la solución que se propone en este documento, es un sistema que permite gestionar todo tipo de votaciones, incluso elecciones complejas de ámbito estatal de forma: - Segura (gracias al uso de técnicas criptográficas avanzadas) - Descentralizada (evitando la posibilidad de amaño por parte del organizador) - Flexible (permitiendo cualquier tipo de votación) - Transparente (permitiendo un seguimiento constante de la votación) - Económica (en comparación a la infraestructura necesaria para realizar una votación presencial o por correo) La implantación de esta solución no sería excesivamente costosa, y su carácter abierto permitiría a cualquier interesado (formación política, asociación, periodista, etc.) añadir su propio nodo a la red, formando parte del sistema a la vez que auditando el mismo. Como cualquier solución tiene algunas limitaciones a tener en cuenta, siendo posiblemente la más importante la baja velocidad máxima a que puede procesar los votos, pero conociendo estas limitaciones se puede optimizar su uso. Por lo tanto es una opción válida para la problemática que se deseaba solucionar y un ejemplo funcional del uso de la tecnología blockchain en un entorno de votación complejo de gestionar. PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 97

101 9 Referencias PFC: Estudio de la utilización de protocolos blockchain en sistemas de votación electrónica 98

MÓDULO 2 NIVEL AVANZADO Las fuentes de información institucional Unidad didáctica 5: La seguridad en las operaciones telemáticas

MÓDULO 2 NIVEL AVANZADO Las fuentes de información institucional Unidad didáctica 5: La seguridad en las operaciones telemáticas MÓDULO 2 NIVEL AVANZADO Las fuentes de información institucional E. La seguridad en las operaciones telemáticas La firma digital La firma electrónica es un sistema electrónico de acreditación que permite

Más detalles

MANUAL SOBRE FIRMA ELECTRÓNICA

MANUAL SOBRE FIRMA ELECTRÓNICA MANUAL SOBRE FIRMA ELECTRÓNICA MANUAL SOBRE FIRMA ELECTRÓNICA ÍNDICE MANUAL SOBRE FIRMA ELECTRÓNICA 1 1.- QUÉ ES LA FIRMA ELECTRÓNICA? 4 2.- A QUÉ SERVICIOS PUEDO ACCEDER CON FIRMA ELECTRÓNICA? 5 3.-

Más detalles

Bitcoin Daniela Caballero Díaz 19-junio-2013

Bitcoin Daniela Caballero Díaz 19-junio-2013 Bitcoin Daniela Caballero Díaz 19-junio-2013 Agenda Un recuerdo de Introducción a la Economía Bitcoin Conceptos Básicos Seguridad y Anonimato Consejos Un recuerdo de Introducción a la Economía Trueque:

Más detalles

Conceptos sobre firma y certificados digitales

Conceptos sobre firma y certificados digitales Conceptos sobre firma y certificados digitales XI Reunión de Responsables de Sistemas de Información San José, Costa Rica Julio 2009 Carlos Rivas Guillén RivasGC@sugeval.fi.cr Agenda Criptografía. Firma

Más detalles

Criptografía básica. (extracto de ponencia Administración Electrónica ) EUITIO Universidad de Oviedo. Alejandro Secades Gómez

Criptografía básica. (extracto de ponencia Administración Electrónica ) EUITIO Universidad de Oviedo. Alejandro Secades Gómez (extracto de ponencia Administración Electrónica ) EUITIO Universidad de Oviedo La criptografía nació como la ciencia de ocultar mensajes,sea, cifrarlos para que sólo el receptor pueda acceder a ellos

Más detalles

CONFIANZA Uno de los principales desafíos a que se enfrentan los medios telemáticos es asegurar la identidad de las partes que intervienen en cualquie

CONFIANZA Uno de los principales desafíos a que se enfrentan los medios telemáticos es asegurar la identidad de las partes que intervienen en cualquie Certificados digitales CONFIANZA Uno de los principales desafíos a que se enfrentan los medios telemáticos es asegurar la identidad de las partes que intervienen en cualquier operación, tanto del usuario

Más detalles

Seguridad en los sistemas de información: e-voting, e-cash y notaria digital

Seguridad en los sistemas de información: e-voting, e-cash y notaria digital Seguridad en los sistemas de información: e-voting, e-cash y notaria digital M. en C. María de Lourdes López García mlopez@computacion.cs.cinvestav.mx Departamento de Computación Cinvestav-IPN V CONGRESO

Más detalles

Redes de comunicación

Redes de comunicación UNIVERSIDAD AMERICANA Redes de comunicación Unidad III- Criptografía: Sistemas Asimétricos Recopilación de teoría referente a la materia Ing. Luis Müller 2011 Esta es una recopilación de la teoría referente

Más detalles

FIRMA DIGITAL. Trabajo realizado por Manuel Iranzo

FIRMA DIGITAL. Trabajo realizado por Manuel Iranzo ti FIRMA DIGITAL Trabajo realizado por Manuel Iranzo Índice Firma Digital. Definición y Tipos... 3 Usos e implementaciones de la Firma Digital... 4 Dni electronico... 4 Voto electronico... 5 Criptografía

Más detalles

La Firma Digital. Seguridad en Redes TCP/IP. Tabla de Contenidos

La Firma Digital. Seguridad en Redes TCP/IP. Tabla de Contenidos La Firma Digital Tabla de Contenidos 7. La Firma Digital... 2 Infraestructura de clave pública... 2 Situación en la administración pública... 3 7.1 Firma Digital con Outlook (Windows, MacOS)... 4 7.2 Firma

Más detalles

Aspectos Técnicos, Usos y Aplicaciones Firma y Certificado Digital. Comisión de Sistema de Gestión Documental Suscriptor de Certificado Digital

Aspectos Técnicos, Usos y Aplicaciones Firma y Certificado Digital. Comisión de Sistema de Gestión Documental Suscriptor de Certificado Digital Aspectos Técnicos, Usos y Aplicaciones Firma y Certificado Digital Comisión de Sistema de Gestión Documental Suscriptor de Certificado Digital 22 de Junio del 2016 Marco Legal ANTECEDENTES PARA EL USO

Más detalles

Seguridad y criptografía

Seguridad y criptografía Seguridad y criptografía Jorge Juan Chico , Julián Viejo Cortés . 2011, 2014 Departamento de Tecnología Electrónica Universidad de Sevilla Usted es libre de copiar,

Más detalles

05. Criptografía de clave pública

05. Criptografía de clave pública 05. Criptografía de clave pública Criptografía 5º Curso de Ingeniería Informática Escuela Técnica Superior de Ingeniería Informática Universidad de Sevilla Contenido Cifrado con clave pública Ventajas

Más detalles

PROPUESTA MODIFICACIÓN PUNTUAL ESTATUTOS MAYO DE 1014

PROPUESTA MODIFICACIÓN PUNTUAL ESTATUTOS MAYO DE 1014 PROPUESTA MODIFICACIÓN PUNTUAL ESTATUTOS MAYO DE 1014 4.- RÉGIMEN ELECTORAL. MESAS ELECTORALES, VOTO POR CORREO, VOTO ELECTRÓNICO. ARTS. 95 Y 98 A 100. REDACCIÓN ACTUAL. MESAS ELECTORALES ART. 95 En cada

Más detalles

SEGURIDAD Y ALTA DISPONIBILIDAD. Nombre: Adrián de la Torre López

SEGURIDAD Y ALTA DISPONIBILIDAD. Nombre: Adrián de la Torre López SEGURIDAD Y ALTA DISPONIBILIDAD Nombre: Adrián de la Torre López Uno de los peligros de estas redes es la captación de paquetes en las conexiones mediante programas conocidos como "snifers", donde se puede

Más detalles

Voto Electrónico. Una contribución al desarrollo sostenible. Elena Verdú Fundación CEDETEL

Voto Electrónico. Una contribución al desarrollo sostenible. Elena Verdú Fundación CEDETEL Voto Electrónico Una contribución al desarrollo sostenible Elena Verdú Fundación CEDETEL INTRODUCCIÓN Los procesos electorales tradicionales suponen un alto gasto de papel. Voto por correo. Papeletas en

Más detalles

Votando entre tiburones.

Votando entre tiburones. Votando entre tiburones Internet voting ESTÁS SEGURO? X JORNADAS STIC CCN-CERT Hay mil maneras de hacerlo mal. Pero también hay formas de hacerlo BIEN! 2 Cryptography Researcher PhD en Voto Electrónico

Más detalles

- Firma digital y cifrado de mensajes. Luis Villalta Márquez

- Firma digital y cifrado de mensajes. Luis Villalta Márquez - Firma digital y cifrado de mensajes. Luis Villalta Márquez No hay nada más fácil que leer los correos de otras personas, ya que viajan desnudos por la Red. Valga la siguiente analogía. Un correo electrónico

Más detalles

Matemáticas para proteger la Información

Matemáticas para proteger la Información ! Matemáticas para proteger la Información Ángel Martín del Rey Departamento de Matemática Aplicada Universidad de Salamanca delrey@usal.es Bachillerato de Inves1gación, I.E.S. Vaguada de la Palma, 18

Más detalles

PARTICIPA DE LA RENTABILIDAD QUE OFRECE EL BITCOIN Y LAS CRIPTOMONEDAS!!

PARTICIPA DE LA RENTABILIDAD QUE OFRECE EL BITCOIN Y LAS CRIPTOMONEDAS!! PARTICIPA DE LA RENTABILIDAD QUE OFRECE EL BITCOIN Y LAS CRIPTOMONEDAS!! BUSCAMOS SOCIOS CAPITALISTAS A PARTIR DE 2.000! Más información en nuestra web: www.socioscapitalistas.laescueladeinversion.com

Más detalles

Criptografía Hash para Firma Electrónica. Dr. Luis A. Lizama Pérez

Criptografía Hash para Firma Electrónica. Dr. Luis A. Lizama Pérez Criptografía Hash para Firma Electrónica Dr. Luis A. Lizama Pérez Firma Electrónica Función Hash Firma de Una Sola Vez (OTS) Cadena Hash + S/Key HMAC Protocolo básico de Firma Electrónica Hash Conclusiones

Más detalles

PROCEDIMIENTO DE VOTO ELECTRÓNICO PARA LOS ALUMNOS DE LA UV

PROCEDIMIENTO DE VOTO ELECTRÓNICO PARA LOS ALUMNOS DE LA UV Voto electrónico PROCEDIMIENTO DE VOTO ELECTRÓNICO PARA LOS ALUMNOS DE LA UV 21/10/2015 V1 INSTITUTO DE ROBÓTICA Y TECNOLOGÍAS DE LA INFORMACIÓN Y LAS COMUNICACIONES C/ Catedrático José Beltrán Apto 2085

Más detalles

NORMATIVA DE VOTO ELECTRÓNICO DE LA UNIVERSIDAD DE ALICANTE EXPOSICIÓN DE MOTIVOS

NORMATIVA DE VOTO ELECTRÓNICO DE LA UNIVERSIDAD DE ALICANTE EXPOSICIÓN DE MOTIVOS NORMATIVA DE VOTO ELECTRÓNICO DE LA UNIVERSIDAD DE ALICANTE EXPOSICIÓN DE MOTIVOS La Disposición Adicional del Reglamento Electoral de la Universidad de Alicante (BOUA de 4 de diciembre de 2013) establece

Más detalles

Capítulo 3. Qué es un Prestador de Servicios de Certificación?

Capítulo 3. Qué es un Prestador de Servicios de Certificación? INDICE DE CONTENIDOS Capítulo 1. Antes de comenzar Introducción La seguridad en las transacciones electrónicas Capítulo 2. Qué es la firma electrónica? En qué consiste la firma electrónica? Qué es la clave

Más detalles

UNIDAD I. Universidad del Zulia Costa Oriental del Lago. Conceptos Básicos

UNIDAD I. Universidad del Zulia Costa Oriental del Lago. Conceptos Básicos Costa Oriental del Lago UNIDAD I Conceptos Básicos Comandos internos y externos. Estructura básicas: entidad, atributo, base de datos, clave primaria y secundaria, registro y archivo de datos empresas

Más detalles

Revolución Blockchain

Revolución Blockchain Revolución Blockchain Maximiliano Soler maxisoler@artssec.com @maxisoler 2 Crypto-economía (R)evolución en Internet Disrupción e Innovación 3 Crypto-economía v1.0 700+ Monedas bitcoin litecoin peercoin

Más detalles

BlockChain: Una base de datos distribuida de solo escritura para mantener libros de

BlockChain: Una base de datos distribuida de solo escritura para mantener libros de BlockChain: Una base de datos distribuida de solo escritura para mantener libros de cuentas distribuidos. Joaquín Salvachúa ( joaquin.salvachua@upm.es), Juan Quemada, Alvaro Alonso Fecha Indice Bitcoin

Más detalles

INFORMACIÓN GENERAL SOBRE FIRMA ELECTRÓNICA COLEGIO OFICIAL DE INGENIEROS INDUSTRIALES DEL PRINCIPADO DE ASTURIAS V /04/2017.

INFORMACIÓN GENERAL SOBRE FIRMA ELECTRÓNICA COLEGIO OFICIAL DE INGENIEROS INDUSTRIALES DEL PRINCIPADO DE ASTURIAS V /04/2017. INFORMACIÓN GENERAL SOBRE FIRMA ELECTRÓNICA COLEGIO OFICIAL DE INGENIEROS V.1.1-20/04/2017. ÍNDICE 1.- LA FIRMA ELECTRÓNICA... 2 1.1.- LEY 59/2003, DE 19 DE DICIEMBRE, DE FIRMA ELECTRÓNICA... 2 1.2.- LOS

Más detalles

REALIZADO POR: MILA LEAL

REALIZADO POR: MILA LEAL REALIZADO POR: MILA LEAL Es el arte o ciencia de cifrar y descifrar información utilizando técnicas que hagan posible el intercambio de mensajes de manera segura que sólo puedan ser leídos por las personas

Más detalles

Semana 12: Encriptación. Criptografía

Semana 12: Encriptación. Criptografía Semana 12: Encriptación Criptografía Aprendizajes esperados Contenidos: Conceptos básicos de criptografía Tipos de cifradores Cifrado de bloques Conceptos básicos Un mensaje en su estado original consiste

Más detalles

LECCIÓN 5 Firma Electrónica

LECCIÓN 5 Firma Electrónica ASIGNATURA: DERECHO DE LAS TECNOLOGÍAS DE LA INFORMACIÓN LECCIÓN 5 Firma Electrónica Prof. Dr. Carlos Galán Área de Derecho Administrativo Universidad Carlos III de Madrid Esta obra está bajo una licencia

Más detalles

Sistema de Votaciones Web Tabla de contenido

Sistema de Votaciones Web Tabla de contenido Tabla de contenido Introducción...3 Descripción...3 Ejemplos de Gráficos...4 Funcionamiento...8 Administración del Sistema...8 Antes de la Votación...8 Después de la Votación...9 Impresión de Credenciales...

Más detalles

Criptografía. Diplomado- TI (2) Criptografía. Diplomado-TI (2) 9 de enero de 2012

Criptografía. Diplomado- TI (2) Criptografía. Diplomado-TI (2) 9 de enero de 2012 9 de enero de 2012 Simetrías y Asimetrías Para generar una transmisión segura de datos, debemos contar con un canal que sea seguro, esto es debemos emplear técnicas de forma que los datos que se envían

Más detalles

Función HASH o Función Resumen: Es un algoritmo matemático que asocia a cada documento un valor numérico diferente. Son algoritmos de un solo

Función HASH o Función Resumen: Es un algoritmo matemático que asocia a cada documento un valor numérico diferente. Son algoritmos de un solo Función HASH o Función Resumen: Es un algoritmo matemático que asocia a cada documento un valor numérico diferente. Son algoritmos de un solo sentido: conocido un documento, genera un código; pero un código

Más detalles

Manual del Proveedor para el registro telemático de la factura electrónica

Manual del Proveedor para el registro telemático de la factura electrónica Manual del Proveedor para el registro telemático de la factura electrónica 1 Opciones y requisitos técnicos 3 Acceso: Acceso con un certificado de entidad 6 Acceso con un certificado de ciudadano 22 Solicitud

Más detalles

ASOCIACION DE ANTIGUOS ALUMNOS DEL MÁSTER EN DIPLOMACIA Y RELACIONES INTERNACIONALES DE LA ESCUELA DIPLOMÁTICA REGLAMENTO ELECTORAL

ASOCIACION DE ANTIGUOS ALUMNOS DEL MÁSTER EN DIPLOMACIA Y RELACIONES INTERNACIONALES DE LA ESCUELA DIPLOMÁTICA REGLAMENTO ELECTORAL REGLAMENTO ELECTORAL 1 CONVOCATORIA Artículo 1. Las elecciones serán convocadas por la Junta Directiva con, al menos 1 mes de antelación a su fecha de celebración, expresando los puestos a cubrir si se

Más detalles

Sistemas Distribuidos. Prog. Distribuida bajo Internet

Sistemas Distribuidos. Prog. Distribuida bajo Internet Sistemas Distribuidos Prog. Distribuida bajo Internet Definición Hay muchas definiciones Básicamente, varios computadores o nodos de computación en lazados mediante una red y que comparten datos, procesamiento,

Más detalles

SISTEMA DE NOTIFICACIONES DE LA JUNTA DE ANDALUCIA

SISTEMA DE NOTIFICACIONES DE LA JUNTA DE ANDALUCIA SISTEMA DE NOTIFICACIONES DE LA JUNTA DE ANDALUCIA De forma habitual los organismos de la administración pública e incluso las empresas, se comunican con los ciudadanos o sus clientes a través del envío

Más detalles

El Comercio Electrónico y la Firma Digital

El Comercio Electrónico y la Firma Digital LIC. JOSÉ RAÚL GONZÁLEZ VELÁSQUEZ El Comercio Electrónico y la Firma Digital José Raúl González Velásquez 2007 17 DE SEPTIEMBRE DE 2007 EL COMERCIO ELECTRÓNICO Y LA FIRMA DIGITAL Lic. José Raúl González

Más detalles

Ley 7730/12 de la Provincia de Salta

Ley 7730/12 de la Provincia de Salta Ley 7730/12 de la Provincia de Salta Normas de control para el voto con boleta electrónica Dra. Claudia Lilian García Coordinadora Nacional Legal de la Red Ser Fiscal Las elecciones provinciales que se

Más detalles

REGLAMENTO PARA LA ELECCIÓN DEL PREMIO A MEJOR PROFESOR

REGLAMENTO PARA LA ELECCIÓN DEL PREMIO A MEJOR PROFESOR REGLAMENTO PARA LA ELECCIÓN DEL PREMIO A MEJOR PROFESOR 14/04/2015 CONTENIDO OBJETO DEL REGLAMENTO... 2 Opción A. ELECCIÓN ÍNTEGRA A TRAVÉS DE LOS REPRESENTANTES DE LOS ALUMNOS.... 2 Opción B. PROPOSICIÓN

Más detalles

La cadena de bloques, o cómo subvertir el sistema

La cadena de bloques, o cómo subvertir el sistema La cadena de bloques, o cómo subvertir el sistema Oscar Delgado Eurecat oscar.delgado@eurecat.org doscar@gmail.com https://cybercamp.es Índice 1. La cadena de qué? 2. Aplicaciones a. Fintech b. IoT 3.

Más detalles

Los contenidos se valorarán en función de los conceptos adquiridos, los procedimientos aprendidos y las actitudes desarrolladas en las clases.

Los contenidos se valorarán en función de los conceptos adquiridos, los procedimientos aprendidos y las actitudes desarrolladas en las clases. SECUENCIA DIDACTICA: CRIPTOGRAFÍA JUSTIFICACIÓN Esta dirigida a alumnos de 2º de ciclo medio de informática, del Módulo Seguridad Informática. La voy a llevar a cabo en 10 sesiones, de las cuales 4 van

Más detalles

MF0489_3 Sistemas Seguros de Acceso y Transmisión de Datos

MF0489_3 Sistemas Seguros de Acceso y Transmisión de Datos MF0489_3 Sistemas Seguros de Acceso y Transmisión de Datos TITULACIÓN DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES MF0489_3 Sistemas Seguros de Acceso y

Más detalles

TEMA 40: Criptografía: Sistemas de clave simétrica y asimétrica, certificados digitales. Legislación en materia de firma electrónica.

TEMA 40: Criptografía: Sistemas de clave simétrica y asimétrica, certificados digitales. Legislación en materia de firma electrónica. Tema 40 Criptografía TEMA 40: Criptografía: Sistemas de clave simétrica y asimétrica, certificados digitales. Legislación en materia de firma electrónica. Índice 1 INTRODUCCIÓN 1 2 CIFRADO DE COMUNICACIONES

Más detalles

UF1276 Selección, Instalación, Configuración y Administración de los Servidores Multimedia

UF1276 Selección, Instalación, Configuración y Administración de los Servidores Multimedia UF1276 Selección, Instalación, Configuración y Administración de los Servidores Multimedia TITULACIÓN DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES UF1276

Más detalles

3.Criptografía Orientada a Objetos

3.Criptografía Orientada a Objetos 3.Criptografía Orientada a Objetos La criptografía, vista en términos sociales, es la ciencia que trata de que el coste de adquirir o alterar objetos de modo impropio sea mayor que el posible valor obtenido

Más detalles

UF0852 Instalación y Actualización de Sistemas Operativos

UF0852 Instalación y Actualización de Sistemas Operativos UF0852 Instalación y Actualización de Sistemas Operativos TITULACIÓN DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES UF0852 Instalación y Actualización de Sistemas

Más detalles

BASE DE DATOS DISTRIBUIDOS

BASE DE DATOS DISTRIBUIDOS 1 BASE DE DATOS DISTRIBUIDOS Contenido: Base de Datos Distribuidos 1.1. Introducción 1.1.1 Almacenamiento Distribuido 1.2. Sistemas de gestión de bases de datos distribuidos 1.2.1 Funciones y Arquitectura

Más detalles

Oficina Internet de Empresas. Tramitación de ficheros a través de la OIE Descripción General

Oficina Internet de Empresas. Tramitación de ficheros a través de la OIE Descripción General Oficina Internet de Empresas de ficheros a través de la OIE Descrip l VERSION: 3.1XXXXXX FECHA: Mayo 2016 Introduc Para tramitar un fichero normalizado a través de Oficina Internet Empresas (O.I.E.) es

Más detalles

Para poder participar, deberá seguir los pasos detallados a continuación:

Para poder participar, deberá seguir los pasos detallados a continuación: INTRODUCCIÓN El presente sistema de voto electrónico le permite participar en procesos electorales y consultivos a través de medios electrónicos con todas las garantías de anonimato, integridad y no-trazabilidad.

Más detalles

El modelo colaborativo de las becas

El modelo colaborativo de las becas El modelo colaborativo de las becas por rafael guadamillas 80 boletic En la FIGURA 1 se establece una comparativa que refleja las competencias de cada una de las Administraciones, en cada una de los tipos

Más detalles

Estudio, diseño y evaluación de protocolos de autentificación para redes inalámbricas

Estudio, diseño y evaluación de protocolos de autentificación para redes inalámbricas Estudio, diseño y evaluación de protocolos de autentificación para redes inalámbricas Laura Itzelt Reyes Montiel Director de Tesis: Francisco José R. Rodríguez Henríquez Departamento de Ingeniería Eléctrica

Más detalles

Sistemas criptográficos modernos

Sistemas criptográficos modernos Sistemas criptográficos modernos Servicios de seguridad: protocolos criptográficos Confidencialidad Autenticación del usuario Integridad del mensaje Distribución de claves Compartición de secretos Pruebas

Más detalles

Plan General de Contabilidad (Online)

Plan General de Contabilidad (Online) titulación de formación continua bonificada expedida por el instituto europeo de estudios empresariales Plan General de Contabilidad (Online) duración total: 90 horas 56 horas horas teleformación: precio:

Más detalles

en el sistema actual, con el fin de determinar los riesgos existentes en un sistema tradicional de votaciones como el del IMATE.

en el sistema actual, con el fin de determinar los riesgos existentes en un sistema tradicional de votaciones como el del IMATE. CAPITULO 3 3. Descripción Sistema Actual. En este capítulo se describen las características particulares del proceso de votación que se lleva actualmente en el IMATE con el fin de mostrar algunos aspectos

Más detalles

Introducción a la Criptografía Cuántica

Introducción a la Criptografía Cuántica Introducción a la Criptografía Cuántica Alfonsa García, Francisco García 1 y Jesús García 1 1 Grupo de investigación en Información y Computación Cuántica (GIICC) Introducción a la criptografía cuántica

Más detalles

Sistema de Liquidación Directa. Manual del Servicio de Cambio de modalidad de pago

Sistema de Liquidación Directa. Manual del Servicio de Cambio de modalidad de pago Sistema de Liquidación Directa Manual del Servicio de Cambio de modalidad de pago Subdirección General de Afiliación, Cotización y Gestión del Sistema RED Marzo de 2017 ÍNDICE 1 Servicio de Cambio de Modalidad

Más detalles

CONFIGURACIÓN DEL CERTIFICADO DIGITAL EN OUTLOOK 2013

CONFIGURACIÓN DEL CERTIFICADO DIGITAL EN OUTLOOK 2013 Página Página 1 de 10 1 OBJETIVO En el presente documento se describen los pasos necesarios para la configuración del certificado digital en la aplicación de correo Outlook 2013. 2 ALCANCE Este manual

Más detalles

Lección 3: Sistemas de Cifra con Clave Pública

Lección 3: Sistemas de Cifra con Clave Pública Lección 3: Sistemas de Cifra con Pública Gonzalo Álvarez Marañón gonzalo@iec.csic.es Consejo Superior de Investigaciones Científicas Científico Titular Los tipos de criptografía Criptografía Simétrica

Más detalles

FIRMA DIGITAL Y SU IMPACTO EN LOS NUEVOS REQUERIMIENTOS

FIRMA DIGITAL Y SU IMPACTO EN LOS NUEVOS REQUERIMIENTOS FIRMA DIGITAL Y SU IMPACTO EN LOS NUEVOS REQUERIMIENTOS Octubre 2013 Agenda Introducción Qué es la firma digital? Objetivo de la ley de certificados, firmas digitales y documentos electrónicos A quien

Más detalles

TRADING - MINERÍA. Presentación

TRADING - MINERÍA. Presentación Presentación 2017 Los negocios tradicionales están evolucionando y se han hecho del internet, como una herramienta masiva de marketing para llegar a millones de personas. La tienda de productos más grande

Más detalles

El potencial de la tecnología Blockchain para la industria

El potencial de la tecnología Blockchain para la industria El potencial de la tecnología Blockchain para la industria Carlos B. Steinblock 25 de mayo de 2016 Parque Tecnológico de Bizkaia, edificio 204. 48170 Zamudio Pequeña encuesta Saquen y desbloqueen sus smartphones

Más detalles

Servicio de Notificaciones Electrónicas

Servicio de Notificaciones Electrónicas Servicio de Notificaciones Electrónicas Es el medio más rápido de recibir las notificaciones oficiales de la Administración. Una iniciativa del Ministerio de Política Territorial y Administración Pública

Más detalles

FIABILIDAD, CONFIDENCIALIDAD, INTEGRIDAD Y DISPONIBILIDAD

FIABILIDAD, CONFIDENCIALIDAD, INTEGRIDAD Y DISPONIBILIDAD FIABILIDAD, CONFIDENCIALIDAD, INTEGRIDAD Y DISPONIBILIDAD Tema 1 SAD Vicente Sánchez Patón I.E.S Gregorio Prieto Fiabilidad La fiabilidad de un sistema es la probabilidad de que ese sistema funcione o

Más detalles

Circular de Tecnología Pautas para el uso de Certificados Digitales Personales

Circular de Tecnología Pautas para el uso de Certificados Digitales Personales ASIT 20070501 CT Pautas para el uso de Certificados Digitales v3 2007-07-17 Documento de Circular de Tecnología Pautas para el uso de Certificados Digitales Personales Versión 003 Julio de 2007 ARCHIVO:

Más detalles

UF1354 Copia de Seguridad y Restauración de la Información

UF1354 Copia de Seguridad y Restauración de la Información UF1354 Copia de Seguridad y Restauración de la Información TITULACIÓN DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES UF1354 Copia de Seguridad y Restauración

Más detalles

Firma Electronica Avanzada

Firma Electronica Avanzada Firma Electronica Avanzada La Firma Electrónica Avanzada es un conjunto de datos que se adjuntan a un mensaje electrónico, cuyo propósito es identificar al emisor del mensaje como autor legítimo de éste,

Más detalles

UF0865 Reparación de Impresoras

UF0865 Reparación de Impresoras TITULACIÓN DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES UF0865 Reparación de Impresoras Duración: 70 horas Precio: 0 * Modalidad: A distancia * hasta 100

Más detalles

Ing. Informática. Catedrático: Lic. Angélica Avalos Cano

Ing. Informática. Catedrático: Lic. Angélica Avalos Cano Ing. Informática Tema: Resumen de trasparencia, Control de transacciones para base de datos distribuidas, Control de concurrencia, Protocolos de bloqueo Presentado Por: María Cristina Cruz Ramírez Darvin

Más detalles

DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES

DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES UF0854 Instalación y Configuración de los Nodos de una Red de Área Local TITULACIÓN DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES UF0854 Instalación y Configuración

Más detalles

NCS SCAN. Es una aplicación que procesa los documentos de compras, gastos y ventas obtenidas a partir de:

NCS SCAN. Es una aplicación que procesa los documentos de compras, gastos y ventas obtenidas a partir de: NCS Scan es una aplicación que combina varios módulos creados para facilitar y automatizar el trabajo de registro y contabilización de documentos contables, en resumen sus opciones son: NCS Scan que genera

Más detalles

Jorge De Nova Segundo

Jorge De Nova Segundo Jorge De Nova Segundo Una red peer-to-peer, red de pares, red entre iguales, red entre pares o red punto a punto (P2P, por sus siglas en inglés) es una red de computadoras en la que todos o algunos aspectos

Más detalles

Artículo 1.- Elección de la Junta Directiva: promoción del proceso electoral.

Artículo 1.- Elección de la Junta Directiva: promoción del proceso electoral. REGIMEN Y PROCEDIMIENTO ELECTORAL Artículo 1.- Elección de la Junta Directiva: promoción del proceso electoral. La Junta Directiva acordará la promoción del proceso electoral en los siguientes supuestos:

Más detalles

Universidad del País Vasco Euskal Herriko Unibertsitatea

Universidad del País Vasco Euskal Herriko Unibertsitatea Proyecto: GESTIÓN DE COMPRAS DE INVESTIGACIÓN Universidad del País Vasco Euskal Herriko Unibertsitatea GESTIÓN DE COMPRAS DE INVESTIGACIÓN MANUAL DE USUARIO (PDI) Vicegerencia de las TIC Marzo 2012 Página

Más detalles

Consideraciones para la Integración con una Pasarela de Pagos

Consideraciones para la Integración con una Pasarela de Pagos Consideraciones para la Integración con una Pasarela de Pagos Índice Destinatarios...3 Objetivo del documento...3 Introducción...3 Participantes...3 Tipos de operaciones involucradas...4 Aspectos a considerar...4

Más detalles

Seguridad del protocolo HTTP

Seguridad del protocolo HTTP Seguridad del protocolo HTTP Tema 4 SRI Vicente Sánchez Patón I.E.S Gregorio Prieto Protocolo HTTPS Hypertext Transfer Protocol Secure (HTTPS), es un protocolo de red basado en el protocolo HTTP, destinado

Más detalles

CERTIFICADO DIGITAL (Capacitación por el Sr. Ernesto Aranda)

CERTIFICADO DIGITAL (Capacitación por el Sr. Ernesto Aranda) CERTIFICADO DIGITAL (Capacitación por el Sr. Ernesto Aranda) Qué es gobierno electrónico? También conocido como e-gov (por sus siglas en inglés), se refiere al uso de las TIC (Tecnologías de la Información

Más detalles

Sociedad de la Información (Proyecto BASICO) Administración electrónica (e-administración) Servicios avanzados de información.

Sociedad de la Información (Proyecto BASICO) Administración electrónica (e-administración) Servicios avanzados de información. Marzo 2005 Marco de actuación Sociedad de la Información (Proyecto BASICO) Administración electrónica (e-administración) Servicios avanzados de información. Tramitación electrónica (e-tramitación) Convenio

Más detalles

Actividad 1.2. Cuestionario sobre SGBD (2ª parte)

Actividad 1.2. Cuestionario sobre SGBD (2ª parte) Actividad 1.2. Cuestionario sobre SGBD (2ª parte) 1.Indica las diferencias existentes entre las funciones de manipulación y de descripción. Función de descripción o de definición: Esta función debe permitir

Más detalles

Instrucciones para la utilización del Servicio de Verificación de Integridad de Documentos

Instrucciones para la utilización del Servicio de Verificación de Integridad de Documentos Instrucciones para la utilización del Servicio de Verificación de Integridad de Documentos Mayo 2017 ÍNDICE 1. INTRODUCCIÓN Y OBJETIVO... 4 2. DOCUMENTOS CON CÓDIGO CEA... 5 3. SERVICIO DE VERIFICACIÓN

Más detalles

Portal Municipal del Notario

Portal Municipal del Notario Manual de Usuario Portal Municipal del Notario Ayuntamiento de Alicante Índice de contenido Introducción...3 Qué es el Portal Municipal del Notario?...3 Casos de uso...4 Casos de uso en pantalla inicial...4

Más detalles

Criptografía de clave pública

Criptografía de clave pública Modelo de comunicación cifrada Texto Base ------------- ------ Cifrado Cifra ---------- ---------- ------ Descifrado Texto Base ------------- ---------- Intruso Terminología Texto base (B, P): mensaje

Más detalles

2.Introducción a la seguridad

2.Introducción a la seguridad 2.Introducción a la seguridad Las necesidades de seguridad de la información han ido evolucionando al igual que las ciencias de la computación y las tecnologías de la información. De este modo, las herramientas

Más detalles

FIRMA DIGITAL: Aspectos Técnicos y Legales

FIRMA DIGITAL: Aspectos Técnicos y Legales LABORATORIO DE FIRMA DIGITAL FIRMA DIGITAL: Aspectos Técnicos y Legales 2006 ONTI Subsecretaría de la Gestión Pública No está permitida la reproducción total o parcial de esta presentación, ni su tratamiento

Más detalles

UF1472 Lenguajes de Definición y Modificación de Datos SQL

UF1472 Lenguajes de Definición y Modificación de Datos SQL UF1472 Lenguajes de Definición y Modificación de Datos SQL TITULACIÓN DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES UF1472 Lenguajes de Definición y Modificación

Más detalles

DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES

DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES UF1273 Selección, Instalación y Configuración del Software de Servidor de Mensajería TITULACIÓN DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES UF1273 Selección,

Más detalles

Bernardo y Ana les acompañarán en este tutorial.

Bernardo y Ana les acompañarán en este tutorial. TUTORIAL SOBRE FIRMA DIGITAL ELABORADO POR LA FABRICA NACIONAL DE MONEDA Y TIMBRE Introducción En Internet nadie sabe quién está al otro lado. Una solución con solera: la criptografía Cifrado digital Criptografía

Más detalles

PROTOCOLO MESAS ELECTORALES CIRCUNSCRIPCIÓN ESTATAL

PROTOCOLO MESAS ELECTORALES CIRCUNSCRIPCIÓN ESTATAL PROTOCOLO MESAS ELECTORALES CIRCUNSCRIPCIÓN ESTATAL (DEPORTISTAS, TÉCNICOS Y JUECES-DELEGADOS TÉCNICOS) Para la CIRCUNSCRIPCIÓN ESTATAL de deportistas, técnicos, y jueces-delegados técnicos, existirán

Más detalles

Técnico en Gestión de Base de Datos con Oracle 10G

Técnico en Gestión de Base de Datos con Oracle 10G Técnico en Gestión de Base de Datos con Oracle 10G TITULACIÓN DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES Técnico en Gestión de Base de Datos con Oracle

Más detalles

POLITICA GENERAL DE SEGURIDAD DE LA INFORMACIÓN P00

POLITICA GENERAL DE SEGURIDAD DE LA INFORMACIÓN P00 POLITICA GENERAL DE SEGURIDAD DE LA INFORMACIÓN P00 Este documento presenta las características principales de la Seguridad de la Información, el uso aceptable y prohibido de los recursos por los funcionarios

Más detalles

Actualización de algoritmo de firma SHA-256

Actualización de algoritmo de firma SHA-256 Actualización de algoritmo de firma SHA-256 Tengo un comercio. Me afecta este cambio? Este cambio afecta a cualquier comercio que utilice TPV-PC de Redsýs comercializado por entidades financieras, ya sea

Más detalles

MF1043_2 Recepción y Atención al Cliente en Alojamientos Propios de Entornos Rurales

MF1043_2 Recepción y Atención al Cliente en Alojamientos Propios de Entornos Rurales MF1043_2 Recepción y Atención al Cliente en Alojamientos Propios de Entornos Rurales TITULACIÓN DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES MF1043_2 Recepción

Más detalles

TEMA 3 SEGURIDAD LOGICA. Realizado por : Mila Leal

TEMA 3 SEGURIDAD LOGICA. Realizado por : Mila Leal TEMA 3 SEGURIDAD LOGICA Realizado por : Mila Leal PRINCIPIOS DE LA SEGURIDAD LÓGICA La seguridad lógica, se refiere a la seguridad de uso del software, a la protección de los datos, procesos y programas,

Más detalles

Pedro Rodríguez López de Lemus. Sevilla, 2 de diciembre de 2010

Pedro Rodríguez López de Lemus. Sevilla, 2 de diciembre de 2010 Pedro Rodríguez López de Lemus Sevilla, 2 de diciembre de 2010 Certificados electrónicos según la Ley de firma electrónica Artículo 6 de la Ley 59/2003, de 19 de diciembre, de firma electrónica: Es un

Más detalles

DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES

DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES UF0856 Asistencia de Usuarios en el Uso de Aplicaciones Informáticas Ofimáticas y de Correo TITULACIÓN DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES UF0856

Más detalles

Manual de usuario MANUAL DE USUARIO. Página 1 de 13

Manual de usuario MANUAL DE USUARIO. Página 1 de 13 MANUAL DE USUARIO Página 1 de 13 Fecha 15/03/2017 Versión 1 Página 2 de 13 CONTENIDO Manual de usuario Contenido 1- VALE... 4 2- DESCARGA DE LA APLICACIÓN:... 4 3- REGISTRARSE EN VALE- OBTENCIÓN DE USUARIO

Más detalles

REGLAMENTO ELECCIONES PARA LA RENOVACIÓN DE LOS SECTORES DE PROFESORES Y DOCTORANDOS EN EL COMITÉ DE DIRECCIÓN DE LA EDUC

REGLAMENTO ELECCIONES PARA LA RENOVACIÓN DE LOS SECTORES DE PROFESORES Y DOCTORANDOS EN EL COMITÉ DE DIRECCIÓN DE LA EDUC REGLAMENTO ELECCIONES PARA LA RENOVACIÓN DE LOS SECTORES DE PROFESORES Y DOCTORANDOS EN EL COMITÉ DE DIRECCIÓN DE LA EDUC Elecciones para la renovación del sector de: 1) Los Profesores de los programas

Más detalles

UF0518 Gestión Auxiliar de la Correspondencia y Paquetería en la Empresa

UF0518 Gestión Auxiliar de la Correspondencia y Paquetería en la Empresa UF0518 Gestión Auxiliar de la Correspondencia y Paquetería en la Empresa TITULACIÓN DE FORMACIÓN CONTINUA BONIFICADA EXPEDIDA POR EL INSTITUTO EUROPEO DE ESTUDIOS EMPRESARIALES Duración: 30 horas Precio:

Más detalles