Segurança
Criptografia de nível bancário para sua vida digital
Arquitetura Zero-Knowledge
O ByteGuard é construído sobre um modelo de segurança Zero-Knowledge. Nunca vemos, acessamos ou armazenamos suas chaves de criptografia.
- Senha mestra: Sua chave pessoal para desbloquear o app. Nunca transmitida, nunca armazenada remotamente.
- Chave secreta (Secret Key): Uma frase de recuperação de 12 palavras (BIP39) gerada ao criar seu cofre. Combinada com sua senha mestra para máxima segurança.
- Derivação de chaves local: Argon2id com custo de memória de 64 MB e 3 iterações deriva a chave mestra localmente. HKDF-SHA256 cria a hierarquia de chaves.
- Sem portas dos fundos: Se você perder tanto sua senha mestra quanto sua chave secreta, não podemos recuperar seus dados. Isso é por design.
Detalhes da criptografia
Uma hierarquia de chaves em cinco níveis, da sua senha mestra até o texto cifrado do campo, com isolamento explícito em cada camada.
- Master Key: Argon2id(senha mestra ‖ Secret Key, salt) derivada localmente. Parâmetros recomendados pela OWASP: 64 MB de memória × 3 iterações, suficientes pra derrotar força bruta em GPU. Nunca sai do dispositivo.
- Auth Hash: HKDF-SHA256(Master Key, info="vault-auth-v1"). Usada apenas pra verificação de senha. A comparação byte a byte em tempo constante derrota ataques de timing.
- KEK (Key Encryption Key): HKDF-SHA256(Master Key, info="vault-kek-v1"). Dedicada a desempacotar a Vault DEK; nunca toca diretamente nos dados do usuário.
- Vault DEK (do cofre todo): Uma chave aleatória de 256 bits. **A DEK em texto puro nunca sai da RAM do dispositivo**; a DEK encapsulada (texto cifrado AES-256-GCM sob a KEK) é armazenada junto com os metadados do cofre e sincroniza pelo CloudKit Private DB quando o iCloud está ativo — só o texto cifrado sai do dispositivo. Trocar a senha mestra exige apenas re-derivar a KEK e re-encapsular a DEK — o cofre inteiro nunca é re-criptografado.
- Item Key (por entrada): HKDF-SHA256(Vault DEK, info="type-{T}-item-{ID}-v1") derivada de tipo + ID da entrada. Cada registro usa uma chave independente — vazar uma não afeta as outras.
- Texto cifrado do campo: AES-256-GCM(Item Key, texto puro) criptografa os campos sensíveis por tipo: senhas de login, senhas secundárias, PINs, respostas de perguntas de segurança, campos secretos personalizados e números de cartão (PAN). Nomes de conta, usuários, URLs, datas de validade e tags ficam como metadados em texto puro pra busca e indexação. Um IV único por criptografia garante que textos puros idênticos resultem em textos cifrados diferentes.
Armazenamento de dados
Seus dados permanecem no seu dispositivo. A sincronização na nuvem é opcional e sempre criptografada.
- Local primeiro: Todos os dados são armazenados em um banco de dados local criptografado no seu dispositivo.
- Sincronização iCloud opcional: Quando ativada, os dados são criptografados no dispositivo antes de serem enviados ao seu container privado do iCloud via CloudKit.
- Proteção biométrica: Face ID e Touch ID via Secure Enclave. Dados biométricos são gerenciados pelo iOS, nunca acessados pelo app.
O que não podemos fazer
Nossa arquitetura Zero-Knowledge significa:
- Não podemos ver, acessar ou descriptografar seus dados armazenados
- Não podemos redefinir sua senha mestra
- Não podemos recuperar seu cofre sem sua chave secreta
- Não podemos compartilhar seus dados com ninguém — incluindo autoridades
- Não podemos inserir portas dos fundos na criptografia
Compatibilidade de segurança do dispositivo
O ByteGuard foi projetado para funcionar perfeitamente com os recursos de segurança integrados da Apple.
- Apple Lockdown Mode: Totalmente compatível com a proteção de segurança mais alta da Apple. Todos os recursos — incluindo AutoFill, sincronização do iCloud e widgets — funcionam normalmente quando o Modo de Bloqueio está ativado.
- Sem dependência de WebView: O ByteGuard não usa nenhum mecanismo de renderização web. Os dados do seu cofre nunca são processados pelo WebKit, eliminando toda uma classe de vetores de ataque baseados em navegador.
- Integração com Secure Enclave: A autenticação biométrica é gerenciada inteiramente pelo Secure Enclave do iOS. O ByteGuard nunca acessa ou armazena dados biométricos.
Device-Level Protection
The biometric quick-unlock boundary is maintained jointly by iOS Keychain and Secure Enclave. The application never holds any Face ID/Touch ID-derived key.
- iOS Keychain ACL: A copy of the Vault DEK is stored in Keychain with kSecAttrAccessibleWhenUnlockedThisDeviceOnly + kSecAccessControlBiometryCurrentSet. Unreadable when the device is locked or Face ID has not authenticated.
- Secure Enclave Takes Over: The Keychain entry is encrypted by a device key inside Secure Enclave. When the app calls SecItemCopyMatching, iOS triggers Face ID; on success SE decrypts and returns the plaintext DEK — the app never touches any SE key.
- Auto-Invalidation on Face ID Re-enrollment: biometryCurrentSet semantics: when the user removes/re-enrolls Face ID in system settings, iOS automatically deletes the Keychain entry. ByteGuard detects the invalidation at launch and forces Master Password re-entry.
- Strict Mode (No Fallback): If biometryCurrentSet is unavailable (simulators, no enrolled biometrics), the DEK cache simply fails — never falls back to a less-protected Keychain entry. Fallback would be weaker than not enabling Face ID at all and would violate user intent.
- Memory Zeroing (Vault DEK): On lock, suspension, or vault switch, the Vault DEK is overwritten three times (zero → random → zero) with a memory barrier defeating compiler optimization. Master Key / KEK are local variables inside the unlock function, released by Swift ARC (not explicitly zeroed). Argon2 internal buffers are zeroed by libsodium via sodium_memzero.
Baixar na App Store