安全与依据

信任是一种机制,
不是一枚徽章。

本页就是证据:系统强制执行什么、存储什么、谁能访问,以及我们尚未构建什么。

安全联系人

support@salewise.co.uk

请附上复现步骤。请不要访问其他商家的数据或中断服务。

当前状况

  • 尚未取得 SOC 2 或 ISO 27001 认证。
  • 尚未进行独立渗透测试。
  • 不持有银行卡数据。

简要版

四项声明,以及证据所在。

不是营销形容词。而是有代码支撑的设计决策。

01

模型无法设定价格。

检索先于生成运行。模型从候选 ID 中选择;服务器验证这些 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 请求

签名认证,而非仅 bearer。

发往 Salewise 主 API 的请求携带 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 请求

主密钥在服务器设置期间配置一次。每个请求都用它签名;签名不是 bearer token。

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

signature =
  HMAC-SHA256(masterKey, canonical);
  • 通过 X-Sage-Signature 发送,并带有时间戳和 nonce 标头。
  • 以恒定时间比较,并设有重放窗口。
  • 主密钥保存在服务端并静态加密。
  • 绝不返回浏览器或写入日志。

数据、角色与保留

最少的数据。限定的访问。一份记录。

助手不需要知道顾客是谁,也能回答商品问题。

会话记录

  • 会话 ID、二维码以及发起会话的通道。
  • 问题、回答和推荐。
  • 转接事件和时间戳。

没有姓名、账户或银行卡数据。演示不会将会话关联到具名顾客。

谁可以访问

  • 商家账户,范围限定为其关联的门店。
  • 服务器管理员,用于设置和服务商配置。
  • 门店路由不提供跨商家的门店访问。

邀请绑定到邮箱,并在 7 天后过期。

保留多久

  • 会话记录:配置为 180 天。
  • 事件记录:配置为 365 天。
  • 商家特定条款:在 DPA 中设定。

删除按请求处理。目前我们不宣称已实施定时清理。

审计事件

注册、登录、登录失败、邀请、设置和集成凭据变更都会写入审计日志。审计详情中的邮箱经过哈希处理,而不是以原始形式存储。该日志目前仅供内部使用;我们不把它呈现为面向商家的审计界面。

归因

记录必须经得起审计。

已匹配的销售要么精确,要么建模。商家可以看到是哪一种,以及为什么。

确定性

核销码从会话带到销售。置信度 1.0。建模标记为 false。该销售直接归因。

建模

两小时窗口内、包含推荐商品的同店销售。系统保存置信度分数,上限为 0.92,且该匹配在所有报告中都标注为建模。

精确匹配就是精确的。建模匹配在所有报告中都会标注为建模。订阅费是唯一费用,归因也不作为收入呈现。

诚实的限制

我们不宣称什么。

把缺口说清楚,信任才更容易核查。

如果问卷要求清单上的某项,请直接说明。

我们宁愿失去这笔交易,也不愿绕着问题回答。

  • 01

    我们目前尚未取得 SOC 2 或 ISO 27001 认证。

  • 02

    我们目前尚未完成独立渗透测试或安全审计。

  • 03

    我们不宣称银行卡支付适用 PCI DSS 范围,因为我们不处理银行卡支付。

  • 04

    在当前产品中,我们不会用某家商家的商品目录或对话训练共享模型。

  • 05

    没有无风险的 AI 系统。依据机制减少编造;它并不免除商家审阅和转接规则的必要性。

  • 06

    我们目前不运行定时保留清理;删除是 DPA 下的运营流程。

  • 07

    我们的审计日志仅供内部使用,未作为面向商家的审计界面开放。

  • 08

    本页不承诺服务级别;任何可用性承诺均在订单表中约定。

负责任披露

如果你认为发现了漏洞,请联系 support@salewise.co.uk ,并提供足够的复现细节。请不要访问其他商家的数据、中断服务,或在我们有机会回应之前公开披露。

安全问题

问那个不好回答的问题。

欢迎安全问卷、数据处理条款和架构问题。我们会回答已知的,并说明不知道的。