Sie sind auf Seite 1von 34

PROYECTO: Framework DNIe

DOCUMENTO:

GUIA DE INSTALACIN Y USO DE LA APLICACIN DE VOTO, BASADA EN EL FRAMEWORKDNIe LENGUAJE DE PROGRAMACIN JAVA

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

CONTROL DOCUMENTAL
Documento Ttulo GuiaInsUso ApliVoto Java_3.docx Gua de instalacin y uso de Aplicacin de voto, basada en el Framework DNIe. Lenguaje de programacin Java Manual de instalacin y uso red.es AT / PE / QA

Tipo Entidad Autores

VERSIONES
Versin 1.0 1.1 1.2 1.3 Fecha 16/05/2011 27/06/2011 11/08/2011 23/11/2011 Descripcin y cambios realizados Versin inicial del documento Iteracin del documento Modificacin script de base de datos Incorporacin drivers OpenDNIe y Card Module

ACRNIMOS
PIN PKCS DNIe OCSP IDE Personal Identification Number Public Key Cryptography Standards Documento Nacional de Identidad Electrnico Online Certificate Status Protocol Integrated Development Environment

DOCUMENTOS DE REFERENCIA

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

2 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

NDICE DE CONTENIDO
1 1.1 1.2 1.3 2 INTRODUCCIN ..................................................................................................................................... 4 DESCRIPCIN GENERAL DEL PROYECTO ............................................................................................................... 4 AUDIENCIA ................................................................................................................................................... 4 OBJETO........................................................................................................................................................ 4 COMPONENTES...................................................................................................................................... 5 2.1 ENTORNO DE OPERACIN ................................................................................................................................ 5 2.1.1 Instalacin de MySQL ......................................................................................................................... 6 2.2 ENTORNO DE DESARROLLO............................................................................................................................... 9 2.2.1 Instalacin de NetBeans ..................................................................................................................... 9 2.3 ESTRUCTURA DE LA APLICACIN ...................................................................................................................... 12 3 3.1 4 4.1 4.2 4.3 4.4 4.5 4.6 4.7 5 5.1 5.2 6 7 INFORMACIN DE INSTALACIN ......................................................................................................... 13 INSTALACIN DE LA APLICACIN ...................................................................................................................... 13 USO DE LA APLICACIN........................................................................................................................ 14 LOGIN........................................................................................................................................................ 16 CREACIN DE PROCESOS................................................................................................................................ 17 CREACIN DE URNA...................................................................................................................................... 18 GESTIN DE URNA........................................................................................................................................ 19 PANTALLA DE INICIO ..................................................................................................................................... 20 PROCESO DE REGISTRO.................................................................................................................................. 21 PROCESO DE VOTO ....................................................................................................................................... 24 ANEXO I. SCRIPT DE BASE DE DATOS .................................................................................................... 29 CONEXIN .................................................................................................................................................. 29 SCRIPT DE BASE DE DATOS.............................................................................................................................. 29 ANEXO II. FICHEROS DE CONFIGURACIN ............................................................................................ 31 ANEXO III. CONECTORES ...................................................................................................................... 33

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

3 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

INTRODUCCIN

1.1

Descripcin general del proyecto

El principal objetivo del proyecto es disponer de una completa plataforma de fuentes abiertas (SFL) para el desarrollo rpido y sencillo de aplicaciones basadas en el uso del DNI electrnico. Para cubrir este objetivo la plataforma Framework DNIe1 incluye, entre otros, los siguientes elementos: Incluye una API de desarrollo (Framework DNIe), implementada sobre distintos lenguajes de programacin, que abstrae la necesidad de programar directamente sobre los drivers del DNIe, facilitando el desarrollo rpido y sencillo de aplicaciones basadas en el uso del DNIe. Incluye distintas aplicaciones que muestran, a modo de ejemplo, como se puede utilizar el Framework DNIe para la implementacin de aplicaciones; a la vez que se pueden utilizar como esqueleto para nuevas aplicaciones. Incorporacin de otros elementos que favorecen la implementacin de aplicaciones: accesibilidad al cdigo y ejecutables a travs del portal de informacin y descarga, mecanismos de emulacin del DNI fsico, asistente de generacin del entorno, etc.

Con todo ello se busca facilitar la incorporacin al mercado de nuevas soluciones que potencien el uso de las capacidades electrnicas del DNIe, minimizando la complejidad tecnolgica de este tipo de desarrollos.

1.2

Audiencia

El documento va dirigido, principalmente, a desarrolladores que vayan a implementar aplicaciones basadas en el uso del DNIe o que vayan a incluir alguna de sus capacidades.

1.3

Objeto

