Sécurité

Dernière mise à jour : 2026-04-21

Une infrastructure de paiement vit et meurt sur sa posture de sécurité. Voici exactement ce qu'on fait, ce qu'on ne fait pas, et ce qu'on ne prétendra pas encore avoir.

1. Non-custodial par design

La garantie de sécurité la plus forte qu'on offre est architecturale : on ne détient pas les fonds des marchands. Jamais. Quand un client paie par carte, l'on-ramp convertit le fiat en USDC et notre splitter on-chain route atomiquement vers ton wallet Polygon dans la même transaction. Nos serveurs voient un événement, pas un solde. Il n'y a pas de hot wallet, pas de trésorerie poolée, pas de compte omnibus — donc pas de honeypot à casser pour un attaquant. Si Peptide-Pay disparaissait demain, tes paiements passés seraient toujours on-chain dans ton wallet.

2. Infrastructure

  • Hosting : Vercel, avec réseau edge global et protection DDoS.
  • Stockage d'état : Upstash Redis avec TLS en transit et AES-256 au repos.
  • Settlement : Polygon mainnet, vérifié on-chain — mêmes hypothèses de sécurité que la chaîne elle-même.
  • DNS & CDN : durci avec HSTS preload, records CAA épinglant l'AC, DNSSEC activé.
  • Secrets : stockés dans le env store chiffré de Vercel ; rotés au départ d'un employé.

3. Authentification

  • Email + mot de passe + wallet pour le dashboard. Les mots de passe sont hashés en scrypt (N=32768, r=8, p=1) — jamais stockés en clair, jamais loggés.
  • Le mode wallet-only anonyme est aussi supporté : colle ton adresse, génère un payment link, aucun email requis.
  • Les sessions dashboard sont courtes (7 jours) et liées au navigateur qui s'est connecté.
  • Les cookies de session sont HTTP-only, Secure, SameSite=Lax.
  • Les connexions suspectes (nouveau pays, nouvel ASN) déclenchent une alerte email et peuvent être révoquées depuis n'importe quelle session active.

4. Webhooks

  • Chaque webhook est signé en HMAC-SHA256 avec le secret de ton compte ; vérifie avant de faire confiance au payload.
  • Le header de signature inclut un timestamp ; rejette tout ce qui a plus de 5 minutes pour éviter les replays.
  • Queue de retry avec backoff exponentiel (30 s, 2 m, 10 m, 30 m, 1h, 3h, 12h, 24h) puis drop.
  • Les webhooks droppés restent rejouables depuis le dashboard pendant 30 jours.
  • On publie la plage d'IP d'egress courante pour que tu puisses nous allowlister au firewall.

5. Clés API

  • Les clés sont affichées une seule fois, stockées hashées (bcrypt) côté serveur ; on ne peut pas te les retrouver.
  • Rotatables à tout moment depuis /app/settings — ancienne et nouvelle clé fonctionnent en parallèle pendant 24 heures pour déployer sans downtime.
  • Les clés scopées sont prévues pour Q3 2026 ; pour l'instant les clés sont full-access.
  • Rate-limit par clé : 100 requêtes/seconde soft, 1000/seconde hard.

6. Chiffrement

  • En transit : TLS 1.3 sur chaque endpoint ; TLS 1.2 permis uniquement pour les consommateurs webhook legacy, flagué pour dépréciation.
  • Au repos : AES-256 sur Upstash Redis et Vercel blob storage.
  • Les emails clients sont hashés (SHA-256 avec sel par marchand) avant de finir dans les logs serveur ; seul le dashboard marchand les rend en clair.

7. Disclosure responsable & bug bounty

Si tu trouves une vulnérabilité, écris à security@peptide-pay.com avec un PoC. Notre clé PGP est sur /.well-known/security.txt. On s'engage à :

  • Accuser réception de ton rapport sous 24 heures.
  • Trier et confirmer sous 72 heures.
  • Une fenêtre de fix de 90 jours avant disclosure public, extensible par accord.
  • Te créditer dans l'advisory de sécurité sauf si tu préfères l'anonymat.
  • Bounty : 100 à 5 000 USD, payé en USDC sur Polygon, échelonné à la gravité (CVSS 3.1).
  • Hors scope : social engineering, attaques physiques, DoS, et tout ce qui nécessite un device utilisateur rooté.

8. Réponse aux incidents

Si on détecte ou qu'on est informé d'un incident affectant des données marchand ou l'intégrité du service :

  • Marchands affectés notifiés par email sous 24 heures après confirmation.
  • Status page mise à jour en temps réel sur status.peptide-pay.com.
  • Là où l'art. 33 RGPD s'applique, la DPA compétente est notifiée sous 72 heures.
  • Post-mortem public sous 14 jours, avec cause racine, timeline et remédiation concrète.
  • Pas de silence. Pas d'euphémismes « maintenance routine ». On appelle les incidents des incidents.

9. Ce qu'on NE prétend PAS

Honnêteté plutôt que théâtre marketing :

  • Pas de rapport SOC 2 encore. Sur la roadmap 2027 quand le volume justifiera le coût de l'audit.
  • Pas de certification ISO 27001 encore. Même raison.
  • Pas de scope PCI DSS — on ne touche intentionnellement jamais aux données carte, donc PCI ne s'applique pas à notre stack. Ça s'applique à Moonpay.
  • Pas de SOC 24/7 — rotation d'astreinte avec paging, mais on n'est pas une banque tier-1 et on ne prétend pas l'être.
  • Si l'un de ces points est une exigence dure pour ton programme de conformité, on n'est probablement pas le bon processeur pour toi encore.

10. Contact

Rapports de sécurité : security@peptide-pay.com. Fingerprint PGP publié sur /.well-known/security.txt.