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.ukIndiquez 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écanisme02
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écanisme03
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écanisme04
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écanismeAncré 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.