Fiatside

Developpeurs

Authentification

Comment l’endpoint de cotation est protege aujourd’hui, comment les cles seront emises, et les regles de manipulation qui evitent le scenario classique : une cle de production dans un depot public.

01

Aujourd’hui

L’endpoint de cotation est ouvert et n’exige aucune cle. Ce choix se defend : une cotation ne lit ni n’ecrit aucune donnee personnelle, et une integration doit pouvoir afficher un prix avant qu’un compte existe.

Ce qui n’est pas encore en place

Aucune limite de debit n’est appliquee sur cet endpoint a ce jour. Nous preferons l’ecrire plutot que d’afficher un tableau de quotas qui ne serait pas applique : le jour ou la limite existera, elle sera publiee ici avec ses valeurs, ses en-tetes de reponse et le code renvoye en cas de depassement.

02

Les cles, quand elles seront emises

Une cle porte son environnement dans son prefixe. Une cle de test qui fonctionnerait en production est une erreur de conception : elle rend possible le virement reel qu’on croyait simuler.

En-tetehttp
Authorization: Bearer sk_live_9f2c4b1e8a7d3f60c5b2a1e9d8c7b6a5
Les cles, quand elles seront emises
PrefixeEnvironnementCe qu’elle permet
sk_test_Bac a sableToutes les operations, sur des donnees simulees. Aucun mouvement de fonds reel, aucun appel a un etablissement de paiement. Les latences des rails sont simulees pour que vos tests rencontrent les memes attentes que la production.
sk_live_ProductionOperations reelles. Les commandes creees avec cette cle deplacent de l’argent : elle ne doit jamais quitter votre serveur.
whsec_Les deuxSecret de signature des webhooks. Il ne sert jamais a appeler l’API : il sert uniquement a verifier que ce que vous recevez vient bien de nous.
03

Regles de manipulation

Aucune n’est originale. Toutes sont enfreintes regulierement, et c’est ainsi que fuient les cles.

Serveur uniquement

Une cle de production dans une application web ou mobile est une cle publique : le code livre au navigateur est lisible, la minification n’est pas un chiffrement. Appelez l’API depuis votre serveur.

Jamais dans une URL

En parametre de requete, une cle se retrouve dans les journaux du serveur, dans les en-tetes de referrer et dans l’historique du navigateur. L’en-tete Authorization existe pour cela.

Une cle par integration

Une cle partagee entre trois services ne peut pas etre revoquee sans casser les trois. Une cle par usage rend la revocation indolore.

Revocation immediate au moindre doute

Une cle poussee par erreur dans un depot, meme prive, meme supprimee ensuite, est compromise : l’historique la conserve et les robots d’exploration lisent les depots publics en quelques minutes.

04

Rotation sans interruption

Deux cles actives simultanement permettent de tourner sans fenetre d’indisponibilite.

  1. 1.Emettez une seconde cle. Les deux sont valides en meme temps.
  2. 2.Deployez la nouvelle cle sur vos serveurs, un par un.
  3. 3.Verifiez que la nouvelle cle recoit du trafic et que l’ancienne n’en recoit plus.
  4. 4.Revoquez l’ancienne. La revocation est immediate, sans delai de grace.
05

Ce que nous ne ferons jamais

  • Nous ne vous demanderons jamais votre cle par e-mail, par messagerie ou par telephone. Le support n’en a pas besoin : il travaille avec l’identifiant de la cle, pas avec son secret.
  • Nous n’affichons jamais une cle secrete deux fois. Elle est visible a sa creation, puis seulement son identifiant et ses quatre derniers caracteres.
  • Nous n’envoyons pas de cle dans un e-mail. Un e-mail transite et se conserve chez trop de monde.