Limitando el ámbito de uso de nuestros secretos en Latch con “Limited Secrets”

miércoles, 12 de abril de 2017

Cuando creamos como desarrollador una aplicación de Latch, ésta nos proporciona un identificador de aplicación (appId) y un secreto.

Éste par de claves nos permiten firmar las peticiones realizadas a la API, para garantizar que somos los dueños legítimo de dicha aplicación.

Ejemplo de identificador de aplicación y secreto en una aplicación.


Sin embargo, existen múltiples escenarios donde dicho secreto puede verse comprometido por un tercero: aplicaciones de escritorio, aplicaciones móviles, etcétera.
En estos escenarios, un secreto comprometido podría permitir a un posible atacante realizar operaciones de la API no deseadas por el desarrollador, para evitarlo y poder seguir ofreciendo las funcionalidades de Latch en estos escenarios nacen los “Limited Secrets” ó secretos limitados.

Se pueden crear, para cada aplicación dentro de su configuración, hasta un máximo de 3 secretos con un alcance limitado. Estos secretos se utilizan de la misma forma que el secreto maestro, pero solo pueden usarse para firmarse aquellas peticiones para las que se han configurado.

Los secretos limitados pueden contener uno o varios de los siguientes permisos:

  • Estado: Permite realizar llamadas de estado a la API, para conocer el estado de un Latch.
  • Pareados: Permite utilizar las llamadas de pareado y despareado de un usuario.
  • Soporte: Permite utilizar las llamadas de soporte de la API para bloquear y desbloquear “latches”.
  • Histórico: Permite consultar el histórico de acciones de un servicio.
  • Operaciones: Otorga accesos para realizar las llamadas de gestión de operaciones. Esta gestión posibilita la creación, edición, consulta y eliminación de operaciones.
  • Instancias: Otorga accesos para realizar las llamadas de gestión de instancias. Esta gestión posibilita la creación, edición, consulta y eliminación de instancias. Para consultar el estado de una instancia se utiliza el permiso 'ESTADO' y para modificar su estado el de 'SOPORTE'.

Ejemplo de secreto, únicamente con permisos de “Estado” y “Pareados”.

De esta forma si tenemos un componente software que queramos distribuir, que incluya funcionalidad de Latch y que únicamente va a realizar acciones de Pareado/Despareado o consultar el estado de un Latch podemos distribuir un Secreto Limitado con permisos sólo para estas funcionalidades.

Cabe reseñar que aunque se distribuyan secretos con estos permisos, para realizar llamadas como desparear a un usuario o conocer el estado de su Latch se necesita otro factor adicional que es su “Account ID” con Latch.

Os animamos por tanto a utilizar este tipo de secretos siempre que realicéis integraciones en componentes software que vayan a distribuirse y que puedan ser fácilmente comprometidos. No dudéis en pasaros por nuestra comunidad si tenéis cualquier problema a la hora de utilizarlos.

No hay comentarios:

Publicar un comentario