Sécurité et ancrage

La confiance est un mécanisme,
pas un badge.

Cette page est la preuve : ce que le système applique, ce qu’il stocke, qui peut y accéder et ce que nous n’avons pas encore construit.

Contact sécurité

support@salewise.co.uk

Indiquez les étapes de reproduction. Veuillez ne pas accéder aux données d’un autre commerçant ni perturber le service.

Situation actuelle

  • Aucune certification SOC 2 ni ISO 27001.
  • Aucun test d’intrusion indépendant à ce jour.
  • Aucune donnée de carte conservée.

La version courte

Quatre affirmations, et où trouver les preuves.

Pas des adjectifs marketing. Des décisions de conception adossées à du code.

01

Le modèle ne peut pas fixer un prix.

La recherche s’exécute avant la génération. Le modèle sélectionne parmi des identifiants candidats ; le serveur les valide et affiche lui-même le prix, le stock et les variantes.

Lire le mécanisme

02

Les secrets des fournisseurs sont chiffrés au repos.

AES-256-GCM, un IV aléatoire par enregistrement et des données authentifiées supplémentaires qui lient chaque texte chiffré à son fournisseur, son compte et son enregistrement d’intégration.

Lire le mécanisme

03

Aucune donnée de carte n’entre dans Salewise.

Il n’y a ni paiement en ligne ni stockage de PAN. L’acheteur décide sur son téléphone et paie à la caisse existante du commerçant.

Lire le mécanisme

04

L’accès est limité, pas partagé.

La propriété du magasin est vérifiée sur chaque route magasin. Les jetons d’accès durent 15 minutes ; les jetons de rafraîchissement sont hachés et renouvelés à chaque utilisation.

Lire le mécanisme

Ancré par construction

Le modèle sélectionne. Le serveur affiche.

La recherche s’exécute avant la génération. Le modèle choisit parmi les candidats ; le serveur fait les calculs et l’affichage.

01

La recherche d’abord

Le serveur récupère des produits candidats dans le catalogue du commerçant avant de poser la moindre question au modèle. Le modèle ne cherche jamais sur le Web ouvert.

02

Le modèle sélectionne. Le serveur affiche.

Prix, stock, variantes et offres sont générés côté serveur à partir des fiches du catalogue. Un chiffre dans le texte du modèle n’est jamais la source de vérité.

03

Les identifiants sont validés

Chaque produit sélectionné par le modèle doit exister dans l’ensemble des candidats récupérés. Les identifiants invalides sont écartés avant que la réponse n’atteigne l’acheteur.

04

Un refus honnête

Si le catalogue ne contient pas la réponse, l’agent le dit et propose un relais humain. Lorsque le modèle est indisponible, l’assistant signale qu’il ne peut pas répondre ; l’acheteur peut réessayer ou demander à une personne du personnel.

Ce qui est transmis au modèle

  • La question de l’acheteur.
  • Un ensemble de produits candidats extraits du catalogue.
  • Les paramètres du magasin et le texte des politiques applicables.

Ce qui n’est jamais transmis au modèle

  • Les données de carte ou les identifiants de paiement.
  • Les mots de passe, clés API ou la clé maîtresse Salewise.
  • Un outil capable d’écrire dans le POS.

Registre des contrôles

Un registre des contrôles, pas un badge de confiance.

Chaque ligne nomme le contrôle, le mécanisme qui le sous-tend et l’endroit où se situe la limite. Si un questionnaire exige plus de détails, demandez.

Réponses ancrées

Le catalogue est la source de vérité.

Le serveur récupère les produits candidats avant l’exécution du modèle. Le modèle ne peut sélectionner que des identifiants de cet ensemble. Les identifiants invalides sont écartés, et le prix, le stock, les variantes et les offres sont affichés côté serveur. Si le catalogue ne contient pas de réponse, l’agent le dit et propose un relais.

Identifiants au repos

Les secrets sont chiffrés, liés et versionnés.

Les identifiants fournisseurs utilisent AES-256-GCM avec un IV aléatoire de 96 bits par enregistrement. Les données authentifiées supplémentaires lient le texte chiffré à provider:{providerId}:account:{accountId}:credentials, de sorte qu’un enregistrement copié vers un autre locataire ne peut pas être déchiffré. keyVersion permet la rotation des clés ; un déchiffrement échoué échoue de façon fermée au lieu de renvoyer un secret.

