Atención Colombianos: La página del eCenso guarda tu contraseña en texto plano

Nota: Quiero reiterar que las informaciones expresadas en este blog corresponden a mi opinión personal y no comprometen la compañía para la que trabajo.

tl;dr: La página del eCenso almancena mal tu contraseña. No la uses, o usa una contraseña única y aleatoria.

Al registrarme hoy para el eCenso del DANE, me percaté de algo muy peligroso: la página me mostró mi contraseña en la pantalla cuando terminé mi registro. Esto me dio la sospecha de que la página almacena la contraseña en texto plano. Lo pude confirmar usando la opción de “Olvidé mi contraseña”, la cual me envió por email mi contraseña en texto:

¿Qué significa esto? El DANE almacena las contraseñas de una forma que, si hackers llegan a robarse la base de datos, podrán leer y usar las contraseñas. Esto no sólo les dará acceso a las cuentas de los usuarios en el DANE. La mayoría de personas, a pesar de que es mala práctica, re-usan contraseñas entre diferentes páginas. Es muy probable que la contraseña que usaron para el eCenso sea la misma que usan para su email, Facebook, banco, etc.

En vez de esto, la práctica de seguridad recomendada es usar una función criptográfica llamada hash junto con una “sal” criptográfica, que transforma la contraseña en algo irreversible que no es transferible a otras páginas, antes de almacenarla. Es por esto que cuando olvidas tu contraseña en una página como Facebook o Gmail, ellos no te pueden mostrar tu contraseña, solo cambiarla.

Además, después de buscar por toda la página del eCenso, no hay forma de cambiar la contraseña. La primera que pones es la que queda. Así que si ya usaste una contraseña mala o repetida, no hay forma de arreglarlo.

Recomendaciones

Si ya te registraste en la página del eCenso, cambia todas tus contraseñas de tus cuentas que compartan contraseña con tu cuenta de eCenso. Idealmente, todas tus cuentas deberían usar contraseñas diferentes y aleatorias. Una herramienta de contraseñas como LastPass es lo más recomendado para esto.

Si aún no te registras, trata de hacer el censo de forma presencial o que no requiera la página del eCenso. Si esto no es posible, regístrate en el eCenso con una contraseña única y aleatoria que no uses en ninguna otra parte.

¿Qué significa esto para el resto de la seguridad de la página del eCenso?

La verdad no soy experta en seguridad (soy ingeniera de software pero en el ámbito web), así que no podría decir, pero el hecho de que la página tenga un error de implementación de este calibre (esto es algo básico que cualquier programador debería saber), me da miedo saber qué más haya detrás de esto. El gobierno asegura que la herramienta del eCenso “fue desarrollada con la asesoría de expertos en seguridad digital de diferentes instituciones”, pero ¿qué tipo de expertos contrató al gobierno que no se dieran cuenta de este error? Me parece una falta terrible del gobierno con sus ciudadanos porque pone en riesgo su seguridad informática.

Actualización: Publiqué un artículo con más detalles del asunto, al poder descargar y analizar el código del DANE. Las contraseñas no están precisamente guardadas en texto plano, pero es como si lo estuvieran.

  • Carlos Ceron

    En qué te basas para decir que no la encriptan?
    Solo pq te llegó a tu email la clave?

    • Ya investigando mejor, la contraseña la encriptan con una llave simétrica que está pública a todo el mundo gracias a que cualquiera puede descargar el código mediante la opción de eCenso Offline (otro error tremendo del sistema). Es como si no estuviera encriptada. Las contraseñas nunca deben ser encriptadas, deben ser hasheadas con sal.

    • Cristian Lozada

      Hola Juliana soy un estudiante de sistemas y tengo interés en el tema, me surge una duda si la contraseña en un sistema de hash+sal es irreversible como podría usar la clave para iniciar la sesión si está no puede ser leída para comprobar la que el usuario está dictando en el login del sistema ? , Me interesa para aplicar este sistema de hash+sal, en mis proyectos de programación.

      Att:
      Cristian Lozada.

    • Racso

      Lo que se hace es aplicar el hash+sal a la contraseña que el usuario introduce para hacer login y el resultado se compara con lo que está almacenado. Si la contraseña es la correcta, debería dar lo mismo :)

  • Oswaldo Ardila Medina

    El hecho que tu veas tu contraseña como texto , no significa que a nivel interno no pase por algún algoritmo de encriptado y se guarde encriptada en las ddbb. Normalmente cuando se trabajan en este tipo de proyectos, el front end de usuario ve la clave, sin embargo al grabar la transacción la base de datos realiza un procedimiento de encriptado tipo AES. Si logras hackear la base de datos solo veras una cadena de hexadecimales que sera completamente inentendible.

    • Laura Alejandra Chaparro Gutié

      Puede que se almacene encriptada pero si la transmisión se hace como texto plano se puede obtener con un ataque como ‘man in the middle’. Si una contraseña se puede ver como texto plano, es una señal de que la aplicación no es segura.

    • Como mencioné en el otro comentario, he investigado más y las contraseñas no están precisamente guardadas en texto plano; están encriptadas usando una llave simétrica que está pública a todo el mundo dado que se puede ver al descargar la aplicación de eCenso OffLine, no cual hace esta encripción inútil. Escribiré una actualización al respecto más tarde el día de hoy. Sin embargo, las contraseñas nunca deben ser encriptadas, deben ser hasheadas con sal.

    • Marcus Sanchez

      De nada sirve encriptar, si luego envias las clave en texto plano en un mail.

    • Marcus Sanchez

      No, no es normal que el usuario vea la clave, y no necesitas hackear la base de datos, solo el servidor de mail que envia los mails con la contraseña en texto plano, o interceptar las comunicaciones de ese mail en la red, lo cual es bastante fácil de hacer.

    • Racso

      Da lo mismo. La clave de encripción debe estar almacenada en alguna parte, muy probablemente en el servidor desde donde se sirve la web. Si un intruso logra acceder a la BD, es posible que todo el servidor esté comprometido. En ese caso, tomar la clave de donde sea que esté guardada y desencriptar todas las contraseñas es pan comido.

  • Andrés Escobar

    Este artículo tiene serios errores técnicos!