Confidentialité
Gizleme est une messagerie chiffrée de bout en bout qui fonctionne dans le navigateur. Cette page décrit, sans détour, ce que nos serveurs conservent, pendant combien de temps, et ce qu'ils ne peuvent pas lire. Dernière mise à jour : octobre 2026.
Ce que le serveur ne peut jamais lire
- Tes messages et tes photos. Ils sont chiffrés sur ton appareil (AES-256-GCM, clés échangées par ECDH P-256) ; le relais ne transporte et ne stocke que du chiffré.
- Ta liste de contacts. Elle est stockée chiffrée sous une clé dérivée de ton mot de passe. Sans ton mot de passe, personne ne peut l'ouvrir — nous non plus. C'est aussi pourquoi il n'existe pas de « mot de passe oublié ».
- Ton mot de passe. Il ne quitte jamais ton appareil ; le serveur ne reçoit qu'un vérificateur dérivé (PBKDF2 200 000 itérations, puis SHA-256).
- Ton identifiant dans tes conversations. Les conversations sont identifiées par des valeurs dérivées de secrets partagés ; ton identifiant de compte n'y est jamais attaché. (Ce que le relais voit malgré tout est décrit plus bas.)
Ce que le serveur conserve
| Donnée | Contenu | Durée |
|---|---|---|
| Compte | Identifiant (en minuscules), nom affiché, sel aléatoire, vérificateur de mot de passe | Jusqu'à suppression du compte (Réglages → Compte) |
| Sessions | Empreinte (SHA-256) du jeton de session de chaque appareil connecté | 1 an, ou jusqu'à déconnexion / changement de mot de passe |
| Sauvegarde du compte | Clé de sauvegarde chiffrée par ton mot de passe ; liste de contacts chiffrée par cette clé | Jusqu'à suppression du compte |
| Boîte aux lettres | Messages chiffrés en attente de livraison (identifiant de boîte dérivé d'un secret partagé, identifiant aléatoire du message, horodatage, date de livraison) | 48 h après qu'un de tes appareils l'a récupéré ; 14 jours maximum sinon |
| Photos et messages vocaux | Blobs chiffrés sous nom aléatoire (la clé voyage uniquement dans le message) | Photos à vue unique : supprimées à la lecture. Autres photos, vocaux, documents : conservés chiffrés au plus 14 jours, puis supprimés ; supprimés aussi par « Supprimer pour tout le monde » |
| Notifications | Abonnement push de l'appareil (point de terminaison Apple/Google/Mozilla/Microsoft), clé de notification dérivée par contact, marqueur opaque du compte | Jusqu'à désactivation, déconnexion ou expiration par le service push |
| Appels | Rien n'est stocké. Des identifiants TURN temporaires (15 min) sont remis à l'appareil pour relayer l'appel quand les deux téléphones sont derrière des réseaux fermés | — |
| Anti-abus | Compteurs de requêtes par adresse IP et par compte | 1 jour |
Les relais temps réel et les fonctions serveur sont hébergés chez Supabase ; le site est servi par Cloudflare. Comme tout service web, ces fournisseurs voient des métadonnées de connexion (adresse IP, horaires, volumes). Le relais temps réel voit aussi, quand tu es connecté à une conversation, le nom d'affichage que tu as choisi et un marqueur opaque de ton compte (c'est ainsi que tes propres appareils se reconnaissent) — pas ton identifiant, pas tes contacts, pas tes messages. Pendant un appel, la voix et la vidéo passent directement entre les appareils (chiffrées) : l'autre participant voit ton adresse IP, ou le relais TURN de Cloudflare la voit à sa place quand il est nécessaire ; ce relais ne transporte que du chiffré. Les notifications push ne contiennent jamais de message ni de nom : seulement « Nouveau message », « Un contact veut discuter » ou « Appel entrant » ; c'est ton appareil qui y ajoute le nom du contact.
Sur ton appareil
L'historique des messages est stocké chiffré dans le navigateur (IndexedDB), sous une clé maîtresse protégée par ton mot de passe ou Face ID / empreinte. Les clés de contacts sont stockées chiffrées et retirées de la mémoire au verrouillage ; le verrouillage ferme aussi les fenêtres ouvertes et efface la conversation affichée. Les noms de tes contacts (jamais leurs clés) sont gardés dans le cache du navigateur pour que les notifications puissent les afficher ; ils sont effacés à la déconnexion. Les photos sont recompressées avant l'envoi : les métadonnées (position GPS, appareil) ne quittent pas ton téléphone. Un message vocal reçu est gardé chiffré sur ton appareil pour pouvoir être réécouté ; le relais n'en garde rien après la première écoute. Par défaut, les messages disparaissent après 24 h et l'app se verrouille après 15 min (modifiable dans les réglages). La déconnexion et la suppression du compte effacent tout. Aucun traceur, aucun cookie, aucune analyse d'audience.
Ce que Gizleme ne fait pas (encore)
- Confidentialité persistante (forward secrecy) à la semaine, pas au message : les messages déposés en boîte aux lettres pour un contact ajouté par lien sont chiffrés sous une chaîne de clés qui avance chaque semaine et dont les anciens maillons sont détruits dès que le relais ne peut plus contenir leurs messages (14 jours). Un appareil ou un coffre compromis plus tard ne peut lire que les trois dernières semaines encore présentes sur le relais — rien d'antérieur, même si quelqu'un avait tout enregistré. Les contacts d'avant cette version y passent automatiquement à la prochaine rencontre en direct (les deux appareils en ligne en même temps). Un appareil compromis lit évidemment ce qui l'attend encore en boîte (c'est vrai partout) ; un message livré est effacé du relais 48 h après sa récupération. Les groupes gardent une clé fixe. La confidentialité persistante par message (clés éphémères par appareil) reste un chantier à part.
- Un lien d'invitation n'est pas une clé : il contient une clé publique à usage unique, et le premier appareil qui l'ouvre convient avec vous d'une clé de contact que personne d'autre ne peut calculer — même avec le lien en main. Ce que vous écrivez avant l'ouverture attend sur votre appareil. Si une copie du lien est ouverte plus tard, cette personne n'est pas ajoutée et vous en êtes averti. Reste le cas de quelqu'un qui intercepterait le lien et l'ouvrirait avant votre ami : trois parades existent — le lien expire (24 h par défaut, de 1 h à 7 jours), vous pouvez le protéger par un code à 4 chiffres dit de vive voix (trois codes faux annulent le lien), ou le faire scanner en QR code en personne, sans qu'il transite nulle part. Et le code de sécurité à comparer en personne reste là pour le détecter.
- Dans les groupes, chaque message est signé par son auteur : un ✓ marque les messages signés avec la clé habituelle du membre, et un membre qui signerait sous le nom d'un autre est signalé. Le créateur du groupe peut retirer un membre ou renouveler la clé : les membres restants reçoivent la nouvelle clé, chacun sous sa propre clé, et la personne retirée ne peut plus rien lire ni écrire (les anciens liens d'invitation cessent aussi de fonctionner). Les groupes créés avant cette version n'ont pas de créateur enregistré et ne peuvent pas changer de clé : crée un nouveau groupe. La première clé d'un membre est acceptée telle quelle (confiance au premier contact). Une invitation de groupe reçue dans une discussion n'ajoute le groupe que si tu appuies dessus. Les appels de groupe relient chaque participant à chacun des autres (4 personnes au plus).
- « Vue unique » et « messages éphémères » sont appliqués par l'appareil du destinataire : rien n'empêche une capture d'écran.
- Quand tu partages un lien d'invitation via WhatsApp, le lien transite par WhatsApp comme tout ce que tu y envoies ; c'est la conception du lien (ci-dessus), son expiration et le code optionnel qui limitent ce qu'une copie permet — et le QR code en personne évite tout transit.
- Le code a fait l'objet d'un audit interne (octobre 2026 — constats et corrections dans le dépôt,
AUDIT.md), mais pas encore d'un audit indépendant, et il n'est pas encore public. Le tableau « Pourquoi Gizleme ? » dans l'application le dit aussi.
Questions : admin@gizleme.com
Privacy
Gizleme is end-to-end encrypted messaging that runs in the browser. This page says plainly what our servers keep, for how long, and what they cannot read. Last updated: October 2026.
What the server can never read
- Your messages and photos. They are encrypted on your device (AES-256-GCM, keys agreed with ECDH P-256); the relay only carries and stores ciphertext.
- Your contact list. It is stored encrypted under a key derived from your password. Without your password nobody can open it — including us. That is also why there is no "forgot password".
- Your password. It never leaves your device; the server only receives a derived verifier (PBKDF2 200,000 iterations, then SHA-256).
- Your username in your conversations. Conversations are identified by values derived from shared secrets; your account's username is never attached to them. (What the relay does see is described below.)
What the server keeps
| Data | Content | Retention |
|---|---|---|
| Account | Username (lowercase), display name, random salt, password verifier | Until you delete the account (Settings → Account) |
| Sessions | SHA-256 fingerprint of each logged-in device's session token | 1 year, or until log-out / password change |
| Account backup | Backup key wrapped by your password; contact list encrypted under that key | Until you delete the account |
| Mailbox | Encrypted messages awaiting delivery (mailbox id derived from a shared secret, random message id, timestamp, delivery time) | 48 h after one of your devices fetched it; 14 days at most otherwise |
| Photos and voice messages | Encrypted blobs under random names (the key only travels inside the message) | View-once photos: deleted when viewed. Other photos, voice messages, documents: kept encrypted for at most 14 days, then deleted; also deleted by “Delete for everyone” |
| Notifications | The device's push subscription (Apple/Google/Mozilla/Microsoft endpoint), a per-contact derived notification key, the account's opaque marker | Until turned off, logged out, or expired by the push service |
| Calls | Nothing is stored. Short-lived TURN credentials (15 min) are handed to the device to relay a call when both phones sit behind closed networks | — |
| Abuse control | Request counters per IP address and per account | 1 day |
The realtime relay and server functions run on Supabase; the site is served by Cloudflare. Like any web service, these providers see connection metadata (IP address, timing, volume). While you are connected to a conversation, the realtime relay also sees the display name you chose and an opaque marker of your account (how your own devices recognise each other) — not your username, your contacts or your messages. During a call, voice and video go directly between the devices (encrypted): the other participant sees your IP address, or Cloudflare's TURN relay sees it instead when one is needed; that relay only forwards ciphertext. Push notifications never carry message content or a name: only "New message", "A contact wants to chat" or "Incoming call" — your device adds the contact's name.
On your device
Message history is stored encrypted in the browser (IndexedDB) under a master key protected by your password or Face ID / fingerprint. Contact keys are stored encrypted and dropped from memory when the app locks; locking also closes open dialogs and clears the displayed chat. Your contacts' names (never their keys) are kept in the browser cache so notifications can show them; they are cleared on log-out. Photos are re-encoded before sending: metadata (GPS position, camera) never leaves your phone. A received voice message is kept encrypted on your device so it can be replayed; the relay keeps nothing of it after the first play. By default, messages disappear after 24 h and the app locks after 15 min (changeable in Settings). Removing a contact or leaving a group also erases that chat's messages and media from the device. Logging out or deleting the account erases everything. No trackers, no cookies, no analytics.
What Gizleme does not do (yet)
- Forward secrecy by the week, not per message: mailbox messages for a contact added through a link are encrypted under a key chain that moves forward every week, and old links of the chain are destroyed as soon as the relay can no longer hold their messages (14 days). A device or vault compromised later can read only the last three weeks still on the relay — nothing earlier, even if someone recorded everything. Contacts from before this version switch to it automatically at the next live meeting (both devices online at the same time). A compromised device can of course read what is still waiting for it (true everywhere); a delivered message is deleted from the relay 48 h after it was fetched. Groups keep a fixed key. Per-message forward secrecy (per-device ephemeral keys) remains a separate project.
- An invite link is not a key: it carries a one-time public key, and the first device to open it agrees a contact key with you that nobody else can compute — even with the link in hand. What you write before it is opened waits on your device. If a copy of the link is opened later, that person is not added and you are warned. What remains is someone intercepting the link and opening it before your friend: three defences exist — the link expires (24 h by default, 1 h to 7 days), you can protect it with a 4-digit code said by voice (three wrong codes cancel the link), or show it as a QR code in person so it never travels anywhere. And the safety code you compare in person is still there to catch it.
- In groups, every message is signed by its author: a ✓ marks messages signed with the member's usual key, and a member signing under someone else's name is flagged. The group's creator can remove a member or renew the key: the remaining members receive the new key, each under their own key, and the removed person can no longer read or write (old invite links stop working too). Groups created before this version have no recorded creator and cannot change key: create a new group. A member's first key is accepted as is (trust on first contact). A group invitation received in a chat only adds the group when you tap it. Group calls connect every participant to every other (4 people at most).
- "View once" and disappearing messages are enforced by the recipient's device: nothing prevents a screenshot.
- When you share an invite link through WhatsApp, the link goes through WhatsApp like anything you send there; the link's design (above), its expiry and the optional code are what limit what a copy allows — and the in-person QR code avoids any transit at all.
- The code is public, under the AGPL-3.0 licence: github.com/gizleme-app/gizleme — the served bundle carries the hash of the source it was built from (
tools/build.py), so anyone can check that what runs is what is published. It went through an internal audit (October 2026 — findings and fixes inAUDIT.md) but not yet an independent one. The "Why Gizleme?" table in the app says so too.
Questions: admin@gizleme.com
Gizlilik
Gizleme, tarayıcıda çalışan uçtan uca şifreli bir mesajlaşma uygulamasıdır. Bu sayfa, sunucularımızın neyi, ne kadar süre sakladığını ve neyi okuyamadığını açıkça anlatır. Son güncelleme: Ekim 2026.
Sunucunun asla okuyamadıkları
- Mesajların ve fotoğrafların. Cihazında şifrelenirler (AES-256-GCM, anahtarlar ECDH P-256 ile kararlaştırılır); aktarıcı yalnızca şifreli metni taşır ve saklar.
- Kişi listen. Şifrenden türetilen bir anahtarla şifreli olarak saklanır. Şifren olmadan kimse onu açamaz — biz de. “Şifremi unuttum” seçeneğinin olmamasının nedeni de budur.
- Şifren. Cihazından hiç çıkmaz; sunucu yalnızca türetilmiş bir doğrulayıcı alır (PBKDF2, 200.000 yineleme, ardından SHA-256).
- Sohbetlerindeki kullanıcı adın. Sohbetler, ortak sırlardan türetilen değerlerle tanımlanır; hesabının kullanıcı adı bunlara hiçbir zaman bağlanmaz. (Aktarıcının yine de gördükleri aşağıda anlatılıyor.)
Sunucunun sakladıkları
| Veri | İçerik | Saklama süresi |
|---|---|---|
| Hesap | Kullanıcı adı (küçük harfle), görünen ad, rastgele tuz, şifre doğrulayıcısı | Hesabı silene kadar (Ayarlar → Hesap) |
| Oturumlar | Giriş yapılmış her cihazın oturum belirtecinin SHA-256 parmak izi | 1 yıl ya da çıkışa / şifre değişikliğine kadar |
| Hesap yedeği | Şifrenle sarılmış yedek anahtarı; bu anahtarla şifrelenmiş kişi listesi | Hesabı silene kadar |
| Posta kutusu | Teslim edilmeyi bekleyen şifreli mesajlar (ortak bir sırdan türetilen kutu kimliği, rastgele mesaj kimliği, zaman damgası, teslim zamanı) | Cihazlarından biri aldıktan 48 saat sonra; aksi hâlde en fazla 14 gün |
| Fotoğraflar ve sesli mesajlar | Rastgele adlarla şifreli dosyalar (anahtar yalnızca mesajın içinde gider) | Görüldüğünde / ilk dinlendiğinde silinir, en geç 14 gün sonra |
| Bildirimler | Cihazın anlık bildirim aboneliği (Apple/Google/Mozilla/Microsoft adresi), kişi başına türetilmiş bir bildirim anahtarı, hesabın opak işareti | Kapatılana, çıkış yapılana ya da bildirim hizmeti süresini doldurana kadar |
| Aramalar | Hiçbir şey saklanmaz. İki telefon da kapalı ağların arkasındaysa aramayı aktarmak için cihaza kısa ömürlü TURN kimlik bilgileri (15 dk) verilir | — |
| Kötüye kullanım önleme | IP adresi ve hesap başına istek sayaçları | 1 gün |
Gerçek zamanlı aktarıcı ve sunucu işlevleri Supabase üzerinde çalışır; site Cloudflare tarafından sunulur. Her web hizmetinde olduğu gibi bu sağlayıcılar bağlantı üst verilerini (IP adresi, zaman, hacim) görür. Bir sohbete bağlıyken gerçek zamanlı aktarıcı ayrıca seçtiğin görünen adı ve hesabının opak bir işaretini (kendi cihazlarının birbirini tanıma yolu) görür — kullanıcı adını, kişilerini ya da mesajlarını değil. Bir arama sırasında ses ve görüntü doğrudan cihazlar arasında (şifreli) gider: diğer katılımcı IP adresini görür ya da gerektiğinde onun yerine Cloudflare'in TURN aktarıcısı görür; bu aktarıcı yalnızca şifreli veriyi iletir. Anlık bildirimler asla mesaj içeriği ya da ad taşımaz: yalnızca “Yeni mesaj”, “Bir kişi sohbet etmek istiyor” ya da “Gelen arama” — kişinin adını senin cihazın ekler.
Cihazında
Mesaj geçmişi tarayıcıda (IndexedDB), şifrenle ya da Face ID / parmak iziyle korunan bir ana anahtar altında şifreli olarak saklanır. Kişi anahtarları şifreli saklanır ve uygulama kilitlendiğinde bellekten silinir; kilitleme ayrıca açık pencereleri kapatır ve görüntülenen sohbeti temizler. Bildirimlerde gösterilebilsin diye kişilerinin adları (asla anahtarları değil) tarayıcı önbelleğinde tutulur; çıkışta silinir. Fotoğraflar gönderilmeden önce yeniden kodlanır: üst veriler (GPS konumu, kamera) telefonundan çıkmaz. Alınan bir sesli mesaj, tekrar dinlenebilmesi için cihazında şifreli olarak tutulur; aktarıcı ilk dinlemeden sonra ondan hiçbir şey saklamaz. Varsayılan olarak mesajlar 24 saat sonra kaybolur ve uygulama 15 dakika sonra kilitlenir (Ayarlar'dan değiştirilebilir). Çıkış yapmak ya da hesabı silmek her şeyi siler. İzleyici yok, çerez yok, analitik yok.
Gizleme'nin (henüz) yapmadıkları
- İleriye dönük gizlilik mesaj başına değil, hafta başına: bağlantıyla eklenen bir kişinin posta kutusu mesajları her hafta ilerleyen bir anahtar zinciriyle şifrelenir ve zincirin eski halkaları, aktarıcı mesajlarını artık tutamaz olur olmaz (14 gün) yok edilir. Sonradan ele geçirilen bir cihaz ya da kasa, aktarıcıda hâlâ duran yalnızca son üç haftayı okuyabilir — biri her şeyi kaydetmiş olsa bile daha öncesini değil. Bu sürümden önceki kişiler, bir sonraki canlı buluşmada (iki cihaz aynı anda çevrimiçi) otomatik olarak buna geçer. Ele geçirilmiş bir cihaz elbette kendisini bekleyeni okuyabilir (her yerde böyledir); teslim edilen bir mesaj alındıktan 48 saat sonra aktarıcıdan silinir. Grupların anahtarı sabittir. Mesaj başına ileriye dönük gizlilik (cihaz başına geçici anahtarlar) ayrı bir proje olarak duruyor.
- Davet bağlantısı bir anahtar değildir: tek kullanımlık bir açık anahtar taşır ve onu ilk açan cihaz seninle, başka kimsenin hesaplayamayacağı bir kişi anahtarı kararlaştırır — bağlantı elinde olsa bile. Bağlantı açılmadan önce yazdıkların cihazında bekler. Bağlantının bir kopyası sonradan açılırsa o kişi eklenmez ve sen uyarılırsın. Geriye, bağlantıyı yakalayıp arkadaşından önce açan biri kalıyor: buna karşı üç savunma var — bağlantının süresi dolar (varsayılan 24 saat, 1 saatten 7 güne), sözlü söylenen 4 haneli bir kodla koruyabilirsin (üç yanlış kod bağlantıyı iptal eder) ya da yüz yüze QR kod olarak gösterirsin, böylece hiçbir yerden geçmez. Ve yüz yüze karşılaştırdığın güvenlik kodu da bunu yakalamak için hâlâ orada.
- Gruplarda her mesaj yazarı tarafından imzalanır: ✓ işareti üyenin her zamanki anahtarıyla imzalanmış mesajları gösterir, başkasının adıyla imzalayan bir üye işaretlenir. Grubun kurucusu bir üyeyi çıkarabilir ya da anahtarı yenileyebilir: kalan üyeler yeni anahtarı her biri kendi anahtarıyla alır, çıkarılan kişi artık okuyamaz ve yazamaz (eski davet bağlantıları da çalışmaz). Bu sürümden önce kurulan grupların kayıtlı bir kurucusu yoktur ve anahtar değiştiremez: yeni bir grup kur. Bir üyenin ilk anahtarı olduğu gibi kabul edilir (ilk temasta güven). Bir sohbette alınan grup daveti, grubu ancak sen dokunduğunda ekler. Grup aramaları her katılımcıyı diğer herkese bağlar (en fazla 4 kişi).
- “Tek görümlük” ve kaybolan mesajlar alıcının cihazı tarafından uygulanır: ekran görüntüsü alınmasını hiçbir şey engelleyemez.
- Bir davet bağlantısını WhatsApp üzerinden paylaştığında, bağlantı oraya gönderdiğin her şey gibi WhatsApp'tan geçer; bir kopyanın neye izin verdiğini sınırlayan şey bağlantının tasarımı (yukarıda), süresi ve isteğe bağlı koddur — yüz yüze QR kod ise hiçbir aktarıma gerek bırakmaz.
- Kod bir iç denetimden geçti (Ekim 2026 — bulgular ve düzeltmeler depoda,
AUDIT.md) ama henüz bağımsız bir denetimden geçmedi ve henüz herkese açık değil. Uygulamadaki “Neden Gizleme?” tablosu da bunu söylüyor.
Sorular: admin@gizleme.com