El objeto del presente documento trata y describe diversos aspectos de la instalacin y el uso de la aplicacin de voto, basada en el lenguaje de programacin Java

En el presente documento se utilizar la siguiente notacin: Se hablar de Plataforma Framework DNIe o Proyecto Framework DNIe para hablar de la plataforma completa con todos los elementos mencionados. Se hablar de Portal Framework DNIe para hablar del site de informacin y descarga del proyecto. Se hablar de Framework DNIe o Framework (lenguaje) para mencionar cualquiera de las APIs software que facilitan el desarrollo rpido de aplicaciones sobre cada uno de los lenguajes de programacin LD(*) Pgina: 4 de 34

Nivel de confidencialidad:
(*) LD: DI: ND:

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

COMPONENTES

2.1

Entorno de operacin

La aplicacin de voto requiere de una serie de elementos software para su correcto funcionamiento. A continuacin se detallan dichos recursos: Entorno de ejecucin java (JRE) versin 1.6 o superior. Puede descargarse de la direccin http://www.java.com/es/download/. Drivers para la comunicacin con el DNIe: Mediante el interfaz PKCS#11: OpenSCDNIe (http://www.dnielectronico.es/descargas/), OpenDNIe (http://forja.cenatic.es/projects/opendnie ). Interfaz Smart Card Module (disponible para entorno Windows mediante Windows Update).

Libreras de las que hace uso para su ejecucin: DNIeFramework.jar: FrameworkDNIe para Java bcprov-jdk16-145.jar,bctsp-jdk16-146.jar: Librera para operaciones criptogrficas. iText-5.0.6.jar: Librera para el manejo de archivos PDF. Log4j.jar: Librera para la generacin de logs. jdom.jar: Librera manejo de ficheros xml. ConectorCenso.jar: Conector para consulta de censo. ConectorHSM.jar: Conector para encriptacin.

Ejecutables generados por la aplicacin: AplicacionVotoDNIe.war Ejecutables de las aplicaciones de administracin: AdministracionVoto.jar Base de datos: mySQL 5.1 (por ejemplo)

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

5 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

2.1.1

Instalacin de MySQL

Para utilizar instalar MySQL debemos seguir los siguientes pasos:


1 - Requisitos de Windows

Para ejecutar MySQL para Windows, se necesita lo siguiente:

Un sistema operativo Windows de 32 bits, tal como 9x, Me, NT, 2000, XP, o Windows Server 2003. Se recomienda fuertemente el uso de un sistema operativo Windows basado en NT (NT, 2000, XP, 2003) puesto que stos permiten ejecutar el servidor MySQL como un servicio.

Soporte para protocolo TCP/IP. Una copia de la distribucin binara de MySQL para Windows, que se puede descargar de http://dev.mysql.com/downloads/. Nota: Si se descarga la distribucin a travs de FTP, se recomienda el uso de un cliente FTP adecuado que posea la caracterstica de reanudacin (resume) para evitar la corrupcin de ficheros durante el proceso de descarga.

Una herramienta capaz de leer ficheros .zip, para descomprimir el fichero de distribucin. Suficiente espacio en disco rgido para descomprimir, instalar, y crear las bases de datos de acuerdo a sus requisitos. Generalmente se recomienda un mnimo de 200 megabytes.

Tambin podran necesitarse los siguientes tems opcionales:

Si se necesitan tablas con un tamao superior a 4GB, debe instalarse MySQL en un sistema de ficheros NTFS o posterior. Al crear las tablas no debe olvidarse el uso de MAX_ROWS y AVG_ROW_LENGTH.

2- Eleccin de un paquete de instalacin

En la versin 5.0 de MySQL hay tres paquetes de instalacin para elegir cuando se instala MySQL para Windows. Son los siguientes:

El paquete Essentials: Tiene un nombre de fichero similar a mysql-essential-5.0.9-betawin32.msi y contiene los ficheros mnimamente necesarios para instalar MySQL en Windows, incluyendo el asistente de configuracin. Este paquete no incluye componentes opcionales como el servidor incrustado (embedded) y el conjunto de pruebas de rendimiento (benchmarks). El paquete Complete (Completo): Tiene un nombre de fichero similar a mysql-5.0.9-betawin32.zip y contiene todos los archivos necesarios para una instalacin completa bajo
LD(*) Pgina: 6 de 34

Nivel de confidencialidad:
(*) LD: DI: ND:

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

Windows, incluyendo el asistente de configuracin. Este paquete incluye componentes opcionales como el servidor incrustado (embedded) y el conjunto de pruebas de rendimiento (benchmarks). El Paquete Noinstall (Noinstall Archive): Tiene un nombre de fichero similar a mysqlnoinstall-5.0.9-beta-win32.zip y contiene todos los ficheros contenidos en el paquete Complete, a excepcin del asistente de configuracin. Este paquete no incluye un instalador automatizado, y debe ser instalado y configurado manualmente.

