Garantir l'intégrité des échanges
L’intégrité des informations échangées est garantie par un échange de signatures alphanumériques entre la plateforme de paiement et le site marchand.
Le dialogue entre la plateforme de paiement et le site marchand s’effectue par soumission de formulaires HTML.
Un formulaire contient une liste de champs spécifiques (voir chapitre Générer un formulaire de paiement) utilisés pour générer une chaîne.
Cette chaîne est ensuite convertie en une chaîne d'une taille inférieure grâce à une fonction de hachage (HMAC-SHA-256).
La chaîne résultante est appelée empreinte (digest en anglais) de la chaîne initiale.
L'empreinte doit être transmise dans le champ signature (voir chapitre Calculer la signature).
Modélisation des mécanismes de sécurité :
- Le site marchand construit les données du formulaire et calcule la signature.
- Le site marchand envoie le formulaire à la plateforme.
- La plateforme réceptionne les données du formulaire et calcule la signature avec les données reçues.
- La plateforme compare la signature calculée avec la signature transmise par le site marchand.
- Si les signatures diffèrent, la demande de paiement est rejetée.
Sinon, la plateforme procède au paiement.
- La plateforme construit les données de la réponse et calcule la signature de la réponse.
- En fonction du paramétrage de la boutique (voir chapitre Paramétrer les notifications), la plateforme transmet le résultat du paiement au site marchand.
- Le site marchand réceptionne les données et calcule la signature. Il compare la signature calculée avec la signature transmise par la plateforme.
- Si les signatures diffèrent, le marchand analyse l’origine de l’erreur
(erreur dans le calcul, tentative de fraude etc.)
Sinon, le site marchand procède à la mise à jour de sa base de données (état du stock, statut de la commande etc.).