---
title: 'Kimlik Bilgisi Hırsızlığı'
source: 'https://academia.sh/tr/kurslar/kimlik-ve-kriptografi/kimlik-bilgisi-hirsizligi'
course: 'Kimlik, Erişim ve Kriptografi'
language: tr
updated: '2026-08-17T18:08:37+00:00'
license: 'CC BY-SA 4.0'
---

# Kimlik Bilgisi Hırsızlığı

Doğrulama kalemlerinin bellekte kalış süresi ve denetimlerin kapattığı yol: 8 kalem türünün 6'sının parola bilinmeden doğrudan sunulabilmesi, 22 yol ve 298.958 makine-saatlik maruziyet, altı denetimin 17 yolu kapatıp maruziyeti %1'e indirmesi ve kalan 5 yolun hiçbir denetimle kapanmaması.

Önceki ders yükselmeyi yapılandırma kalemleri üzerinden saydı: bir üyelik, bir izin, bir hesap.
Kenar listesinin arkasında sessiz kalan bir kalem daha vardır. Bir hesaptan diğerine geçmek çoğu
zaman o hesabın parolasını bilmeyi değil, **doğrulanmasında kullanılan değeri** eline geçirmeyi
gerektirir; oturum açmış her kullanıcı için makinelerin belleğinde böyle bir değer durur.

Bu ders o değerleri savunma ekseninde ölçer: hangi kalem nerede ne kadar kalıyor, kaç kalem parola
bilinmeden doğrudan sunulabiliyor ve hangi denetim kaç yolu kapatıyor. İşleyen bir adım dizisi,
araç adı ya da komut bu derste yazılmaz; ölçülen şey kalemin nasıl alındığı değil, alındığı
varsayıldığında ne açtığıdır. Böyle bir denemenin yazılı yetki ve tanımlı kapsam olmadan yapılması
hem yasadışı hem meslek dışıdır.

## Sunulan Şey Parola Değildir

**KK23:** doğrulama girdisi çoğu mekanizmada parolanın kendisi değil, ondan türetilen ya da onunla
üretilmiş bir değerdir; doğrulayan taraf o değeri bekler. **KK24:** bu yüzden değeri eline
geçirenin parolayı bilmesi **gerekmez** — sunulan şey zaten parola değildir. **KK25:** bir kalemin
makinede kalış süresi ile kapsamı çarpılır; savunma kalemi kaldırmak, süresini kısaltmak ya da
kapsamını daraltmak yollarından biriyle ölçülür.

KK24 bu dersin kavramsal çekirdeğidir ve **karma aktarma (pass-the-hash)** adı verilen sınıfın
tamamını açıklar. Parola hiçbir yerde saklanmaz; saklanan ve ağdan geçen şey ondan türetilmiş bir
değerdir. Doğrulayan taraf, kendisine sunulan değeri kendi kaydındaki değerle karşılaştırır ve
eşleşiyorsa kabul eder. Bu, bir kusur değil tasarımdır — parolayı ağdan geçirmemek için yapılmıştır.
Ama aynı tasarım şunu da söyler: **türetilmiş değeri sunabilen, parolayı bilenle aynı sonucu alır**.
Parola değiştirmek bu yüzden kalemi yenilerken, kalemi çalınmış bir hesap için yapılacak tek işlem
de odur.

## Sekiz Kalem, Yirmi İki Yol

Aşağıdaki envanter bir **modeldir**: kurgu bölgesel ölçüm ağı kurumunda oturum açıldıktan sonra
makinelerde duran doğrulama kalemleri. Gerçek bir kurum, gerçek bir makine ve işleyen hiçbir adım
dizisi yoktur.

