15M
morpheo
+4

[DESARROLLO] Sistemas Seguridad Básicos en VirtualPol

Hola: Llevo unos días curioseando el sistema y ya creo que puedo aportar algunas cosas que no se han realizado:
En primer lugar creo que en los foros. Debería haber marcada una hoja de ruta donde las cosas ya votadas/decididas y que se vayan a realizar o se estén realizando se puedan ver en alguna parte al entrar en cada foro. Evitará que repitamos solicitudes en diferentes hilos.
Básicamente propongo un sistema donde al entrar a cada foro, tengamos los hilos del foro y en alguna parte tengamos una hoja de proyectos que se estén haciendo o se vayan a realizar en futuro. E incluso que cuando se entre al foro haya una ventana que anuncie que se lea eso primero para que así quede claro cual es el camino que decidido ya de cada foro, etc... Todo esto lo digo ya que no se si en otros hilos de esto que yo voy a comunicar ya se ha hablado de esto pero como comprenderéis es inviable que alguien se los lea todos antes de poner su opinión.

Bueno, en cuanto a seguridad:
El sistema debería estar dotado de varias opciones que veo que no tiene.

Suplantación de Identidad: Creo que deberíamos tener un sistema para protegernos de la suplantación de identidad. Ya que cualquiera que robe la contraseña a otro ciudadano podría acceder sin que este se entere. A mi personalmente el que más me gusta es el que tiene Google gratuito de aviso por sms al móvil al iniciar sesión donde nos da un código de verificación para acceder. Pero bueno como eso entiendo que lleva un coste que quizás VirtualPol no podría asumir lo lógico sería que nos enviara un correo cada vez que se inicia sesión e incluso identificando el equipo como hace facebook para que el posible suplantado pueda ver y comprobar que sólo él está accediendo a su cuenta virtualpol.

HTTPS y certificado: Desde luego yo estoy ahora mismo redactando esto bajo un enlace llamado 15m.virtualpol.com y en la información de conexión me indica que esta página no ha sido cifrada. Mmmmmmm. Bueno creo que sólo con el comentario queda dicho todo. Además que debería ser por defecto para todos los usuarios. Además cuando se conecta a https indica que el certificado informa que realmente se llama virtualpol.com y no 15m.virtualpol.com y da un informe de que no se a identificado el sitio correctamente.

Seguridad en las votaciones: En el momento en el que he votado tengo una opción para enviarme un comprobante de la votación al correo. En ese correo me envía un identificador para volver a acceder a mi votación pero en Virtualpol.com. Todos los que hemos desarrollado web sabemos que si eso queda registrado en una base de datos única puede sufrir un ataque y vulnerar las votaciones de todos. Vamos lo que puede pasar en fb que cuelgas el enlace de un video de youtube y a la hora de quererlo ver, siempre lo pdrás ver mientra que Youtube no haya cambiiado el enlace. Además de estar vulnerable a ser modificado por hacker,la cúpula o programadores de este proyecto. Por ello la votación debe incluir el voto del ciudadano, el motivo/información de la votación, y la descripción de lo que el ciudadano está votando. Así si se podrá comprobar mi voto ya que independiente de lo que pueda ocurrir en las bd de virtualpol yo se que voté y sobre que. No es que desconfíe de las personas que programan esto ni mucho menos está claro que su intención es democratizar el mundo y la herramienta esta es fantástica pero desde luego esto en mi opinión es bastante importante si queremos tener la confianza de los ciudadanos al 100%

Desde luego también opino que este proyecto ya debería estar subvencionado por nuestros impuestos. Pero bueno, todo se andará. Por lógica ese es el mejor destino.

 1      Orden: Fecha | Votos 5 mensajes en este hilo creado hace .
Shimohira
+2

#Estoy seguro que @GONZO gustará de leer tu mensaje y contestarte en breve :D

Saludos.

1 GONZO
+3

#Hola @morpheo

Me llamo Javier González, soy el principal desarrollador de VirtualPol.

