Segurança

Encriptação de nível bancário para a sua vida digital

Arquitetura Zero-Knowledge

O ByteGuard é construído sobre um modelo de segurança Zero-Knowledge. Nunca vemos, acedemos ou armazenamos as suas chaves de encriptação.

  • Palavra-passe principal: A sua chave pessoal para desbloquear a app. Nunca transmitida, nunca armazenada remotamente.
  • Chave secreta (Secret Key): Uma frase de recuperação de 12 palavras (BIP39) gerada ao criar o seu cofre. Combinada com a sua palavra-passe principal 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 traseiras: Se perder a palavra-passe principal e a chave secreta, não podemos recuperar os seus dados. Isto é por design.

Detalhes da encriptação

Múltiplas camadas de encriptação protegem cada dado sensível.

  • Encriptação a nível de campo: Cada campo sensível (palavras-passe, números de cartão, chaves API) é encriptado individualmente com AES-256-GCM.
  • Hierarquia de chaves: Chave mestra → Chave de encriptação de chaves (KEK) → Chave de encriptação de dados (DEK). Cada item tem a sua própria DEK.
  • IVs únicos: Cada operação de encriptação usa um vetor de inicialização único, garantindo que o mesmo texto simples produz texto cifrado diferente.

Armazenamento de dados

Os seus dados permanecem no seu dispositivo. A sincronização na nuvem é opcional e sempre encriptada.

  • Local primeiro: Todos os dados são armazenados numa base de dados local encriptada no seu dispositivo.
  • Sincronização iCloud opcional: Quando ativada, os dados são encriptados no dispositivo antes de serem carregados para o seu contentor iCloud privado via CloudKit.
  • Proteção biométrica: Face ID e Touch ID via Secure Enclave. Os dados biométricos são geridos pelo iOS, nunca acedidos pela app.

O que não podemos fazer

A nossa arquitetura Zero-Knowledge significa:

  • Não podemos ver, aceder ou desencriptar os dados armazenados
  • Não podemos repor a sua palavra-passe principal
  • Não podemos recuperar o cofre sem a chave secreta
  • Não podemos partilhar os seus dados com ninguém — incluindo autoridades
  • Não podemos inserir portas traseiras na encriptação

Compatibilidade de segurança do dispositivo

O ByteGuard foi concebido para funcionar perfeitamente com as funcionalidades de segurança integradas da Apple.

  • Apple Lockdown Mode: Totalmente compatível com a proteção de segurança mais elevada da Apple. Todas as funcionalidades — 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 utiliza nenhum motor de renderização web. Os dados do seu cofre nunca são processados pelo WebKit, eliminando toda uma classe de vetores de ataque baseados no navegador.
  • Integração com Secure Enclave: A autenticação biométrica é gerida inteiramente pelo Secure Enclave do iOS. O ByteGuard nunca acede nem 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.
Descarregar na App Store