banner
  • Inicio
  • Marco...
  • Voto...
  • Caso...
  • Pruebas...
  • Conclusiones
  • Bibliografía


Inicio


El amplio crecimiento de las telecomunicaciones ha creado el paradigma de cómputo móvil. Ahora los usuarios portadores de teléfonos móviles (celulares) son capaces no solo de hablar, sino también de consultar su correo electrónico, realizar transacciones comerciales como acceso a cuentas bancarias y acciones de bolsa, hasta revisar la cartelera del cine. Todo esto ha sido posible gracias a la tecnología WAP 1, creando nuevos servicios tales como el Internet Móvil. Actualmente un gran número de aplicaciones de escritorio pueden ser utili-zadas en dispositivos móviles con ciertas limitaciones, tal es el caso de la emisión de votos para una jornada electoral.


Se han llevado a cabo diversos desarrollos para la proble-mática de la emisión de votos. En Analysis of an Electronic Voting System2 se describe el sistema AccuVote-TS, donde el voto puede ser emitido a través de una Pokect PC integrada a una fotocopiadora usando “smartcards”; este sistema fue utilizado en los procesos electorales en Florida, Estados Unidos y Brasil en el 2000. En Electronic Voting: A Safety Critical System3 se presenta el sistema Nedap/Powervote, usado por el gobierno irlandés, para emitir el voto vía Internet. En Vote Early, Vote Often, and VoteHere: A Secury Analysis of VoteHere4 se presenta el sistema BHTi que permite emitir y verificar el voto vía Internet, utilizado en: Reino Unido en los años 2003 y 2002, Suecia en el 2001 y Estados Unidos en el 2000. En La UAM participa en el prototipo de urna electrónica5 se describe el sistema Urna Electrónica, propuesto por el Instituto Electoral y Participación Ciudadana (IEPC) en el estado de Coahuila, México. El sistema se instala en una PC conectado a una pantalla táctil, y desde ahí el elector es capaz de emitir su voto.


Estos trabajos están basados en el Web, es decir el voto solo puede ser emitido desde una terminal fija conectada a Internet, no tienen la capacidad de emitir el voto desde cualquier lugar y en cualquier instante por que no utilizan dispositivos móviles.


En este artículo se presenta el desarrollo de una aplicación Web que permite emitir el voto a través del teléfono celular. La aplicación Web es capaz de procesar y almacenar los sufragios emitidos en una base de datos soportada por PostgreSql bajo la plataforma Linux. El procesamiento de los votos emitidos es llevado a cabo mediante Servlets de Java. Estos son capaces de presentar los resultados en forma de archivos XHTML-MP transportados por el protocolo WAP hasta su presentación en la pantalla de un teléfono celular. Con respecto a la seguridad, la encriptación de los datos se lleva a cabo mediante los paquetes java.security y javax.crypto, el uso del protocolo SSL, el uso del WAP Proxy Kannel del lado del servidor y del protocolo TLS (Transport Layer Security) del lado del cliente móvil. La representación de los resultados se realiza a través de gráficas de barras y de pastel, utilizando la biblioteca de clases “JFreeChart” desarrollada en Java.


El resto del artículo está organizado de la siguiente manera. En la sección 2 se presenta el marco teórico de las herramien-tas y tecnologías utilizadas en el desarrollo de la aplicación VM. En la sección 3 se describe la implementación de los componentes de la aplicación VM. En la sección 4 se expone un caso de estudio donde se plantea la problemática que se presenta durante el desarrollo de un proceso electoral. En la sección 5 se describen las pruebas y resultados obtenidos. Finalmente en la sección 6 se presenta las conclusiones.

f
Subir


Marco teórico

 

Acontinuación se describen las herramientas y tecnologías utilizadas para la implementación de VM.


A. WAP (Wireless Application Protocol)