El paquete Essentials es el recomendado para la mayora de los usuarios.


3- Instalacin de MySQL con un instalador automtico

Los usuarios nuevos de MySQL 5.0 pueden emplear el asistente de instalacin y el asistente de configuracin para instalar MySQL en Windows. stos estn diseados para instalar y configurar MySQL de tal forma que los usuarios nuevos pueden comenzar a utilizar MySQL inmediatamente. Los asistentes de instalacin y configuracin se encuentran disponibles en los paquetes Essentials y Complete, y estn recomendados para la mayora de las instalaciones estndar de MySQL. Las excepciones incluyen a usuarios que necesitan implementar mltiples instancias de MySQL en un nico servidor y a usuarios avanzados que desean un control completo de la configuracin del servidor.
4- Arrancar MySQL como un servicio de Windows

En la familia NT (Windows NT, 2000, XP, 2003), la manera recomendada de ejecutar MySQL es instalarlo como un servicio del sistema operativo, de modo que se inicie y detenga automticamente cuando Windows lo haga. Un servidor MySQL instalado como servicio tambin puede controlarse desde la lnea de comandos empleando los comandos NET, o con la utilidad grfica Services. La utilidad Services (el Administrador de Servicios de Windows (Service Control Manager)) puede encontrarse en el Panel de Control (bajo Administrative Tools en Windows 2000, XP, y Server 2003). Es aconsejable cerrar la utilidad Services mientras se lleven a cabo operaciones de instalacin o remocin del servidor desde la lnea de comandos. Esto evita una cantidad de errores. Antes de instalar MySQL como un servicio Windows, se debera detener primero el servidor -si est en ejecucin- mediante el siguiente comando: C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u root shutdown Nota: si la cuenta de usuario MySQL root est protegida por una contrasea, la forma de invocar este comando ser C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqladmin -u root -p shutdown y proporcionando la contrasea cuando sea solicitada. Esto invoca la utilidad administrativa de MySQL, mysqladmin, para conectarse al servidor y transmitirle la orden de finalizacin. El comando se conecta como el usuario root de MySQL, el cual es la cuenta administrativa por defecto en el sistema de permisos de MySQL. Debe advertirse que los usuarios en este sistema son enteramente independientes de cualquier usuario de inicio de sesin perteneciente a Windows.
Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

7 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

Este comando instalar el servidor como un servicio: C:\> mysqld --install Si se producen problemas al instalar mysqld como un servicio usando slo el nombre del servidor, debe intentarse indicando la ruta completa. Por ejemplo: C:\> C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld --install La ruta al directorio bin de MySQL puede agregarse a la variable de entorno de Windows PATH:

En el Escritorio de Windows, hacer click derecho en el cono Mi PC y seleccionar Propiedades A continuacin, seleccionar la pestaa Opciones Avanzadas de la ventana Propiedades del Sistema, y hacer click en el botn Variables de Entorno. Bajo Variables del Sistema, seleccionar Path , y hacer click en el botn Modificar. Aparecer el cuadro de dilogo Modificar Variable del Sistema. Debe colocarse el cursor al final del texto mostrado en el espacio denominado Valor de la Variable. (Presionando la tecla Fin (End) se puede tener seguridad que el cursor quede realmente al final del texto.) Luego debe ingresarse la ruta completa al directorio bin de MySQL (por ejemplo, C:\Program Files\MySQL\MySQL Server 5.0\bin). Si haba un texto anterior, debe haber un punto y coma separando aquel y esta nueva ruta. Cerrar todos los cuadros de dilogo haciendo click en OK. Ahora debera poderse invocar cualquier programa ejecutable de MySQL simplemente tecleando su nombre en el indicador de sistema desde cualquier directorio, sin tener que indicar la ruta completa. Esto incluye a los servidores, el cliente mysql, y todas las utilidades de lnea de comandos tal como mysqladmin y mysqldump. No se debera agregar el directorio bin de MySQL al PATH de Windows si se estn ejecutando mltiples servidores MySQL en el mismo ordenador.

Tambin deberemos instalar el Connector/J. Para ello lo descargaremos de http://dev.mysql.com/downloads/connector/j/ y lo aadiremos al proyecto. Una forma de hacerlo es pulsando libraries en NetBeans y escoger la librera del conector para aadirla. Advertencia: debe tenerse mucho cuidado al editar manualmente la variable de sistema PATH; el borrado o modificacin accidental de cualquier parte podra dejar al sistema funcionando mal o incluso inutilizable.

En el anexo I, se incluye el script de generacin de las tablas necesarias para un despliegue bsico de la base de datos.

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

8 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

2.2

Entorno de desarrollo
IDE: NetBeans 6.9.1 jdk1.6.0_22

Para el desarrollo de la aplicacin se ha utilizado el siguiente entorno.

2.2.1
1-

Instalacin de NetBeans
Requisitos de software

Antes de instalar el IDE NetBeans, debe tener instalado en el sistema la actualizacin 13 del JDK (Java SE Development Kit) 6.0, u otra posterior. La versin 6.9.1 del IDE no puede instalarse mediante el JDK 5.0. Puede descargar la versin ms reciente de JDK en http://java.sun.com/javase/downloads. Para las opciones de descarga de PHP, Ruby y C/C++ puede instalar el JRE (Java Runtime Environment)6.0 en lugar de JDK. Sin embargo, si piensa usar cualquiera de las funciones de Java, necesitar el JDK 6.0.
2Opciones de descarga del instalador

En la pgina de descarga del IDE NetBeans puede obtener uno de los diversos instaladores, cada uno de los cuales contiene el IDE bsico y herramientas adicionales. Los siguientes instaladores estn disponibles:

Java SE. Proporciona todas las caractersticas estndar para el desarrollo de Java SE. Tambin se incluye la compatibilidad con el desarrollo de RCP de la plataforma NetBeans. JavaFX. Proporciona el SDK de JavaFX 1.3.1 y el compositor de JavaFX, para el desarrollo de aplicaciones multiplataforma de JavaFX. Java. Proporciona herramientas para desarrollar aplicaciones de Java SE, Java EE y Java ME. Tambin se incluye la compatibilidad con el desarrollo de RCP de la plataforma NetBeans. Esta opcin de descarga tambin incluye el servidor GlassFish OSE (Open Source Edition) 3.0.1, y Apache Tomcat 6.0.26. Ruby. Proporciona herramientas para el desarrollo de Ruby y es compatible con Rails y JRuby. Tambin incluye el servidor GlassFish OSE (Open Source Edition) 3.0.1. C/C++. Es compatible con el desarrollo en los lenguajes C, C++, Qt, Fortran y Assembly. PHP. Proporciona herramientas para el desarrollo de PHP 5.x, y los Frameworks Zend y Symfony. All (Todo). sta es la opcin de descarga completa, que incluye todos los entornos de ejecucin y los paquetes disponibles para el IDE NetBeans.

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

9 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: 3GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

Personalizacin de la instalacin

Si desea agregar funciones a la configuracin del IDE NetBeans, utilice el gestor de complementos de NetBeans. Por ejemplo, suponga que descarga e instala el paquete de Ruby. A continuacin, decide que desea probar las funciones de C/C++. Para ello, hay que acceder a NetBeans Plugin Manager desde el IDE (seleccione Herramientas > Plugins) y agregar el paquete C/C++ a la instalacin existente. Hay varias notas importantes sobre la instalacin y la configuracin de algunas funciones del IDE NetBeans: 1. Apache Tomcat 6.0.26 est incluido en las opciones de descarga de "Java" y de "Todo", no obstante no se instala por defecto en cualquiera de estas opciones. Para instalar Apache Tomcat desde las descargas de Java o de "Todo", ejecute el instalador y en cuadro de dilogo de instalacin personalizada seleccione Apache Tomcat 6.0.26. 2. Para el desarrollo de C/C++, aplicable a los tipos de descarga "C/C++" y "All" (Todo), deber instalar adems compiladores y herramientas. Para obtener ms informacin, consulte Configuracin del IDE NetBeans para C/C++/Fortran. 3. En Mac OS X, puede personalizar la instalacin del IDE NetBeans en las opciones de descarga de Java, Ruby, y "All" (Todo). Esta posibilidad no est disponible en las descargas JavaSE, PHP y C/C++. 4. Tambin puede descargar el fichero zip independiente de plataforma y ejecutar el IDE NetBeans con el fichero ejecutable. Denote que el Servidor GlassFish OSE (Open Source Edition), y Apache Tomcat nicamente estn disponibles con instaladores especficos de plataforma.
4Inicio de la descarga

1. Vaya a http://netbeans.org/downloads/ 2. En la parte superior derecha de la pgina, seleccione el idioma y la plataforma en la lista desplegable. Tambin puede optar por descargar y utilizar el archivo zip independiente de la plataforma. 3. Haga clic en el botn Descargar en la opcin de descarga que desee instalar. 4. Guarde el archivo del instalador en el sistema.
5Instalacin del software

