1. Giriş

Konstruct, Signal Protocol üzerine kurulmuş, uçtan uca şifrelemeli ve gizlilik odaklı bir mesajlaşma uygulamasıdır. Bu politika, tam olarak hangi verileri topladığımızı, neden topladığımızı ve neleri toplamadığımızı açıklar. Konstruct'ı en baştan, sizin hakkınızda elimizde bulunan veriyi olabildiğince az tutacak şekilde tasarladık.

Temel ilke: şifreli mesajları yönlendirmek için gereken mutlak asgari veriyi topluyoruz. Mesajlarınızın içeriği uçtan uca şifrelidir — sunucularımız onu okuyamaz ve okumaya çalışmayız.

2. Topladığımız Veriler

2.1 Hesap tanımlayıcısı

Konstruct telefon numarası, e-posta adresi, parola veya gerçek ad gerektirmez.

Hesap oluşturmak ve Konstruct'ı kullanmak için kimliğinizi belirlemeye yarayan hiçbir bilgi gerekmez.

2.2 Kriptografik anahtar paketi

Signal Protocol anahtar değişiminin çalışması için cihazınız aşağıdaki açık anahtarları üretir ve sunucuya yükler. Bunlara karşılık gelen özel anahtarlar cihazınızdan asla çıkmaz ve platformun korumalı anahtar deposunda (iOS Keychain, Android Keystore) saklanır.

Anahtar Tür Sunucuda saklanır Amaç
Identity Public Key X25519 (uzun vadeli) Evet, kalıcı olarak Cihazınızın kimliğini doğrular; X3DH el sıkışmasında kullanılır
Signed PreKey X25519 (orta vadeli) Evet, düzenli aralıklarla yenilenir X3DH anahtar anlaşmasında kullanılır
Tek kullanımlık ön anahtarlar (OTPK) X25519 (geçici) Evet, kullanılana kadar Mükemmel ileri gizlilik (Perfect Forward Secrecy) için oturum başına bir tane harcanır
Özel anahtarlar — Asla Tüm özel anahtarlar yalnızca cihazınızda kalır

Sunucu kaç tek kullanımlık ön anahtarın kaldığını takip eder ve sayıları azaldığında cihazdan stoku yenilemesini ister. Bir OTPK oturum kurmak için kullanıldıktan sonra sunucudan kalıcı olarak silinir.

2.3 Gönderilmemiş mesaj kuyruğu

Bir mesaj gönderdiğinizde, iletilmeden önce cihazınızda şifrelenir. Sunucu şifreli mesajı alıcının posta kutusunda tutar. Bir cihaz mesajı aldığını bildirdi diye mesajı silmez: kutular yalnızca saklama süresine göre temizlenir — her birinin bir boyut sınırı vardır ve yaklaşık 7 günden eski her şey silinir. Bu nedenle teslim edilmiş bir mesaj, şifreli ve bizim için okunamaz hâlde, yaklaşık 7 güne kadar sunucumuzda kalabilir.

Posta kutusunda saklananlar (süresi dolana kadar):

Cihazınız çevrimdışıysa mesajlar, bir sonraki bağlantınıza kadar posta kutusunda bekler. Yaklaşık 7 gün içinde alınmayan mesaj okunmadan silinir.

Stealth — gönderen koruması (sealed sender): uygun kullanıcı trafiği için her zaman açıktır (mesajlar, makbuzlar, arama sinyalleşmesi vb.; birkaç hizmet yolu tasarım gereği hariç tutulmuştur). Cihazınız gönderenin User ID'sini zarftan çıkarır ve imzalı gönderen sertifikasını alıcının kimlik anahtarına mühürler — kimin yazdığını yalnızca alıcı öğrenebilir, sunucu öğrenemez. Mühürlü gönderimlere spam önleme için anonim Privacy Pass belirteçleri (token) eşlik edebilir; sunucu tarafındaki belirteç doğrulaması hâlâ kademeli olarak devreye alınıyor. Gönderen koruması, gönderim zamanını, boyutu ve IP adresinizi ağ katmanından gizlemez.