WAP fue creado en 1997 por WAP Forum (Nokia, Motorola, Ericsson y Phone), hoy consolidado en Open Mobile Alliance (OMA). WAP posibilita el acceso a Internet sin necesidad de una computadora y un módem. Está diseñado para trabajar con las limitaciones de los celulares, tales como: memoria y batería limitada, pantallas pequeñas, bajo ancho de banda y limitaciones para introducir datos.1,6 El protocolo WAP ha evolucionado durante el transcurso del tiempo, actualmente se encuentra en la versión 2.0. Esta versión adoptó las especificaciones IETF (Internet Engineering Task Force).7 WAP 2.0 es más similar al protocolo de Internet común HTTP/TCP, el cual usa el Proto-colo de Transmisión de Hipertexto Inalámbrico (W-HTTP) y TCP (Transmission Control Protocol) para comunicar con el WAP Proxy,8,9,10 como se muestra en la Fig. 1.


WAP 2.0 utiliza el protocolo TLS para proporcionar seguridad punto a punto e integración con la seguridad del Internet cableado. El objetivo es permitir el uso seguro del comercio móvil, aplicaciones de banca móvil y ofertas de servicio.1

Fig. 1. Protocolos usados por WAP 2.0.

 

B. XHTML-MP


XHTML-MP es un subconjunto del lenguaje XHTML que se usa para el desarrollo de páginas Web. Se creó para cubrir las limitaciones de los dispositivos móviles tales como: celulares y PDAs.10


Las características principales de XHTML-MP son: soporte para imágenes y texto, manejo de variables y formularios para el intercambio de información entre el teléfono celular y el servidor. XHTML-MP usa el vocabulario de XML (Extensible Markup Language), sistema basado en etiquetas que se usa para definir, validar y compartir formatos de documentos.8,11,12


C. Cómputo Móvil


Cada usuario de un sistema celular es también llamado un suscriptor, y pueden ser estacionarios o móviles. Si es móvil entonces la red celular debe ser capaz de manipular el movimiento del usuario cuando se mueva de una celda a otra, a este evento se le conoce como transferencia entre celdas (handoff o handover).13 En 1947 Bell Telephone concibió el diseño del sistema celular en celdas. Como se representa en la Fig. 2. Las celdas se pueden clasificar generalmente en 3 categorías: macroceldas, microceldas y picoceldas.14

Fig. 2. Ejemplo de topología celular:

picoceldas, microceldas y macroceldas.

 

Un ambiente de computación móvil se compone de un conjunto de entidades: hosts móviles (HM) y hosts fijos (HF) como se ilustra en la Fig. 3. Mediante el uso de un pequeño navegador, el HM envía peticiones a la estación base (EB), bajo el protocolo WAP en formato XHTML-MP, la EB envía la petición al WAP Proxy Kannel (WP), el WP envía esta petición a través de HTTP a un servidor Web (SW). Una vez procesada la petición, el SW reenvía al WP la respuesta, el WP la reenvía a la EB y ésta a su vez la encamina hacia el HM.6,15

 


Fig. 3. Arquitectura de un ambiente móvil.


D. Servlets


Los Servlets se ejecutan del lado del servidor (ver Fig. 4), son programas basados en Java que construyen páginas Web, agregan funcionalidad a los SW y permitir comunicaciones tipo petición/respuesta, las peticiones pueden venir en la forma de un HTTP, URL, FTP. La mayor parte de las aplicaciones Web basadas en Servlets se construyen en el marco de trabajo del modelo petición/respuesta HTTP. Los Servlets pueden realizar tareas tales como: procesar formularios, accesar bases de datos, envío de correo y procesamiento local; dando lugar a páginas dinámicas.11,16


Fig. 4. Diagrama de despliegue Voto Móvil.

 

f
Subir

Voto móvil

VM permite a los electores elegir entre las planillas que compiten por un cargo y poder emitir el voto de manera digital a través del teléfono celular desde cualquier lugar donde exista acceso a una red celular.


VM está enfocada para su uso en teléfonos celulares siempre y cuando posean un navegador compatible con las especificaciones WAP/XHTML-MP. Se permitirá la emisión del voto sólo a personas validadas para ello. En la sección 4 se describe un caso de estudio para la emisión del voto en las elecciones del CESA (Consejo Ejecutivo de la Sociedad de Alumnos) del Instituto Tecnológico de Zacatepec (ITZ).