5. Una vez finalizada la descarga, ejecute el instalador. 6. El archivo del instalador de Windows tiene la extensin .exe. Haga doble clic en l para ejecutarlo. 7. Para seleccionar las herramientas y tiempos de ejecucin que se van a instalar, siga estos pasos en la pgina de bienvenida del asistente de instalacin: 8. Haga clic en Personalizar. 9. En el cuadro de dilogo Personalizar la instalacin, realice las selecciones. 10. Haga clic en Aceptar. 11. En la pgina de bienvenida del asistente para la instalacin, haga clic en Siguiente.
Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

10 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

12. En la pgina de aceptacin de los acuerdos de licencia, revise los acuerdos de la licencia, haga clic en la casilla de aceptacin, y haga clic en Siguiente. 13. En la pgina de instalacin del IDE NetBeans, siga estos pasos: 14. Acepte el directorio de instalacin predeterminado del IDE NetBeans o especifique otro directorio. 15. Nota: El directorio de instalacin debe estar vaco y el perfil de usuario con el que est ejecutando el instalador debe tener permisos de lectura/escritura en este directorio. 16. Acepte la instalacin de JDK predeterminada para usarlo con el IDE NetBeans o seleccione una instalacin diferente en la lista desplegable. Si el asistente de instalacin no encuentra una instalacin de JDK compatible para usar con el IDE NetBeans, no se instalar en la ubicacin predeterminada. en este caso, especifique una ruta a un JDK instalado y haga clic a Siguiente, o cancele la instalacin en curso. Despus de haber instalado la versin necesaria del JDK puede reiniciar la instalacin. 17. Si se abre la pgina de instalacin del Servidor GlassFish OSE (Open Source Edition) 3.0.1, acepte el directorio predeterminado de instalacin o bien especifique otro diferente. 18. Si va a instalar Apache Tomcat: en la pgina de instalacin, acepte el directorio de instalacin predeterminado o especifique otra ubicacin para la instalacin. 19. En la pgina de resumen, compruebe que la lista de componentes que se van a instalar es correcta y que dispone de espacio suficiente en el sistema para la instalacin. 20. Haga clic en Instalar para comenzar la instalacin.

Nota: si surgen problemas para instalar el software correctamente, consulte Resolucin de problemas para obtener descripciones y sugerencias para solucionar problemas no resueltos que pueden afectar al proceso de instalacin.

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

11 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

2.3

Estructura de la aplicacin

En lneas generales la aplicacin de voto est formada por los siguientes componentes:
Conector TSA Conector HSM InfoProcesos Conector Censo

CreacionUrna

Registro UsoUrna

Voto

Acceso a base de datos

Base de datos

Los distintos mdulos funcionales se pueden ejecutar de forma independiente, teniendo slo en comn el acceso a la misma base de datos. Los conectores pueden ser llamados, indistintamente, por unos mdulos o por otros. Para este ejemplo se ha utilizado una arquitectura cliente-servidor en entorno Web. La parte cliente utiliza applets java tanto para acceder a funcionalidad del DNIe como para realizar el cifrado del voto, ya sea de forma real o emulada. La parte servidora ofrece la persistencia de datos y la lgica de la aplicacin. La comunicacin entre el navegador y el servidor debe estar securizada. Para ello, deberamos realizar peticiones https en vez de http, para lo cual tendramos que configurar el servidor adecuadamente. Sin embargo, al tratarse de una aplicacin de prueba, las peticiones son http, con el objetivo de facilitar su despliegue.

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

12 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

INFORMACIN DE INSTALACIN

3.1

Instalacin de la aplicacin

El archivo instalable de la aplicacin de voto que se genera es AplicacionVotoDNIe.war, que puede ser desplegado en un servidor de aplicaciones. Para el servidor utilizado en el desarrollo que es Apache Tomcat 6.0.29. debemos simplemente copiar el archivo en cuestin en la carpeta webapps y arrancar Apache. Las aplicaciones de administracin se puede distribuir en un archivo .zip, que incluye el contenido de la carpeta dist del proyecto. Esta carpeta contendr el archivo AdministracionVoto.jar y las libreras de las que dependen. De este modo, slo debemos descomprimir el archivo zip y hacer doble click sobre el archivo jar en cuestin o bien ejecutar en la lnea de comandos: Java jar AdministracionVoto.jar En el caso de las aplicaciones hechas en Java, no se ha realizado ningn instalador, ya que se perdera la cualidad multiplataforma que posee.

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

13 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

USO DE LA APLICACIN