Requêtes Salewise

Signées, pas seulement porteuses d’un jeton.

Les requêtes vers l’API maîtresse Salewise portent une signature HMAC-SHA256 sur la méthode, le chemin, l’horodatage, le nonce et le SHA-256 du corps. La signature est comparée en temps constant et bornée par une fenêtre anti-rejeu. La clé maîtresse reste côté serveur, configurée une fois, chiffrée au repos et jamais renvoyée à un navigateur.

Comptes et rôles

Un compte commerçant n’est pas un administrateur serveur.

Sage dispose de rôles commerçant et administrateur serveur. Les mots de passe utilisent scrypt avec un sel par compte. Les jetons d’accès expirent après 15 minutes ; les jetons de rafraîchissement sont stockés sous forme de hachages, renouvelés à chaque utilisation et expirent après 30 jours. Les invitations expirent après 7 jours et sont liées à l’adresse e-mail invitée.

Isolation des locataires

La consultation d’un magasin est un contrôle de propriété.

Chaque route magasin résout le magasin et vérifie qu’il appartient au compte authentifié avant de renvoyer des données. Les méthodes du dépôt sont limitées par compte et par magasin, et le SQL reste derrière la couche de dépôt plutôt que dans les gestionnaires de routes.

Données de carte

Aucun paiement, aucun PAN.

Salewise ne prend pas de paiements et ne stocke pas de données de carte. La PWA acheteur n’a pas de paiement en ligne, et la transaction reste dans le POS du commerçant. Nous ne revendiquons pas de périmètre PCI DSS pour les paiements par carte, car nous ne traitons pas de paiements par carte.

Conservation

Configurée, pas indéfinie.

Le déploiement de référence prévoit 180 jours pour les transcriptions de session et 365 jours pour les enregistrements d’événements, définis par l’environnement et le DPA. La conservation propre au commerçant est convenue dans le DPA, et la suppression est traitée sur demande. Aucune purge planifiée n’est revendiquée à ce jour.

Piste d’audit

Les événements liés à la sécurité laissent une trace.

L’inscription, la connexion, les échecs de connexion, les invitations, la configuration et les modifications d’identifiants d’intégration sont écrits dans un journal d’audit. Les adresses e-mail sont hachées dans les détails d’audit plutôt que stockées en clair. Le journal est interne aujourd’hui ; il n’existe pas encore d’écran d’audit pour le commerçant.

Périmètre du modèle

Le modèle reçoit le minimum nécessaire.

Le modèle reçoit la question de l’acheteur, les produits candidats extraits du catalogue, les paramètres du magasin et le texte des politiques applicables. Il ne reçoit ni mots de passe, ni identifiants API, ni données de carte, et il ne dispose d’aucun outil capable d’écrire dans le POS.

« Construit » signifie que le contrôle existe aujourd’hui dans le produit. Cela ne signifie pas que chaque contrôle a fait l’objet d’un audit indépendant. Les écarts sont listés en bas de cette page.

Identifiants et requêtes

Chiffrés au repos. Signés en transit.

Les deux mécanismes qu’un responsable sécurité demande généralement en premier.

Identifiants au repos

Algorithme
AES-256-GCM, chiffrement authentifié.
IV
12 octets aléatoires par enregistrement, jamais réutilisés.
Liaison
AAD provider:{providerId}:account:{accountId}:credentials. Un enregistrement copié ne peut pas être déchiffré.
Rotation
keyVersion sur chaque enregistrement ; la clé précédente est acceptée pendant la rotation.
Échec
Un déchiffrement échoué échoue de façon fermée. Aucune nouvelle tentative avec un secret obsolète.

Requêtes Salewise

La clé maîtresse est configurée une fois lors de l’installation du serveur. Chaque requête est signée avec elle ; la signature n’est pas un jeton porteur.

canonical =
  method + "\n" +
  path + "\n" +
  timestamp + "\n" +
  nonce + "\n" +
  sha256(body);

signature =
  HMAC-SHA256(masterKey, canonical);
  • Envoyée dans X-Sage-Signature avec les en-têtes d’horodatage et de nonce.
  • Comparée en temps constant, avec une fenêtre anti-rejeu.
  • Clé maîtresse conservée côté serveur et chiffrée au repos.
  • Jamais renvoyée à un navigateur ni écrite dans un journal.

