Que debo tener en cuenta para tener un sistema de votaciones seguro en android

Iniciado por serqueg10, 10 Enero 2015, 05:35 AM

0 Miembros y 1 Visitante están viendo este tema.

serqueg10

Estimados miembros del foro muy buenas noches

Resulta que mi proyecto de grado en la universidad es la creación de un sistema de votaciones seguro, la gente votará desde unas tabletas (galaxy tab 1 10.1" android 3.1) que brindará la universidad, no se podrá votar desde nuestros dispositivos personales unicamente desde las tablets. Mi misión es que ese sistema debe ser lo mas seguro posible que no pueda ser atacado ni alterado casi q de ninguna manera. Acudo a ustedes para que me digan que consideraciones debo tener en cuenta para la correcta realizacion de este proyecto

Muchas gracias a todos

engel lex

explica el proceso de votación... dices que será desde unas tablas puntualmente, así que como distingues los usuarios y evitas dobles votos, por otro lado

defenderte de qué si es un sistema cerrado?

es html o apk?

si es apk, que protocolo de comunicación usaras?

estarán en sistema interno o wifi?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

serqueg10

la secretaria de cada facultad a traves de su computador (un aplicativo en java, con posibilidad de ser cambiado) le manda la orden a la tablet para que abra la votacion la persona vota y se vuelve a cerrar, el aplicativo se conecta a una base de datos donde indica que el usuario ya voto y no podra votar nuevamente, la base de datos los equipos de las secretarias y la tablet se comunican por intermedio de la red de la universidad


el eplicativo para que la gente vote es un apk, y se creará una aplicacion web que será la encargada de mostrar los resultados, el apk solo deja q el votante escoja y ya

Mod: evita hacer doble post, si quieres agregar algo, usa el boton modificar...

engel lex

entonces, sabiendo esto... cuales sistemas son los que quieres blindar?
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

serqueg10

Los 3

El JAVA al que solo tienen acceso las secretarias y le dan la orden a la tablet de que permita el voto
El apk donde las personas ven la foto del candidato y la pinchan
La app web que muestra los resultados obtenidos

engel lex

el java lo que necesita estar asegurado es que la sesion no se quede abierta sola mas de x tiempo y que no se pueda saltar la contraseña... no se si algo más...

al apk, entre más simple mejor, lo unico que tienes que asegurar es que envie y reciba los paquetes correctamente, a demás que la aplicación no se cierre accidentalmente
la web, con darle accesos de solo lectura a la db debería bastar...

pero realmente no entiendo la profundidad del proyecto... siento que no te he entendido del todo...

por otro lado, la transmisión de data y la vulnerabilidad sobre red no son puntos a asegurar? (son básicamente los únicos puntos débiles que veo en una aplicación tan simple como describes)

-------------------------------------
además de lo que ya dije... descríbeme que seguridades esperas del java, apk y web? que ataques imaginas que un usuario malicioso prodría hacer y cuanto acceso tendría para atacar
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

serqueg10

//por otro lado, la transmisión de data y la vulnerabilidad sobre red no son puntos a asegurar?
Si claro, yo diría que el principal punto ya que los dispositivos se conectaran via red de la universidad, a la que adicionalmente se conectan en promedio 6000 dispositivos simultaneamente y pues lo ideal es que uno de esos 6000 dispositivos q nada tienen que ver con las votaciones no se pueda meter nisiquiera ver la informacion nada

//además de lo que ya dije... descríbeme que seguridades tú esperas del java, apk y web?

de las tres: que no puedan hacer querys extrañas hacia la base de datos, algo asi como un sql inyection, que no se pueda alterar el funcionamiento de cada una

del apk: que solo envie información a la base de datos de las votaciones, a nada mas, que la informacion sea la correcta (si voto por A que me registre el voto a A y no a B), tque todo vaya cifrado

del web: que compare la informacion de una base de dstos principal y una bd contingencia y advierta si encuentra diferencias, que encuentre anomalias con respecto al tiempo Ejemplo: 4:00 p.m 40 votos por A - 4:30 p.m 37 votos por A no tiene sentido, otra anomalia seria 40 usuarios han votado y se registran 42 votos

del java: que realize querys validas, si tal persona ingresa, tal persona no vota mas y si tal persona no ha imgresado q pueda votar

//que ataques imaginas que un usuario malicioso prodría hacer y cuanto acceso tendría para atacar

creo que alguien que tenga acceso a la red de la universidad podria acceder a las votaciones, a la base de datos. Los ataques serian perdida o alteración de la información

Si tienes mas preguntas con gusto te las respondo y mil gracias me has ayudado bastante

engel lex

ok... ya voy agarrando el hilo a lo que armas

(por cierto, para citar puedes usar el boton con el globito de texto para que se vea
Citarcomo esta cita

bueno sobre la seguridad...

la transmision la puedes hacer por vias normales y cifras el contenido con AES... 16 digitos de contraseña y adiós posibilidad de ataque...

entre el apk y el servidor java solo permite comunicación cifrada (realmente no se que tipo de servidor es, pero si es programado por ti, basta con un "si no es cifrado, no lo leas")

en la apk puedes hacer protocolo tipo tcp 3-way handshake... envías el voto, el java confirma la información eviandola al apk de nuevo, el apk confirma enviando eso por segunda vez y en ese momento el java guarda

al servidor web con permitirle solo accesos de solo lectura limitados a la db que vas a usar, basta... el resto que dices es analisis de datos...

en el java realmente no hay un factor de seguridad ya que el factor es asunto de la DataBase, puedes en los campos de la db colocar un flag puede ser booleana tal que si es 0 no ha votado, si es 1 si votó el java solo lo lee y si es 1 no puede votar
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.

serqueg10

Wuau de veras muchas gracias me llevo una gran gran idea para arrancar, creo que te iré contando como vaya avanzando el proyecto

Mil y mil gracias

Gh057

Bueno si los dispositivos no tienen la aplicación para votar no acceden al sistema; por lo cual tienes un mayor nivel de seguridad a que sea una aplicación tipo php en la intranet... sin embargo eso no evita el snifing de los paquetes, por eso coincido con engel lex en cifrar la trasmisión para evitar el envío de votos falsos... Viéndolo como esta planteado creo que el punto a revisar bien es el servidor de la base de datos. (y la red en si... no seria muy gracioso que todo este genial, y el día de votación tengas un evil twin. XD)
saludos
4 d0nd3 1r4 3l gh057? l4 r3d 3s 74n v4s74 3 1nf1n1t4...