---
title: 'Sıfır Güven'
source: 'https://academia.sh/tr/kurslar/siber-guvenlige-giris/sifir-guven'
course: 'Siber Güvenliğe Giriş'
language: tr
updated: '2026-08-17T18:08:38+00:00'
license: 'CC BY-SA 4.0'
---

# Sıfır Güven

Konum temelli güven kaldırılırken doğrulama kapsamı beş adımda genişletilir ve her adımda yol sayısı, günlük doğrulama işlemi ve istek başına ek adım birlikte sayılır. Sıfır güvende açık kalan yolların nedeni bulunur ve kimliğin uçtan uca taşınmasının kaç iç akışı değiştirdiği ölçülür.

Önceki ders ağı bölmelere ayırdı ve bir düğüm düştüğünde erişilen kalemi saydı. Bütün şemalar aynı
sessiz kuralla çalıştı: bir bölmenin içinde serbest dolaşılır. Erişilen kalem sayısının on üçten
başlamasının nedeni buydu; bölme eklemek kuralı kaldırmadı, yalnız geçerli olduğu alanı küçülttü.
Bu ders kuralın kendisini kaldırır.

**Sıfır güven** (zero trust), bir isteğin nereden geldiğine bakarak verilen güveni tamamen
bırakmak ve her adımı ayrı ayrı doğrulamaktır. İlkeyi ölçmek için "içeride olmak" yerine geçen bir
şey gerekir: her adımın **kime ait** olduğu. Bir adım, ona sahip olan kimlik tarafından atılıyorsa
geçer; başka bir kimlik aynı adımı atmaya çalıştığında, adım ağın neresinde olursa olsun durur.
Ölçülen üç şey yol sayısı, günlük doğrulama işlemi ve **istek başına ek adımdır**.

- **SI17.** Adım sahipliği meşru akış listesinden türetilir: bir akış bir giriş noktasından
  başlıyorsa o akışın adımları o kimliğe aittir.
- **SI18.** Dört meşru akış bir giriş noktasından başlamaz; kuyruktan ya da yönetim
  istasyonundan tetiklenir. Bu akışların adımları **ortak** kabul edilir, yani hangi kimliğin
  tetiklediği bilinmez. Modelin en belirleyici kararı budur.
- **SI19.** Doğrulama kapsamı, kimlik denetimi yapılan adımların kümesidir. Kapsam dışındaki adım
  konuma güvenip geçirir; kapsam içindeki adım sahiplik kümesine bakar.
- **SI20.** Bir doğrulama işlemi bir ek adımdır. Doğrulamanın kendi gecikmesi, süresi ve
  başarısızlık oranı modellenmiyor; sayılan yalnız kaç kez yapıldığıdır.
- **SI21.** Doğrulama her zaman doğru sonuç verir. Sahte kimlik, çalınmış belirteç ve yeniden
  oynatma modellenmiyor; bunlar kapanan yol sayısını düşürür, ölçünün yönünü değiştirmez.

## Konumun Yerine Kimlik

Grafik aynı kalıyor; değişen tek şey bir adımın hangi koşulla geçildiğidir.

