De una idea a un proyecto: Paranoid Shield.

in #seguridad5 years ago (edited)

En primera instancia, partimos del motivo por el cual todos deberíamos usar un administrador de contraseñas y más allá de un aparente capricho, la verdad es que las credenciales con las que accedemos a diario a diferentes servicios representan nuestra identidad digital, tan importante como la física al día de hoy; por ello, el uso de contraseñas seguras y únicas para cada uno de estos servicios es crítico y fundamental en nuestra globalizada vida.

A menudo leemos y escuchamos a muchas personas que erróneamente piensan que están seguras por la mera idea de que su información no importa tanto, y que para reforzarse esa falacia se repiten a ellos mismos ¿quién se tomaría el tiempo y las molestias para hacerse con ella? Y lo cierto es que, ésta es muy valiosa, tanto para el fin económico, como una manera de esconder acciones mucho más turbias.

En nuestro blog dedicamos un artículo a este tema, les recomendamos leerlo desde acá

¿Qué podemos hacer?


Conociendo un poco más los riesgos de usar contraseñas débiles y aún peor, la misma para diferentes servicios; la manera de cambiar esto es usar credenciales únicas de al menos 16 caracteres que no tengan ningún tipo de relación con nosotros o los nuestros (por favor no colocar el nombre de la mascota ni la fecha de nacimiento de algún allegado) y si éstas son generadas aleatoriamente, mucho mejor. Pero realizar esta tarea de manera manual es engorroso, allí es donde un administrador de contraseñas nos ayudará a generarlas de modo seguro.

Lo que nos lleva a otro punto y es:

¿En dónde y cómo se almacenan nuestras contraseñas?


Habitualmente las personas por comodidad las almacenan en los navegadores, siendo esto realmente riesgoso, ya que la función autocomplete viene por defecto activada en los principales navegadores web y muchos sitios maliciosos crean formularios invisibles donde son rellenados con nuestra data y enviados a sus servidores sin levantar la mínima sospecha ante nuestros ojos. Aunado a ello, ya desgraciadamente es habitual que cada día alguna extensión de nuestro navegador sea removida por haber sido comprometida o vendida a un tercero donde dependiendo de los permisos otorgados podrá tener acceso a nuestra información.

Una muy buena opción es usar algún administrador de contraseñas del mercado, que por lo general almacenan nuestras credenciales en sus servidores y que afirman no conocer nuestras preciadas contraseñas; pero lo cierto es que, eso no lo sabemos ya que en el pasado algunos de estos han sido comprometidos exponiendo la información de cientos de miles de usuarios.

A modo personal, un adicional que no nos gusta de este tipo de servicios en la nube, es que de modo automático ellos “investigan” si tu password ha sido comprometido o expuesto en la dark web o en algún foro donde se suele traficar este tipo de información. Y eso sólo es posible si conocen tu contraseña maestra, es decir, que ellos pueden desencriptar tus credenciales sin tu intervención o peor que estas se almacenan en texto plano. No queremos hacer conjeturas pero son varias las dudas de cómo y dónde se almacenan nuestras credenciales en este tipo de servicios. Es cierto que suelen ser cómodos porque sincronizan todos tus dispositivos ya que estos apuntan a un servidor/es o granja, pero esto suele conllevar también un gran riesgo.

Aunque siendo justos, aún así es más seguro usar uno de estos gestores, que seguir usando contraseñas débiles y repetidas en múltiples servicios, almacenándose en el navegador. Sin embargo, estos servicios que almacenan este tipo de información tan sensible suelen ser frecuentemente atacados por los ciber-delincuentes en búsqueda de alguna mínima vulnerabilidad que les permita hacerse con esta información. Y como suele pasar en estos casos, el cliente será el más afectado y el que se entere de último.

Pero siempre se pueden encontrar alternativas que nos permitan administrar nuestras contraseñas pero desde nuestros propios equipos, es decir, de modo local y totalmente offline, sin enviarlos a un tercero ni exponernos a brechas de seguridad. Existen también muchas herramientas que permiten almacenar información encriptada y algunas ofrecen gestionar contraseñas, la mayoría de éstas no son tan conocidas como las plataformas que ofrecen servicios en la nube y creemos que ello radica en que, suelen ser quizás estéticamente no tan llamativas y a menudo requieren muchos tecnicismos a la hora de instalar y/o configurar.

Tomando en consideración todo lo antes planteado, decidimos desarrollar nuestra propia herramienta para el manejo de nuestras contraseñas.



Paranoid Shield


Paranoid Shield, se proyecta como una solución totalmente offline que permite generar contraseñas fuertes y almacenarlas bajo el algoritmo más seguro en la actualidad; AES 256, con llaves que se generan totalmente de modo aleatorio, únicas para cada usuario e instalación; todo esto de una forma transparente para el usuario, donde únicamente deberá preocuparse por recordar su contraseña maestra.

Porque las contraseñas siempre deben estar cerca de su dueño.

Desde el inicio decidimos emplear la filosofía del conocimiento cero, es decir, que los desarrolladores no tenemos manera alguna de conocer las credenciales o la información que almacene el usuario en la aplicación. Eligiendo así la opción más segura para el usuario, sin embargo para nosotros, la más complicada, porque debemos cubrir varios aspectos para ofrecer la mayoría de características habituales con las cuales el usuario final está acostumbrado (y tomando en consideración incluirlas en un entorno aislado) como por ejemplo la sincronización de contraseñas, se vuelve una tarea bastante ambiciosa. Pero se preguntarán, ¿la sincronización no implicaría subir a la nube las credenciales?

La nube no es el único modo de sincronización, ya que, estamos pensando, dar la posibilidad de subir los backups encriptados a la cuenta privada de Google Drive o Dropbox de cada usuario, y desde allí sincronizar a sus demás equipos y/o dispositivos, claro está, sólo si ese dispositivo se ha vinculado al dispositivo principal y obviamente si la persona que desea sincronizar conoce la contraseña maestra y además si tiene acceso al perfil de Google Drive o Dropbox donde se aloja el backup. No necesariamente deben ser estos servicios, si el cliente dispone de un servidor propio podrá realizarlo desde allí. Pero aparte de la seguridad, nuestra premisa es la comodidad del usuario, es por ello que hemos pensado en estos dos servicios, que son los principales para el almacenamiento de archivos y documentos.

Por los momentos sólo disponemos de la versión alfa para Windows 8/10 pero tenemos trazado cubrir Android dentro de pocos meses. Estamos abiertos al desarrollo en otros sistemas operativos (SO) como Mac/iOS y Linux. Nos llevaría algo de tiempo porque queremos ofrecer la mejor experiencia posible en cada plataforma, por lo que, debemos desarrollar Paranoid Shield en un lenguaje nativo de cada SO, aunque todos tendrán en común C++.

Para Windows todo lo referente a la interfaz de usuario (UI) está diseñado en C# pero el núcleo del funcionamiento en C++, esto por dos razones; performance y seguridad ya que hacerle ingeniería inversa a una DLL en C++ es mucho más complicado que una DLL en C#. Aunque la decisión de desarrollar el núcleo en C++ fue más por performance y gusto que por seguridad ya que, podríamos publicar el código fuente de la aplicación y seguiría siendo igual de segura, pues, como les comentamos las llaves que resguardan las credenciales del usuario son generadas aleatoriamente.

Algunos desarrolladores que nos lean, quizás dirán ¿por qué no desarrollar la UI en Java o Electron y hacer a la aplicación multiplataforma? La respuesta es performance o rendimiento, queremos que Paranoid Shield pueda estar activo en todo momento sin afectar el funcionamiento de otras aplicaciones ya que últimamente tanto los launchers para juegos o los mismos navegadores están consumiendo casi la totalidad de los recursos en la máquinas.

Otro factor fue tratar de evitar lo más que se pueda el dump de información desde la memoria ram, la información en memoria mientras la sesión de Paranoid Shield se encuentra activa está encriptada y para que esto no afecte el rendimiento global necesitábamos un lenguaje con prestaciones de performance más altas. No queremos decir que en Java no se pueda hacer, lo más probable es que si, pero .Net en Windows es más fluido y la sinergia entre C# y C++ es más aprovechable a nuestro parecer.

Actualmente nos encontramos trabajando muy duro para llegar a la versión 1.0 estable, Paranoid Shield será una aplicación que seguirá su crecimiento independiente de su éxito ya que es una herramienta que ha surgido para cubrir nuestra necesidad de almacenar y gestionar de modo seguro nuestras credenciales. Tenemos muchas ideas y características que deseamos incluir, pero por los momentos la prioridad es hacer los cimientos lo más seguros y estables posible.

¿Qué pasará cuando la aplicación llegue a su versión estable?


Seguiremos mejorando y añadiendo características.

¿Tendrá un costo o será gratuita?


Siempre se podrá usar Paranoid Shield sin costo ni registro alguno, sólo que al requerir cierta cantidad (aún no definida) de credenciales y/o características se deberá adquirir la versión Pro, pero la versión Pro sólo requerirá un pago único ya que la licencia será vitalicia (por equipo) pero con la versión gratuita se podrá usar Paranoid Shield sin problemas (no congelaremos credenciales, ni bloquearemos los backups)


Si desean, pueden apoyarnos probando la aplicación y dándonos su sincera opinión, desde ya disponible en la Microsoft Store o si prefieren desde un instalador.

Paranoid Shield

by itandfeel

Coin Marketplace

STEEM 0.19
TRX 0.15
JST 0.029
BTC 63878.47
ETH 2625.83
USDT 1.00
SBD 2.79