```js
// hirsizlik/kalem.mjs — bir oturum acildiktan sonra makinede duran dogrulama kalemleri
// (model): gercek bir kurum, gercek bir makine, gercek bir kalem ve isleyen hicbir adim
// dizisi yok. Rastgelelik yok.

// KK23: dogrulama girdisi cogu mekanizmada parolanin kendisi degil, ondan turetilen ya da
// onunla uretilmis bir degerdir; dogrulayan taraf o degeri bekler. KK24: bu yuzden degeri
// eline gecirenin parolayi bilmesi gerekmez — sunulan sey zaten parola degildir.
// KK25: bir kalemin makinede kalis suresi ile kapsami carpilir; savunma kalemi kaldirmak,
// suresini kisaltmak ya da kapsamini daraltmak yollarindan biriyle olculur.
// Sutunlar: omur = kalemin makinede kalis suresi (saat), kapsam = kalemin acabildigi sistem
// sayisi, sunulabilir = parola bilinmeden dogrudan sunuldugunda kabul edilir mi.
export const KALEM = `
  parola-turevi-dogrulayici    720   13   evet
  bilet-veren-bilet             10   21   evet
  servis-bileti                 10    1   evet
  oturum-anahtari               10    1   hayir
  uygulama-oturum-cerezi        72    1   evet
  onbellekli-dogrulayici         8    1   hayir
  yenileme-bileti              168   21   evet
  hizmet-hesabi-sirri          720    1   evet`
  .trim().split("\n").map((r) => {
    const p = r.trim().split(/\s+/);
    return { ad: p[0], omur: +p[1], kapsam: +p[2], sunulabilir: p[3] === "evet" };
  });

export const SINIF = [
  { ad: "sube-is-istasyonu", adet: 96 },
  { ad: "sunucu", adet: 21 },
  { ad: "saha-dizustu", adet: 140 },
  { ad: "olcum-toplayici", adet: 44 },
];

// Hangi kalem hangi sinifta bulunuyor: her cift bir yoldur.
export const BULUNUR = {
  "parola-turevi-dogrulayici": ["sube-is-istasyonu", "sunucu", "saha-dizustu"],
  "bilet-veren-bilet": ["sube-is-istasyonu", "sunucu", "saha-dizustu"],
  "servis-bileti": ["sube-is-istasyonu", "sunucu", "saha-dizustu", "olcum-toplayici"],
  "oturum-anahtari": ["sube-is-istasyonu", "sunucu", "saha-dizustu", "olcum-toplayici"],
  "uygulama-oturum-cerezi": ["sube-is-istasyonu", "saha-dizustu"],
  "onbellekli-dogrulayici": ["sube-is-istasyonu", "saha-dizustu"],
  "yenileme-bileti": ["sube-is-istasyonu", "saha-dizustu"],
  "hizmet-hesabi-sirri": ["sunucu", "olcum-toplayici"],
};

// Her denetim, hangi (kalem, sinif) ciftini ortadan kaldirdigini kendi olcutuyle soyler.
export const DENETIM = {
  "ayricalikli-oturum-yalitimi": (k, s) => k.kapsam > 1 && s.ad !== "sunucu",
  "korumali-hesap-grubu": (k) => k.ad === "onbellekli-dogrulayici" ||
    k.ad === "parola-turevi-dogrulayici",
  "yerel-yonetici-kisiti": (k, s) => s.ad === "sube-is-istasyonu" || s.ad === "olcum-toplayici",
  "cikis-zorunlulugu": (k) => k.omur > 24,
  "hizmet-hesabi-yalitimi": (k) => k.ad === "hizmet-hesabi-sirri",
  "kaynaga-bagli-etmen": (k) => k.ad === "uygulama-oturum-cerezi" || k.ad === "yenileme-bileti",
};
```