El modelo conceptual de VM se muestra en la Fig. 5. Los módulos con los que interactúa el actor alumno son: el módulo Registrar alumno y el módulo Emitir voto, que son explicados en las secciones A y B. El actor administrador interactúa con el módulo Graficar resultados que se explica en la sección C.


Fig. 5. Modelo Conceptual de VM.

 

El desarrollo de las distintas interfaces de usuario de la aplicación VM se crearon utilizando XHTML-MP. El cual consta de los siguientes módulos:


A. Registrar alumno


La pantalla de bienvenida a la aplicación VM, tiene 2 opciones: “Usuario Existente” y “Nuevo Usuario”, como se muestra en la Fig. 6a. Cuando se accede por vez primera a la aplicación, se elige la opción “Nuevo Usuario”. En la Fig. 6b se ilustra una interfaz de autenticación al usuario, donde el alumno introduce su nombre y número de control (clave de identificación personal en el ITZ) El alumno introduce estos datos a través del teclado del celular. El alumno acepta la entrada pulsando el botón Aceptar. VM comprueba estos datos para ver si es válido, si los datos introducidos son correctos y están validados en la base de datos se crea una sesión. VM pedirá que el alumno se cree un login y un password para poder emitir el voto (ver Fig. 7). Este proceso es realizado mediante los Servlets CheckData.java y CreateLogin.java.


El método Exist_DB de la clase CheckData.java realiza una consulta a la base de datos con información de los alumnos prerregistrados, es decir, si es un usuario valido y que no se haya creado un login o un password entonces su registro debe existir, al cual solo agregará datos para el login y password.



Fig. 7. Diagrama de despliegue voto móvil.


B. Emitir voto


Una vez que el proceso de autenticación ha finalizado con éxito, el usuario entrará como usuario existente a la aplicación VM invocando al Servlet Questions.java cuya función es presentar al usuario 4 preguntas (dirección, estado civil, edad, número de teléfono, estatura, C_P, ciudad, deporte favorito, CURP, clave de elector, estado, colonia y sexo) elegidas de forma aleatoria de la base de datos, solo para autenticar que realmente es el usuario correspondiente al login y password que se hayan introducido (ver Fig. 6c).


El servlet CompareQuetions.java realiza una comparación de respuestas. Si las respuestas que el usuario proporcionó no son las mismas con las que se encuentran almacenadas en la base de datos, entonces se vuelve a ejecutar el servlet CompareQuetions.java. El usuario solo tendrá 3 oportuni-dades para poder contestar correctamente las preguntas, de lo contrario se le asigna un 1 en el campo denegar_acceso de la tabla alumno y se le denegará la emisión del voto, solo el administrador de VM podrá eliminar el 1 del campo denegar_acceso y permitir de nuevo el proceso de emisión del voto al usuario. Si las respuestas que el usuario proporcionó son correctas se le presentarán las planillas previamente registradas para las elecciones, como lo muestra la Fig. 6, así como una pequeña descripción de las mismas (presidente, lema, logotipo) para que el votante tenga la información de cada planilla. El usuario emitirá el voto introduciendo el número de la planilla de su preferencia.


El Servlet Vote.java almacenará en la tabla votos de la base de datos el voto y la hora del momento en que el usuario votó, para que el usuario no pueda votar otra vez. Como resultado el elector recibirá un mensaje de “sufragio emitido”. Las clases principales que conforman a VM ilustrando la forma en que la aplicación trabaja como un todo único e integral se ilustran en la Fig. 8.

 

Fig. 6. Pantallas de navegación de la aplicación VM.

 

Fig. 9. Iteración de clases DataSession con las demás clases de VM.

 

Fig. 8. Diagrama de Clases de VM.

 

La sesión en el SW es controlada por el número de control del alumno y manipulada por los métodos set y get de la clase DataSession (ver Fig. 9). Cada vez que el alumno interactué con un componente de VM el SW proveerá al Servlet la sesión asignada previamente.


