Segurança e fundamentação

A confiança é um mecanismo,
não um selo.

Esta página é a prova: o que o sistema impõe, o que guarda, quem lhe pode aceder e o que ainda não construímos.

Contacto de segurança

support@salewise.co.uk

Inclua passos de reprodução. Não aceda aos dados de outro comerciante nem interrompa o serviço.

Postura atual

  • Sem certificação SOC 2 ou ISO 27001.
  • Ainda sem teste de intrusão independente.
  • Sem dados de cartão guardados.

A versão curta

Quatro afirmações, e onde está a prova.

Não são adjetivos de marketing. São decisões de design com código por trás.

01

O modelo não pode definir um preço.

A recuperação corre antes da geração. O modelo seleciona a partir de IDs candidatos; o servidor valida-os e apresenta preço, existências e variantes.

Ler o mecanismo

02

Os segredos dos fornecedores são encriptados em repouso.

AES-256-GCM, um IV aleatório por registo e dados autenticados adicionais que ligam cada texto cifrado ao seu fornecedor, conta e registo de integração.

Ler o mecanismo

03

Nenhum dado de cartão entra na Salewise.

Não existe checkout nem armazenamento de PAN. O cliente decide no telemóvel e paga na caixa atual do comerciante.

Ler o mecanismo

04

O acesso é limitado, não partilhado.

A propriedade da loja é verificada em cada rota de loja. Os tokens de acesso duram 15 minutos; os tokens de atualização são convertidos em hash e renovados a cada utilização.

Ler o mecanismo

Fundamentado por construção

O modelo seleciona. O servidor apresenta.

A recuperação corre antes da geração. O modelo escolhe entre candidatos; o servidor faz as contas e a apresentação.

01

Primeiro, a recuperação

O servidor recupera produtos candidatos do catálogo do comerciante antes de perguntar seja o que for ao modelo. O modelo nunca pesquisa na internet aberta.

02

O modelo seleciona. O servidor apresenta.

Preços, existências, variantes e ofertas são apresentados no servidor a partir dos registos do catálogo. Um número no texto do modelo nunca é a fonte de verdade.

03

Os IDs são validados

Cada produto selecionado pelo modelo tem de existir no conjunto de candidatos recuperado. Os IDs inválidos são descartados antes de a resposta chegar ao cliente.

04

Recusa honesta

Se o catálogo não tiver a resposta, o agente diz isso e oferece um encaminhamento para uma pessoa. Quando o modelo não está disponível, o assistente diz que não consegue responder e o cliente pode tentar novamente ou falar com uma pessoa.

O que chega ao modelo

  • A pergunta do cliente.
  • Um conjunto de candidatos recuperados do catálogo.
  • Definições da loja e o texto relevante das políticas.

O que nunca chega ao modelo

  • Dados de cartão ou credenciais de pagamento.
  • Palavras-passe, chaves de API ou a chave mestra da Salewise.
  • Uma ferramenta capaz de escrever no POS.

Registo de controlos

Um registo de controlos, não um selo de confiança.

Cada linha indica o controlo, o mecanismo por trás dele e onde está o limite. Se um questionário precisar de mais detalhe, pergunte.

Respostas fundamentadas

O catálogo é a fonte de verdade.

O servidor recupera produtos candidatos antes de o modelo correr. O modelo só pode selecionar IDs desse conjunto. Os IDs inválidos são descartados, e preço, existências, variantes e ofertas são apresentados no servidor. Se o catálogo não tiver resposta, o agente diz isso e oferece um encaminhamento.

Credenciais em repouso

Os segredos são encriptados, ligados e versionados.

As credenciais dos fornecedores usam AES-256-GCM com um IV aleatório de 96 bits por registo. Os dados autenticados adicionais ligam o texto cifrado a provider:{providerId}:account:{accountId}:credentials, pelo que um registo copiado para outro inquilino falha a desencriptação. keyVersion permite a rotação de chaves; uma desencriptação falhada fecha o acesso em vez de devolver um segredo.

Pedidos à Salewise

Assinados, não apenas bearer.

Os pedidos à API mestra da Salewise transportam uma assinatura HMAC-SHA256 sobre o método, o caminho, o registo temporal, o nonce e o SHA-256 do corpo. A assinatura é comparada em tempo constante e limitada por uma janela de repetição. A chave mestra fica no servidor, é configurada uma vez, encriptada em repouso e nunca devolvida a um navegador.

Contas e funções

Uma conta de comerciante não é um administrador do servidor.

A Sage tem funções de comerciante e de administrador do servidor. As palavras-passe usam scrypt com sal por conta. Os tokens de acesso expiram após 15 minutos; os tokens de atualização são guardados como hashes, renovados a cada utilização e expiram após 30 dias. Os convites expiram após 7 dias e estão vinculados ao email convidado.

Isolamento de inquilinos

Uma consulta de loja é uma verificação de propriedade.

Cada rota de loja resolve a loja e verifica que pertence à conta autenticada antes de devolver dados. Os métodos do repositório são limitados por conta e loja, e o SQL fica por trás da camada de repositório, não nos controladores de rota.

Dados de cartão

Sem pagamentos, sem PANs.

A Salewise não recebe pagamentos nem guarda dados de cartão. A PWA do cliente não tem checkout, e a transação fica dentro do POS do comerciante. Não afirmamos âmbito PCI DSS para pagamentos com cartão porque não processamos pagamentos com cartão.

Conservação

Configurada, não indefinida.

A implementação de referência está configurada para 180 dias para transcrições de sessões e 365 dias para registos de eventos, definidos por ambiente e pelo DPA. A conservação específica do comerciante é acordada no DPA, e a eliminação é tratada a pedido. Atualmente não afirmamos uma purga agendada.

Registo de auditoria