```js
// ag.mjs — kurgusal bolgesel olcum aginin erisim grafigi ve mesru akislari (model)
export const GIRIS = ['saha-uc', 'sube-agi', 'genel-uc', 'bakim-uc'];
export const VARLIK = ['olcum-deposu', 'fatura-vt', 'abone-kayit', 'yapilandirma'];
export const KENAR = [
  ['saha-uc', 'toplayici'], ['saha-uc', 'is-emri'], ['sube-agi', 'toplayici'],
  ['sube-agi', 'is-emri'], ['sube-agi', 'yonetim'], ['genel-uc', 'toplayici'],
  ['bakim-uc', 'yonetim'], ['bakim-uc', 'kuyruk'], ['toplayici', 'kuyruk'],
  ['toplayici', 'olcum-deposu'], ['kuyruk', 'dogrulayici'], ['kuyruk', 'faturalama'],
  ['dogrulayici', 'olcum-deposu'], ['dogrulayici', 'fatura-vt'], ['faturalama', 'fatura-vt'],
  ['faturalama', 'abone-kayit'], ['is-emri', 'kuyruk'], ['is-emri', 'abone-kayit'],
  ['yonetim', 'toplayici'], ['yonetim', 'dogrulayici'], ['yonetim', 'is-emri'],
  ['yonetim', 'yapilandirma'],
];
// Mesru akis: gunluk kosan is; adim dizisi ayni grafigin kenarlarindan gecer.
export const AKIS = [
  ['saha-okuma', ['saha-uc', 'toplayici', 'kuyruk'], 1440],
  ['dogrulama', ['kuyruk', 'dogrulayici', 'olcum-deposu'], 1440],
  ['genel-okuma', ['genel-uc', 'toplayici', 'olcum-deposu'], 300],
  ['sube-sorgu', ['sube-agi', 'toplayici', 'olcum-deposu'], 210],
  ['fatura-yazimi', ['kuyruk', 'faturalama', 'fatura-vt'], 48],
  ['is-emri-acma', ['sube-agi', 'is-emri', 'abone-kayit'], 32],
  ['is-emri-kuyruk', ['sube-agi', 'is-emri', 'kuyruk'], 32],
  ['abone-guncelleme', ['faturalama', 'abone-kayit'], 6],
  ['yapilandirma-degisikligi', ['sube-agi', 'yonetim', 'yapilandirma'], 2],
  ['bakim-oturumu', ['bakim-uc', 'yonetim', 'toplayici'], 1],
  ['kuyruk-bakimi', ['bakim-uc', 'kuyruk'], 1],
  ['mutabakat', ['yonetim', 'dogrulayici', 'fatura-vt'], 1],
];
export const ad = (a, b) => `${a}>${b}`;
export const adimlar = (d) => d.slice(0, -1).map((x, i) => ad(x, d[i + 1]));
export function yollar(kapali = new Set()) {
  const komsu = new Map();
  for (const [a, b] of KENAR) if (!kapali.has(ad(a, b))) komsu.set(a, [...(komsu.get(a) || []), b]);
  const s = [];
  const yuru = (d, y) => {
    if (VARLIK.includes(d)) return void s.push(y);
    for (const k of komsu.get(d) || []) if (!y.includes(k)) yuru(k, [...y, k]);
  };
  for (const g of GIRIS) yuru(g, [g]);
  return s;
}
export const kesilen = (kapali) => AKIS.filter(([, d]) => adimlar(d).some((k) => kapali.has(k)));
```

```js
// kimlik.mjs — adim sahipligi ve dogrulama kapsamlari (model)
import { KENAR, AKIS, GIRIS, VARLIK, ad, adimlar } from './ag.mjs';
export const KENAR_AD = KENAR.map(([a, b]) => ad(a, b));
// Ic akislar bir giris noktasindan baslamaz; adimlari butun kimliklerce ortak kullanilir.
const ORTAK = new Set(AKIS.filter(([, d]) => !GIRIS.includes(d[0])).flatMap(([, d]) => adimlar(d)));
const kendi = (g) => AKIS.filter(([, d]) => d[0] === g).flatMap(([, d]) => adimlar(d));
export const SAHIP = Object.fromEntries(GIRIS.map((g) => [g, new Set([...ORTAK, ...kendi(g)])]));
export const UCTAN_UCA = Object.fromEntries(GIRIS.map((g) => [g, new Set(kendi(g))]));
const SERVIS = ['toplayici', 'kuyruk', 'dogrulayici', 'faturalama', 'is-emri'];
const bolme = (d) => (GIRIS.includes(d) ? 'dis'
  : SERVIS.includes(d) ? 'servis' : d === 'yonetim' ? 'yonetim' : 'veri');
export const CEVRE = KENAR_AD.filter((k) => GIRIS.includes(k.split('>')[0]));
export const VARLIGA = KENAR_AD.filter((k) => VARLIK.includes(k.split('>')[1]));
export const GECIT = KENAR_AD.filter((k) => bolme(k.split('>')[0]) !== bolme(k.split('>')[1]));
const komsu = new Map();
for (const [a, b] of KENAR) komsu.set(a, [...(komsu.get(a) || []), b]);
// Kapsamdaki adim kimligi denetler; kapsam disindaki adim konuma guvenip gecirir.
export function yol(g, kapsam, sahip = SAHIP) {
  const s = new Set(kapsam), out = [];
  const yuru = (d, y) => {
    if (VARLIK.includes(d)) return void out.push(y);
    for (const k of komsu.get(d) || []) {
      const e = ad(d, k);
      if (s.has(e) && !sahip[g].has(e)) continue;
      if (!y.includes(k)) yuru(k, [...y, k]);
    }
  };
  yuru(g, [g]);
  return out;
}
```