C. Seguridad


La seguridad en la aplicación “VM” se garantiza de la siguiente manera:


Se configuró el WAP Proxy Kannel 1.4.0 en el servidor Web, con el uso del protocolo SSL, a través de OpenSSL. Kannel además de soportar conexiones seguras, soporta los estándares para comunicaciones móviles establecidos por el OMA, además es de distribución gratuita. La arquitectura de comunicación se observa en la Fig. 10. La conexión entre el cliente móvil, Kannel y el servidor Web se llevó a cabo mediante una tarjeta de red convencional.

 

Fig. 10. Representación de la seguridad en VM.

 

Para cifrar y descifrar los datos que se transmiten desde una página WAP al servidor Web, se utilizaron los paquetes java.security y javax.crypto de Java, que contienen clases y métodos para implementar el algoritmo de encriptación triple DES. El algoritmo estándar de cifrado de datos DES (Data Encrytion Standard) es un sistema de cifrado de bloques que cifra y descifra bloques de 64 bits, emplea una clave de 56 bits para cifrar y descifrar, otros 8 bits adicionales se utilizan para comprobación de paridad.


El algoritmo Triple DES consiste en utilizar tres veces DES. La clave utilizada por Triple DES es de 128 bits (112 de clave y 16 de paridad), es decir, dos claves de 64 bits (56 de clave y 16 de paridad) de los utilizados en DES. El motivo de utilizar este tipo de clave es la compatibilidad con DES. Si la clave utilizada es el conjunto de dos claves DES iguales el resultado será el mismo para DES y para Triple DES. La llave secreta que se utiliza para cifrar los datos, es la misma que se utiliza para descifrarlos.


Se configuró del lado del servidor Web el protocolo SSL de 128 bits a través del uso de una autoridad certificadora (Thawte), para proporcionar integridad, confi-dencialidad de los datos y autenticación en el protocolo HTTP. El objetivo es encriptar los datos que viajen del WP al SW, y no permitir que sean fácilmente descifrados o vistos por programas espías conocidos como “sniffers”. SSL dispone de un nivel seguro de transporte en Internet (TCP). Los mecanismos de cifrado de las redes celulares son suficientes para garantizar la seguridad de cualquier transacción conducida mediante WAP 2.0. El WP utiliza el protocolo TLS para proteger los datos del lado de la red inalámbrica al dispositivo móvil (ver Fig. 9), el cual esta incluido como una de las capas del protocolo WAP 2.0 [16], [17], [18].

 

D. Visualización de resultados


La función del módulo “graficar_resultados”, es presentar en pantalla a través del explorador de una PC los resultados de los votos que se emitieron por cada una de las planillas que compiten por el cargo. Solo puede hacer uso de este módulo la persona administrador de VM.
El administrador se autentifica, tecleando su login y password, y decidirá que tipo de gráfica desea observar (pastel o de barras). Por cualquiera de las opciones que elija se ejecutará el servlet Grafica1.java (gráfica de barras) o grafica2.java (gráfica de pastel), cuya función es extraer de la tabla votos de la base de datos, todos los votos emitidos a través de la aplicación VM y pasarlos como parámetros a la biblioteca de clases Java JfreeChart-0.9.21 para graficar los resultados (Ver Fig. 11).


Con el fin de crear una metodología y desarrollar una aplicación que sea útil, se plantea como caso de estudio el proceso electoral del CESA, ya que cada dos años se lleva a cabo un proceso electoral para renovar a los representantes de este consejo. Después de registrarse las planillas que competirán por el cargo ante el CESA saliente, cada planilla realiza una campaña de proselitismo, para dar a conocer al alumnado sus propuestas, terminando esta campaña dos días antes de las elecciones.

 

Fig. 11. Votos emitidos a través de VM.


f
Subir

Caso de estudio

Durante la jornada electoral se presenta el problema de “abstencionismo” debido a diversos factores bien conoci-dos, en especial el de la distancia, muchos alumnos votantes pueden estar lejos de las urnas al momento de las eleccio-nes y por lo tanto no serán capaces de emitir su voto.