En primer lugar agradecerte el interés, el aliento y el analisis que has hecho. Lo he leido entero con atención y me parece muy acertado.

Te contesto por partes.

1. Sobre hacer un lugar donde se vea qué cosas estan aprobadas para desarrollo y el estado de ellas. Verás, uno de los principios de VirtualPol es la separación Gestión | Desarrollo. Es una linea roja claramente marcada, para que gestión no entorpeca el desarrollo, ni desarrollo se inmiscuya en asuntos que no le competen. Es decir, este foro de desarrollo dentro de 15M realmente no deberia estar aqui. Pero bueno, gracias a su existencia ha canalizado tu mensaje y otros más, y solo por eso merece la pena. Sin embargo el cauce oficial y correcto para cualquier propuesta o reporte de desarrollo son los Issues de GitHUB. Aquí: https://github.com/JavierGonzalez/VirtualPol/issues?direction=desc&milestone=&sort=comments&state=open Como verás, aqui estamos desarrollando y comentando las cosas de forma más tecnica. Con incidencias abiertas/cerradas/en espera y todo el tema. Será un placer tenerte por alli. Ojalá dispongas de tiempo.

2. Sobre la detección de suplantaciones/hackeos: tienes razon, esto empieza a ser importante. Como bien supones, el sistema de SMS de Google -por el momento- se nos queda grande Sobre enviar un email en cada login es muy molesto, sin embargo combinado con la detección del equipo... podria ser util. Desde luego lo de Facebook es una pasada. Hay mucho que mejorar en esta linea y has hecho bien en señalarlo. Por lo pronto te digo que a raiz de tu comentario voy a tratar de poner un par de contramedidas muy básicas, como indicar la ultima IP y la ultima hora de conexion. Podré añadir esto en un par de dias. Es lo minimo y a partir de esto ya mejoraremos más.

3. Sobre HTTPS y certificado: actualmente si lo tenemos, y que yo sepa está funcionando correctamente, por ejemplo: https://virtualpol.com/registrar/ Sin embargo hay importantes limitaciones que tenemos planificado resolver muy pronto. En primer lugar cometí un error muy tonto cuando lo compré, y es que no puse las "www." jeje y por eso solo funciona el https con el dominio sin más, queda feo, no es de logica, pero lo he adaptado así para que funcone hasta que arregle este detalle. En segundo lugar solo pasa por HTTPS los procesos más criticos del sistema (login, cambio de pass, registro, autentificación con DNIe) y el resto sin https. Tengo pendiente extender el uso del HTTPS a todas las acciones por obligacion (/accion .php) y el chat (/ajax .js) y el resto sin https porque solo es contenido (aunque lo ideal es que se permita el HTTPS si no consume demasiada CPU, supongo que no habrá problema). Pero para esto tengo que comprar un certificado especial que permita subdominios... o reestructurar parte del codigo bastante. Una de dos. Ando aun decidiendome. Estoy ahi ahi, y en cuanto encuentre un rato le daré caña.

4. Sobre el comprobante de voto. Lamentablemente no te he entendido bien lo que quieres decir. Me gustaría que tratases de explicarmelo de nuevo. Aun así te explico básicamente como funciona actualmente: las votaciones no se borran, cualquiera las puede ver, así como el tipo de votacion, tipo de voto, cuando empezo, cuando termino, quien votó, cuantos votos, así como el escrutinio completo de cada voto relacionado con su comprobante de voto. Imagino que lo habrás visto, es la pestaña Verificación (en votaciones concluidas). Y el comprobante de voto es un codigo unico aleatorio que sirve para que -una vez finalizada la votación- el votante pueda encontrar su voto, situado en el escrutinio publico. En la base de datos -sin que nadie se dé cuenta, pero documentado en el software que es abierto- se guarda la relacion usuario-voto-comprobante SOLO mientras la votación está activa (para permitir modificación de voto, que es muy importante). Una vez finaliza la votación, se barajan los votos de forma completa e irreversible. Rompiendo la relación Usuario-Voto, pero conservando la relación Voto-Comprobante. De esta forma duermo muy tranquilo porque en caso de hackeo total de la base de datos, nunca conseguirán saber qué votó cada usuario en las decenas o cientos de votaciones. Si no solo las pocas que aun estan activas, en el peor de los casos.