Las distintas aplicaciones incluidas en la aplicacin de ejemplo estn planteadas, por una parte, para demostrar las distintas posibilidades de integracin con el FrameworkDNIe y, por otra, para mostrar distintas funcionalidades y posibilidades para la implementacin de un proceso completo de voto electrnico. En lo que se refiere a la integracin con funcionalidades ofrecidas por el FrameworkDNIe se han incluido, a modo de ejemplo: La funcionalidad de autenticacin se ha incluido en el proceso de registro (alta de un usuario en un determinado proceso electoral) y en el proceso de voto (antes de ver las distintas opciones de voto y cuando se genera el voto). La funcionalidad de acceso a datos del DNIe tambin se ha incluido en el mismo proceso de registro (por ejemplo, para extraer el nmero del DNIe y emular una consulta al censo). Tambin se podra haber incluido la funcionalidad de autenticacin en cada una de las pantallas ms relacionadas con funcionalidades de gestin (emulando la necesidad de que un administrador del sistema tuviera que autenticarse mediante DNIe), pero no se ha implementado por no aportar novedades frente a lo ya implementado. La funcionalidad de firma se ha incorporado en la fase de recuento: una vez generado un fichero pdf que incluya todos los votos realizados (para un proceso electoral) se realiza la firma PADES del mismo.

En lo que se refiere a las funcionalidades propias de un proceso de voto electrnico se han incorporado las siguientes: Funcionalidad de login: Para acceder al men de la aplicacin. Men de administracin: Una vez haya completado el proceso de login, el administrador podr acceder a un men con las diferentes opciones de administracin: Funcionalidad de creacin de procesos: Al elegir esta opcin, el administrador acceder a una pantalla en la que podr crear procesos y opciones de voto para estos procesos. Funcionalidades para la creacin de la urna. Entendiendo urna como la tabla de base de datos donde se almacenan los votos cifrados, junto con su informacin asociada: sellos de tiempo para su creacin, apertura y cierre, identificador para acceso a las claves de cifrado y descifrado, etc.) Funcionalidades para la gestin de la urna: apertura, cierre y recuento de votos. Funcionalidad de registro: alta de usuarios en un determinado proceso electoral.

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

14 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

Funcionalidad de voto: proceso de voto electrnico para un usuario registrado, hasta que realiza el voto.

Todas las funcionalidades comentadas se podran ejecutar de manera aislada y separada temporalmente (como probablemente podra pasar en un proceso real de voto electrnico), siguiendo el orden que se indica en los siguientes apartados

A continuacin se incluyen las distintas pantallas que permiten desarrollar estas funcionalidades a los distintos usuarios:

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

15 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

4.1

Login

Al ejecutar la aplicacin AdministracionVoto.jar se muestra la siguiente pantalla: Al arrancar la aplicacin de administracin de voto(AdministracionVoto.jar) se le solicitar al administrador que se autentique mediante login, introduciendo el usuario y password para acceder al men de administracin:

Al autenticarnos correctamente se accede al siguiente men, que ofrece todas las opciones de administracin:

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

16 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

4.2

Creacin de procesos

En esta pantalla deberemos insertar el nombre y la descripcin del proceso que vayamos a crear, para despus aadir las opciones de voto para este nuevo proceso. Para ello, debemos introducir el nombre y la descripcin de la opcin, y pulsar el botn aadir. Al aadir la opcin, su nombre aparecer en el cuadro seleccionable de la derecha, de modo que si queremos eliminar alguna opcin de las aadidas, no tenemos ms que seleccionarla de este cuadro y pulsar eliminar. Una vez estemos conformes con los datos introducidos, debemos pulsar el botn de Guardar Proceso Electoral, de forma que se introducirn los datos en la base de datos.

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

17 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

4.3

Creacin de urna

Al seleccionar la opcin de Creacin Urna se muestra la siguiente pantalla:

En la ventana se permite realizar las siguientes acciones: Seleccionar un determinado proceso electoral (de los incluidos en base de datos). Incluir las fechas de inicio y fin del proceso de registro (periodo durante el cual se pueden registrar los usuarios en un determinado proceso electoral) Incluir las fechas de inicio y fin del proceso de voto (periodo durante el cual se pueden incluir votos para un determinado proceso electoral). Crear Urna: se incluyen las fechas insertadas en base de datos.

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

18 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

4.4

Gestin de urna

Al seleccionar la opcin de Gestin Urna se muestra la siguiente pantalla:

En la ventana se permite realizar las siguientes acciones: Seleccionar un determinado proceso electoral (de los incluidos en base de datos). Incluir las fechas de inicio y fin del proceso de registro (periodo durante el cual se pueden registrar los usuarios en un determinado proceso electoral) Incluir las fechas de inicio y fin del proceso de voto (periodo durante el cual se pueden incluir votos para un determinado proceso electoral). Crear Urna: se incluyen las fechas insertadas en base de datos.

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

