Sécurité

Chiffrement de niveau bancaire pour votre vie numérique

Architecture Zero-Knowledge

ByteGuard est construit sur un modèle de sécurité Zero-Knowledge. Nous ne voyons, n'accédons ni ne stockons jamais vos clés de chiffrement.

  • Mot de passe principal: Votre clé personnelle pour déverrouiller l'app. Jamais transmis, jamais stocké à distance.
  • Clé secrète (Secret Key): Une phrase de récupération de 12 mots (BIP39) générée lors de la création de votre coffre. Combinée avec votre mot de passe principal pour une sécurité maximale.
  • Dérivation de clé locale: Argon2id avec un coût mémoire de 64 Mo et 3 itérations dérive la clé maître localement. HKDF-SHA256 crée la hiérarchie des clés.
  • Pas de porte dérobée: Si vous perdez votre mot de passe principal et votre clé secrète, nous ne pouvons pas récupérer vos données. C'est une décision de conception.

Détails du chiffrement

Plusieurs couches de chiffrement protègent chaque donnée sensible.

  • Chiffrement au niveau du champ: Chaque champ sensible (mots de passe, numéros de carte, clés API) est chiffré individuellement avec AES-256-GCM.
  • Hiérarchie des clés: Clé maître → Clé de chiffrement de clé (KEK) → Clé de chiffrement de données (DEK). Chaque élément possède sa propre DEK.
  • IV uniques: Chaque opération de chiffrement utilise un vecteur d'initialisation unique, garantissant que le même texte clair produit un texte chiffré différent.

Stockage des données

Vos données restent sur votre appareil. La synchronisation cloud est optionnelle et toujours chiffrée.

  • Local d'abord: Toutes les données sont stockées dans une base de données locale chiffrée sur votre appareil.
  • Synchronisation iCloud optionnelle: Lorsqu'elle est activée, les données sont chiffrées sur l'appareil avant d'être téléchargées vers votre conteneur iCloud privé via CloudKit.
  • Protection biométrique: Face ID et Touch ID via Secure Enclave. Les données biométriques sont gérées par iOS, jamais accédées par l'app.

Ce que nous ne pouvons pas faire

Notre architecture Zero-Knowledge signifie :

  • Nous ne pouvons pas voir, accéder ou déchiffrer vos données stockées
  • Nous ne pouvons pas réinitialiser votre mot de passe principal
  • Nous ne pouvons pas récupérer votre coffre sans votre clé secrète
  • Nous ne pouvons partager vos données avec personne — y compris les forces de l'ordre
  • Nous ne pouvons pas insérer de portes dérobées dans le chiffrement

Compatibilité sécurité de l'appareil

ByteGuard est conçu pour fonctionner parfaitement avec les fonctions de sécurité intégrées d'Apple.

  • Apple Lockdown Mode: Entièrement compatible avec la protection de sécurité la plus élevée d'Apple. Toutes les fonctionnalités — y compris AutoFill, la synchronisation iCloud et les widgets — fonctionnent normalement lorsque le mode Isolement est activé.
  • Aucune dépendance WebView: ByteGuard n'utilise aucun moteur de rendu web. Les données de votre coffre-fort ne sont jamais traitées via WebKit, éliminant toute une catégorie de vecteurs d'attaque basés sur le navigateur.
  • Intégration Secure Enclave: L'authentification biométrique est entièrement gérée par le Secure Enclave d'iOS. ByteGuard n'accède jamais aux données biométriques et ne les stocke pas.

Protection au niveau de l'appareil

La frontière du déverrouillage biométrique rapide est maintenue conjointement par le Trousseau iOS et le Secure Enclave. L'application ne détient jamais aucune clé dérivée de Face ID/Touch ID.

  • ACL du Trousseau iOS: Une copie de la DEK du coffre est stockée dans le Trousseau avec kSecAttrAccessibleWhenUnlockedThisDeviceOnly + kSecAccessControlBiometryCurrentSet. Illisible lorsque l'appareil est verrouillé ou que Face ID ne s'est pas authentifié.
  • Le Secure Enclave prend le relais: L'entrée Trousseau est chiffrée par une clé d'appareil située à l'intérieur du Secure Enclave. Lorsque l'app appelle SecItemCopyMatching, iOS déclenche Face ID ; en cas de succès, le SE déchiffre et retourne la DEK en clair — l'app ne touche jamais aucune clé du SE.
  • Invalidation automatique au ré-enrôlement de Face ID: Sémantique biometryCurrentSet : lorsque l'utilisateur supprime/réenrôle Face ID dans les réglages système, iOS supprime automatiquement l'entrée Trousseau. ByteGuard détecte l'invalidation au lancement et force la ressaisie du mot de passe maître.
  • Mode strict (pas de repli): Si biometryCurrentSet n'est pas disponible (simulateurs, aucune biométrie enrôlée), le cache de la DEK échoue simplement — il ne se rabat jamais sur une entrée Trousseau moins protégée. Un repli serait plus faible que de ne pas activer Face ID du tout et trahirait l'intention de l'utilisateur.
  • Effacement mémoire (DEK du coffre): Au verrouillage, à la suspension ou au changement de coffre, la DEK du coffre est écrasée trois fois (zéro → aléatoire → zéro) avec une barrière mémoire qui empêche l'optimisation par le compilateur. La Master Key et la KEK sont des variables locales dans la fonction de déverrouillage, libérées par l'ARC de Swift (sans effacement explicite). Les buffers internes d'Argon2 sont mis à zéro par libsodium via sodium_memzero.
Télécharger sur l'App Store