callwhite, mesaj yolunda sunucu olmayan bir messenger. Mesajlar, yalnız iki tarafın paylaştığı anahtar malzemesinden türeyen adreslere yazılır ve oradan okunur. Relay'in elinde kalan şey, türetemediği bir adreste duran sabit boyutlu ve opak bir blob'dur — ne gönderene bağlayabilir ne okuyana. Bire bir ve grup sohbetleri, medya dâhil.
Şifreleme kimsenin okuyamayacağı mesajlar üretir. callwhite bir adım öteye geçer ve kimin kiminle, ne zaman, ne sıklıkta konuştuğunu da yoldan siler. Ölçeklenen, saklanan ve birleştirilebilen yarı budur: bir kişinin mesajlarını okumak mahkeme kararı ister, herkesin iletişim grafiğini okumak tek bir sorgu.
ELİNE NE GEÇİYOR
Protokol makalesi değil. Kurduğun bir uygulama, iki platformda, ikisinin içinde de aynı Rust çekirdek derlenmiş hâlde.
- EŞLEŞME
- Bir davet linki ya da yüz yüze okutulan bir QR. İki taraf da aynı doğrulama numarasını birbirinden bağımsız türetir; numaralar farklıysa araya biri girmiştir ve uygulama numara doğrulanmadan gönderime izin vermez.
- SOHBETLER
- Bire bir ve grup. Üyelik yönetilir: davet, kabul, çıkarma, ayrılma, dağıtma. Grupta tanıştığın biriyle eşleşmek tek dokunuş — karşı taraf kabul eder, link ya da QR gerekmez. Gruplar ad taşır, herkes grupta kendi adını seçer ve bildirim yalnız @ile anıldığında gelir. Birini çıkarmak yeni bir epoch ve taze bir grup sırrı üretir; çıkarılan kişi yeni sır altında yazılanı okuyamaz ve çıkarıldığını kendi kanalından öğrenir. Yönetici bir varis atar: cihazı giderse grubu varis devralır. Grubun ömür kuralı tek cümle ve ekranda yazılı — üç günde bir eşitlenmeyen grup silinir.
- TESLİMAT
- Bire birde iki saniyelik yoklama turu; mesaj turun sonunu beklemez, geldiği dalgada ekrana düşer. Grup ekranı açıkken yoklama relay'de bekletilir ve yeni mesaj yazıldığı an döner. Telefonda art arda gönderimler kuyruğa girer ve sıra ekranda; takılan Tor devresi yenisiyle değiştirilir. Çevrim süresi ölçülür ve ekranda gösterilir.
- MEDYA
- Fotoğraf ve sesli not, hem bire birde hem grupta. Metinle aynı sabit boyutlu blob'lara bölünür; teldeki her blob aynı görünür, gözlemcinin görebildiği tek şey kaç blob'un kıpırdadığıdır.
- SANSÜR AŞIMI
- Tor engelliyse uygulama sırayla doğrudan bağlantıyı, gömülü obfs4 köprülerini ve Snowflake'i dener, başaran yolu hatırlar; köprü satırı aramak gerekmez. Kendi köprünü (obfs4, WebTunnel, Snowflake) Gelişmiş'ten girebilirsin; taşıyıcı paketin içindedir.
- ARKA PLAN
- Varsayılan: uygulama açıkken yoklar, kapanınca oturum kilitlenir. Android'de arka planda alım isteğe bağlı ve en fazla sekiz saat: açarsan telefon cebindeyken de mesaj alır, süre dolunca oturum kendini kilitler.
- KILIF
- Uygulama kendini sıradan bir uygulama gibi gösterebilir — omzunun üstünden ekrana bakan biri için.
- KASA
- Tek bir şifreli dosya; içinde kaç kişi olursa olsun boyu hep aynı. Anahtar türetme bellek-serttir: tahmin etmek saldırgana bir sözlük taraması değil RAM'e mal olur.
- ÜÇ ŞİFRE
- Kendi şifren hesabını açar. İkinci bir şifre, sıradan ve az kullanılmış görünen ayrı bir decoy hesabı açar. Üçüncüsü kasayı yok eder. Hangisinin hangisi olduğu dışarıdan anlaşılmaz: seninkilerden biri olmayan her şifre birebir aynı şekilde başarısız olur, “yaklaştın” diyen bir cevap yoktur.
- VEKİLLİK
- Bir kişiyi, hesabını uzaktan imha edebilecek vekil olarak atayabilirsin. Komut zaten paylaştığınız kanaldan gider ve uygulama bir sonraki açılışında yokladığında uygulanır; o ana kadar relay'de yedi gün bekler.
- EKRAN KORUMASI
- Android'de uygulama
FLAG_SECUREile çalışır: ekran görüntüsü alınamaz, son uygulamalar önizlemesi karartılır. - CİHAZ SAĞLIK KONTROLÜ
- Derlemenin gerçekte ne olduğunu söyleyen bir ekran: imza sertifikası parmak izi, sürüm, Tor ayakta mı, kasa yazımı başarılı mı. “Güncelleme gerçekten oturdu mu?” sorusunun cevabı burada.
- PLATFORMLAR
- Android ve Windows masaüstü. İkisinde de aynı Rust çekirdek, yeniden yazılarak değil üretilmiş bir köprüyle — telefon bir primitifi kazara yeniden yazamaz.
MEKANİZMA
BİR GÖZLEMCİ NE GÖRÜR
Okuma tarafı sabit bütçelidir: bir yoklama turu relay'e 4096 baytlık sabit 64 adres sorar — iki parti, her biri tek istek — ve kasa açık olduğu sürece rastgele sektirilmiş aralıklarla koşar, sohbet olsun olmasın. Gerçek slotlar, hesap sırrından türeyen örtü adresleriyle doldurulur; art arda iki turu kesiştirmek dolguyu soymaz ve bütçe, kaç kişin olduğuna göre değişmez. Okuma tarafında boş bir sohbetle yoğun bir sohbet aynı şekildedir; yazma tarafı gönderdiğin anda çıkar ve gönderim gönderim olarak görünür.
TELEFON ELE GEÇTİĞİNDE
Bir messenger'ın tehdit modelinin çoğu, cihazın sende kalacağını varsayar. Bu model varsaymıyor. İlgi çekici durum, birinin telefonunu tuttuğu ve ellerini izlediği durum.
Kurtarma yolu yok ve bu bilinçli: geri getirme yolu saldırganın da yürüyebileceği bir yoldur. Kasa sabit boyutlu tek bir dosya; içinde ne kadar şey olduğu — kaç kişi, kaç grup, hatta kullanıp kullanmadığın — dışarıdan okunamaz.
Uzaktan imha, önceden atadığın bir kişi üzerinden, zaten paylaştığınız kanaldan çalışır ve uygulama bir sonraki açılışında yokladığında uygulanır. Dışarıdan bakan biri için yanlış şifre ile decoy şifresi ayırt edilemez.
TEHDİT MODELİ
callwhite; yerel bir ağ gözlemcisine, internet sağlayıcısına, relay operatörüne ve cihazı elinden alan birine karşı tasarlandı. Dördü de mesajların içeriğini ve kasada ne olduğunu öğrenemez; kimin kiminle konuştuğu ilk üçüne kapalıdır.
Relay operatörü ayrı durur: ne yazdığını, kim olduğunu ve ne okuduğunu göremez, ama hangi adrese ne zaman yazıldığını ve ne zaman okunduğunu görür. Adresler her mesajda dönüyor ve hesaba bağlı değil; operatörün elinde kalan şey zamanlamadır.
Taşıma katmanı Tor; gömülü ve paketin içinde geliyor, kurulacak bir şey yok. İstemci bildiği her relay'e aynı blob'u yazar ve hepsinden okur; bir relay ortadan kalkınca sohbet onunla birlikte gitmez.
Cihaz üzerinde imha, Android'de sistem anahtar deposundan bir anahtar silmektir: kasayı açan şey yok olur ve eski bloklara ulaşmaya hiç bağlı değildir. Masaüstünde kasa, anahtar ve sayaç dosyalarının üzerine yazılıp silinir; Tor ve görünüm çalışma dizinleri kaldırılır.
FİZİK KURALLARINI AŞANLAR
Güvenliğin bir bölümü fizikle pazarlıktır: gecikme, bant genişliği, pil. En sıkı ayarı ölçtük — otuz saniyelik tur, her yuva sırayla, örtü her yerde — ve bir grup mesajı üç ila beş dakikada düşüyordu. Mesajlaşmanın mesajlaşma kalması için şu tercihleri yaptık.
- KÜRESEL GÖZLEMCİ
- Ağın tamamını aynı anda gören bir gözlemciye karşı tek koruma karışım ağıdır: mesajlar bekletilip karıştırılır, gecikme saniyelerden dakikalara çıkar. Anlık mesajlaşma için eklenmedi; talep olursa ayrı bir katman olarak eklenebilir.
- YAZMA TARAFI
- Okuma tarafı örtülüdür; yazma tarafı gönderdiğin anda çıkar. Yazmayı da örtmek, kimse yazmıyorken her cihazdan sürekli sahte yazım — her birinde iş kanıtıyla — demektir: pil ve bant genişliği. Gönderim anını gizlemenin bedeli budur; bugün ödetmiyoruz.
- AÇIK GRUP EKRANI
- Grup ekranı açıkken içerik halkası relay'de bekletilir ve mesaj yazıldığı an döner; ekran kapalıyken yoklama sabit hızlı ve üyelikten bağımsızdır. Karşılığı: o sırada relay aynı halkanın art arda yoklandığını görür — kim olduğunu değil, birinin o grupta aktif olduğunu. Hızı seçtik; ekran kapanınca desen eski hâline döner.
- GRUP HALKASI
- Bir grubun mesajları, üyelik değiştikçe dönen ortak bir halkada durur; tek yazım bütün üyelere ulaşır. Relay halkayı görür — kimin okuduğunu değil, halkanın yaşadığını ve kabaca ne sıklıkta yazıldığını. Bire birdeki her mesajda dönen adresin grupta yerini sabit bir halkaya bırakması, çok üyeye tek yazımla ulaşmanın karşılığıdır.
- BANT GENİŞLİĞİ
- Sabit hızlı örtü bant genişliğiyle ödenir: iki saniyelik turda saatte yaklaşık yarım gigabayt. Bunu düşürmenin tek yolu turu seyreltmek, yani mesajı geciktirmektir. Hızı seçtik; telefonda Wi-Fi öneriyoruz.
- ARKA PLAN
- İşletim sistemi arka planda süren bir yoklamayı ya durdurur ya pili yakar. Bu yüzden varsayılan, uygulama kapanınca kilitlenmektir; isteğe bağlı arka plan alımı sekiz saatle sınırlıdır ve bedelini — internet, şarj, kalıcı bildirim — baştan söyler.
RAKAMLAR
- 4096bayt, her zaman Teldeki her blob aynı boyutta. Bir şey bulamayan sorgu da 4096 baytlık yem döner; doluluk bile bir orakül değil.
- 64okuma / tur, her zaman Bir yoklama turu relay'e sabit 64 adres sorar — gerçek slotlar, hesap sırrından türeyen yemlerle doldurulur; tur başına yaklaşık 262 kB, iki istekte. Bütçe, kaç kişin olduğuna göre değişmez.
- 2kapı iş kanıtı, her yazımda Önce 22 bitlik SHA-256 ön kapısı, sonra 64 MiB'de bellek-sert Argon2id. Ön kapı yazana yazım başına milyonlarca özet, relay'e mikrosaniye ödetir; Argon2 çağrı başına 125 ms (masaüstünde ölçüldü), zorluk iki çağrı bekliyor. Bir relay'i boğmak savunanın bant genişliğine değil saldıranın işlemcisine mal olur.
-
1233otomatik test
Rust çekirdek, masaüstü istemci, tarayıcı katmanı ve Android. Clippy
-D warningsile temiz. Kapanan kod bulguları, yazılabildiği her yerde adını taşıyan bir regresyon testi taşır. - 9iç kırmızı-takım turu Bir bulgunun sayılması için önce çürütülme denemesinden sağ çıkması gerekir: bir tur 53 adayın 43'ünü, bir diğeri 123'ün 100'ünü doğruladı; son iki tur bağımsız bir çürütme turuyla koştu ve 300 mutant gerçekten çalıştırıldı. Kritik bulguların hepsi kapandı; açık kalan yüksek bulgular bilinçli tercihlerdir ve yukarıda yazılıdır: yazma tarafı örtüsü ve grup halkası.
- 0bilen sunucu Mesaj yolundaki hiçbir bileşen yönlendirme durumu tutmuyor. El konacak, celple istenecek, sızacak ya da satılacak bir sohbet grafiği yok.
İNDİR
Sürüm 0.8.19. AGPL-3.0 lisanslı; kaynak münhasır devir için tutuluyor.
İki paket de kutudan çalışır. Tor paketin içinde; kurulacak başka bir şey ve açılacak bir hesap yok.
-
Android
callwhite-0.8.19.apk
İndir — 19,5 MB, yalnız arm64
SHA-256
2c021f905f8534d6e234f3d8ebf22f925634371b13839ceca1623b98c4a452d1
minisign imzası: callwhite-0.8.19.apk.minisig — doğrulama:
minisign -Vm callwhite-0.8.19.apk -P RWRpQTPa0GuDQEDI4CTSJxBJNQlbz2br8hmlWJO9hp0c6z4DNgpqUIF0
(açık anahtar callwhite.pub; SHA-256 sitenin, imza yayıncının sözüdür — ikisi birden tutmalı)
İmzalı; Android her güncellemede aynı imzayı şart koşar. Denetimi kurulumdan ÖNCE, uygulamanın dışında yap:apksigner verify --print-certs; sertifika SHA-256'sı şuna uymalı:
9A:E0:1A:B9:E5:C1:70:89:9F:D4:9D:BA:D5:5A:7E:95:3D:62:37:75:FD:31:89:FA:09:92:6A:A0:CA:6F:63:3B
Farklıysa o paket bizden çıkmamıştır — kullanma. Uygulama içindeki Cihaz sağlık kontrolü ekranı yalnız kurulu paketin kendisi hakkında söylediğini tekrar eder; sahte bir derleme orada da "doğru" değeri gösterebilir — o ekran denetim değil, hatırlatmadır. Paket yalnızarm64-v8ataşıyor; bugünün bütün telefonlarını kapsar, x86_64 emülatöre kurulmaz. -
Windows
callwhite-0.8.19-windows.zip
İndir — 12,9 MB, .zip
SHA-256
e35821d7bc64d7eb9c10bc0821716ee6ffd6c477c66db0240ee6de2c9d0f2d33
minisign imzası: callwhite-0.8.19-windows.zip.minisig — doğrulama:
minisign -Vm callwhite-0.8.19-windows.zip -P RWRpQTPa0GuDQEDI4CTSJxBJNQlbz2br8hmlWJO9hp0c6z4DNgpqUIF0
(açık anahtar callwhite.pub; SHA-256 sitenin, imza yayıncının sözüdür — ikisi birden tutmalı)
Kurulum sihirbazı yok, indirilecek başka bir şey yok. Zip'e sağ tıkla → Tümünü Ayıkla,callwhiteklasörünü aç,callwhite BASLAT.cmddosyasını çalıştır. İkililerprogram\içinde, Tor daprogram\Tor\tor.exeyolunda.
Windows certutil -hashfile callwhite-0.8.19.apk SHA256 Linux sha256sum callwhite-0.8.19.apk macOS shasum -a 256 callwhite-0.8.19.apk
İkilinin içinde kamuya açık bir relay adresi geliyor; kur ve eşleş. Ayarlar'dan kendi relay'ini de ekleyebilirsin — gömülü olana eklenir, mesajlar ikisine birden yazılıp ikisinden birden okunur.
Her yayın kararlı Rust kanalından, kilitli bağımlılık grafiğiyle
(Cargo.lock, --locked) ve bağımlılık envanteriyle üretilir. APK
imzalıdır ve sertifika parmak izi yukarıda; iki paketin de SHA-256'sı orada.
Sürüm notları
0.8.22 — hazırlanıyor
Henüz yayımlanmadı; yukarıdaki paketler 0.8.19. Bu sürümle gelenler: telefonda mesaj kuyruğu, süreç genelinde eşzamanlılık tavanı ve takılan Tor devresinin yenilenmesi, çevrim süresinin ölçülüp gösterilmesi; grup ekranı açıkken relay'de bekletmeli yoklama ve gecikmenin saniyelere inmesi; üye adları kalıcı, gönderen adı baloncuğun üstünde; yönetici varisi; grup ömür kuralı ekranda (üç günde bir eşitlenmeyen grup silinir); kasa v19. İki denetçili turun (kırmızı takım + 300 mutant) kapatmaları bu sürümlerde. Kasa ve grup biçimi değiştiği için iki cihaz birlikte güncellenir.
0.8.19
Telefonda davet akışı sadeleşti: "Yanıt Bekle" ve "(90 sn mühlet)" düğmeleri kalktı. Davet oluşturduğun anda uygulama yanıtı kendiliğinden yoklar, hangi ekranda olursan ol; linki göndermek için uygulamadan çıkarsan 90 saniye içinde dönmen yeter — düğmesiz. Sen başka ekrandayken gelen istek kişi listesinde şerit olarak görünür. İsteğe bağlı arka planda alıma tavan geldi: arka planda en fazla 8 saat, sonra oturum kendini kilitler. Masaüstü imha metinleri BitLocker sınırını söylüyor: disk şifreli değilse silinen dosyaların kalıntısı sökülen diskten okunabilir.
0.8.18
Sıfır ayar sansür aşımı: Tor engelliyse uygulama kendiliğinden doğrudan bağlantı → gömülü obfs4 köprüleri → Snowflake sırasını dener ve başaran yolu hatırlar; köprü satırı aramak gerekmez (köprü alanı Gelişmiş'in altına indi). Grup içi arkadaş ekleme: Üyeler ekranında tek dokunuş, karşı taraf Kabul/Reddet der, link ya da QR gerekmez. Arka planda alım isteğe bağlı ve varsayılan kapalı: Ayarlar → Gelişmiş'ten açılır; daha çok internet ve şarj harcar, kalıcı bildirim görünür ve oturum arka planda kilitlenmez (bedeli metinde yazar). Saldırgan-denetimli tüm ayrıştırıcılar artık bayt-fuzzer kapılarıyla sınanıyor.
0.8.17
Telefonda köprüler: Ayarlar → Köprüler alanına obfs4 ya da WebTunnel satırı girilir; taşıyıcı (lyrebird 0.8.1) paketin içindedir ve satır varken taşıyıcı yoksa Tor başlamayı reddeder — sessiz köprüsüzlük yok. Masaüstünde WebView2 arka plan ağı bayrakları da ortamdan kurulur (ölçüldü; Microsoft'a giden Edge telemetrisi tarayıcı bileşeninin kendi sınırıdır, sayfa düzeyi kapalı). Paketler artık minisign ile de imzalı (açık anahtar callwhite.pub).
0.8.16
Geniş kırmızı takım turunun kapatmaları ve dört yeni özellik. Relay'in yazma kapısı (PoW) düzeltildi ve yoklama artık tek istekle gidiyor (BATCH_GET): iki cihazın da bu sürüme geçmesi ve relay'in güncellenmesi gerekir. Yeni: gruplarda herkes kendi adını seçer; gruplarda bildirim yalnız @ile anıldığında; grup ekranı açıkken yoklama 10 saniyede bir; masaüstünde Tor'un engellendiği ağlar için köprü satırları (obfs4 / WebTunnel). Kapatmalar: uzun sessizlikten sonra kanal kalıcı sağırlaşmıyor; mühür v2 (kasa geri sarması nonce tekrarı üretmez); Tor devreleri kişi/grup başına ayrı; grup roster zinciri çivilenir (çatal tespiti); grup kontrol kutusu okumaları örtü partisinin içinde; yarım kalan üyelik yayını "yeniden dene" ile kurtarılır; davet linkini gören biri çöp yanıtla eşleşmeyi kilitleyemez; teslim edilmeyen mesaj sayısı söylenir; pano süre dolunca temizlenir; Android imhası dosyaları üzerine yazar. Kasa biçimi v17 (eski kasalar açılır).
0.8.15
Masaüstüne mikrofondan ses kaydı geldi (yalnız RAM, önce dinle). Güvenlik numarasını doğrulayınca kişi listesi anında güncellenir. Telefonda kişi silme düğmeleri görünür ve silerken "siliniyor" der. Grup mesajları tek baloncuk; grup listesinde ayrıl düğmesi yok (ayarlarda).
0.8.14
Telefonda katılım isteği düğmeleri görünmüyordu (satır düzeni); düzeltildi. İstekler artık yalnız grup ayarlarında (⚙), sohbette yalnız kırmızı bir işaret. Masaüstünde kilit açılır açılmaz yeniden kilitlenme düzeltildi; kişiye ad verince sonucu söylüyor.
0.8.13
Gruplara ad verilebiliyor: yönetici adı yayımlar, üyeler bir sonraki eşitlemede görür. Ad grup kontrol kutusunda şifreli taşınır; relay yalnız şifreli metni görür. Yeniden adlandırma üye ekleme gibi yeni bir epoch yayımlar. Bu sürüm için iki cihaz da 0.8.13 olmalı.
0.8.12
Telefonda grup adına dokununca üyeler ve katılım istekleri ayrı bir ekranda; ⚙ ise ana Ayarlar gibi ayrı bir grup ayarları ekranı. Katılım istekleri bölümü boşken de görünür. Güvenlik numarası doğrulandıktan sonra "aynı — doğrula" bandı hemen kapanıyor. Masaüstünde iki ayrı panel.
0.8.11
Telefonda ağ durumu ve ayarlar düğmesi başlığın sağ üstünde. Masaüstünde vekillik panelindeki boş QR kutusu görünmüyor; "yeni mesaj geldi" notu sohbete girince düşüyor.
0.8.10
Telefon masaüstünün düzenine geçti: Kişiler ve Gruplar ayrı sekmelerde, yeni kişi en üstte, son konuşan üstte. Ayarlar tek dokunuşla açılıyor. Grup ekranında katılım isteği sohbetin üstünde ve panel açmadan onaylanıyor; grup adına dokununca üyeler. Vekil ataması ve uzaktan imha komutu artık gönderenin kendi sohbetine de yazılıyor; imha düğmesi komut gittikten sonra kilitleniyor. Masaüstünde bildirimler üstte, grup ekranı sohbetle aynı boyda ve Kilitle düğmesi kalktı: uygulamayı kapatmak kilitler.
0.8.9
Gruptan çıkarılan üye artık bunu kendi kanalından, hangi grup olduğuyla birlikte öğreniyor. Bir grup yöneticisini kişi listesinden silmek ona bağlı grup kayıtlarını da temizliyor; ekran silmeden önce hangi grupların gideceğini söylüyor. Kanaldan vekil ataması alan telefonun donması ve beklenmedik boyda bir çerçevenin bir sohbetin alımını durdurması düzeltildi.
0.8.8
Şifre gücü ölçeri artık tavanı bir desene değil sözlükteki kelimeye uyguluyor. Telefonda linkle eşleşme. Masaüstünde kişiler ve gruplar tek panelde, son konuşan üstte.
0.8.7
Vekil atama artık kurulu sohbet üzerinden gidiyor ve karşı tarafa söyleniyor; QR yolu duruyor. Grup daveti ve grup ayarları ekranları yeniden düzenlendi. Tel değişti: vekillik için iki cihaz da bu sürümde olmalı.
0.8.6
Telefonda mesajlar geldiği anda ekrana düşüyor. Gruba alma hatası artık asıl kuralı söylüyor: gruba yalnız o grubun kendi davetiyle eşleşen kişiler alınır.
0.8.5
Mesaj turun sonunu beklemiyor; geldiği dalgada teslim ediliyor. Ayarlar → Gelişmiş → Son alım turunu ölç turun süresini ve dalga sayısını gösteriyor.
0.8.4
Cihaz testinden dokuz düzeltme: yeni kişi anında listede, katılım isteği reddedilebiliyor, ses ve fotoğraf göndermeden önce gözden geçirilebiliyor, medya oynatıcısında dışa aktarma kapalı.
0.8.3
Tel biçimi değişti; 0.8.2 ve öncesi yeni relay'e yazamaz — güncelle. Başarısız gönderimin adres indeksi yakması düzeltildi.
0.8.0
Bire bir sohbette doğrulama numarası karşılaştırılmadan gönderim yok. Numara yalnız eşleşme anında gösterilir.
GERÇEK CİHAZLARDA KOŞTURULDU
Birim testleri bir fonksiyonun davrandığını gösterir; iki makinenin konuşabildiğini göstermez. Aşağıdakiler uçtan uca, gerçek taşıma üzerinden, gerçek derlemeler arasında koşturuldu.
- Android'den masaüstüne ve geri, Tor üzerinden, arada relay ile — metin, fotoğraf ve sesli not; bire birde ve grupta.
- Farklı ağlardaki iki makine, davet linkiyle eşleştirildi ve doğrulama numarası iki uçta elle karşılaştırıldı.
- Aynı anda üç relay: aynı blob hepsine aynalandı, biri sohbetin ortasında öldürüldü, teslim kalanlardan sürdü.
- Yeniden başlatma kalıcılığı: iki istemci de kapatılıp açıldı, sohbetler kasadan sürdürüldü; hiçbir mesaj kaybolmadı, hiçbiri iki kez görünmedi.
- Ele geçme tatbikatı: içinde gerçek veri olan bir cihazda önce decoy şifresi, sonra imha şifresi — sonrası dosya düzeyinde denetlendi.
NASIL İNŞA EDİLDİ
Sekiz Rust crate, iki istemci, tek çekirdek. Kriptografinin bir kullanıcı arayüzü olduğundan haberi yok; arayüz de kendi başına kriptografik bir karar veremiyor.
- Çekirdek — Rust. Ratchet, adresleme, çerçeveleme, grup epoch'ları, örtü trafiği, kasa. G/Ç yok, platform yok, arayüz yok.
- Android — Kotlin ve Jetpack Compose; aynı çekirdeğe üretilmiş bir UniFFI köprüsüyle bağlanır.
- Masaüstü — Tauri; arayüz düz HTML ve CSS, kararlar Rust'ta. Çatı yok, paketlenmiş tarayıcı motoru yok.
- Relay — opak bir anahtar-değer deposu: bulamayınca yem bayt döner, her yazımda iş kanıtı ister ve iletişim grafiğine çevrilebilecek hiçbir şey tutmaz.
- Doğrulama — 1233 otomatik test. Her davranış kuralı bir kapıyla çivilenir; o kapılar, üretim kodu bilerek bozulup kırmızı yandıkları görülerek sınanır — son turda 300 mutant gerçekten koşturuldu.
- Derleme — kararlı Rust kanalı + kilitli bağımlılık grafiği,
-D warningsile Clippy, yayın başına CycloneDX bağımlılık envanteri ve tuttuğu makineden hiç çıkmayan bir imza anahtarı.
İLETİŞİM
Sistem, kriptografi ve Rust üzerine uzaktan sözleşmeli ve tam zamanlı iş alıyorum. callwhite kaynağı münhasır devir için mevcut.