Données, rôles et conservation

Données limitées. Accès encadré. Une trace.

L’assistant n’a pas besoin de savoir qui est l’acheteur pour répondre à une question sur un produit.

Une session enregistre

  • Un identifiant de session, le QR code et le rayon qui l’ont lancée.
  • Les questions, réponses et recommandations.
  • Les événements de relais et les horodatages.

Aucun nom, compte ou donnée de carte. La démo ne relie pas une session à un acheteur nommé.

Qui peut y accéder

  • Un compte commerçant, limité aux magasins qui lui sont liés.
  • Un administrateur serveur, pour la configuration et les fournisseurs.
  • Aucun accès aux magasins d’un autre commerçant via les routes magasin.

Les invitations sont liées à une adresse e-mail et expirent après 7 jours.

Combien de temps elles sont conservées

  • Transcriptions de session : configurées pour 180 jours.
  • Enregistrements d’événements : configurés pour 365 jours.
  • Conditions propres au commerçant : définies dans le DPA.

La suppression est traitée sur demande. Aucune purge planifiée n’est revendiquée à ce jour.

Événements d’audit

L’inscription, la connexion, les échecs de connexion, les invitations, la configuration et les modifications d’identifiants d’intégration sont écrits dans un journal d’audit. Les adresses e-mail sont hachées dans les détails d’audit plutôt que stockées en clair. Le journal est interne aujourd’hui ; nous ne le présentons pas comme un écran d’audit destiné au commerçant.

Attribution

La trace doit résister à un audit.

Une vente rapprochée est soit exacte, soit modélisée. Le commerçant peut voir laquelle, et pourquoi.

Déterministe

Un code d’échange transmis de la session à la vente. Confiance 1,0. Modélisée : faux. La vente est attribuée sans ambiguïté.

Modélisée

Une vente dans le même magasin, dans une fenêtre de deux heures, contenant des articles recommandés. Un score de confiance est stocké, plafonné à 0,92, et la correspondance est étiquetée comme modélisée partout où elle est rapportée.

Les correspondances exactes sont exactes. Les correspondances modélisées sont étiquetées comme telles partout où elles sont rapportées. L’abonnement est le seul frais, et l’attribution n’est pas présentée comme du chiffre d’affaires.

Limites assumées

Ce que nous ne revendiquons pas.

La confiance se vérifie plus facilement quand les écarts sont énoncés.

Si un questionnaire exige l’un des éléments de cette liste, dites-le.

Nous préférons perdre l’affaire plutôt que de répondre à côté.

  • 01

    Nous ne détenons aujourd’hui ni certification SOC 2 ni certification ISO 27001.

  • 02

    Nous n’avons pas encore réalisé de test d’intrusion indépendant ni d’audit de sécurité.

  • 03

    Nous ne revendiquons pas de périmètre PCI DSS pour les paiements par carte, car nous ne traitons pas de paiements par carte.

  • 04

    Dans le produit actuel, nous n’entraînons pas de modèle partagé sur le catalogue ou les conversations d’un commerçant.

  • 05

    Aucun système d’IA n’est exempt de risque. L’ancrage réduit l’invention ; il ne supprime pas le besoin de relecture par le commerçant ni de règles de relais.

  • 06

    Nous n’exécutons pas aujourd’hui de purge de conservation planifiée ; la suppression est une procédure opérationnelle prévue par le DPA.

  • 07

    Notre journal d’audit est interne et n’est pas exposé comme un écran d’audit destiné au commerçant.

  • 08

    Nous ne promettons aucun niveau de service sur cette page ; tout engagement de disponibilité est fixé dans le bon de commande.

Divulgation responsable

Si vous pensez avoir trouvé une vulnérabilité, contactez support@salewise.co.uk avec suffisamment de détails pour la reproduire. Veuillez ne pas accéder aux données d’un autre commerçant, perturber le service ni divulguer publiquement avant que nous ayons pu répondre.

Questions de sécurité

Posez la question qui dérange.

Les questionnaires de sécurité, les conditions de traitement des données et les questions d’architecture sont les bienvenus. Nous répondrons avec ce que nous avons et dirons ce que nous n’avons pas.