19 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

4.5

Pantalla de inicio

Al arrancar la aplicacin se le muestran al usuario las opciones de darse de alta en un proceso electoral y de iniciar el proceso de votacin para un proceso electoral en el que se haya registrado previamente.

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

20 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

4.6

Proceso de registro

Al pulsar registro accederemos a la pantalla donde podremos escoger el proceso electoral en el que queramos participar. Pulsaremos enviar para procesar los datos.

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

21 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

Posteriormente se nos pedir que introduzcamos el DNIe y pulsemos el botn alta usuario para comenzar el proceso de alta. En este proceso, el usuario se autenticar con su DNIe para obtener sus datos.

Una vez realizado el proceso, se nos mostrar una pantalla en la que nos informarn del resultado del proceso de alta.

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

22 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

Para realizar la autenticacin y obtener los datos del DNIe debemos tener acceso al equipo del usuario. Por esta razn, esta funcionalidad se ha implementado con applets java. Para evitar las restricciones de acceso de los applets, estos deben ser firmados, por lo que generalmente se pedir al usuario que confirme su confianza en el certificado usado para firmarlos.

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

23 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

4.7

Proceso de voto

Al elegir la opcin votacin se nos pedir que introduzcamos el DNIe y pulsemos el botn iniciar votacin. En ese momento se autenticar nuestro DNIe y podremos continuar con el proceso de votacin.

Una vez iniciado exitosamente el proceso de votacin, podremos escoger el proceso electoral en el que queramos realizar la votacin de aquellos procesos en los que estemos registrados. Cuando hayamos escogido el proceso deseado, debemos pulsar enviar para continuar.

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

24 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

25 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

A continuacin elegiremos la opcin que votaremos en el proceso electoral escogido.

Llegados a este punto, tan solo queda confirmar nuestro voto, de manera que se cifrar el contenido del mismo y se mandar cifrado al servidor que lo almacenar en la base de datos.

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

26 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

27 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

Finalmente se nos mostrar el resultado de todo el proceso.

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

28 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

ANEXO I. SCRIPT DE BASE DE DATOS

5.1

Conexin

Para conectarse a la base de datos se han utilizado los siguientes datos (que en este ejemplo se incluyen directamente en el cdigo).
server=localhost; user=root; database=aplicacionvoto; port=3306; password=1nn0v43;

5.2

Script de base de datos

Ejemplo de script para el despliegue de base de datos:


CREATE TABLE procesoElectoral ( Id_proceso BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, Nombre_proceso VARCHAR(50), Descripcion VARCHAR(50), Tipo VARCHAR(10), Ubicacion_censo VARCHAR(20), Num_candidatos BIGINT, Fecha_inicio_registro DATETIME, Fecha_fin_registro DATETIME, Fecha_inicio_votacion DATETIME, Fecha_fin_votacion DATETIME, Sello_apertura_urna VARCHAR(20), Sello_inicio_voto VARCHAR(20), Sello_fin_voto VARCHAR(20), Referencia_claves VARCHAR(50) ); CREATE TABLE usuarios ( Id_usuario BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, DNI VARCHAR(10) NOT NULL UNIQUE, Nombre VARCHAR(25), Apellidos VARCHAR(50), Cert VARCHAR(50), Reto VARCHAR(50), Ubicacion_censo VARCHAR(20), Id_censo VARCHAR(20) ); CREATE TABLE registroVotado ( Voto_realizado INT, Id_usuario BIGINT NOT NULL, Id_proceso BIGINT NOT NULL, FOREIGN KEY (Id_usuario) REFERENCES usuarios(Id_usuario) ON DELETE CASCADE, FOREIGN KEY (Id_proceso) REFERENCES procesoElectoral(Id_proceso) ON DELETE CASCADE,

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

29 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

PRIMARY KEY (Id_usuario,Id_proceso) ); CREATE TABLE opcionVoto ( Id_opcion BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, Nombre_opcion VARCHAR(25), Descripcion_opcion TEXT, Id_proceso BIGINT, FOREIGN KEY (Id_proceso) REFERENCES procesoElectoral(Id_proceso) ON DELETE CASCADE ); CREATE TABLE voto ( Id_voto BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY, Ubicacion_censo VARCHAR(20), Id_proceso BIGINT, Contenido TEXT, FOREIGN KEY (Id_proceso) REFERENCES procesoElectoral(Id_proceso) ON DELETE CASCADE );

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

30 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

ANEXO II. FICHEROS DE CONFIGURACIN

