Incremento de seguridad: encriptación de los archivos de los usuarios registrados
11 minuts de lectura
Nuestros clientes que llevan algunos años usando nuestra plataforma ya saben que desde siempre hemos tratado de implementar el máximo de medidas de seguridad, y por eso vamos agregando más y más con el tiempo.
Ahora le ha tocado a los archivos físicos o documentos que suben las personas que se registran a un evento. A partir de ahora esos archivos se van a almacenar en el servidor 100% encriptados.
Hablemos en serio de seguridad, ¿para qué necesitamos más encriptación?
Respuesta corta: para tapar más y más posibles agujeros de seguridad, que aunque son improbables son posibles vulnerabilidades. Respuesta larga: ahora te explico.
Certificados SSL de encriptación punto a punto
Normalmente es conocido el hecho de que ya usamos encriptación de datos en otras capas de la aplicación. La más obvia hoy en día en cualquier aplicación web: el certificado SSL que encripta toda la comunicación entre el navegador web del visitante que se inscribe y el servidor. Esto previene que cuando los datos van pivotando de nodo en nodo de la red global desde el dispositivo del navegante y el servidor donde habita la aplicación (tal vez en continentes diferentes) ninguno de los servidores intermedios por los que pasan esos datos pueda entender ni tan siquiera qué es lo que se está enviando...: texto, vídeo o lo que sea! Eso nos quita de en medio a muchos mirones maliciosos que hayan podido infectar cualquiera de esos equipos intermediarios.
Por cierto, y ya que estamos en tono didáctico, hace falta añadir que el certificado SSL también que cualquiera de esos nodos intermediarios pueda modificar parte de los datos enviados en un sentido u otro (del servidor al usuario o viceversa). Porqué tienes que saber que un ataque habitual cuando no se usa SSL es que al visitante se le devuelva la página que solicitó pero con código malicioso oculto que va a infiltrarse en su navegador y tal vez en su equipo, sin que probablemente el visitante de la web lo note.
Por estas dos razones -pero hay alguna más- el certificado SSL es ya un estándar requerido para cualquier página web. De hecho, es sorprendente que a día de hoy hay demasiadas webs que no usan un certificado SSL !!!??? El mismo Google hace ya unos años que avisó de que iba a dar prioridad en los resultados de búsqueda las página que usen certificado SSL. Pero aún y así, hay demasiado "aficionado" haciendo webs :-(
Usuarios, contraseñas y 2FA
El otro campo de encriptación más habitual es el que nos ayuda a autenticar a los usuarios que pretenden iniciar sesión en el panel de administrador de una aplicación, o en este caso también los usuarios inscritos que quieren acceder a gestionar su inscripción y sus pagos.
En cualquier caso se usa un usuario y contraseña, la cuál a su vez se almacena en la base de datos de forma encriptada, por si algún mirón llegase a tener acceso a consultar la base de datos (normalmente con alguna inyección SQL). De este modo no podría conocer las contraseñas de los usuarios registrados.
En materia de autenticación se han ido popularizando también los mecanismos de "dos factores" o 2FA, que consisten en solicitar a los usuarios no solamente su contraseña, sino un segundo código que puede generarse de diversos modos: se les envía por SMS/correo/telegram o cualquier otro canal que no sea obviamente el navegador web, o lo generan con una app que usa una semilla alfanumérica larga que el servidor y el usuario conocen para generar cada 30 ó 60 segundos un código numérico de 6 ó 8 dígitos único para cada usuario mediante cálculos criptográficos. También hay otros mecanismos similares, como unos dispositivos electrónicos con una pantallita que te muestra esos códigos, etc... que los bancos han usado mucho hace unos años.
En INSCRIPCION.ONLINE nuestros usuarios administradores (nuestros clientes) usan (deberían usar, pero es opcional) el sistema estándar 2FA con códigos TOTp que pueden genearse fácilmente con apps como Authy o Google Authenticator y por un abanico largo de extensiones de navegador (Firefox, Chrome, etc.).
En estos casos, el uso de encriptación nos permite proteger los sistemas de autenticación de los usuarios, para garantizar que solo las personas autorizadas hagan ciertas acciones sobre ciertos datos.
Almacenamiento de datos personales
Y llegamos al tema que ha motivado la mejora que hemos implementado esta semana en la plataforma: la encriptación de los datos personales de los inscritos en el servidor.
A grandes rasgos, hay dos formas de guardar los datos en un sistema (es bastante universal): en una base de datos y en un archivo físico o documento (una imagen o un PDF, por ejemplo). Aunque también es cierto que a veces se guardan los documentos dentro de una base de datos... pero es poco habitual.
También hay otro "sitio" en donde se guardan datos sensibles: en la memoria RAM del servidor y en su memoria caché (jejeje, la cuál a veces uno no sabe muy bien qué es exactamente, pero exist e incluso hay varias capas de caché). Pero ese tema es bastante complejo de abordar y la verdad también es bastante más difícil de vulnerar. Pero vaya, yo creo que será motivo de análisis en nuevas mejoras de seguridad.
Tenemos que aclarar que el mismo sistema operativo del servidor ya tiene sus mecanismos de seguridad para evitar que solo las personas autorizadas realicen las tareas asignadas. Pero como sabemos, el eslabón de seguridad más débil de un sistema es el factor humano. Así que de esto va este apartado: ¿cómo el programador de la aplicación web puede protegerse incluso de que su proveedor de hosting (o un empleado fisgón y corrupto) quiera robarte información, por ejemplo?
Pues para responder a esa pregunta viene la necesidad de encriptar los datos en las bases de datos y en los archivos que suban los usuarios (imágenes, PDFs, etc...). No me mal entiendas, no desconfío de mi proveedor. Pero la norma más importante al diseñar la seguridad de un sistema es desconfiar de todos, es decir, dar por supuesto que el ataque a tu sistema puede venir de cualquier lado. No necesariamente un empleado de mi proveedor quiera robar datos de mi aplicación, pero sí es más probable que alguien malintencionado que haya infectado la máquina del empleado o su cuenta de usuario pretenda acceder a los datos de mi aplicación. A eso se refiere esa norma: desconfía de todos.
Bueno, entonces, para terminar, decir que en este trabajo continuado a lo largo de los años de aumentar más y más las medidas preventivas de seguridad, se ha procedido a remodelar la plataforma de inscripciones para encriptar todos los archivos subidos por los inscritos. Cosa que ya hacíamos con la mayoría de sus datos personales guardados en la base de datos.
Ha supuesto una semana de intenso trabajo reescribiendo bastante código en relación al almacenaje y recuperación de archivos, pero ha valido la pena.
El eslabón más débil de la seguridad
No quiero acabar esta publicación sin insistir de nuevo en el hecho de que aunque uno esté usando la aplicación más segura del mundo... eso no te salvará de que te roben los datos si usas una contraseña débil, o la anotas en un papel, o la envías por correo a un colega, o no usas sistemas de dos factores como el 2FA que ya tienes disponible en nuestra plataforma, o en caso extremo, si usas un sistema operativo en tu computadora con una seguridad débil que permite que te infecten de virus continuamente.
Solamente lo diré para asustarte: ¿sabes que es muy fácil que un virus que infecte tu PC para espiar todas las direcciones web que visitas y qué usuario y contraseña utilizas para acceder a tus cuentas? Literalmente escuchan todas tus pulsaciones de teclado y las envían al que infectó tu dispositivo. Y lo peor es que ni te darías cuenta! Por eso es muy importante que uses un sistema libre de virus aunque te cueste dinero. De hecho a veces me sorprende que las empresas no se tomen más en serio estas cuestiones controlando mucho más las estaciones de trabajo de sus empleados.
Piensa que ya no es como en los años 90. En aquella época los virus se hacían para destruirte datos. Ahora el 99.99% de los virus se hacen para SACARTE DINERO. Ya sea por extorsión directa, robándote tu control de tus tarjetas, o usando tus cuentas de usuario en redes sociales o tu correo para enviar SPAM al resto del mundo en tu nombre, sin dejar ellos ni una sola huella.
Espero que este largo artículo te haya ayudado a concienciarte que la seguridad es ante todo un sistema que depende del trabajo en equipo. Desde IMASDEWEB, tratamos de dar lo mejor para que así sea. Si eres cliente nuestro, ya sabes que nos encanta que los clientes nos consulten cualquier duda que tengan en el uso del sistema. Pero especialmente el tema de la seguridad es de los más importantes. Espero vuestros comentarios. Saludos.
Afegiu el vostre comentari: