viernes, diciembre 13, 2013

Latch: Cómo proteger las identidades digitales (II de IV)

Bajo las premisas anteriores comenzamos a trabajar en Eleven Paths sobre un proyecto que internamente llamamos Path 2 y que tenía como objetivo permitir que un usuario pudiera apagar y encender una cuenta a gusto, mediante una app en su terminal móvil. Si al final nuestras identidades se usan solo una porción de tiempo al día, ¿por qué no hacer que se apaguen el resto del tiempo? ¿Por que no hacer que estén apagadas mientras dormimos o estamos de vacaciones? ¿Y si conseguimos además que si alguien utiliza el usuario y la contraseña correcta en el sitio, además de bloquear el acceso, hacer que nos llegue una alerta? Y así nació Latch.

Figura 2: Logo de Latch de Eleven Paths

Latch es un servicio en la nube para que los usuarios pueden crear pestillos digitales para poner a sus identidades digitales, y que les permita poner ON/OFF las cuentas con tan solo hacer clic en la identidad que quiere desbloquear o bloquear cuando la vaya a utilizar. 

Digital Latches

Para entender cómo funciona es necesario comprender que en nuestro sistema, una Latch es un Token registrado en el servidor de Latch y que está unido por un lado a un usuario de Latch y por otro a un servicio digital que consultará su estado.

Para ello, inicialmente el usuario se saca una cuenta en el sistema Latch, para lo que necesita únicamente una dirección de e-mail y una contraseña. No se requiere ningún dato más, ni ninguna información relativa a las identidades que el usuario va a proteger con Latch. Ese usuario lo puede sacar directamente desde una web o desde la app del terminal móvil. A partir de ese instante, tras hacer login en la app tendrá una pantalla de inicio con un botón que dice "Add Service".

Desde ese botón se accede a todo el proceso de creación de una Latch para una identidad digital. Para que se pueda poner una Latch en una identidad digital es necesario que el servidor de la identidad se haya integrado con el servicio Latch y haya extendido las propiedades del usuario con espacio para almacenar el Token de la Latch que el usuario genere.

Una vez que el usuario hace clic en el botón de Add Service llega a una pantalla con la opción de Generate Pairing Code. El sistema utiliza una forma similar al que utilizan los dispositivos BlueTooth, por medio de un Token Temporal de Pareado. El usuario entonces introduce el token en sus preferencias de la identidad que quiere proteger y listo. Ya no va a tener que hacer ese proceso nunca más. Solo es necesario introducir el Token Temporal de Pareado una única vez en la vida por cada identidad.

Figura 3: Proceso de establecimiento de Latch a una identidad

El proceso se termina cuando el servidor se conecta al servidor de Latch por medio de su cuenta de servicio y solicita el pareo con ese Token Temporal de Pareado. El servidor de Latch, si el token no está caducado - por defecto dura 60 segundos - o usado, entonces da el OK y genera el Latch que usará para consultar el estado ON u OFF de la cuenta, según el dueño del servicio.

Figura 4: Proceso de solicitud de Token Temporal de Pareo en Latch

Al mismo tiempo, el usuario recibirá una nueva identidad en tu app, que podrá poner ON u OFF con solo hacer clic en ella. Ya no será necesario volver a parearla nunca más. Además, durante todo este proceso no se ha transmitido ningún dato personal ni el terminal móvil almacena ninguna información relativa a las cuentas que protege. De hecho, el servido de Latch no sabe en ningún momento con qué identidad está pareado ese Latch.

Figura 5: Ejemplo de app con Latches en cuentas de diferentes servicios

Tras hacer esto con todas sus identidades digitales, el usuario tendrá una lista como la que se puede ver en la Figura 5, y podrá activarlas o desactivarlas como si de un mando a distancia se tratase. El proceso de verificación de si la cuenta está activa o desactiva lo hará el servidor por medio de la API de Latch y enviando una consulta de estado asociado al Latch del usuario.

El servidor contestará si está ON u OFF y en caso de estar OFF el servidor bloqueará el acceso y el usuario recibirá una alerta que le indica que alguien - tal vez él o tal vez no - ha usado su usuario/password correctos en un sitio pero que ha sido bloqueado, ayudando a detectar el robo de identidad en tiempo real.

Figura 6: Latch app en Android

En la tercera parte de este artículo entraremos en más detalle cómo funciona, pero si quieres probarlo, puedes hacerlo ya desde terminales iPhone o desde Android - Windows Phone está en proceso de revisión, BlackBerry y Firefox OS están en fase de desarrollo - y usando la tienda de 0xWord - que ya tiene activado el servicio de Latch - o este Banco Fake que hemos creado para pruebas llamado "Neleve Bank" - si te sale una alerta de phishing en el navegador es verdad, parece un banco, pero no lo es, así que no metas datos de verdad. Sácate una cuenta de prueba y Latcheala!

Saludos Malignos!

************************************************************************************
************************************************************************************

25 comentarios:

  1. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  2. Vaya que buena idea habéis desarrollado tu y vuestro equipo. Mas me genera una duda ¿Tenéis primero que convencer a la web de [la] identidad que use vuestra API? o ¿Cómo se daría cuenta Latch que se han logueado por ejemplo a mi cuenta de outlook? Saludos

    ResponderEliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  4. Excelente Aplicación!!!!

    ResponderEliminar
  5. Hay alguna lista oficial de los servicios que ya implementan Latch?

    ResponderEliminar
  6. Buenas Chema,

    Gran aplicacion, pero como comente por twitter lo único que no me gusta es que al final pones los huevos en la misma cesta, y si esta se rompe.... Te pongo un caso que se va a dar en 2014 seguro.

    Imagina que pierdo mi movil, evidentemente no voy a perder las cuentas por culpa de latch, pero lo que si que puede pasar es que revienten el login/pass inicial y accccedan a la aplicación, y una vez alli bloquear todas mis cuentas. ¿Hay alguna manera de desvincular un móvil en el panel de control de latch para evitar esto? ¿Se utiliza la misma pass para la aplicacion movil que para la web?

    Saludos.

    ResponderEliminar
  7. Ayer tuve la suerte de acudir al Innovation Security Day y ver la presentación en directo.

    Me encantó la idea y la forma en la que lo estáis implementando, basada en la sencillez tanto para usuarios como para desarrolladores.

    ¡Menudo equipazo habéis montado en 11Paths!

    Enhorabuena. Saludos,
    Chen.

    ResponderEliminar
  8. @Shelby, sí hay que instalar el componente de Latch en el servidor y el cliente tiene que tener la app. Estamos creado plugins y SDKs para todo lo que podemos. }:)

    @Joan Comas, vamos a ir poniendo poco a poco algunos, pero la fecha de publicación de los grandes es para el Mobile World Congress de 2014.

    @Txalin, se pueden quitar las Latchs de las cuentas y el poveedor de la identidad puede ponerlas ON/OFF desde su servicio. Al final él es el dueño de la identidad.

    @Chen, mil gracias! }:)

    ResponderEliminar
  9. @Maligno Usease, que si bien lo he entendido tienes dos opciones si pierdes tu movil.

    a) Desde la web de latch desactivar las latchs que tengas

    b) Hablar con el proveedor para que te desactive la integracion con latch

    Bueno, de cualquier forma la idea me parece cojonuda pero me gustar buscar las cosquillas :P A ver si este finde me la instalo y juego un poco con ella, si le veo algun problema ya os lo comentaré.

    Saludos.

    ResponderEliminar
  10. Me parece una magnífica idea. Aunque no sea infalible (nada lo es) y seguro que ya buscan algo para hackearlo, añade una capa más de seguridad. Y, como diría mi madre: "por lo menos, que se lo ganen".

    Ya me he dado de alta y estoy deseando probarlo. Cuando lo tenga bien estudiado, se lo recomendaré a los amiguetes.

    La única crítica que le puedo hacer es que la página no esté en español.

    ResponderEliminar
  11. (se me olvidó poner la marca de seguimiento, ops)

    ResponderEliminar
  12. Me parece una idea cojonuda, sinceramente, enhorabuena. Ahora a convencer a todo dios que lo implemente... Si puedo ponerle el latch a mi invaluable cuenta de Steam me caso con vosotros xD

    ResponderEliminar
  13. @Maria García si ya tienes claro que lo vas a recomendar, no pierdas el tiempo en probarlo, no vaya a ser que cambies de opinión, recomiéndalo ya, eso es una análisis crítico, sí señora.

    Yo que no lo he probado puede decir que lo primero que me viene a la cabeza es que como haya un problema de seguridad en este servicio te quedas con to' el culo al aire.

    Si ya es un problema que asalten Adobe y con las contraseñas de un único servicio sacas información para seguir atacando individualmente, aquí sacas absolutamente todo de un tipo... si triunfa parece muy jugoso para crackers y peligroso para usuarios.

    ResponderEliminar
  14. @anónimo, lee el texto. Este servicio no guarda un solo dato de las identidades. Si nos hackean no pasa nada. Lee. Saludos!

    ResponderEliminar
  15. Hola Chema.
    ¿Y si se cae el servidor tuyo o hay un problema de conectividad y tenía la cuenta apagada, no puedo entrar en mis servicios lacheados?

    Saludos.

    ResponderEliminar
  16. @Anónimo, nosotros le damos al parter un SLA de cloud de 99.5 %, el 0.5 % restante le dejamos elegir si prefiere tomar nuestra caída como un ON o un OFF. La recomendación puede ser cualquiera de ellas, pero ellos deciden cuánto de fiable es nuestro servicio y cuanto fraude de identidad pueden tener en el 0.5 % de caída que podemos tener para establecer una política adecuada.

    Saludos!

    ResponderEliminar
  17. Al anónimo de las 5:14 p.m.

    Como te ha explicado Chema, el servicio no guarda las identidades. De hecho Clueful la marca en verde.

    Aún no he estudiado detenidamente los detalles técnicos de su funcionamiento. Pero, de lo poco que he leído, deduzco que lo peor que podría pasar es que te entrara un bicho en el móvil que active la identidad (bueno, sería como si no tuvieras Latch) o que la apague (siempre la puedes activar por web). Nunca podría quedarse con tus contraseñas.

    Mi entusiasmo viene porque así, en un primer vistazo, me ha parecido una idea muy interesante. Y mi confianza, de la reputación que tiene Chema. Por eso digo que estoy deseando estudiarla más tranquilamente y, si veo que me convence, recomendarla.

    Pero claro que hasta el hacker más listo puede colarse, o puede ser que simplemente la app me guste o no se adapte a mis necesidades. En cuyo caso, no la recomendaría.

    No tengo costumbre de juzgar las cosas antes de verlas. Pero la primera impresión es buena.

    ResponderEliminar
  18. Una preguntita... o varias de supuestos..

    ¿cuando un atacante haga un intento de acceso a una cuenta bloqueada, el servicio le dirá que está bloqueada la cuenta con latch? o que bajo codigo pueda sacarse la vinculación del bloqueo con este sistema.

    aunque no contenga ninguna información del usuario latch, si tiene la relación de servicios que tenemos "latcheados" con una cuenta en caso de ser atacada a vuestros sistemas.


    ResponderEliminar
  19. Yo sigo sin saber como se usa

    ResponderEliminar
  20. ¡Muy prometedor! Ahora toca promocinarlo para que lo incorporen cuantos más servicios mejor (si lo encuentran interesante).
    Si se consigue convencer a uno de los grandes (facebook, google, microsoft...) tendrá mayor visibilidad y aceptación por parte de los usuarios.

    @Anónimo (17/12/13 1:12 p.m.)
    1. Crear cuenta Latch
    2. Añadir Servicio (genera token)
    3. Usar token en el servicio que quieres emparejar mediante Latch.
    ...

    Una descripción detallada del proceso en: Cómo Probar Latch: Un Tutorial Step by Step con 0xWord

    ResponderEliminar
  21. Vengo aquí por una de tus conferencias, y veo: "El proceso de verificación de si la cuenta está activa o desactiva lo hará el servidor por..." activa o inactiva, no?
    Gran idea el latch, lo probaré, mil gracias
    Saludos malignos!!

    ResponderEliminar
  22. Hola, solo quiero hacer una pequeña observacion, se supone que deveria ser fasil usar Latch, pero no entiendo como parear una simple cuenta de facebook....

    en las instrucciones dice que inicie el proseso de pareado desde la web a parear....

    Pero.... Como se supone que ago eso en Facebook?

    ResponderEliminar
  23. Pienso que si de verdad hay interés en propagarlo sería muy buena idea crear módulos para los CMS más usados o ya volviéndose locos integrarlo con jquery.

    Un saludo, Rafa

    ResponderEliminar
  24. Despues de ver un video alabando a la app LATCH, he decidido intalarla en mi smartfone y no entiendo porqué me pide los siguientes permisos....

    -. HISTORIAL DE APLICACIONES Y DISPOSITIVO.
    -. IDENTIDAD.
    -. FOTOS/MULTIMEDIA/ARCHIVOS.
    -. CÁMARA.

    Por lo que has hablado en el video y lo que cuentas en esta página no entiendo el porqué la app LATCH necesita autorización para acceder a esos 4 servicios.


    Soy un simple usuario y en el proceso de descargar y/o instlar la app se me ha preguntado si quiero que sea gratuita o de pago.

    Muchas gracias por tu respuesta.

    ResponderEliminar
  25. @Yo Juan, Latch no tiene versión de pago... te has debido bajar algo que no es...

    ResponderEliminar