Para que el alumno tenga una opción más para poder emitir su voto desde cualquier lugar en el cual se encuen-tren durante una jornada electoral, se desarrolló VM. Permitiendo a los electores, elegir entre las planillas que compiten por el cargo y poder emitir el voto de manera digital a través del teléfono celular. Además, se puede obtener información actualizada sobre los resultados electo-rales de los votos que a través de VM sean emitidos, pre-sentando los resultados a través de gráficas.

Pruebas y resultados

Para probar la aplicación VM se realizó una prueba piloto con 30 alumnos de diferente semestre y especialidad, de los cuales: 16 alumnos utilizaron celular de diferentes marcas y modelos y 14 alumnos utilizaron emuladores (ver Fig. 12).

 

Número de alumnos
Modelo del celular
4
Motorola v300
4
Motorola c650
3
Motorola E365
3
Motorola E380
2
Nokia 3120
Número de alumnos
Emulador
5
Nokia Mobile Browser Simulator
5
OpenWave V7 Simulator
4
Nokia 5100 SDK 1.0

Fig. 12. Alumnos que utilizaron la aplicación VM.

 

Con los teléfonos celulares Motorola modelos v300, c650, E365, E380 con configuración del protocolo WAP 2.0, el servicio de conexión móvil fue a través de la tecnología de transmisión CSD (circuito de intercambio de datos: Circuit Switched Data), disponible para usuarios de Amigo GSM (Global System for Mobile), del proveedor de servicio telefónico móvil Telcel.


El costo por minuto es de 1.50 + IVA, con el proveedor de servicios telefónicos Móvil Telcel. El tiempo de respuesta para conectar con la aplicación Web fue variante, oscilando entre los 30 y 50 segundos. El tiempo total para la emisión del voto, por una persona con poca habilidad para teclear datos en el celular fue de 6 a 9 minutos. Con el emulador Nokia 5100 SDK 1.0, el tiempo de respuesta para conectar con la aplicación Web fue de 20 a 30 segundos, y el tiempo total para la emisión del voto fue de 3 a 4 minutos. Con el emulador Nokia Mobile Browser 4.0 WAP 2.0 (Fig. 6), el tiempo de respuesta para conectar con la aplicación Web fue de 15 a 30 segundos, y el tiempo total para la emisión del voto fue de 2 a 3 minutos.


El tiempo para la emisión del voto es menor utilizando emuladores, debido a que los emuladores no envían datos a través de la red inalámbrica y ocupan los recursos de hardware de la PC a diferencia del teléfono celular, que hace uso de sus limitados recursos.

 

f
Subir

Conclusiones

En este artículo se presentó una aplicación Web denominada “Voto Móvil - VM”, con el objetivo de proporcionar una alternativa a aquellos votantes que tengan la dificultad de asistir a las urnas físicamente para emitir su voto. Aprovechando las ventajas que nos proporcionan los dispositivos móviles (en especial los celulares) y las redes inalámbricas. Se presentó el esquema de seguridad para VM a través de los protocolos TLS, SSL y la configuración del WAP Proxy Kannel. Se describió el uso del protocolo WAP 2.0 que proporciona todos los servicios (navegación, correo electrónico, comercio electrónico, entre otros) que tiene disponible el usuario con Internet. Se presentaron los resultados obtenidos de varias pruebas con celulares reales y emuladores, presentando los votos emitidos a través de gráficas de barras y de pastel.

Bibliografía

WAPFORUM; “Wireless Application Protocol WAP 2.0”, Technical White Paper, [en línea], enero 2002. < http://www.wapforum.org/what/WAPWhite_Paper1.pdf> [Consulta: 15 febrero 2008].


IEEE; “Analysis of an Electronic Voting System”. IEEE Symposium on Security and Privacy. Oakland, California, USA. 9-12 May 2004. pp. 27-40.


MCGALEY, J. Paul Gibson; “Electronic Voting: A Safety Critical System”. Department of Computer Science, National University of Ireland, Maynooth. Technical Report: NUIM-CS-TR2003-02. 2003.


E. Barrer Philip; “Vote Early, Vote Often, and VoteHere: A Secury Analysis of VoteHere”. Tesis de maestría, Universidad de Virginia 2001.


CASARRUBIAS Daniel, Ramos Araceli; “La UAM participa en el prototipo de urna electrónica.” [en línea], Aleph, Julio 2004, Vol. 3. No. 92. ISSN: 1665-0638, <http://www.azc.uam.mx/publicaciones/aleph/aleph92/index.htm> [Consulta: 5 enero 2008].


AREHART Charles, et al; Profesional WAP. Wrox Press Ltd. ISBN: 1861004044, 2000.


LE BODIC Gwenael; Mobile Messaging Technologies and Services, SMS, EMS and MMS. Wiley. Segunda Edición. ISBN: 0-470-01143-2. 2005.


NOKIA; “WML to XHTML Migration Versión 2.1”. White Paper, [en linea] 30 abril 2003, <http://sw.nokia.com/id/a052e0ed-a961-4dd0-a26c-69d84a1f0a93/WML_to_XHTML_Migration_v2_1_en.pdf> [Consulta: 10 de enero 2008].


WAPFORUM; “Wireless Markup Language Version 2.0”. White Paper, [en línea] 11 septiembre 2001, <http://www.wapforum.org/tech/terms.asp?doc=WAP-238-WML-20010911-a.pdf> [Consulta: 15 diciembre 2007].


WAPFORUM; “XHTML Mobile Profile”. White Paper. [en línea] 29 octubre 2001, <http://www.wapforum.org/tech/terms.asp?doc=WAP-277-XHTMLMP-20011029-a.pdf> [Consulta: 15 diciembre 2007].


COOK, John L. Wap Servlets; Developing Dynamic web content with Java and wml. Wiley. ISBN: 0-471-39307-X. pp. 81-83, 215-218. 2001.


NOKIA; “XHTML / Browsing on Nokia Devices”, White Paper, [en línea] 12 octubre 2004, <http://sw.nokia.com/id/4b1e10e2-869a-4f7a-bdd6-2f53b0b41137/XHTML_Sep2004.pdf> [ Consulta: 10 enero 2008].


MARTINEZ Martínez Evelio; “El ABC de la telefonía celular primera parte”. Revista RED la Comunidad de Expertos en Redes. No. 164, (2004), ISSN: 1665-9597. pp 30-32.


NICHOLS Randall K., Lekkas Panos C.; Seguridad para comunicaciones inalámbricas, McGraw-Hill; ISBN: 84-481-3782-5. España. pp 16-34, 357-376, 379-396 y 421-427. 2003.


GAMA Moreno Luis Antonio, Alvarado Mentado Matías; “Transacciones para Cómputo Móvil: presente y perspectiva futura”. Revista Digital Universitaria. Vol. 3. No. 4. (2002) ISSN: 1607-6079. http://www.revista.unam.mx


PURSANI Vandana; “An Introduction to Java Servlets Programming”. ACM Crossroads Student Magazine. Vol. 8, Edición 2, (2001): 3-7.


RAJAGOPALAN Suresh; Java Servlet Programming Bible. Hungry Minds. pp. 8-9 y 79-80. ISBN: 0764548395, 2002.


SUN MICROSYSTEMS INC; “Java Servlet Specification Version 2.4” White Paper, [en línea] 24 noviembre 2003, <http://www.sws.bfh.ch/~fischli/kurse/ead/jsf/doc/servlet-2_4-fr-spec.pdf> [Consulta: 20 febrero 2008].


f
Subir


D.R. © Coordinación de Publicaciones Digitales
Dirección General de Servicios de Cómputo Académico-UNAM
Ciudad Universitaria, México D.F.
Se autoriza la reproducción total o parcial de los artículos aquí presentados,
siempre y cuando se cite la fuente completa y su dirección electrónica.