Cuando recibes información de Currencycloud, es crucial que confíes en su confidencialidad e integridad.
Siempre que enviamos una notificación, nos aseguramos de que la información sensible llegue solo a la persona adecuada y nunca caiga en manos de las personas equivocadas. Así, tienes la tranquilidad de que la información que recibes de Currencycloud no ha sido manipulada.
Como paso final para mejorar la integridad de nuestras notificaciones push, hemos introducido un sistema de verificación de mensajes.
¿Qué son las notificaciones push?
La función de notificaciones automáticas de Currencycloud proporciona a los usuarios visibilidad en tiempo real y actualizaciones instantáneas sobre el progreso de sus transacciones.
Nuestras notificaciones push (o webhooks) mantienen a los usuarios informados sobre todo lo que está sucediendo. Cuando el estado de una transacción cambia, puede enviarse una notificación a un punto final o a una dirección electrónica que elija el cliente. Ya uses nuestras APIs o Currencycloud Direct, este sistema es una forma realmente eficaz para manteneros a ti y a tus usuarios al tanto de todo.
¿Qué es la verificación de mensajes?
La verificación de mensajes te permite comprobar que un mensaje procede de Currencycloud y que no ha sido manipulado. Añadimos a las notificaciones un código de autenticación de mensajes basado en hash (Hash-based Message Authentication Code o HMAC), que puedes usar para verificar la integridad del mensaje.
Soy desarrollador. ¿Cómo funciona este sistema y qué debo saber?
Paso 1: Generación de una clave secreta
Una clave secreta que solo tú puedes generar se comparte entre el destinatario del mensaje (tú) y su remitente (Currencycloud). Puedes crear o actualizar esta clave en Currencycloud Direct o mediante nuestra API de punto final.
La capacidad de generar una clave secreta estará asociada a un nuevo permiso que determinará qué contactos de tu cuenta pueden generarla.
Paso 2: Preparación de la notificación push
Con la clave secreta que solo tú conoces y el contenido del mensaje original, Currencycloud genera el HMAC mediante un potente algoritmo hash denominado SHA-512. Este código HMAC se añadirá a todas las notificaciones que recibas, y podrás descifrarlo con la misma clave secreta y el mismo algoritmo hash. Aquí tienes un ejemplo:
Paso 3: Verificación del mensaje
Cuando recibes el mensaje, tienes que usar la clave secreta, el contenido del mensaje y el mismo algoritmo hash (SHA-512) para descifrar el HMAC.
Si el HMAC que has descifrado coincide con el del encabezado del mensaje, significa que has podido comprobar criptográficamente la autenticidad de la notificación.
Ten en cuenta lo siguiente: Es fundamental que envíes el contenido del mensaje al validador de suma de comprobación exactamente como lo hayas recibido. Por ejemplo, debes comprobar que no se hayan añadido caracteres adicionales, como espacios en blanco o saltos de línea.
¿Cómo genero una clave segura?
Puedes generar una clave en tu "Profile page" (Página de perfil) de nuestra plataforma Direct. También puedes llamar a la API Generate HMAC Key (/v2/contacts/generate_hmac_key). Solo podrás generar una clave secreta si el contacto con cuyas credenciales has iniciado sesión tiene el permiso correcto, así que ponte en contacto con tu gestor de éxito del cliente para que lo habilite. Puedes generar una nueva clave secreta tantas veces como sea necesario.
¿Dónde veo el HMAC en la notificación push?
El HMAC se añade al encabezado del mensaje antes de que el mensaje se entregue. No tienes que descifrar el HMAC para leer el contenido del mensaje, solo para verificar su integridad.
¿Cómo verifico el HMAC?
Para verificar la integridad de una notificación push, tienes que descifrar el hash del mensaje a partir del contenido completo de la notificación y tu clave secreta. Por ejemplo:
$ echo -n ‘<notification_content>’| openssl dgst -sha512 -hmac "Mi clave secreta" (stdin)= 8b472cf04424acd33c3e6e3e74a821929fda2511d034dcd992d3ef3009f9834bfd042d2215de1583c4d57b90a7299e3e9f765e1ec5de003b73d7666d8a284027
El resultado debería ser idéntico al HMAC que recibiste en el encabezado del mensaje.