Sécurité et confidentialité
Z-Text est conçu dès le départ avec un modèle de sécurité à confiance zéro. Aucune analyse, aucun suivi, aucun stockage de données côté serveur.
Protection par code PIN
Z-Text verrouille l'application avec un code PIN à 8 chiffres que vous définissez lors de la configuration initiale. L'application le demande avant de :
- S'ouvrir
- Envoyer des transactions (messages et transferts BTCZ)
- Afficher votre phrase de récupération
- Modifier les paramètres de sécurité
Le code PIN lui-même n'est jamais stocké sous forme lisible. Des saisies erronées répétées sur l'écran de verrouillage déclenchent un délai d'attente.
Authentification biométrique
Sur les appareils compatibles, vous pouvez activer la reconnaissance d'empreinte digitale ou faciale comme alternative à la saisie du code PIN pour accéder à l'application. Les données biométriques sont entièrement gérées par l'enclave sécurisée de l'appareil -- Z-Text n'accède jamais aux données biométriques brutes.
Chiffrement à deux couches
Z-Text utilise une architecture de double chiffrement qui offre une défense en profondeur :
Couche 1 : Protection blockchain (zk-SNARKs)
Les transactions protégées de la blockchain BitcoinZ utilisent les zk-SNARKs pour chiffrer le champ mémo de la transaction. Cela signifie :
- Le contenu du message est chiffré sur la chaîne
- Les z-addresses de l'expéditeur et du destinataire sont masquées
- Le montant de la transaction est masqué
- Seul le détenteur de la clé de visualisation de la z-address peut déchiffrer le mémo
Couche 2 : Chiffrement par clé de contact
Avant de placer le message dans le mémo de la transaction, Z-Text le chiffre avec la clé partagée dérivée du handshake. Cela ajoute une seconde couche de protection :
- Même si quelqu'un obtient votre clé de visualisation de z-address, il ne peut pas lire les messages
- La clé partagée est unique par paire de contacts
- La clé est dérivée par ECDH et n'est jamais transmise directement
Pourquoi deux couches ?
La couche 1 protège contre les observateurs de la blockchain. La couche 2 protège contre la compromission de la clé de visualisation. Les deux couches doivent être percées pour lire un message -- une proposition extrêmement difficile.
zk-SNARKs expliqués
Les Zero-Knowledge Succinct Non-Interactive Arguments of Knowledge (zk-SNARKs) sont des preuves cryptographiques qui permettent à une partie de prouver qu'elle connaît une valeur sans révéler la valeur elle-même.
Dans le contexte de Z-Text, les zk-SNARKs prouvent qu'une transaction est valide (soldes corrects, expéditeur autorisé) sans révéler qui l'a envoyée, qui l'a reçue ou quel montant a été transféré. C'est ce qui rend les transactions protégées véritablement privées.
Zéro télémétrie
Z-Text ne collecte absolument aucune donnée utilisateur :
- Aucune analyse ni aucun suivi d'aucune sorte
- Aucun rapport de crash envoyant des données à l'extérieur
- Aucune donnée d'utilisation ne nous est envoyée
- L'application se connecte au serveur lightd que vous choisissez (le nôtre par défaut, ou votre propre noeud) et consulte le prix public du BTCZ ; avec Tor activé, les deux passent par Tor
- Les icônes de sites web dans le coffre-fort de mots de passe ne sont récupérées que si vous les activez
- Aucune journalisation d'adresse IP par l'application elle-même
Code source
L'application Z-Text est à code source fermé. Le protocole de communication sera publié sous forme de spécification pour examen public.
Modèle de menace
Z-Text est conçu pour protéger contre :
| Menace | Protection |
|---|---|
| Compromission de serveur | Aucun serveur -- les messages résident sur la blockchain |
| Surveillance réseau | Les transactions protégées par zk-SNARKs masquent l'expéditeur, le destinataire, le montant et le mémo |
| Quelqu'un d'autre qui détient votre appareil verrouillé | Écran de verrouillage par code PIN ou biométrie, stockage local chiffré |
| Fuite de clé de visualisation | Le chiffrement de couche 2 empêche la lecture des messages |
| Censure | La blockchain décentralisée ne peut pas être fermée |