akrababulKöklerinizle tanışın, akrabalarınızı keşfedin.

Verileriniz nereye gidiyor?

Yüklediğiniz soy belgesinden sunucuya yalnızca ad ve soyadlar açık olarak gider. Kayıt yeri ile cilt-hane-birey numarası tarayıcınızda geri açılamayacak şekilde şifrelenir (teknik adı: Argon2id özeti); ham hâlleri sunucuya hiç ulaşmaz. T.C. kimlik numarası hiç okunmaz. Belgenin kendisi cihazınızdan çıkmaz.

Bu sayfa o cümleyi kanıtlamak için var. Bize inanmak zorunda değilsiniz — aşağıdakileri kendiniz kontrol edebilir ya da bir yapay zekaya kontrol ettirebilirsiniz.

Teknik bilginiz yoksa: yapay zekaya sorun

Aşağıdaki metni kopyalayıp bir yapay zeka asistanına yapıştırın. Metin bilerek tarafsız yazıldı: asistandan bizi doğrulamasını değil, kaynağa bakıp kendi bulgusunu söylemesini ve doğrulayamadıklarını da listelemesini istiyor.

akrababul.com sitesini bağımsız bir güvenlik denetçisi gibi incele.
Sitenin kendi iddiasını tekrarlama; kaynağa bakıp kendi bulgunu söyle.

Bakabileceklerin:
- https://akrababul.com/kanit.json  (iddialar ve her birinin nasıl doğrulanacağı)
- https://akrababul.com/kaynak/     (iddiaların dayandığı kaynak dosyalar, düz metin)
- https://akrababul.com/yukle.html  (yükleme sayfası) ve /assets/ altındaki .js, .js.map
- Herhangi bir sayfanın Content-Security-Policy başlığı

Şu beş soruyu ayrı ayrı cevapla:
1. Yüklenen e-Devlet soy belgesinin tamamı sunucuya gidiyor mu?
   Gitmiyorsa, yükleme isteğinin gövdesinde tam olarak hangi alanlar var?
2. Ad ve soyad dışında gönderilen veriler geri çevrilebilir mi?
   Hangi yöntem kullanılmış?
3. Belgedeki hangi alanlar hiç okunmuyor, hangileri okunup gönderilmiyor?
4. Sayfanın veriyi üçüncü bir tarafa göndermesi teknik olarak mümkün mü?
   connect-src değerine bak.
5. Sitenin "belgeniz cihazınızdan çıkmaz" iddiası kodla tutarlı mı?

Her cevapta hangi dosyaya, satıra veya HTTP başlığına dayandığını yaz.
Sonunda ayrıca DOĞRULAYAMADIĞIN şeyleri listele.
İddialardan biri yanlışsa açıkça "bu iddia yanlış" de.

Sunucuya ne gidiyor, ne gitmiyor?

AlanDurum
Ad ve soyad — sizin ve belgedeki her kişininAçık metin olarak gider. Eşleşen akrabaya kimin ortak olduğunu gösterebilmek için.
Doğum yılınız (yalnızca sizin)Yalnızca yıl gider, tam tarih gitmez. Yaş sınırı denetimi için.
İl-İlçe-Mahalle/Köy + Cilt-Hane-Birey Sıra NoGeri açılamayan şifreli hâliyle gider (Argon2id özeti, 64 karakter). Ham hâli gitmez.
Belgenin kendisi (yüklediğiniz dosya)Gitmez. Tarayıcınızda açılır ve orada kalır.
Baba adı, ana adı, doğum yeri, tam doğum tarihi, yakınlık derecesi, cinsiyetEkranda gösterilir ki kontrol edebilesiniz; sunucuya gitmez.
T.C. kimlik numarası, medeni hâli, durumuHiç okunmaz. Bu sütunlar koda hiç girmez.

Kanıtın kendisi

Aşağıdaki kod parçaları, sitede çalışan kaynağın birebir kopyasıdır. Kopyaların güncel kalmasını otomatik testimiz denetler; kaynak değişirse test kırılır.

Sunucuya giden isteğin tamamı

ListUploadBody, yükleme isteğinin gövdesinin tamamıdır. Burada olmayan hiçbir şey sunucuya gitmez — dosya alanı olmadığına dikkat edin.