2.4 Kişi bağlantıları

Bir kişi eklediğinizde (QR kod veya davet bağlantısıyla), sunucu mesaj yönlendirmesini ve akış aboneliğini belirlemek için bu bağlantıya ilişkin bir kayıt tutar. Bu sayede Konstruct, tanıdığınız bir kişinin çevrimiçi olduğunu size bildirebilir ve sizi onun mesaj akışına abone edebilir. Kayıt körleştirilmiştir: iki taraf da hesap tanımlayıcısının anahtarlı hash'i (HMAC-SHA256) olarak saklanır, tanımlayıcıların kendisi saklanmaz; bu nedenle bir veritabanı sızıntısı okunabilir bir sosyal graf ortaya çıkarmaz. Bunun neye değdiğini açıkça söylemekte fayda var: anahtar sunucuya aittir, yani buradaki koruma sızıntıya karşıdır, bize karşı değil.

2.5 Anlık bildirim belirteçleri

iOS'ta, uygulama arka plandayken mesaj bildirimlerini gerçek zamanlı iletmek için (Android'de anlık bildirim servisi yoktur — uygulama kendi bağlantısını açık tutar):

2.6 Oturum kimlik doğrulaması

2.7 Sesli ve görüntülü aramalar

Sesli ve görüntülü aramalar uçtan uca şifrelidir. Arama kurulumu — WebRTC oturum açıklaması (SDP) ve ICE bağlantı adayları — yazışmalarınızla aynı uçtan uca şifreli yol üzerinden iletilir; bu nedenle sunucularımız bunu okuyamaz. Aramanın sesi ve görüntüsü WebRTC'nin DTLS-SRTP'sini kullanır; medya şifreleme anahtarları bu uçtan uca şifreli sinyalleşme içinde değiş tokuş edilip doğrulandığından medya iki cihaz arasında uçtan uca şifrelidir — ne sunucularımız ne de kullandığımız aktarıcılar (röleler) şifresini çözebilir. Sunucumuz, aramanın sesli mi görüntülü mü başladığını bilir — alıcının telefonu doğru türde çalsın diye; arama sırasında kameranın açılıp kapatılması ona iletilmez. Bir aktarıcı, ilettiği şifreli trafiğin hacminden görüntüyü sesten ayırt edebilir.

Aramayı bağlamak için cihazlar, doğrudan bir yol bulmak üzere aday ağ adreslerini (WebRTC'nin standart ICE'ı) değiş tokuş eder. Doğrudan bağlantı mümkün olmadığında şifreli medya bir TURN sunucusu üzerinden aktarılır: aktarıcı yalnızca okuyamadığı şifreli medyayı iletir, ancak katılımcıların ağ adreslerini görür. Bu bağlantı üst verisi aramayı yönlendirmek için gereklidir ve mesaj içeriğiyle ilişkilendirilmez. iOS'ta gelen aramalar, 2.5 numaralı bölümdeki PushKit VoIP belirteciyle uygulamayı uyandırır; push'un kendisi arama içeriği taşımaz. Android'de arama, push olmadan uygulamanın kendi bağlantısı üzerinden gelir. TURN sunucusu Hollanda'da çalışır.

2.8 Medya ekleri

Fotoğraf, video, dosya veya sesli mesaj gönderdiğinizde ek, yüklenmeden önce cihazınızda sıkıştırılır ve şifrelenir (her dosya için yeni bir anahtarla AES-256-GCM). Şifre çözme anahtarı alıcıya yalnızca uçtan uca şifreli mesajın içinde ulaşır — medya sunucusuna asla gönderilmez ve onda saklanmaz. Sunucu yalnızca rastgele bir media ID ile tanımlanan opak şifreli blobu saklar ve içeriğini okuyamaz.