```js
// hirsizlik/sayim.mjs — hangi kalem nerede ne kadar kaliyor, kac kalem parola bilinmeden
// sunulabiliyor, her denetim kac yol kapatiyor ve kalan maruziyet ne.
import { KALEM, SINIF, BULUNUR, DENETIM } from "./kalem.mjs";

const yaz = (g, ...s) => console.log(s.map((v, i) =>
  (g[i] < 0 ? String(v).padEnd(-g[i]) : String(v).padStart(g[i]))).join(""));
const sinif = (ad) => SINIF.find((s) => s.ad === ad);
const YOL = KALEM.flatMap((k) => BULUNUR[k.ad].map((s) => ({ k, s: sinif(s) })));
const maruz = (y) => y.reduce((a, x) => a + x.s.adet * x.k.omur, 0);
const acik = (kapali = []) =>
  YOL.filter((y) => !kapali.some((d) => DENETIM[d](y.k, y.s)));

console.log(`${KALEM.length} kalem turu, ${SINIF.length} makine sinifi, ` +
  `${YOL.length} yol, ${SINIF.reduce((a, s) => a + s.adet, 0)} makine`);
console.log(`parola bilinmeden dogrudan sunulabilen kalem ` +
  `${KALEM.filter((k) => k.sunulabilir).length}/${KALEM.length}; ` +
  `toplam maruziyet ${maruz(YOL)} makine-saat`);

const A = [-26, 7, 8, 8, 8, 12];
console.log("\n1. kalem basina: nerede, ne kadar, ne kadar genis");
yaz(A, "kalem", "omur", "kapsam", "sinif", "makine", "makine-saat");
for (const k of KALEM) {
  const y = YOL.filter((x) => x.k === k);
  yaz(A, k.ad, k.omur, k.kapsam, y.length, y.reduce((a, x) => a + x.s.adet, 0), maruz(y));
}

const B = [-28, 8, 10, 12, 10];
console.log("\n2. denetim basina kapanan yol ve maruziyet");
yaz(B, "denetim", "kapanan", "kalan yol", "kalan mar", "kalan %");
for (const d of Object.keys(DENETIM)) {
  const kalan = acik([d]);
  yaz(B, d, YOL.length - kalan.length, kalan.length, maruz(kalan),
    `%${(100 * maruz(kalan) / maruz(YOL)).toFixed(0)}`);
}

const C = [-28, 8, 9, 12, 10];
console.log("\n3. denetimler birikimli eklenirse");
yaz(C, "eklenen", "yol", "kapanan", "maruziyet", "kalan %");
const secili = [];
yaz(C, "hicbiri", YOL.length, 0, maruz(YOL), "%100");
for (const d of Object.keys(DENETIM)) {
  secili.push(d);
  const kalan = acik(secili);
  yaz(C, d, kalan.length, YOL.length - kalan.length, maruz(kalan),
    `%${(100 * maruz(kalan) / maruz(YOL)).toFixed(0)}`);
}

const D = [-26, -18, 8, 13];
console.log("\n4. butun denetimler acikken kalan yollar");
const kalan = acik(Object.keys(DENETIM));
yaz(D, "kalem", "sinif", "makine", "makine-saat");
for (const y of kalan) yaz(D, y.k.ad, y.s.ad, y.s.adet, y.s.adet * y.k.omur);
console.log(`kalan yol ${kalan.length}/${YOL.length}, ` +
  `kalan maruziyet ${maruz(kalan)}/${maruz(YOL)} makine-saat`);
```