```js
// kosum1.mjs — dogrulama kapsami genisledikce yol sayisi ve istek basina ek adim
import { AKIS, GIRIS, adimlar } from './ag.mjs';
import { KENAR_AD, CEVRE, VARLIGA, GECIT, yol } from './kimlik.mjs';

const tek = (a) => [...new Set(a)];
const KAPSAM = [['hicbiri', []], ['cevre', CEVRE], ['cevre+varlik', tek([...CEVRE, ...VARLIGA])],
  ['cevre+gecit', tek([...CEVRE, ...GECIT])], ['her-adim', KENAR_AD]];
const gunluk = AKIS.reduce((s, [, , n]) => s + n, 0);
console.log('kapsam        denetlenen  yol  kapanan  gunluk dogrulama  istek basina ek adim');
for (const [nm, kapsam] of KAPSAM) {
  const y = GIRIS.reduce((s, g) => s + yol(g, kapsam).length, 0), s = new Set(kapsam);
  const dog = AKIS.reduce((t, [, d, c]) => t + c * adimlar(d).filter((k) => s.has(k)).length, 0);
  console.log(`${nm.padEnd(14)}${String(kapsam.length).padEnd(12)}${String(y).padEnd(5)}` +
    `${String(55 - y).padEnd(9)}${String(dog).padEnd(18)}${(dog / gunluk).toFixed(2)}`);
}
```

```
kapsam        denetlenen  yol  kapanan  gunluk dogrulama  istek basina ek adim
hicbiri       0           55   0        0                 0.00
cevre         8           50   5        2018              0.57
cevre+varlik  15          46   9        4057              1.15
cevre+gecit   18          32   23       4059              1.16
her-adim      22          20   35       7019              2.00
```

İkinci satır konum temelli güvenin ölçüsüdür. Sekiz giriş adımında kimlik denetleniyor, içeride
hiçbir yerde denetlenmiyor. Elli beş yolun yalnız beşi kapanıyor. Bedeli düşük — günde iki bin on
sekiz doğrulama, istek başına sıfır virgül elli yedi ek adım — ama karşılığında alınan da düşük:
yolların yüzde doksanı açık kalıyor. Çevrede duran bir denetim, çevreyi geçmiş bir isteği bir daha
hiç görmüyor. Bu, çevre denetiminin değersiz olduğu anlamına gelmez; ilk beş yolu en ucuz biçimde
kapatan denetim odur. Anlamı, ölçümün orada bitirilemeyeceğidir — çevrede duran bir denetimin
kapattığı yol sayısı, arkasındaki ağın şeklinden bağımsız olarak küçüktür.

Üçüncü ve dördüncü satırlar birlikte okunmalıdır, çünkü ikisinin maliyeti neredeyse aynı: günde
dört bin elli yedi ve dört bin elli dokuz doğrulama, istek başına bir virgül on beş ve bir virgül
on altı ek adım. Kapattıkları yol sayısı ise dokuz ve yirmi üç. Aynı bedelle iki buçuk kat fark.
Doğrulamayı varlığın önüne koymak, yolun son adımını denetlemektir ve o adıma gelen istek zaten
bütün ara düğümlerden geçmiştir; bölme geçitlerine koymak ise yolu ortasından keser. **Doğrulamanın
maliyeti kaç kez yapıldığıyla, değeri nerede yapıldığıyla belirlenir.**

Son satır sıfır güvenin tam hâlidir. Yirmi iki adımın hepsinde kimlik denetleniyor, elli beş yolun
otuz beşi kapanıyor ve yirmisi açık kalıyor. Bedel günde yedi bin on dokuz doğrulama, yani istek
başına tam iki ek adım: her meşru istek ortalama iki kez kimliğini gösteriyor. Konum temelli güvene
göre otuz yol daha kapandı ve doğrulama sayısı üç buçuk katına çıktı.

İki sütunu birbirine bölmek beklenmedik bir sonuç veriyor. Çevre denetiminde kapanan yol başına
dört yüz dört doğrulama düşüyor; her adımda doğrulamada iki yüz bir. Sıfır güven, kapattığı yol
başına konum temelli güvenden **daha ucuzdur**. En verimli satır çevre ile bölme geçitlerinin
birleşimi: kapanan yol başına yüz yetmiş altı doğrulama. En verimsizi ise çevre ile varlık girişi
birleşimi: dört yüz elli bir. Toplam maliyete bakarak "sıfır güven pahalıdır" demek, tablonun
yalnız bir sütununu okumaktır; iki sütun birlikte okunduğunda pahalı olan şey doğrulamanın
sayısı değil, yanlış yere konmasıdır.

Son sütundaki iki sayısı da açıklanmalıdır. Yirmi iki adımın hepsinde doğrulama yapılıyor ama istek
başına ek adım iki çıkıyor, çünkü meşru akışların çoğu iki adımlıdır. Doğrulama kapsamının
genişlemesi denetlenen adım sayısını artırır; bir isteğin ödediği bedeli ise o isteğin kaç adımdan
geçtiği belirler. Uzun akışlar sıfır güvenin bedelini doğrusal olarak büyütür.