Şifreli medya nesneleri, yüklemeden yaklaşık 7 gün sonra otomatik olarak silinir (indirilip indirilmediklerinden bağımsız olarak); alıcının cihazı bunları bu süre içinde alır ve şifresini çözer. Medyayı düz metin olarak saklamayız; her nesne hakkında sunucunun bildiği yalnızca şifreli blobun kendisi, kimliği, dolgudan sonraki boyut sınıfı, şifreli metnin hash'i ile yükleme ve silinme zamanıdır.

2.9 Toplamadıklarımız

Aşağıdakiler açıkça toplanmaz ve saklanmaz:

2.10 IP adresleri ve bağlantı üst verisi

Herhangi bir çevrimiçi hizmete bağlanmak, IP adresinizi ağ katmanında o hizmetin sunucularına açar — bu kaçınılmazdır ve Konstruct da bir istisna değildir. Ancak ham IP adresinizi veritabanlarımıza yazmıyoruz. Cihaz kaydı ve proof-of-work görevlerindeki sınırlamalar için adresin yalnızca tuzlanmış, tek yönlü bir hash'ini kullanırız. Mesaj gönderme ve anahtar paketi isteklerinin sıklığını sınırlamak için sunucu, adresin kendisini (IPv6 için /64 ağını) yaklaşık bir dakika içinde sona eren, bellek içi bir sayaçta kısa süreliğine tutar. «IP — hesap» eşleşmesini saklamıyoruz.

Adresinizi ve hash etiketini davranışsal profiller oluşturmak, mesajlarınızın içeriğiyle ilişkilendirmek veya reklam amacıyla paylaşmak için kullanmıyoruz. Ancak tuzlanmış hash, ifşayı kusursuz biçimde anonimleştirmez, yalnızca azaltır — IPv4 adres uzayı küçük olduğundan, gizli tuza sahip bir taraf aday adresleri yine de sınayabilir. Ham adresi sakladığımız her şeyden kaldırır; bağlantının ağ kökeninin altyapımız tarafından asla belirlenemeyeceğinin garantisi değildir.

Ağ adresinizi yoldan tamamen çıkarmak istiyorsanız Ayarlar'da (Settings) sansür korumasını (Censorship protection) açın ya da VPN veya Tor kullanın — ancak bağlantınızı sonlandıran uç nokta, bağlantının görünen kaynak adresini yine de görür.

3. Trafik analizine karşı koruma

