Segurança e privacidade
Como o Babel Mesh direciona requisições, protege contas e verifica nós, e o que ele não pode fazer.
Para onde vai o que você envia
Sua requisição chega ao gateway do Babel Mesh, que escolhe um nó conforme a classe de dados da requisição e a encaminha. O nó calcula o resultado com seu modelo e o devolve pelo gateway.
- O nó que atende uma requisição pode lê-la. É assim que funciona hoje: um nó precisa ler o prompt para responder. Por isso, não envie senhas, números de documento ou segredos comerciais.
- O nó não vê quem você é. A requisição que o nó recebe não traz nome de conta nem chave, apenas uma etiqueta anônima.
- O Babel Mesh não guarda conversas. Os registros do gateway contêm o horário de uma requisição, o modelo, o resultado e o uso. As conversas ficam no seu próprio cliente ou navegador.
- A Babel Mesh não analisa conteúdo. O gateway não verifica, não bloqueia nem filtra entradas ou saídas com base em regras de conteúdo, e não guarda trechos nem nomes de conta por causa do que uma solicitação diz. A responsabilidade pelo uso do conteúdo é do usuário; não envie conteúdo ilegal.
- Verificações por amostragem repetem requisições. Para conferir o que os colaboradores devolvem, uma pequena parte das requisições de classe pública é calculada de novo nos nós do próprio operador e os dois resultados são comparados.
Classes de dados
Cada conta e cada requisição tem uma classe de dados. Contas que se cadastram sozinhas começam em "pública". Os nós de colaboradores só recebem requisições "públicas". Classes mais altas vão apenas para os nós do próprio operador. Imagens e vídeo, por ora, também são atendidos só pelos nós do operador, porque seus resultados não podem ser verificados por amostragem como o texto.
Conexões e chaves
- O site e a API usam HTTPS. Os componentes por trás (controlador, gateway, livro-razão, relay, nós) se comunicam por conexões criptografadas com autenticação mútua de certificados; a identidade de um nó está no certificado dele.
- Os nós só se conectam para fora. Não abrem porta de entrada e atendem por um relay.
- O cliente guarda sua chave de API no seu computador, legível apenas pela sua conta do sistema. A página do cliente nunca recebe a chave; o cliente faz as requisições por você.
- As atualizações do cliente são conferidas com um manifesto assinado: a chave pública está embutida no cliente, e uma assinatura inválida ou uma versão que não seja mais nova nunca é instalada.
Contabilidade e verificação
- Recibos assinados pelas duas partes. Para cada requisição, o gateway e o nó assinam o mesmo recibo, e o livro-razão só o registra quando os dois concordam. Um recibo contém hashes da requisição e do resultado e o uso, não o conteúdo.
- Verificações aleatórias. Nós novos são verificados com mais frequência, nós com longo histórico limpo, com menos. Um nó cujos resultados não batem é colocado em quarentena; quando o operador confirma a fraude, os ganhos são perdidos e penalizados conforme as regras.
- Os ganhos ficam retidos. A renda de um colaborador espera alguns dias, durante os quais as verificações continuam.
Hive: o servidor não vê a sua tarefa
O Hive é outro caminho: as tarefas e os arquivos que você entrega a ele são cifrados no seu navegador, e o despachante e o armazenamento só recebem texto cifrado. Isto é o que ele faz hoje, incluindo o que não consegue fazer.
- A criptografia acontece no navegador. Cada tarefa tem sua própria chave mestra; a tarefa, seus arquivos e seu resultado são selados com ela, e a chave mestra é selada separadamente para cada máquina autorizada a executar a tarefa. O despachante, o armazenamento e o gateway veem texto cifrado, tamanhos, horários e o ID da sua conta, não o conteúdo.
- A máquina que executa uma tarefa consegue lê-la. Ela precisa abrir a tarefa para trabalhar, e isso não dá para evitar. Por isso as máquinas são separadas por classe de dados: tarefas públicas podem ir a qualquer máquina admitida; as confiáveis só às máquinas próprias da plataforma, instituições contratadas e máquinas que passaram na atestação remota; as confidenciais só às máquinas próprias da plataforma e às atestadas. Suas próprias máquinas vêm sempre primeiro, e só elas podem pegar suas tarefas independentemente da classe.
- As máquinas rodam isoladas. Uma tarefa roda em um sandbox gVisor, sem rede por padrão e com acesso apenas à sua própria pasta de trabalho. Uma máquina nova precisa passar por várias verificações antes de receber tarefas reais, e uma máquina que falha em uma verificação é colocada em quarentena ou banida.
- Uma chave de modelo de uso único por tarefa. As máquinas nunca recebem a chave da sua conta; uma tarefa usa uma chave criada só para ela, com limite de gasto. O servidor a revoga assim que a tarefa termina, com a sua página aberta ou não.
- Por quanto tempo as coisas são guardadas. Uma tarefa e seu resultado (cifrado) ficam 7 dias no servidor e depois são apagados; a página mostra a data. Cancelar apaga na hora. Seus registros de tarefas e as chaves para abri-los ficam somente no seu navegador: se você apagar os dados dele ou trocar de navegador, não dá para abri-los, a menos que ative a sincronização entre dispositivos (cifrada com uma senha que só você sabe; se esquecer, ninguém consegue recuperar).
- Minha biblioteca também é cifrada no navegador. Os arquivos são divididos em blocos e cifrados com uma chave própria antes do envio; o armazenamento guarda texto cifrado, em mais de uma máquina, e o índice é cifrado. Um arquivo que você compartilha com uma tarefa é somente leitura, limitado no tempo e aos seus blocos.
- Você pode conferir. A ideia é que o código central seja de código aberto; as versões já podem ser compiladas de forma reproduzível e seus hashes serão registrados em um log de transparência para que você confirme que o programa que executa é o compilado a partir do código-fonte (esta etapa ainda não começou); a criptografia do navegador é um arquivo separado, conferido com a implementação do servidor por vetores de teste compartilhados.
O que o Hive não consegue fazer: impedir que a máquina que executa uma tarefa veja o que processa (a classe confidencial depende de atestação por hardware, até agora só nas máquinas próprias da plataforma); proteger contra um navegador comprometido ou um computador com extensão maliciosa; o servidor ainda conhece metadados como “uma conta enviou uma tarefa deste tamanho a esta hora”; tarefas públicas podem ser processadas por máquinas de desconhecidos, então não coloque nada privado nelas; não houve auditoria de segurança de terceiros.
O que ele não pode fazer
- Ainda não há ambiente de execução confiável (TEE): não é possível garantir que um nó não veja o conteúdo, e é por isso que as requisições têm classes.
- Não passou por uma auditoria de segurança de terceiros.
- Sem promessa de disponibilidade: os nós podem sair a qualquer momento e uma requisição é tentada de novo em outro nó, mas o sucesso não é garantido.
Esta página descreve o que o sistema realmente faz hoje. Termos de serviço e política de privacidade formais são publicados separadamente pela entidade operadora.