## Giriş Noktası Başına

Toplam sayı hangi kimliğin daraldığını göstermez. Aynı ölçüm giriş noktası başına yapıldığında
sahiplik kümesinin genişliği belirleyici oluyor.

```js
// kosum2.mjs — giris noktasi basina yol; kimlik uctan uca tasinirsa ne kaliyor
import { AKIS, GIRIS, VARLIK } from './ag.mjs';
import { KENAR_AD, CEVRE, SAHIP, UCTAN_UCA, yol } from './kimlik.mjs';

console.log('giris      sahip adim  konum temelli  sifir guven  uctan uca kimlik');
for (const g of GIRIS)
  console.log(`${g.padEnd(11)}${String(SAHIP[g].size).padEnd(12)}${String(yol(g, CEVRE).length).padEnd(15)}` +
    `${String(yol(g, KENAR_AD).length).padEnd(13)}${yol(g, KENAR_AD, UCTAN_UCA).length}`);
const acik = GIRIS.flatMap((g) => yol(g, KENAR_AD));
const say = acik.reduce((m, p) => m.set(p.at(-1), (m.get(p.at(-1)) || 0) + 1), new Map());
console.log(`\nsifir guvende acik kalan ${acik.length} yolun ulastigi varlik:`);
for (const v of VARLIK) console.log(`  ${v.padEnd(16)}${say.get(v) || 0}`);
const ic = AKIS.filter(([, d]) => !GIRIS.includes(d[0]));
console.log(`\nkimligi uctan uca tasimak icin degismesi gereken ic akis ${ic.length}, ` +
  `gunluk istek ${ic.reduce((s, [, , n]) => s + n, 0)}`);
```

```
giris      sahip adim  konum temelli  sifir guven  uctan uca kimlik
saha-uc    9           5              4            0
sube-agi   14          23             9            3
genel-uc   9           5              1            1
bakim-uc   10          17             6            0

sifir guvende acik kalan 20 yolun ulastigi varlik:
  olcum-deposu    7
  fatura-vt       8
  abone-kayit     4
  yapilandirma    1

kimligi uctan uca tasimak icin degismesi gereken ic akis 4, gunluk istek 1495
```

En büyük daralma bakım ucunda: on yedi yoldan altıya. Şube ağı yirmi üçten dokuza iniyor ama
oransal olarak en az daralan giriş noktası odur, çünkü sahiplik kümesi en geniş olan odur — on dört
adım. Meşru işi geniş olan kimlik sıfır güvenden en az yararlanan kimliktir; önceki derste aynı
şeyi yönetim düğümü için görmüştük, ölçü farklı, sonuç aynı.

Genel uç en sert daralmayı yaşıyor: beş yoldan bire. Sahiplik kümesi dokuz adım olmasına rağmen
kendi akışı yalnız iki adımdan ibaret; geri kalan yedi adım ortak kümeden geliyor. Bu satır bir
sonraki bulgunun ipucudur.

Alt tablo daralmanın varlıklara nasıl dağıldığını veriyor ve dağılım eşit değil. İlk derste fatura
veritabanına yirmi iki, ölçüm deposuna on yedi, abone kayıtlarına on dört ve yapılandırma deposuna
iki yol gidiyordu. Sıfır güvenden sonra bu sayılar sekiz, yedi, dört ve bir. En çok yol taşıyan
varlık en çok daralan varlık oldu — yirmi ikiden sekize, yüzde altmış dört. Yapılandırma deposu
ise ikiden bire indi, yüzde elli. Oransal daralmanın büyük olması yüksek sayıdan başlamanın
sonucudur; kalan mutlak sayı hâlâ fatura veritabanında en yüksektir. Bir savunma raporu yüzdeyle
yazıldığında en çok korunan varlık gibi görünen kalem, mutlak sayıyla yazıldığında hâlâ en açık
kalemdir. Hangi sütunun okunacağı, kararın ne olduğuna göre değişir: yatırım önceliği mutlak
sayıdan, ilerleme ölçüsü orandan okunur.

## Kimliğin Kaybolduğu Yer

Sıfır güvende yirmi yol neden hâlâ açık? Cevap ortak adımlardadır. Dört meşru akış bir giriş
noktasından başlamıyor: doğrulama, fatura yazımı, abone güncelleme ve mutabakat. Bunlar kuyruktan
ya da yönetim istasyonundan tetikleniyor ve tetikleyenin kim olduğu adımın kendisinde yazmıyor.
Modelde bu yedi adım bütün kimliklere ortak açık kaldı; gerçekte de bir kuyruktan alınan iş, işi
kuyruğa koyanın kimliğini taşımaz.

