Skip to content

Infraestrutura de carteira e modelo de segurança

Contexto do setor

Sistemas de carteira costumam depender de um ou mais métodos criptográficos fundamentais para proteger chaves privadas. Entender essas abordagens oferece contexto para o modelo de segurança descrito neste documento.

Shamir's Secret Sharing (SSS)

SSS divide uma chave privada em várias partes, exigindo um limiar mínimo para reconstruir o original. Oferece sigilo perfeito — qualquer número de partes abaixo do limiar não revela nada sobre a chave. SSS é maduro, bem suportado por ferramentas e rápido (assinatura em 20–40 ms). A contrapartida é que a chave privada precisa ser totalmente remontada para assinar, criando um ponto único de falha no momento da reconstituição.

Threshold Signature Schemes (TSS)

TSS (comumente conhecido como MPC) permite que várias partes produzam conjuntamente uma assinatura sem jamais remontar a chave privada. Isso elimina o risco de reconstituição do SSS. A contrapartida é a imaturidade — o primeiro protocolo ECDSA eficiente entre duas partes surgiu só em 2017 — e o desempenho: cada assinatura envolve idas e voltas na rede, introduzindo latência que pode chegar a vários segundos.

Trusted Execution Environments (TEE)

TEEs executam operações criptográficas dentro de enclaves de hardware, garantindo que o material de chave nunca seja exposto e que apenas código autorizado rode. Clientes podem verificar operações por meio de atestações. TEEs escalam bem e evitam a latência de ida e volta do TSS, mas sua segurança depende da integridade do enclave, que historicamente foi vulnerável a exploits de canal lateral.

WebAuthn PRF Extension

A extensão WebAuthn PRF (Pseudo-Random Function) deriva um segredo determinístico do hardware de passkey do usuário — Secure Enclave em dispositivos Apple, TPM no Windows, Titan chip no Android. Esse segredo está vinculado ao dispositivo e à biometria ou ao PIN do usuário, calculado no dispositivo durante a autenticação e nunca transmitido. Ela viabiliza uma classe de desenhos de carteira em que o material de chave pode ser criptografado com um segredo que nenhum servidor jamais viu.


Proteção de chave em três partes

Visão geral

As chaves privadas neste sistema nunca são armazenadas inteiras — nem nos dispositivos do usuário, nem em nossos servidores, em lugar algum. Em vez disso, o material de chave é dividido criptograficamente entre três partes independentes usando um esquema de compartilhamento de segredo 3-de-3. As três partes precisam cooperar para reconstruir uma chave. Menos de três revela matematicamente zero informação sobre a chave privada.

Este é um modelo híbrido: combina criptografia no cliente baseada em passkey (PRF-as-KEK), compartilhamento de segredo e um enclave isolado no servidor em uma única arquitetura. A construção resultante alcança a mesma garantia de segurança informacional que o compartilhamento de segredo de Shamir — nenhum subconjunto de partes abaixo do limiar obtém informação sobre a chave — ao mesmo tempo em que vincula uma parte ao hardware de autenticação físico do usuário, de modo que nenhum comprometimento só no servidor pode reconstruir a chave.

Este é o modelo de segurança padrão para todos os dispositivos modernos (todos os navegadores principais em iOS, macOS, Android e Windows).


As três partes

Parte 1 — O autenticador do usuário

O hardware de passkey do usuário calcula um segredo determinístico vinculado àquele dispositivo e à biometria ou ao PIN do usuário. Essa saída — chamada de saída PRF — é produzida no dispositivo durante a autenticação e nunca é transmitida a lugar algum. Não é armazenada. Não é registrada em log. Existe apenas na memória durante a operação de assinatura.

Esse segredo é a contribuição do usuário para a reconstrução da chave. Sem ele, as outras duas partes não detêm nada que possa produzir uma chave privada utilizável.

Parte 2 — A API

A API armazena uma cópia criptografada do material de chave do usuário. Ela é criptografada com o segredo derivado por PRF do usuário, que a API nunca viu. A API controla o acesso — só libera esse payload criptografado para uma requisição que apresente uma asserção WebAuthn válida assinada pela passkey registrada do usuário. Ela não pode, porém, descriptografar o próprio payload.

A API atua como mecanismo de entrega autenticado, não como custodiante de chaves.

Parte 3 — O enclave crypto

Um sistema separado e isolado — operando independentemente da API com suas próprias chaves de criptografia e infraestrutura — detém a parte da chave no servidor. Essa parte é criptografada em repouso com um segredo conhecido apenas pelo enclave. O enclave libera a parte descriptografada somente depois que a requisição passou na validação da asserção, e apenas para ser combinada com a parte do usuário na etapa final de assinatura.

O enclave nunca vê a saída PRF do usuário, a parte de chave do usuário nem a chave privada montada.


Propriedades de segurança

Sem ponto único de falha