Konstruct, ağ gözlemcisinin — ve sunucumuzun — ne gönderdiğinizi boyutundan veya tam zamanından çıkarmasını zorlaştırmak için dolgu ve iOS'ta rastgele gönderim zamanı jitter'ı uygular. Mesajlar sabit boyutlu parçalara tamamlanır. Ekler (fotoğraflar, videolar, sesli mesajlar, dosyalar, profil fotoğrafları) boyut sınıflarına tamamlanır: sunucu bir dosyanın tam boyutunu değil boyut aralığını saklar — dosya en fazla %12, genellikle yaklaşık %3 büyür (en küçük dosyalar 4 KB'a kadar tamamlanır) — ve dosya türü sunucuya bildirilmez. Bu önlemler varsayılan olarak etkindir ve yapılandırma gerektirmez.

Planlı sahte örtü trafiğini bilinçli olarak göndermiyoruz. Sürekli örtü trafiği her zaman açık bir bağlantı ve zamanlanmış gönderimler gerektirir; bu pili ve veriyi tüketir, mobil istemci bunu kaldıramaz ve zorlamak, sınırlı bir üst veri sertleştirmesi uğruna gerçek kullanım kolaylığından vazgeçmek olurdu. Dolgu ve gönderim jitter'ı (yukarıda) mobildeki yanıtımızdır; sürekli örtü trafiği ancak her zaman çevrimiçi bir masaüstü istemcide çalışabilir ve yalnızca masaüstüne özgü olası bir seçenek olarak kalır, mobilde bir söz değildir. Çalışmayan bir şeyi var diye sunmaktansa örtü trafiği sunmamayı tercih ederiz.

Ayrıca sansür koruması, doğrudan TLS engellendiğinde bağlantınızın sıradan HTTPS trafiğine karışmasına yardımcı olan, ağ düzeyinde bir gizleme (obfuscation) katmanıdır. Bu bir sansürü aşma mekanizmasıdır, üst veriyi gizleme mekanizması değil: bağlantınızı zaten görebilen bir ağ gözlemcisinin mesaj zamanını veya boyutunu çıkarmasını tek başına engellemez.

4. Spam koruması: Proof of Work

Telefon numarası veya e-posta olmadan spamı önlemek için Konstruct, cihazınızdan kayıt sırasında ve hız sınırı aşıldığında gönderim sırasında küçük bir Proof of Work hesaplaması yapmasını ister. Bu, istemci tarafında yapılan bir hesaplamadır: dürüst kullanım için maliyeti ihmal edilebilir düzeydedir, toplu spamı ise hesaplama açısından pahalı hale getirir. Bu işlemde hiçbir kişisel veri kullanılmaz.

5. Verilerinizi nasıl kullanıyoruz

Veri Amaç
User ID Cihazınızın kimlik doğrulaması ve mesajların yönlendirilmesi
Açık anahtar paketi Signal Protocol uçtan uca şifreleme anahtar değişiminin sağlanması
Bekleyen mesaj kuyruğu Şifreli mesajların teslime kadar tutulması
Kişi bağlantıları Mesajların ve akış aboneliklerinin yönlendirilmesi
APNs belirteci (token) Arka plan anlık bildirimlerinin iletilmesi
PushKit VoIP belirteci (token) Gelen arama davetlerinde uygulamanın uyandırılması
Oturum belirteci (token) gRPC bağlantısının kimlik doğrulaması

Toplanan hiçbir veriyi reklam, profilleme, analitik veya mesajlaşma hizmetinin işletilmesinin dışındaki herhangi bir amaç için kullanmayız.

6. Veri depolama ve güvenlik

6.1 Altyapı

6.2 Şifreleme

6.3 Cihazınızda neler saklanır

Cihazınız tüm mesaj geçmişini yerel olarak, işletim sisteminin koruduğu bir depolamada saklar (iOS veri koruması; Android'de uygulamanın yalıtılmış depolaması, anahtarlar Android Keystore'da). Buna şunlar dahildir:

Bu veriler sizin denetiminizdedir. Uygulamayı silmek tüm yerel verileri geri döndürülemez biçimde siler.

6.4 Saklama süreleri

Veri türü Saklama
Bekleyen mesajlar Saklama süresine göre silinir: posta kutusu boyut sınırı ve en fazla ~7 gün — teslimde değil
Medya ekleri (şifreli) Yüklemeden yaklaşık 7 gün sonra otomatik silinir (nesnenin yaşına göre, indirilip indirilmediğinden bağımsız)
Tek kullanımlık ön anahtarlar Kullanıldığında sunucudan silinir
Oturum belirteçleri (token) Erişim belirteci — 24 saat, yenileme belirteci — 90 gün; oturum kapatıldığında veya hesap silindiğinde iptal edilir
APNs belirteci (token) Hesap silinene veya belirteç güncellenene kadar saklanır
PushKit VoIP belirteci (token) Hesap silinene veya belirteç güncellenene kadar saklanır
Kullanıcı adı hash'i ve User ID Hesap silinene kadar saklanır
Signed PreKey Döndürüldüğünde (rotasyon) değiştirilir, eski anahtar silinir
Kişi bağlantıları Şu anda ne kişi silindiğinde ne de hesap silindiğinde kaldırılır (körleştirilmiş kayıtlar, bkz. 8.3)

7. Veri paylaşımı ve üçüncü taraflar

Verilerinizi satmayız ve kiralamayız; reklam, profilleme veya hizmetin işletilmesiyle ilgisi olmayan hiçbir amaç için de paylaşmayız. Hizmetin işletilmesi için aşağıda sıralanan sağlayıcılar gereklidir; her biri kendi görevi için gereken asgari veriyi alır ve hiçbiri mesaj içeriğini almaz.

7.1 Altyapı sağlayıcıları

7.2 Yasal yükümlülüklere uyum

Yetkili bir makamın geçerli bir yasal emriyle verileri ifşa etmeye zorunlu tutulabiliriz. Ancak:

8. Haklarınız

8.1 Anonim kullanım

Konstruct'ı sizi tanımlamaya elverişli hiçbir bilgi vermeden kullanabilirsiniz. User ID'niz, sunucunun atadığı rastgele bir UUID'dir; içinde sizinle ilgili hiçbir şey kodlanmamıştır.

8.2 Verilerinize erişim

Hesabınızla ilişkili üst verilerin bir kopyasını, aşağıdaki adresten bize yazarak istediğiniz zaman talep edebilirsiniz.

8.3 Hesabın silinmesi

Hesabınızı uygulama ayarlarından silebilirsiniz. Silme sırasında:

Daha önce alıcılara teslim edilen mesajlar yalnızca onların cihazlarında yerel olarak saklanır ve tesliminden sonra bizim denetimimizin dışındadır.

8.4 Kullanıcı adı

Kullanıcı adınızı hesap ayarlarından istediğiniz zaman ekleyebilir, değiştirebilir veya kaldırabilirsiniz.

9. Asgari yaş

Konstruct, App Store'daki 16+ yaş derecelendirmesiyle uyumlu olarak 16 yaş ve üzeri kullanıcılar içindir. 16 yaşından küçüklere yönelik değildir ve onlar için tasarlanmamıştır; 16 yaşından küçük kişilere ait verileri bilerek toplamayız. Konstruct yalnızca yukarıda açıklanan asgari yönlendirme üst verisini tuttuğundan ve mesaj içeriğini tutmadığından, herhangi bir hesapla ilişkili veriler tasarım gereği sınırlıdır. 16 yaşından küçük birinin Konstruct'ı kullandığını düşünüyorsanız bizimle iletişime geçin (Bölüm 12), gerekeni yapacağız.

10. Verilerinizden Kim Sorumlu

Konstruct bağımsız bir projedir, bir şirket değildir. GDPR kapsamındaki veri sorumlusu, projenin bakımcısı Maxim Eliseyev'dir; adresi 12. bölümde belirtilmiştir. Konstruct, Veri Koruma Görevlisi (Data Protection Officer) atanmasını gerektirecek büyüklükte değildir ve böyle bir görevli atanmamıştır: 8. bölüm kapsamındaki talepler aynı adrese gelir ve aynı kişi tarafından yanıtlanır. Bu durum değişirse — bir tüzel kişilik kurulursa ya da sorumluluk bir başkasına geçerse — bu bölüm de değişir ve değişiklik 11. bölümde açıklandığı şekilde duyurulur.

11. Bu Politikadaki Değişiklikler

Önemli değişiklikleri kullanıcılara şu yollarla bildireceğiz:

Değişikliklerden sonra Konstruct'ı kullanmaya devam etmeniz, güncellenmiş politikayı kabul ettiğiniz anlamına gelir.

12. İletişim

Gizlilikle ilgili sorular, veri erişim talepleri ve her türlü endişe için:

Kısaca

Telefon numarası da e-posta da gerekmez Uçtan uca şifreli (Signal Protocol)
Tamamen anonim kullanım desteklenir Mesajlar yalnızca şifreli metin olarak saklanır ve süresine göre silinir (en fazla ~7 gün)
İzleme yok, analitik SDK'lar yok Trafik gizleme (obfuscation) yerleşik
Özel anahtarlar cihazınızdan asla çıkmaz Yalnızca asgari üst veri
Üçüncü taraflara veri satışı yok GDPR yargı yetkisi (AB: sunucu Hollanda'da, yedekler Almanya'da)