```
8 kalem turu, 4 makine sinifi, 22 yol, 301 makine
parola bilinmeden dogrudan sunulabilen kalem 6/8; toplam maruziyet 298958 makine-saat

1. kalem basina: nerede, ne kadar, ne kadar genis
kalem                        omur  kapsam   sinif  makine makine-saat
parola-turevi-dogrulayici     720      13       3     257      185040
bilet-veren-bilet              10      21       3     257        2570
servis-bileti                  10       1       4     301        3010
oturum-anahtari                10       1       4     301        3010
uygulama-oturum-cerezi         72       1       2     236       16992
onbellekli-dogrulayici          8       1       2     236        1888
yenileme-bileti               168      21       2     236       39648
hizmet-hesabi-sirri           720       1       2      65       46800

2. denetim basina kapanan yol ve maruziyet
denetim                      kapanan kalan yol   kalan mar   kalan %
ayricalikli-oturum-yalitimi        6        16       87030       %29
korumali-hesap-grubu               5        17      112030       %37
yerel-yonetici-kisiti             10        12      170590       %57
cikis-zorunlulugu                  9        13       10478        %4
hizmet-hesabi-yalitimi             2        20      252158       %84
kaynaga-bagli-etmen                4        18      242318       %81

3. denetimler birikimli eklenirse
eklenen                          yol  kapanan   maruziyet   kalan %
hicbiri                           22        0      298958      %100
ayricalikli-oturum-yalitimi       16        6       87030       %29
korumali-hesap-grubu              13        9       70022       %23
yerel-yonetici-kisiti              7       15       28630       %10
cikis-zorunlulugu                  5       17        3430        %1
hizmet-hesabi-yalitimi             5       17        3430        %1
kaynaga-bagli-etmen                5       17        3430        %1

4. butun denetimler acikken kalan yollar
kalem                     sinif               makine  makine-saat
bilet-veren-bilet         sunucu                  21          210
servis-bileti             sunucu                  21          210
servis-bileti             saha-dizustu           140         1400
oturum-anahtari           sunucu                  21          210
oturum-anahtari           saha-dizustu           140         1400
kalan yol 5/22, kalan maruziyet 3430/298958 makine-saat
```

Sayılar **ölçüm** sınıfındadır; girdileri KK23–KK25 ile kalem envanteridir.

## Ömür ile Kapsamın Çarpımı

Birinci tablo sekiz kalemi yan yana koyar. Parola türevi doğrulayıcı 720 saat kalır, 13 sistem
açar ve üç sınıfta 257 makinede bulunur: tek başına 185.040 makine-saatlik maruziyet üretir,
toplamın %62'si. Bilet veren bilet 21 sistem açar ama yalnız 10 saat kalır; maruziyeti 2.570'tir.
**Kapsam tek başına sıralama vermez, ömürle çarpılınca verir.**

Yenileme bileti ikinci sıradadır: 168 saat, 21 sistem, 39.648 makine-saat. Dördüncü derste ölçülen
72 saatlik oturum penceresi ile burada görülen 168 saatlik yenileme bileti aynı ayarın iki
görünümüdür — biri iptal gecikmesi olarak, öteki bellekte kalış süresi olarak yazılır. Aynı sayı
iki ayrı sütunda maliyet üretir.

Hizmet hesabı sırrı yalnız 65 makinede bulunur ama 720 saat kalır ve 46.800 makine-saat verir.
İkinci derste 21 servis hesabı anahtarının kırılmasının 214 aslı düşürdüğü ölçülmüştü; buradaki
46.800, o kalemin makinelerde ne kadar süre açıkta durduğunun karşılığıdır.

## Altı Denetim, On Yedi Yol

İkinci tablo denetimleri tek tek koşturur. Yerel yönetici kısıtı en çok yolu kapatır — 22'nin
10'unu — ama kalan maruziyet %57'dir, çünkü kapattığı yollar kısa ömürlü kalemleri barındıran
sınıflardadır. Çıkış zorunluluğu yalnız 9 yol kapatır ama maruziyeti **%4'e** indirir; kaldırdığı
kalemler uzun ömürlü olanlardır.

Bu iki satır kursun bir kuralını tekrarlar: sayı, ölçü birimi seçilmeden okunamaz. Yol sayısına
göre sıralandığında yerel yönetici kısıtı birincidir; maruziyete göre sıralandığında çıkış
zorunluluğu birincidir. İki sıralama farklı savunma önceliği verir ve hangisinin doğru olduğu
kurumun neyi ölçtüğüne bağlıdır.

