Безпека й прив’язка до каталогу

Довіра — це механізм,
а не значок.

Ця сторінка — докази: що система забезпечує, що зберігає, хто має доступ і що ми ще не створили.

Контакт із безпеки

support@salewise.co.uk

Додайте кроки відтворення. Будь ласка, не отримуйте доступ до даних іншого мерчанта й не порушуйте роботу сервісу.

Поточний стан

  • Немає сертифікації SOC 2 чи ISO 27001.
  • Незалежного тестування на проникнення ще не було.
  • Дані карток не зберігаються.

Коротка версія

Чотири твердження й де докази.

Не маркетингові прикметники. Архітектурні рішення, за якими стоїть код.

01

Модель не може встановити ціну.

Вибірка відбувається до генерації. Модель обирає з-поміж кандидатів; сервер перевіряє їхні ID і сам формує ціну, залишок і варіанти.

Прочитати механізм

02

Секрети провайдерів зашифровані під час зберігання.

AES-256-GCM, випадковий IV для кожного запису й додаткові автентифіковані дані, що прив’язують кожен шифротекст до провайдера, акаунта й запису інтеграції.

Прочитати механізм

03

Дані карток не потрапляють у Salewise.

Немає каси й зберігання PAN. Покупець вирішує на телефоні й платить на наявній касі мерчанта.

Прочитати механізм

04

Доступ обмежений, а не спільний.

Право власності на магазин перевіряється на кожному маршруті. Токени доступу діють 15 хвилин; токени оновлення хешуються й ротуються під час використання.

Прочитати механізм

Обґрунтовано архітектурою

Модель обирає. Сервер відображає.

Вибірка відбувається до генерації. Модель обирає з кандидатів; сервер виконує арифметику й відображення.

01

Спершу вибірка

Сервер вибирає товари-кандидати з каталогу мерчанта, перш ніж модель щось запитують. Модель ніколи не шукає у відкритому інтернеті.

02

Модель обирає. Сервер відображає.

Ціни, залишки, варіанти й пропозиції формуються на сервері з записів каталогу. Число в тексті моделі ніколи не є джерелом істини.

03

ID перевіряються

Кожен товар, який обирає модель, має бути у вибірці кандидатів. Невалідні ID відкидаються, перш ніж відповідь дійде до покупця.

04

Чесна відмова

Якщо в каталозі немає відповіді, агент каже про це й пропонує передачу спеціалісту. Якщо модель не налаштовано або вона недоступна, асистент повідомляє, що не може відповісти; покупець може спробувати ще раз або звернутися до працівника.

Що потрапляє до моделі

  • Запитання покупця.
  • Набір вибраних кандидатів із каталогу.
  • Налаштування магазину й відповідний текст політики.

Що ніколи не потрапляє до моделі

  • Дані карток або платіжні дані.
  • Паролі, API-ключі чи майстер-ключ Salewise.
  • Інструмент, який може записувати в POS.

Реєстр контролів

Реєстр контролів, а не значок довіри.

Кожен рядок називає контроль, механізм за ним і межу. Якщо анкеті потрібно більше деталей, запитайте.

Відповіді на основі каталогу

Каталог є джерелом істини.

Сервер вибирає товари-кандидати до запуску моделі. Модель може обирати лише ID з цього набору. Невалідні ID відкидаються, а ціна, залишок, варіанти й пропозиції формуються на сервері. Якщо в каталозі немає відповіді, агент каже про це й пропонує передачу.

Облікові дані під час зберігання

Секрети зашифровані, прив’язані й версіоновані.

Облікові дані провайдерів використовують AES-256-GCM із випадковим 96-бітним IV для кожного запису. Додаткові автентифіковані дані прив’язують шифротекст до provider:{providerId}:account:{accountId}:credentials, тож запис, скопійований в іншого тенанта, не розшифрується. keyVersion підтримує ротацію ключів; невдала розшифровка завершується безпечною відмовою, а не поверненням секрету.

Запити Salewise

Підписані, а не лише за токеном доступу.

Запити до майстер-API Salewise несуть підпис HMAC-SHA256 над методом, шляхом, часовою міткою, nonce й SHA-256 тіла. Підпис порівнюється за постійний час і обмежений вікном захисту від повторів. Майстер-ключ зберігається на сервері, налаштовується один раз, шифрується під час зберігання й ніколи не повертається в браузер.

Акаунти й ролі

Акаунт мерчанта — не адміністратор сервера.

У Sage є ролі мерчанта й адміністратора сервера. Паролі використовують scrypt із сіллю для кожного акаунта. Токени доступу спливають через 15 хвилин; токени оновлення зберігаються як хеші, ротуються під час використання й спливають через 30 днів. Запрошення спливають через 7 днів і прив’язані до запрошеної електронної адреси.

Ізоляція тенантів

Пошук магазину — це перевірка права власності.

Кожен маршрут магазину визначає магазин і перевіряє, що він належить автентифікованому акаунту, перш ніж повернути дані. Методи репозиторію обмежені акаунтом і магазином, а SQL міститься за шаром репозиторію, а не в обробниках маршрутів.

Дані карток

Без платежів, без PAN.

Salewise не приймає платежів і не зберігає даних карток. PWA покупця не має каси, а транзакція залишається в POS мерчанта. Ми не заявляємо про сферу PCI DSS для карткових платежів, бо не обробляємо карткові платежі.

Зберігання

Налаштоване, не безстрокове.

Еталонне розгортання налаштоване на 180 днів для стенограм сесій і 365 днів для записів подій — через середовище й DPA. Строк зберігання для конкретного мерчанта узгоджується в DPA, а видалення виконується на запит. Заплановане автоматичне очищення сьогодні не заявлене.

Журнал аудиту

Події, важливі для безпеки, залишають запис.

