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.
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_KEYdans 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ément | Conservé par Noryo ? |
|---|---|
| Le secret | Non. Il est affiché une seule fois, à la création, puis n'existe plus chez Noryo |
| Un vérificateur du secret | Oui : 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éfixe | Oui : 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-Authenticated'un401est 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'uneIdempotency-Keyet l'external_transaction_idne 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
- Révoquez la clé dans la page Clés d'API de Platform. Elle est refusée en
401 invalid_api_keydès la requête suivante. Voir Révocation. - Créez une clé de remplacement avec les mêmes scopes et déployez-la. Voir Rotation.
- Vérifiez l'usage dans la page Usage : les appels réglés y figurent avec leur
request_id.
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).