Son sütun bunun ölçüsüdür. Kimlik uçtan uca taşınsaydı, yani her iç akış kendisini tetikleyen
isteğin kimliğini de taşısaydı, kalan yol yirmiden dörde inecekti. Saha ucundan ve bakım ucundan
hiçbir yol kalmıyor; şube ağından üç, genel uçtan bir yol kalıyor. On altı yolun tamamı, kimliğin
kuyrukta düşmesinden geliyor.

Bu on altı yolun fiyatı da yazılabilir: dört iç akışın yeniden kurulması ve günde bin dört yüz
doksan beş isteğin kimlik taşıyacak biçimde değiştirilmesi. Bu bir denetim eklemek değil, bir
tasarım değişikliğidir; kuyruğun ilettiği her işin çağıranın kimliğini de iletmesi gerekir. Sıfır
güvenin uygulamada yarım kalmasının başlıca nedeni budur: kapatılabilir elli bir yolun otuz beşi
denetim ekleyerek kapanır, on altısı ancak akışlar yeniden yazılarak kapanır. Birincisi bir
yapılandırma işi, ikincisi bir yazılım işidir ve ikisi aynı bütçeden çıkmaz.

Ölçümün tamamının bir sınırı da vardır. Model doğrulamanın her zaman doğru sonuç verdiğini kabul
etti; çalınmış bir kimlik, sahibi olduğu bütün adımlarda geçerlidir. Sıfır güven bir kimliğin
çalınmasını engellemez, çalınan kimliğin **kaç adımda geçerli olduğunu** küçültür. Sahiplik
sütunundaki dokuz ile on dört arasındaki fark, bir kimliğin çalınması hâlinde açılan alanın
farkıdır. Aynı nedenle sıfır güven bir bitiş durumu değil, bir ölçü ekseni sayılmalıdır: sahiplik
kümeleri daraldıkça çalınan kimliğin değeri düşer, genişledikçe yükselir. Ölçülecek şey "sıfır
güvene geçildi mi" değil, **kimlik başına kaç adımın açık olduğudur**.

## Özet

- Konum temelli güven, sekiz giriş adımında kimlik denetleyip içeride hiç denetlemiyor: 55 yolun
  yalnız 5'i kapanıyor, istek başına 0,57 ek adım ödeniyor.
- Doğrulamayı varlığın önüne koymakla bölme geçitlerine koymak neredeyse aynı maliyeti taşıyor
  (günde 4.057 ve 4.059 doğrulama) ama 9 ve 23 yol kapatıyor. Maliyet kaç kez yapıldığıyla, değer
  nerede yapıldığıyla belirlenir.
- Her adımda doğrulama 35 yol kapatıyor ve 20 yol bırakıyor; bedeli günde 7.019 doğrulama, istek
  başına tam 2 ek adım.
- Sahiplik kümesi geniş olan kimlik en az daralıyor: şube ağı 14 adımla 23 yoldan 9'a inerken
  bakım ucu 10 adımla 17 yoldan 6'ya iniyor.
- Açık kalan 20 yolun kaynağı, bir giriş noktasından başlamayan 4 iç akışın ortak adımlarıdır.
  Kimlik uçtan uca taşınsaydı kalan yol 4 olurdu.
- Son 16 yolun fiyatı denetim değil tasarımdır: 4 iç akışın yeniden kurulması ve günde 1.495
  isteğin kimlik taşıyacak biçimde değiştirilmesi.

## Sonraki Adım

Bu ders her adımda kimliği denetledi ve kimliğin kaybolduğu yeri buldu. Sorulan soru hep aynıydı:
bu isteği kim gönderdi? Ama bir adımın geçilmesi için iki ayrı sorunun yanıtlanması gerekir ve bu
ders yalnız birincisini sordu. Kimliği doğrulanmış bir istek, doğrulandığı için yetkili değildir;
yetki ayrı bir sorudur ve ayrı bir yerde sorulur. İki soru aynı katmanda birleştirildiğinde ya da
biri diğerinin yerine geçtiğinde ne olur? Sonraki dersin ölçtüğü şey budur: doğrulanmış ama
yetkisiz bir istek kaç kalemde geçiyor, denetim yanlış katmana konduğunda kaç yol açılıyor ve iki
soruyu ayrı ayrı sormanın kaç kaleme ek denetim eklemek demek olduğu.