Реєстрація, вхід, невдалий вхід, запрошення, налаштування й зміни облікових даних інтеграцій записуються в журнал аудиту. Електронні адреси в деталях аудиту хешуються, а не зберігаються у відкритому вигляді. Журнал сьогодні внутрішній; екрана аудиту для мерчанта ще немає.

Межа моделі

Модель отримує мінімум необхідного.

Модель отримує запитання покупця, вибрані кандидати з каталогу, налаштування магазину й відповідний текст політики. Вона не отримує паролів, API-даних чи даних карток і не має інструмента, що може записувати в POS.

«Створено» означає, що контроль існує в продукті сьогодні. Це не означає, що кожен контроль незалежно перевірено. Прогалину наведено внизу цієї сторінки.

Облікові дані й запити

Зашифровано під час зберігання. Підписано в дорозі.

Два механізми, про які рецензент із безпеки зазвичай питає першими.

Облікові дані під час зберігання

Алгоритм
AES-256-GCM, автентифіковане шифрування.
IV
12 випадкових байтів на запис, ніколи не повторюються.
Прив’язка
AAD provider:{providerId}:account:{accountId}:credentials. Скопійований запис не розшифровується.
Ротація
keyVersion у кожному записі; попередній ключ приймається під час ротації.
Збій
Невдала розшифровка завершується безпечною відмовою. Вона не повторюється із застарілим секретом.

Запити Salewise

Майстер-ключ налаштовується один раз під час налаштування сервера. Кожен запит підписується ним; підпис не є токеном доступу.

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

signature =
  HMAC-SHA256(masterKey, canonical);
  • Надсилається як X-Sage-Signature із заголовками часової мітки й nonce.
  • Порівнюється за постійний час із вікном захисту від повторів.
  • Майстер-ключ зберігається на сервері й шифрується під час зберігання.
  • Ніколи не повертається в браузер і не записується в журнал.

Дані, ролі й зберігання

Вузькі дані. Обмежений доступ. Запис.

Асистенту не потрібно знати, хто покупець, щоб відповісти на запитання про товар.

Сесія записує

  • ID сесії, QR-код і ряд, де вона почалася.
  • Запитання, відповіді й рекомендації.
  • Події передачі й часові мітки.

Без імені, акаунта чи даних карток. Демо не пов’язує сесію з іменем покупця.

Хто має доступ

  • Акаунт мерчанта, обмежений магазинами, пов’язаними з ним.
  • Адміністратор сервера — для налаштування й конфігурації провайдерів.
  • Жодного доступу до магазинів інших мерчантів через маршрути магазину.

Запрошення прив’язані до електронної адреси й спливають через 7 днів.

Скільки зберігається

  • Стенограми сесій: налаштовано на 180 днів.
  • Записи подій: налаштовано на 365 днів.
  • Умови для конкретного мерчанта: визначені в DPA.

Видалення виконується на запит. Заплановане автоматичне очищення сьогодні не заявлене.

Події аудиту

Реєстрація, вхід, невдалий вхід, запрошення, налаштування й зміни облікових даних інтеграцій записуються в журнал аудиту. Електронні адреси в деталях аудиту хешуються, а не зберігаються у відкритому вигляді. Журнал сьогодні внутрішній; ми не подаємо його як екран аудиту для мерчанта.

Атрибуція

Запис має витримати аудит.

Зіставлений продаж або точний, або змодельований. Мерчант бачить, який саме і чому.

Детермінований

Код погашення, перенесений із сесії в продаж. Упевненість 1,0. Позначку «змодельовано» не застосовано. Продаж атрибутовано прямо.

Змодельований

Продаж у тому самому магазині протягом двогодинного вікна з рекомендованими товарами. Оцінка впевненості зберігається, обмежена 0,92, а збіг позначений як змодельований скрізь, де згадується.

Точні збіги точні. Змодельовані позначені як змодельовані скрізь, де згадуються. Підписка — єдина плата, а атрибуція не подається як дохід.

Чесні межі

Чого ми не заявляємо.

Довіру легше перевірити, коли прогалини названо.

Якщо анкета вимагає чогось зі списку, скажіть про це.

Ми радше втратимо угоду, ніж обійдемо це питання.

  • 01

    Сьогодні ми не маємо сертифікації SOC 2 чи ISO 27001.

  • 02

    Сьогодні ми не завершили незалежне тестування на проникнення чи аудит безпеки.

  • 03

    Ми не заявляємо про сферу PCI DSS для карткових платежів, бо не обробляємо карткові платежі.

  • 04

    У поточному продукті ми не навчаємо спільну модель на каталозі чи розмовах одного мерчанта.

  • 05

    Жодна AI-система не є безризиковою. Прив’язка до каталогу зменшує вигадування; вона не скасовує потребу в перевірці мерчантом і правилах передачі.

  • 06

    Сьогодні ми не запускаємо заплановане автоматичне очищення строків зберігання; видалення — це операційна процедура за DPA.

  • 07

    Наш журнал аудиту внутрішній і не відкритий як екран аудиту для мерчанта.

  • 08

    Ми не обіцяємо рівень сервісу на цій сторінці; будь-яке зобов’язання щодо доступності визначається в бланку замовлення.

Відповідальне розкриття

Якщо ви вважаєте, що знайшли вразливість, напишіть на support@salewise.co.uk із достатніми деталями для відтворення. Будь ласка, не отримуйте доступ до даних іншого мерчанта, не порушуйте роботу сервісу й не розкривайте інформацію публічно, перш ніж ми матимете можливість відповісти.

Запитання про безпеку

Поставте незручне запитання.

Анкети з безпеки, умови обробки даних та архітектурні запитання вітаються. Ми відповімо тим, що маємо, і скажемо, чого не маємо.