Conceptos clave
Nuestro mecanismo de firma se basa en varios componentes criptográficos estándar de la industria para garantizar la autenticidad e integridad de los datos.
Clave Privada del Usuario
Para cada usuario de API (e inclusive para cada sub-usuario), SyPago genera un par de claves criptográficas asimétricas (pública y privada) únicas. La clave privada se utiliza para firmar digitalmente todas las notificaciones. Es importante destacar que esta clave privada se almacena de forma segura y nunca abandona los servidores de SyPago, garantizando su máxima protección.
Payload
Es el cuerpo de la notificación en formato JSON que contiene los detalles del evento. Este es el dato principal que se protege.
Nonce
Un "número usado una sola vez". En nuestro sistema, generamos un nonce a partir de la marca de tiempo Unix (en milisegundos) en el momento en que se crea la notificación. La inclusión de un nonce en cada firma previene ataques de repetición, donde un atacante podría interceptar una notificación y reenviarla para duplicar una transacción.
OperationSecret
Este es un identificador único universal (UUID) que se genera y devuelve al inicio de cada operación que puede resultar en una notificación asíncrona. Cuando invoca un endpoint de SyPago (por ejemplo, para iniciar un débito otp), la respuesta incluirá tanto el transaction_id como el operation_secret. Es crucial que su sistema almacene ambos valores.
{
"transaction_id": "EF806AFEE804",
"operation_secret": "9f4aaf08-8d04-4007-a097-c0e95eddad5e"
}
Al incluir este secreto en el proceso de firma, se asegura que la firma es única para esa transacción específica.