Üçüncü tablo altısını birikimli ekler. Yol sayısı 22'den 5'e, maruziyet 298.958'den 3.430'a iner;
kalan oran **%1**'dir. Son iki denetim — hizmet hesabı yalıtımı ve kaynağa bağlı etmen — hiçbir
yeni yol kapatmaz, çünkü kapattıkları kalemler önceki denetimlerce zaten kaldırılmıştır. Yedinci
derste görülen örüntünün aynısıdır: tek tek etkili olan bir denetim, birikimli listede sıfır
katkı verebilir.

## Kapanmayan Beş Yol

Dördüncü tablo altı denetim de açıkken kalanı listeler. Beş yol kalır ve beşi de sunucular ile
saha dizüstülerindeki kısa ömürlü kalemlerdir: bilet veren bilet, servis bileti ve oturum
anahtarı. Toplam maruziyet 3.430 makine-saattir.

Bu beşi kapanmaz, çünkü **kaldırılmaları oturumun kendisini kaldırmak demektir**. Bir kullanıcı
bir sunucuda oturum açmışsa o oturumun anahtarı orada durmak zorundadır; bilet olmadan servise
erişilemez. Kursun ölçtüğü kökün yetmediği durum burada en açık hâlindedir: kalan yolları
kapatmanın yolu daha iyi bir denetim değil, oturumun süresini kısaltmaktır — ve o da meşru işi
durdurur.

## Özet

- Doğrulama girdisi parolanın kendisi değil ondan türetilen değerdir; 8 kalem türünün 6'sı parola
  bilinmeden doğrudan sunulduğunda kabul edilir.
- Maruziyet ömür ile kapsamın çarpımıdır: parola türevi doğrulayıcı 720 saat ve 257 makineyle tek
  başına toplam 298.958 makine-saatin %62'sini üretir.
- Yol sayısına göre en etkili denetim ile maruziyete göre en etkili denetim aynı değildir: biri
  10 yol kapatıp %57 bırakır, öteki 9 yol kapatıp %4 bırakır.
- Altı denetim birlikte 17 yol kapatır ve maruziyeti %1'e indirir; son iki denetim birikimli
  listede sıfır katkı verir.
- Kalan 5 yol hiçbir denetimle kapanmaz, çünkü kaldırılmaları oturumun kendisini kaldırmak
  demektir.

## Kurs Kapanışı

Yirmi bir ders aynı üç sütunla ölçüldü. Aşağıdaki tablo her dersin güven kökünü, kökten kullanıma
kadar aynı anda doğru olması gereken kalem sayısını ve kök kırıldığında düşen kalemi yan yana
koyar.

| Ders | Güven kökü | Kaç kalem tutmalı | Kök kırılırsa düşen |
|---|---|---|---|
| Karma, Şifreleme ve Kodlama | işlem–alan eşleşmesi | 2 gizli kalem | 24.800 kayıt |
| Karma Fonksiyonları | arama maliyeti | 25.246 kalem | 12.502 kalem |
| Tuz ve Parola Saklama | parolanın öngörülemezliği | 2 çarpan | 340 kayıt |
| Simetrik Şifreleme | paylaşılan anahtar | 4 kalem | 12.401 uç |
| Asimetrik Şifreleme | özel anahtarın gizliliği | 12.401 gizli kalem | 1 katılımcı |
| Anahtar Değişimi | gizli üs | 3 kalem | 52.560 oturum |
| Dijital İmzalar | imzalama anahtarı | 6 kalem | 2.190 imza |
| Sertifikalar | denetlenen alanlar | 8 kalem | 13 deneme |
| Sertifika Otoriteleri | kök sertifika | 14 kalem | 8.802 kalem |
| Sertifika İptali | yayın tazeliği | 29,5 saat pencere | 271.877 bağlantı |
| TLS El Sıkışması | sunucunun özel anahtarı | 11 kalem | 5 sunuş |
| Sertifika Yaşam Döngüsü | yenileme otomasyonu | 4.397 kalem | 1.458 bağlantı |
| Uçtan Uca Şifreleme | uçtaki anahtar | 4 kalem | 172.200 kayıt |
| Dizin Servisleri | merkezî deponun bütünlüğü | 119 kalem | 646 kalem |
| Bilet Tabanlı Doğrulama | bilet veren servisin anahtarı | 471 anahtar kalemi | 214 asıl |
| Ağ Erişimi Doğrulaması | paylaşılan sır | 480 kalem | 80 aygıt |
| Çoklu Oturum Açma | imzalama anahtarı | 90 kalem | 1.562 bağlantı |
| Çok Etmenli Doğrulama | kayıt anındaki bağ | 4 kalem | 10 yol |
| Grup Politikaları | politika deposu | 12 ayar | 295 makine |
| Yetki Yükseltme | envanterin doğruluğu | 20 kenar | 37 yol |
| Kimlik Bilgisi Hırsızlığı | bellekteki doğrulayıcı | 8 kalem türü | 22 yol |