Os eventos relevantes para a segurança deixam registo.

O registo, o início de sessão, o início de sessão falhado, os convites, a configuração e as alterações às credenciais de integração são escritos num registo de auditoria. Os emails são convertidos em hash nos detalhes de auditoria em vez de guardados em texto simples. O registo é interno hoje; ainda não existe um ecrã de auditoria para o comerciante.

Limite do modelo

O modelo recebe o mínimo de que precisa.

O modelo recebe a pergunta do cliente, candidatos recuperados do catálogo, definições da loja e o texto relevante das políticas. Não recebe palavras-passe, credenciais de API ou dados de cartão, e não tem qualquer ferramenta capaz de escrever no POS.

“Construído” significa que o controlo existe no produto hoje. Não significa que todos os controlos tenham sido auditados de forma independente. A lacuna está indicada no fim desta página.

Credenciais e pedidos

Encriptados em repouso. Assinados em trânsito.

Os dois mecanismos que um revisor de segurança costuma pedir primeiro.

Credenciais em repouso

Algoritmo
AES-256-GCM, encriptação autenticada.
IV
12 bytes aleatórios por registo, nunca reutilizados.
Ligação
AAD provider:{providerId}:account:{accountId}:credentials. Um registo copiado falha a desencriptação.
Rotação
keyVersion em cada registo; a chave anterior é aceite durante a rotação.
Falha
Uma desencriptação falhada fecha o acesso. Não tenta novamente com um segredo antigo.

Pedidos à Salewise

A chave mestra é configurada uma vez durante a configuração do servidor. Cada pedido é assinado com ela; a assinatura não é um token bearer.

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

signature =
  HMAC-SHA256(masterKey, canonical);
  • Enviada como X-Sage-Signature com cabeçalhos de data e hora e de nonce.
  • Comparada em tempo constante, com uma janela de repetição.
  • Chave mestra mantida no servidor e encriptada em repouso.
  • Nunca devolvida a um navegador nem escrita num registo.

Dados, funções e conservação

Dados mínimos. Acesso limitado. Um registo.

O assistente não precisa de saber quem é o cliente para responder a uma pergunta sobre um produto.

Uma sessão regista

  • Um ID de sessão, o código QR e o corredor que a iniciaram.
  • As perguntas, respostas e recomendações.
  • Eventos de encaminhamento e datas e horas.

Sem nome, conta ou dados de cartão. A demonstração não associa uma sessão a um cliente identificado.

Quem lhe pode aceder

  • Uma conta de comerciante, limitada às lojas associadas.
  • Um administrador do servidor, para configuração e definição de fornecedores.
  • Sem acesso a lojas de outros comerciantes através das rotas de loja.

Os convites estão vinculados a um email e expiram após 7 dias.

Quanto tempo fica

  • Transcrições de sessões: configuradas para 180 dias.
  • Registos de eventos: configurados para 365 dias.
  • Termos específicos do comerciante: definidos no DPA.

A eliminação é tratada a pedido. Atualmente não afirmamos uma purga agendada.

Eventos de auditoria

O registo, o início de sessão, o início de sessão falhado, os convites, a configuração e as alterações às credenciais de integração são escritos num registo de auditoria. Os emails são convertidos em hash nos detalhes de auditoria em vez de guardados em texto simples. O registo é interno hoje; não o apresentamos como um ecrã de auditoria para o comerciante.

Atribuição

O registo tem de sobreviver a uma auditoria.

Uma venda correspondida é exata ou modelada. O comerciante consegue ver qual, e porquê.

Determinística

Um código de resgate levado da sessão até à venda. Confiança 1,0. Modelada falsa. A venda é atribuída sem reservas.

Modelada

Uma venda na mesma loja dentro de uma janela de duas horas que contenha artigos recomendados. É guardada uma pontuação de confiança, limitada a 0,92, e a correspondência é identificada como modelada onde quer que seja comunicada.

As correspondências exatas são exatas. As modeladas são identificadas como modeladas onde quer que sejam comunicadas. A subscrição é o único custo, e a atribuição não é apresentada como receita.

Limites honestos

O que não afirmamos.

A confiança é mais fácil de verificar quando as lacunas são declaradas.

Se um questionário exigir algo desta lista, diga-nos.

Preferimos perder o negócio a responder ao lado.

  • 01

    Não temos certificação SOC 2 ou ISO 27001 hoje.

  • 02

    Ainda não concluímos um teste de intrusão independente ou uma auditoria de segurança.

  • 03

    Não afirmamos âmbito PCI DSS para pagamentos com cartão, porque não processamos pagamentos com cartão.

  • 04

    No produto atual, não treinamos um modelo partilhado com o catálogo ou as conversas de um comerciante.

  • 05

    Nenhum sistema de IA está livre de risco. A fundamentação reduz a invenção; não elimina a necessidade de revisão pelo comerciante e de regras de encaminhamento.

  • 06

    Hoje não executamos uma purga de conservação agendada; a eliminação é um procedimento operacional ao abrigo do DPA.

  • 07

    O nosso registo de auditoria é interno e não é exposto como um ecrã de auditoria para o comerciante.

  • 08

    Não prometemos um nível de serviço nesta página; qualquer compromisso de disponibilidade é definido no formulário de encomenda.

Divulgação responsável

Se acredita ter encontrado uma vulnerabilidade, contacte support@salewise.co.uk com detalhe suficiente para a reproduzir. Não aceda aos dados de outro comerciante, não interrompa o serviço e não divulgue publicamente antes de termos tido oportunidade de responder.

Perguntas sobre segurança

Faça a pergunta incómoda.

Questionários de segurança, termos de tratamento de dados e perguntas de arquitetura são bem-vindos. Responderemos ao que temos e diremos o que não temos.