La aplicacin dispone de dos ficheros de configuracin ubicados en la carpeta del proyecto /src/java/es/red/. Uno de los ficheros es mysql.properties, que contiene los datos de configuracin de la base de datos MySQL, en la aplicacin de ejemplo se ha utilizado la siguiente configuracin: #usuario MySQL usuario=root #pass MySQL password=1nn0v43 #ip Servidor IP=localhost #puerto MySQL puerto=3306 El otro fichero, llamado prop.properties, contiene la ruta donde se guardarn los certificados. Debemos crear los directorios que indiquemos en este fichero par que la aplicacin funcione correctamente. En la aplicacin de ejemplo se ha utilizado la siguiente configuracin: ruta=C:\\certsvoto

Tambin se incluye en los applets una carpeta src/es/red/ que contiene un archivo de propiedades llamado prop.properties que contiene la IP y puerto del servidor Web usado. En la aplicacin de ejemplo se ha utilizado la siguiente configuracin: #ip Servidor IP=localhost #puerto aplicacin puerto=12000

La aplicacin de administracin contiene el mismo fichero de propiedades para la configuracin de MySQL, y tambin contiene un fichero prop.properties, que en este caso contiene el usuario y contrasea de la pantalla de login:

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

31 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

usuario=usuario password=usuario

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

32 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

ANEXO III. CONECTORES

En la aplicacin de ejemplo se han emulado los siguientes componentes Peticiones a una TSA Integracin con un HSM o dispositivo equivalente para la generacin y custodia de las claves que se utilizarn para cifrar o descifrar los votos. Peticiones a un censo.

Para emular la conexin con estos elementos se han implementado clases que pueden actuar como pasarela (que deberan ser modificados en un entorno real) y que contienen los siguientes mtodos pblicos (a modo de ejemplo):

Conector Censo

//Chequeo de que la persona con el dni indicado est en el censo public Boolean EstaEnCenso(string dni)

En este caso, los mtodos no realizan ningn tipo de operacin: EstaEnCenso devuelve siempre true

Conector HSM

//devuelve el id correspondiente al par de claves generado public int CrearEntornoSeguro(string nombre_proceso)

//descifra los datos recibidos con la clave privada public string DescifrarConClavePrivada(byte[] datosEncriptar, String texto_proceso)

//cifra los datos recibidos con la clave pblica public string obtenerClavePublica(string texto_proceso)

En este caso, los mtodos realizan las siguientes operaciones: CrearEntornoSeguro genera un par de claves RSA y las almacena mediante sendos ficheros (en la carpeta Claves). Se ha utilizado el nombre del proceso electoral para diferenciar unas
Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

33 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Ttulo: Gua de instalacin y uso de la aplicacin de voto, basada en el Framework DNIe Lenguaje de programacin Java. Proyecto: Framework DNIe Doc: GuiaInsUso ApliVoto Java_3.docx Ref: docs_apl_vot_java_uso Versin: 1.3 Fecha: 23/11/2011

claves de otras y devuelve un id (como emulacin de un identificador para las claves generadas) En un entorno real (por ejemplo, un HSM) no sera necesario enviar el nombre del proceso electoral; el id que devuelve el mtodo sera el identificativo asociado al par de claves generados y sera la aplicacin la que la asociara a un proceso electoral. La clave privada nunca saldra del HSM y la clave pblica se podra extraer para aquellos casos en los que sea necesario cifrar en cliente, en vez de sobre el propio HSM. obtenerClavePublica Devuelve la clave pblica con la que se realiza el cifrado de los datos recibidos. En este caso, (a modo de emulacin) se utiliza el nombre del proceso electoral para encontrar el fichero correspondiente que contiene la clave. En un caso real este proceso de cifrado se podra tener que realizar en un mdulo cliente para garantizar que el voto se transmitiera ya cifrado. DescifrarConClavePrivada realiza el descifrado de los datos recibidos con la clave privada. En este caso, (a modo de emulacin) se utiliza el nombre del proceso electoral para encontrar el fichero correspondiente que contiene la clave. En un caso real el proceso de descifrado siempre se hara internamente al HSM, envindole los datos a descifrar y el id del entorno de seguridad correspondiente, en vez de el nombre del proceso electoral.

Conector TSA

//Devuelve un string o sello de tiempo basado en la hora del sistema public string ObtenerTimeSpan(string pasaSello)

En este caso el mtodo utilizado, simplemente, devuelve la hora del sistema como un string y un determinado formato. En un entorno real sera aconsejable realizar una peticin a una TSA para obtener un sello de tiempo ms robusto.

Nivel de confidencialidad:
(*) LD: DI: ND:

LD(*)

Pgina:

34 de 34

Libre distribucin Slo distribucin interna Bajo acuerdo de no revelacin (NDA)

Das könnte Ihnen auch gefallen