CenárioConsequência
Dispositivo do usuário roubadoO atacante não pode reproduzir a biometria/o PIN; a saída PRF não é obtível
API totalmente comprometidaO atacante obtém apenas texto cifrado com um segredo que nunca viu
Enclave totalmente comprometidoO atacante obtém uma parte da chave; a outra parte não está em nenhum dos sistemas comprometidos
API e enclave ambos comprometidosO atacante obtém o payload do usuário criptografado e a parte do servidor — mas ainda não consegue descriptografar o payload do usuário sem a saída PRF do autenticador físico

O último cenário é o crítico. Mesmo um comprometimento completo de toda a infraestrutura do lado do servidor é insuficiente para reconstruir uma chave privada. O autenticador do usuário é o portão criptográfico que nenhuma brecha do lado do servidor contorna.

Segurança informacional

O modelo híbrido herda a mesma classe de garantia de segurança que o compartilhamento de segredo de Shamir: a divisão da chave não é apenas computacionalmente segura — é segura em termos informacionais. Um atacante com poder computacional ilimitado, que detenha o material de duas das três partes, não obtém informação sobre a chave privada. Não existe algoritmo, dado qualquer tempo ou hardware, que derive a chave apenas com os dados de duas partes. É a mesma garantia fornecida por um one-time pad.

Não custodial por desenho

Operamos tanto a API quanto o enclave. Apesar disso, não podemos acessar unilateralmente os fundos dos usuários. A saída PRF do usuário é a peça que falta — é produzida dentro do hardware do usuário e nunca é transmitida. Nossa incapacidade de acessar fundos não é política nem compromisso contratual. É uma restrição matemática que vale independentemente de controles de acesso internos, pressão regulatória ou comprometimento da infraestrutura.


Como uma transação é assinada

Toda a assinatura ocorre no dispositivo do usuário. A chave privada nunca é montada em nenhum servidor.

  1. O usuário aprova uma transação no aplicativo. O dispositivo autentica o usuário por biometria ou PIN.
  2. O dispositivo calcula localmente seu segredo PRF vinculado ao hardware. Esse segredo nunca sai do dispositivo.
  3. O aplicativo obtém o payload do usuário criptografado da API e a parte do servidor do enclave. Nenhuma dessas peças é utilizável sozinha.
  4. No dispositivo do usuário, na memória: o segredo do hardware descriptografa o payload do usuário, produzindo a parte de chave do usuário. As duas partes são combinadas na chave privada completa.
  5. A chave privada assina a transação — inteiramente no dispositivo.
  6. A chave privada é imediatamente apagada da memória. Não é colocada em cache, não é persistida, não é registrada em log.

A chave privada completa existe por alguns milissegundos, apenas no dispositivo do usuário e apenas durante a operação de assinatura. Nenhum servidor a vê.


Exportação da chave privada

Se um usuário optar por exportar sua chave privada — por exemplo, para migrar para outra carteira — o mesmo princípio se aplica. A chave é reconstruída e entregue inteiramente no dispositivo do usuário. O servidor fornece as partes criptografadas, mas a descriptografia e a montagem ocorrem localmente. Em nenhum momento da exportação a chave privada passa por ou fica visível a qualquer servidor.


Sincronização de passkey e acesso entre dispositivos

Plataformas modernas — iCloud Keychain na Apple, Google Password Manager no Android — sincronizam passkeys entre os dispositivos de um usuário. O segredo vinculado ao hardware usado para reconstrução da chave faz parte do material de passkey sincronizado, ou seja, a mesma saída PRF é reproduzível em qualquer dispositivo do grupo de sincronização do usuário. Isso preserva o modelo de segurança em três partes entre dispositivos: qualquer dispositivo sincronizado pode participar da assinatura sem alteração da arquitetura do lado do servidor.

Os usuários são informados se a passkey foi sincronizada com a conta na nuvem, para sempre terem visibilidade sobre a recuperabilidade da carteira.

O suporte a PRF está disponível em iOS 18+, macOS Sequoia 15.4+, Android 14+ e na série YubiKey 5. Em plataformas sem suporte a PRF, usa-se um fallback de assinatura do lado do servidor.


Comparação com a segurança de carteiras convencionais

ModeloLocalização da chave privadaQuem pode acessar os fundos
Autocustódia padrão (frase semente)Armazenada pelo usuárioQualquer pessoa com a frase semente
Custódia de exchange / carteira quenteArmazenada pelo operadorOperador (e qualquer pessoa que comprometa o operador)
Carteira de hardwareArmazenada no dispositivoQualquer pessoa com o dispositivo físico + PIN
Este sistemaNunca armazenada inteiraExige simultaneamente o autenticador ativo do usuário e a infraestrutura do servidor

Resumo

Este modelo híbrido — combinando criptografia no cliente baseada em PRF, partilha de segredo e um enclave isolado — distribui confiança entre três partes genuinamente independentes, de modo que nenhum subconjunto de duas pode reconstruir uma chave privada, com a mesma garantia de segurança informacional que o compartilhamento de segredo de Shamir. O segredo de hardware vinculado à biometria do usuário é a âncora criptográfica de todo o sistema. A infraestrutura do lado do servidor, independentemente de quão amplamente esteja comprometida, não pode produzir uma assinatura válida sem a participação física do usuário.