5. Sobre que el Estado debería subvencionar un proyecto como este... jejeje Debería, pero nunca imaginé tal cosa. Incluso pienso que dificultará este tipo de iniciativas. Creo que lo mejor es empezar ya el camino. Esto es el futuro y cuanto antes empecemos, mejor. Y tiene que ser por nosotros mismos.

Como imaginarás me gusta mucho todo este tema (especialmente el punto 4), y además es importante para el proyecto VirtualPol que profundicemos en ello. Veo que tienes nivel y sería un placer profundizar en todo esto. Quizá se me han escapado cosas... o quiza lleguemos a soluciones mejores. Estoy a tu disposición.

Un saludo!

morpheo
+0

#Hola Javier: Encantado de conocerte aunque sea por chat, :-), veo que eres muy magnánimo y eso me gusta mucho. Sobre el tema de las votaciones precisamente es por proteger no que los hacker puedan saber que se vota sino un borrado de las bd's o modificaciones y que luego las personas no sepan que han votado. Independiente del sistema virtualpol creo que sería bueno incluir en el cuerpo del mensaje enviado además del código para poder visitar y modificar su voto. Que se incluya también lo que ha votado y cuál ha sido su voto. Ya que esto además daría como resultado menos visitas innecesarias a VirtualPol. Y en mi opinión dará además más credibilidad al usuario final sobre virtualpol.

Intentaré sacar tiempo para esto y seguiré el github también para intentar desde la humildad aportar visiones e ideas.

Así se hace un proyecto, si señor. Felicidades Un abrazo y Gracias a todo el equipo de ángeles que estáis intentando cambiar este mundo a través de esta herramienta. "Os veo"

1 GONZO
+0

#Hola @morpheo

Sobre lo que dices de indicar el sentido de voto en el email... lo pensé, es buena idea. Pero hay un "pequeño" problema :) ¡El voto es modificable! Así que consideré que es mejor no incluir el sentido de voto en el email, ya que despues el usuario puede modificarlo. Para evitar confusiones... ¿Como lo ves?

Gracias por los animos. Como ves aquí hay mucha calidad humana trabajando en equipo. Miles de personas. Es una pasada. :)

Nos vemos por aqui y GitHUB. Un abrazo.

morpheo
+0

#Sigo creyendo que la información de cada voto debería de estar en el correo. No obstante para evitar confusiones se podría arreglar poniendo un código MIME en el correo de tal manera que en la cabecera del mensaje le salga un gráfico indicándole si esa es su última modificación de voto sobre esa votación o no? De tal manera que si el usuario lee un correo de una modificación de voto anterior a la última realizada le aparezca un banner encima indicándole que no es su última modificación sobre la votación ID X. Esto se podría conseguir enlazando. El id del voto, con el id del usuario y el id de la votación y lógicamente la fecha. Si de la tabla votaciones el id de votación hay un id de usuario posterior al id del voto de usuario para el id de votación. Banner "Esta no es su último voto sobre esta votación" Si no. Banner "Esta es su última votación".

No se si me he explicado bien pero bueno creo que sería una manera ¿ Que te parece?

Saludos

 1 

Para poder participar en esta conversacion has de registrar tu ciudadano

Más hilos

Sobre el reparto de cargos de moderador y redactor, [Propuesta] Aúnar información temática., Promoción de candidatos a moderador, Debemos difundir un veto oficial a Intereconomía, [INFO] Más información sobre los supervisores del censo, [INFO] Carta de un médico, Organización de los grupos de trabajo, [REDACCIÓN] Sondeo estrategia, [DEBATE] Tóxicos ZARA, [SONDEO] ¿Crees que es justa la fiscalidad que tiene Catalunya?,