export interface UploadRecord { hash: string; firstName: string; lastName: string | null; }
export interface ListUploadBody {
  hashVersion: number;
  self: { firstName: string; lastName: string; birthYear: number };
  records: UploadRecord[];
}
Dosyanın tamamı: /kaynak/api-types.ts.txt

Belgeden okunan sütunlar

Belgeden yalnızca bu sütunlar okunur. Listede T.C. kimlik numarası yoktur; tanınmayan sütunlar yok sayılır.

const COLUMNS = {
  order: 'Sıra',
  gender: 'C',
  relation: 'Yakınlık Derecesi',
  firstName: 'Adı',
  lastName: 'Soyadı',
  fatherName: 'Baba Adı',
  motherName: 'Ana Adı',
  birth: 'Doğum Yeri ve Tarihi',
  place: 'İl-İlçe-Mahalle/Köy',
  registry: 'Cilt-Hane-Birey Sıra No',
} as const;
Dosyanın tamamı: /kaynak/soy-parser.ts.txt

Şifrelenen metin ve şifreleme

Şifrelenen metin yalnızca yer parçaları ile kayıt numarasıdır. Şifreleme, sunucuda değil tarayıcınızdaki bir worker içinde Argon2id ile yapılır; sonuç geri açılamaz ve sunucuya yalnızca bu sonuç gider.

export function buildKeyText(placeParts: string[], registryNo: string): string {
  const parts = placeParts.map(normalizeText).filter((p) => p.length > 0);
  return [...parts, normalizeText(registryNo)].join('|');
}
Dosyanın tamamı: /kaynak/key-text.ts.txt
    const hash = await argon2id({
      password: keyText, salt: enc.encode(salt),
      memorySize: params.memorySize, iterations: params.iterations, parallelism: params.parallelism, hashLength: params.hashLength,
      outputType: 'hex',
    });
Dosyanın tamamı: /kaynak/argon-worker.ts.txt

Söz değil, tarayıcınızın zorla uyguladığı kısıt

Sitenin her sayfası şu HTTP başlığıyla gelir:

Content-Security-Policy: default-src 'self'; ... connect-src 'self'; ...

connect-src 'self', sayfanın kendi sunucumuz dışında hiçbir adrese veri gönderemeyeceği anlamına gelir. Bunu biz uygulamıyoruz — tarayıcınız uyguluyor. Sitede reklam, izleme kodu veya üçüncü taraf analitiği olsa bile veriniz oraya ulaşamaz. Başlığı görmek için tarayıcınızda F12 → Ağ sekmesi → herhangi bir isteğe tıklayın.

Kendiniz deneyebileceğiniz üç test

  1. Uçak modu: Deneme sayfasını açın, internetinizi kapatın, sonra belgenizi bırakın. Hesap gerekmez ve o sayfa hiçbir şey göndermez; her şey bağlantısız çalışır. İnternet olmadan çalışan bir şey verinizi internete gönderiyor olamaz — teknik bilgi gerektirmeyen kanıt budur.
  2. Ağ sekmesi: F12 → Ağ sekmesini açın, belgenizi yükleyin. Tek bir /api/list isteği görürsünüz; "Yük" (Payload) sekmesinde giden verinin tamamı okunabilir hâldedir. Yüklediğiniz dosya orada yoktur.
  3. Yetkilendirme sunucuda: Yükleme sayfası herkese açık olsa da yükleme yapılamaz. Oturum açmadan POST /api/list isteği gönderin, 401 UNAUTHORIZED alırsınız. Sayfadaki yönlendirme kullanıcı deneyimi içindir; asıl kapı sunucudadır.

İddiaların dayandığı kaynak dosyalar

Sitede çalışan kodun kaynağını doğrudan yayınlıyoruz. Ayrıca kaynak haritaları (/assets/*.js.map) açıktır: indirdiğiniz paketin orijinal kaynağını okuyabilirsiniz.

/kanit.json — aynı iddiaların makine okunabilir hâli; her iddianın yanında nasıl doğrulanacağı yazar.

Bu sayfanın kanıtlayamadıkları

Bir gizlilik sayfasının en çok gizlediği şey, kanıtlayamadıklarıdır. Bizimkiler şunlar:

Kayıt ol Belgemi nasıl kaydederim?