Beveiliging & fundering
Vertrouwen is een mechanisme,
geen badge.
Deze pagina is het bewijs: wat het systeem afdwingt, wat het opslaat, wie erbij kan en wat we nog niet hebben gebouwd.
Beveiligingscontact
support@salewise.co.ukVoeg reproductiestappen toe. Open geen gegevens van een andere winkelier en verstoort de dienst niet.
Huidige status
- Geen SOC 2- of ISO 27001-certificering.
- Nog geen onafhankelijke penetratietest.
- Geen kaartgegevens opgeslagen.
De korte versie
Vier claims, en waar het bewijs staat.
Geen marketingadjectieven. Ontwerpbeslissingen met code erachter.
01
Het model kan geen prijs vaststellen.
Ophalen draait vóór genereren. Het model kiest uit kandidaat-ID's; de server valideert ze en toont prijs, voorraad en varianten zelf.
Lees het mechanisme02
Inloggegevens van aanbieders zijn versleuteld opgeslagen.
AES-256-GCM, een random IV per record en aanvullende geauthenticeerde gegevens die elke ciphertext binden aan de aanbieder, het account en het integratierecord.
Lees het mechanisme03
Er komt geen kaartdata in Salewise.
Er is geen afrekenproces en geen PAN-opslag. De klant beslist op de telefoon en betaalt bij de bestaande kassa van de winkelier.
Lees het mechanisme04
Toegang is afgebakend, niet gedeeld.
Bij elke winkelroute wordt eigenaarschap gecontroleerd. Toegangstokens gelden 15 minuten; refresh tokens worden gehasht en bij gebruik geroteerd.
Lees het mechanismeGefundeerd vanaf de basis
Het model kiest. De server toont.
Ophalen draait vóór genereren. Het model kiest uit kandidaten; de server doet het rekenwerk en het tonen.
01
Eerst ophalen
De server haalt kandidaatproducten uit de catalogus van de winkelier op voordat het model iets wordt gevraagd. Het model zoekt nooit op het open web.
02
Het model kiest. De server toont.
Prijzen, voorraad, varianten en aanbiedingen worden aan de serverkant uit catalogusrecords getoond. Een getal in de tekst van het model is nooit de bron van waarheid.
03
ID's worden gevalideerd
Elk product dat het model kiest, moet in de opgehaalde kandidatenset staan. Ongeldige ID's worden weggegooid voordat het antwoord de klant bereikt.
04
Eerlijk weigeren
Als de catalogus geen antwoord bevat, zegt de agent dat en biedt hij een overdracht aan. Is het model niet beschikbaar, dan zegt de assistent dat hij geen antwoord kan geven; de klant kan het opnieuw proberen of een medewerker vragen.
Wat naar het model gaat
- De vraag van de klant.
- Een set opgehaalde cataloguskandidaten.
- Winkelinstellingen en de relevante beleidstekst.
Wat nooit naar het model gaat
- Kaartgegevens of betaalinloggegevens.
- Wachtwoorden, API-sleutels of de Salewise-hoofdsleutel.
- Een tool die naar het POS kan schrijven.
Controleoverzicht
Een controleoverzicht, geen vertrouwensbadge.
Elke regel noemt de controle, het mechanisme erachter en waar de grens ligt. Vraagt een vragenlijst meer detail, vraag het.
Gefundeerde antwoorden
De catalogus is de bron van waarheid.
- De server haalt kandidaatproducten op voordat het model draait. Het model mag alleen ID's uit die set kiezen. Ongeldige ID's worden weggegooid, en prijs, voorraad, varianten en aanbiedingen worden aan de serverkant getoond. Heeft de catalogus geen antwoord, dan zegt de agent dat en biedt hij een overdracht aan.
Inloggegevens in rust
Geheimen zijn versleuteld, gebonden en geversioneerd.
- Inloggegevens van aanbieders gebruiken AES-256-GCM met een random IV van 96 bits per record. Aanvullende geauthenticeerde gegevens binden de ciphertext aan provider:{providerId}:account:{accountId}:credentials, zodat een record dat naar een andere tenant is gekopieerd niet kan worden ontsleuteld. keyVersion ondersteunt sleutelrotatie; een mislukte ontsleuteling faalt veilig in plaats van een geheim terug te geven.
Salewise-verzoeken
Ondertekend, niet alleen bearer.
- Verzoeken naar de Salewise-hoofd-API dragen een HMAC-SHA256-handtekening over de methode, het pad, de tijdstempel, de nonce en de SHA-256 van de body. De handtekening wordt in constante tijd vergeleken en begrensd door een replay-venster. De hoofdsleutel staat aan de serverkant, wordt één keer geconfigureerd, in rust versleuteld en nooit aan een browser teruggegeven.
Accounts en rollen
Een winkeliersaccount is geen serverbeheerder.
- Sage heeft rollen voor winkelier en serverbeheerder. Wachtwoorden gebruiken scrypt met een salt per account. Toegangstokens verlopen na 15 minuten; refresh tokens worden als hash opgeslagen, bij gebruik geroteerd en verlopen na 30 dagen. Uitnodigingen verlopen na 7 dagen en zijn gebonden aan het uitgenodigde e-mailadres.
Tenant-isolatie
Een winkelopzoeking is een eigenaarscontrole.
- Elke winkelroute bepaalt de winkel en controleert of die bij het geauthenticeerde account hoort voordat gegevens worden teruggegeven. Repository-methoden zijn afgebakend per account en winkel, en SQL staat achter de repository-laag in plaats van in routehandlers.
Kaartgegevens
Geen betalingen, geen PAN's.
- Salewise neemt geen betalingen aan en slaat geen kaartgegevens op. De klant-PWA heeft geen afrekenproces, en de transactie blijft binnen het POS van de winkelier. We claimen geen PCI DSS-scope voor kaartbetalingen omdat we geen kaartbetalingen verwerken.
Bewaring
Geconfigureerd, niet oneindig.
- De referentie-implementatie is ingesteld op 180 dagen voor sessietranscripten en 365 dagen voor gebeurtenisrecords, via omgevingsvariabelen en de DPA. Bewaring per winkelier wordt in de DPA afgesproken, en verwijdering gebeurt op verzoek. Een geplande opschoning claimen we vandaag niet.
Auditspoor
Beveiligingsrelevante gebeurtenissen laten een record achter.
- Registratie, inloggen, mislukte login, uitnodigingen, inrichting en wijzigingen in integratie-inloggegevens worden naar een auditlogboek geschreven. E-mailadressen worden gehasht in auditdetails in plaats van ruw opgeslagen. Het logboek is vandaag intern; er is nog geen auditscherm voor winkeliers.
Modelgrens
Het model krijgt het minimum dat het nodig heeft.
- Het model ontvangt de vraag van de klant, opgehaalde cataloguskandidaten, winkelinstellingen en relevante beleidstekst. Het ontvangt geen wachtwoorden, API-inloggegevens of kaartgegevens, en het heeft geen tool die naar het POS kan schrijven.
“Gebouwd” betekent dat de controle vandaag in het product bestaat. Het betekent niet dat elke controle onafhankelijk is geaudit. De leemte staat onderaan deze pagina.
Inloggegevens & verzoeken
Versleuteld opgeslagen. Ondertekend onderweg.
De twee mechanismen waar een beveiligingsreviewer meestal als eerste naar vraagt.
Inloggegevens in rust
- Algoritme
- AES-256-GCM, geauthenticeerde versleuteling.
- IV
- 12 random bytes per record, nooit hergebruikt.
- Binding
- AAD provider:{providerId}:account:{accountId}:credentials. Een gekopieerd record kan niet worden ontsleuteld.
- Rotatie
- keyVersion op elk record; de vorige sleutel wordt tijdens rotatie geaccepteerd.
- Fout
- Een mislukte ontsleuteling faalt veilig. Er wordt niet opnieuw geprobeerd met een verlopen geheim.
Salewise-verzoeken
De hoofdsleutel wordt één keer geconfigureerd tijdens de serverinrichting. Elk verzoek wordt ermee ondertekend; de handtekening is geen bearer-token.
canonical = method + "\n" + path + "\n" + timestamp + "\n" + nonce + "\n" + sha256(body); signature = HMAC-SHA256(masterKey, canonical);
- Verzonden als X-Sage-Signature met tijdstempel- en nonce-headers.
- Vergeleken in constante tijd, met een replay-venster.
- Hoofdsleutel aan de serverkant bewaard en in rust versleuteld.
- Nooit aan een browser teruggegeven of naar een logboek geschreven.
Data, rollen & bewaring
Smalle data. Afgebakende toegang. Een record.
De assistent hoeft niet te weten wie de klant is om een productvraag te beantwoorden.
Een sessie legt vast
- Een sessie-ID, de QR-code en de gang die hem startte.
- De vragen, antwoorden en aanbevelingen.
- Overdrachtsgebeurtenissen en tijdstempels.
Geen naam, account of kaartgegevens. De demo koppelt een sessie niet aan een bekende klant.
Wie erbij kan
- Een winkeliersaccount, afgebakend tot de winkels die eraan zijn gekoppeld.
- Een serverbeheerder, voor inrichting en configuratie van aanbieders.
- Geen toegang tot winkels van andere winkeliers via de winkelsroutes.
Uitnodigingen zijn aan een e-mailadres gebonden en verlopen na 7 dagen.
Hoe lang het blijft
- Sessietranscripten: ingesteld op 180 dagen.
- Gebeurtenisrecords: ingesteld op 365 dagen.
- Voorwaarden per winkelier: vastgelegd in de DPA.
Verwijdering gebeurt op verzoek. Een geplande opschoning claimen we vandaag niet.
Auditgebeurtenissen
Registratie, inloggen, mislukte login, uitnodigingen, inrichting en wijzigingen in integratie-inloggegevens worden naar een auditlogboek geschreven. E-mailadressen worden gehasht in auditdetails in plaats van ruw opgeslagen. Het logboek is vandaag intern; we presenteren het niet als een auditscherm voor winkeliers.
Toerekening
Het record moet een audit doorstaan.
Een gematchte verkoop is exact of gemodelleerd. De winkelier ziet welke, en waarom.
Deterministisch
Een inwisselcode die van de sessie naar de verkoop gaat. Betrouwbaarheid 1.0. Gemodelleerd onwaar. De verkoop wordt volledig toegeschreven.
Gemodelleerd
Een verkoop in dezelfde winkel binnen twee uur met aanbevolen items. Er wordt een betrouwbaarheidsscore opgeslagen, afgetopt op 0.92, en de match wordt overal als gemodelleerd gelabeld waar hij wordt gerapporteerd.
Exacte matches zijn exact. Gemodelleerde matches zijn overal als gemodelleerd gelabeld waar ze worden gerapporteerd. Het abonnement is de enige kostenpost, en toerekening wordt niet als omzet gepresenteerd.
Eerlijke grenzen
Wat we niet claimen.
Vertrouwen is makkelijker te controleren als de leemtes benoemd zijn.
Als een vragenlijst iets van deze lijst vereist, zeg het.
We verliezen liever de deal dan eromheen te antwoorden.
- 01
We hebben vandaag geen SOC 2- of ISO 27001-certificering.
- 02
We hebben vandaag geen onafhankelijke penetratietest of beveiligingsaudit afgerond.
- 03
We claimen geen PCI DSS-scope voor kaartbetalingen, omdat we geen kaartbetalingen verwerken.
- 04
We trainen in het huidige product geen gedeeld model op de catalogus of gesprekken van één winkelier.
- 05
Geen enkel AI-systeem is risicovrij. Fundering vermindert verzinnen; het haalt de noodzaak van controle door de winkelier en overdrachtsregels niet weg.
- 06
We voeren vandaag geen geplande bewaaropschoning uit; verwijdering is een operationele procedure onder de DPA.
- 07
Ons auditlogboek is intern en wordt niet als auditscherm voor winkeliers aangeboden.
- 08
We beloven op deze pagina geen serviceniveau; elke beschikbaarheidsafspraak staat in het orderformulier.
Verantwoorde melding
Als je denkt een kwetsbaarheid te hebben gevonden, neem contact op met support@salewise.co.uk met genoeg detail om het te reproduceren. Open geen gegevens van een andere winkelier, verstoort de dienst niet en maak het niet openbaar voordat we de kans hebben gehad te reageren.
Beveiligingsvragen
Stel de ongemakkelijke vraag.
Beveiligingsvragenlijsten, verwerkingstermen en architectuurvragen zijn welkom. We beantwoorden wat we hebben en zeggen wat we niet hebben.