Tablonun ortak yanı ikinci sütundur. Hiçbir satırda kök tek başına durmaz: en küçüğü iki, en
büyüğü on iki binden fazla kalem ister ve kalemlerin çoğu kriptografik değildir. Bir saat, bir
kayıt, bir dağıtım turu, bir envanter satırı — kökün çevresindeki bu kalemler, kırılmanın gerçekte
nereden geldiğini belirler.

Üç konu üç ayrı kök sınıfı gösterir. `kriptografi-temelleri` derslerinde kök bir **sırdır** ya da
bir maliyet varsayımıdır: gizli üs, özel anahtar, parolanın öngörülemezliği. `pki` derslerinde
kök bir **karardır**: hangi otoritenin tanınacağı, hangi alanın denetleneceği, iptalin ne sıklıkta
yayımlanacağı. `kurumsal-kimlik` derslerinde ise kök bir **işletim kalemidir**: bir depo kaydı,
bir dağıtım turu, bir envanter satırı, bir kayıt anı. Sıradan matematikten işletime doğru
ilerledikçe kökün korunması zorlaşmaz; **görülmesi** zorlaşır.

Üçüncü sütunun büyüklüğü de bu sırayı izler. Bir gizli üssün düşmesi 52.560 oturum açar ve olay
bellidir; bir dizin kaydının bozulması 646 kalem düşürür ve olayın olduğu bile bilinmez. Kursun
üç dersinde kökün kendisinin yetmediği gösterildi: imza anahtarın kime ait olduğunu kanıtlamaz,
sertifika iptalin öğrenilmesini sağlamaz, çok etmenli doğrulama kendi kayıt anını doğrulayamaz.
Üçünde de eksik olan kalem mekanizmanın içinde değil, çevresindedir.

Kursun kuralı budur: **kriptografi bir gizlilik aracı değil, güveni tek bir köke indirgeme
yöntemidir; kökün nerede durduğunu bilmeyen onu koruyamaz.** Üçüncü sütun bunun bedelini yazar —
646 kalem, 8.802 kalem, 214 asıl, 1.562 bağlantı. Bu sayılar mekanizmanın zayıflığından değil,
indirgemenin başarısından doğar: güven tek bir yerde toplandığı için orada kırılır.

Bu kursta kök her defasında adlandırıldı ve zinciri sayıldı. Ama her kökün altında yazılmamış bir
varsayım kaldı: kökün **üzerinde durduğu makinenin** bütünlüğü. Özel anahtar bir dosyada, bilet
bir bellek bölgesinde, politika deposu bir disk üzerinde durur. O makine ele geçirilirse zincirin
tamamı — doğru kurulmuş, doğru yenilenmiş, doğru denetlenmiş olsa bile — saldırganın elinde
geçerli kalmaya devam eder. **Uç Nokta ve Sistem Sertleştirme** kursu bu soruyla başlar.
