Aller au contenu
Sandbox

Sécurité des secrets

Où doit vivre le secret d'une clé, ce que Noryo en conserve et n'en conserve pas, ce qui n'apparaît jamais dans une réponse ou un journal, et quoi faire en cas de fuite.

Voir en Markdown

Une clé Merchant API est un secret porteur : quiconque la détient appelle l'API au nom de votre workspace, et en Production, à vos frais. Cette page décrit ce que Noryo fait du secret et ce qu'il vous revient de faire.

Où doit vivre le secret

  • Côté serveur uniquement. Lisez la clé depuis une variable d'environnement ou un gestionnaire de secrets (NORYO_API_KEY dans les exemples de cette documentation).
  • Jamais dans un client : ni dans un bundle JavaScript servi à un navigateur, ni dans une application mobile, ni dans un dépôt de code, ni dans un ticket ou une capture d'écran.
  • Une clé par usage. Une clé par service ou par déploiement se révoque sans couper les autres. Donnez-lui seulement les scopes dont elle a besoin : un service qui ne fait que relire n'a besoin que de enrich:read.

Ce que Noryo conserve, et ce qu'il ne conserve pas

ÉlémentConservé par Noryo ?
Le secretNon. Il est affiché une seule fois, à la création, puis n'existe plus chez Noryo
Un vérificateur du secretOui : une empreinte HMAC calculée avec une clé de serveur qui n'est pas stockée avec les clés. Une copie de la base ne suffit pas à s'authentifier
Le key_id et le préfixeOui : ils ne sont pas secrets et servent à reconnaître une clé

Conséquence : Noryo ne peut pas vous renvoyer un secret perdu. Il se remplace. Voir Rotation.

Ce qui ne sort jamais

  • Dans les réponses : aucun corps d'erreur ni en-tête ne recopie la clé présentée, une partie du secret ou une empreinte. L'en-tête WWW-Authenticate d'un 401 est une valeur fixe.
  • Dans les journaux de Noryo : l'en-tête Authorization, le secret, son vérificateur, le libellé brut, la valeur brute d'une Idempotency-Key et l'external_transaction_id ne sont jamais journalisés. Pour relier deux lignes, Noryo journalise des empreintes HMAC tronquées, d'où l'on ne peut pas retrouver la valeur.
  • Dans Platform : la liste des clés montre le préfixe et les quatre derniers caractères du key_id, jamais le secret.

Détecter une fuite

Le préfixe fixe rend une clé reconnaissable dans un dépôt, un journal ou un outil d'analyse de secrets. Une expression adaptée aux clés émises par Noryo :

nry_mer_(sbx|live)_[2-9A-HJKMNP-TV-Z]{10}\.[A-Za-z0-9_-]{43,}

Faites de même dans vos propres journaux : ne journalisez jamais l'en-tête Authorization, et masquez toute chaîne qui correspond à cette forme.

En cas de fuite

  1. Révoquez la clé dans la page Clés d'API de Platform. Elle est refusée en 401 invalid_api_key dès la requête suivante. Voir Révocation.
  2. Créez une clé de remplacement avec les mêmes scopes et déployez-la. Voir Rotation.
  3. Vérifiez l'usage dans la page Usage : les appels réglés y figurent avec leur request_id.
Attention

Révoquer avant d'avoir déployé la nouvelle clé coupe votre propre trafic. En cas de fuite avérée, révoquez d'abord quand même : un 401 de quelques minutes coûte moins qu'une clé utilisée par un tiers.

Publié le 2026-10-09 10:18 UTC (version 2).

Cette page vous a-t-elle aidé ?