---
title: 'Sahte Erişim Noktaları'
source: 'https://academia.sh/tr/kurslar/ag-guvenligi/sahte-erisim-noktalari'
course: 'Ağ Güvenliği'
language: tr
updated: '2026-08-17T18:08:40+00:00'
license: 'CC BY-SA 4.0'
---

# Sahte Erişim Noktaları

İstemcinin bir ağı seçerken baktığı sekiz işaretin altısı bağlantıdan önce görülür ve hiçbirinin kanıtı yoktur. Sekiz kayıtlı profilde ikiz erişim noktasına giden dört yol açık, üçü kısmi açıktır; güven kökü sabitleme, kullanılmayan profilin silinmesi ve otomatik bağlanmanın kapatılması açık yolu sıfıra indirir, kısmi iki yol ancak dört bin iki yüz doksan iki aygıtı dışarıda bırakan bir kuşak zorunluluğuyla kapanır.

Bir önceki ders kurumsal modun eklediği iddiayı buldu ve tabloda tek bir satırı açık bıraktı:
istemcinin karşı tarafın kim olduğunu doğrulayıp doğrulamadığı. Aynı satırın kişisel mod
karşılığı da vardı ve ilk dersin tablosunda ağ adı iddiası dört kuşakta da kanıtsızdı.

Bu boşluk **ikiz erişim noktasının** yaşadığı yerdir. Sahte bir erişim noktası kurmak, kurumun
kullandığı adı bildiren ve daha güçlü bir sinyalle görünen bir cihaz çalıştırmaktır. Ders bu
tekniğin nasıl kurulduğunu değil, **istemcinin neye bakarak karar verdiğini** ve karşılıklı
doğrulamanın kaç yolu kapattığını ölçer.

- **KG13.** İşaret, istemcinin bir ağı seçerken kullandığı veridir. Üç kaynağı olabilir: karşı
  tarafın bildirimi, istemcinin kendi ölçümü, ya da bir güven köküne bağlanabilen imzalı kanıt.
- **KG14.** Yol, kayıtlı bir istemci profilinin ikiz bir erişim noktasıyla eşleşmesidir. Üç
  sonucu vardır: **açık** (istemci bağlanır ya da kimlik bilgisini sunar), **kısmi** (bağlantı
  tamamlanmaz ama el sıkışma mesajları dışarı çıkar), **kapalı** (istemci karşı tarafı reddeder).
- **KG15.** İkiz erişim noktası ağın adını, kanalını ve güvenlik göstergesini olduğu gibi
  bildirir ve daha güçlü sinyalle görünür. Ortak sırrı ya da kurumun kimlik sunucusunun kimliğini
  bilmez.
- **KG16.** Profil listesi kurgudur; her profilin kaç aygıtta kayıtlı olduğu model değeridir.
  Aynı aygıt birden çok profil taşıyabilir, o yüzden profil taşıyan aygıt toplamı aygıt
  sayısından büyüktür.
- **KG17.** Aygıt başına elle yapılandırma dört dakika, açık ağda günlük elle onay iki kezdir;
  ikisi de model sabitidir.

## İstemci Neye Bakıyor

Bir aygıt bir ağı seçtiğinde elinde ne olduğu tek tek sayılabilir.

```js
// ikiz.mjs — istemcinin bir agi secerken baktigi isaretler ve kayitli profiller (model).
// Kurgu bolgesel olcum agi; gercek ag adi, gercek konum ve gercek donanim adresi yazilmiyor.
// [isaret, kaynak, istemcinin dogrulayabildigi mi]
export const ISARET = [
  ['ag adi', 'karsi tarafin bildirimi', false],
  ['sinyal gucu', 'istemcinin kendi olcumu', false],
  ['kanal', 'karsi tarafin bildirimi', false],
  ['donanim adresi', 'sifrelenmemis baslik alani', false],
  ['guvenlik gostergesi', 'karsi tarafin bildirimi', false],
  ['yetenek bildirimleri', 'karsi tarafin bildirimi', false],
  ['kimlik sunucusunun sundugu kimlik', 'imzali, guven kokune baglanabilir', true],
  ['ortak sirdan turetilen dogrulama', 'iki tarafin da bildigi gizli deger', true],
];
// Kayitli istemci profilleri: [profil, mod, sunucu kimligi dogrulaniyor mu, otomatik baglanma,
//  bu profili tasiyan aygit]
export const PROFIL = [
  ['sube-agi', 'kurumsal', true, true, 210],
  ['saha-agi', 'kurumsal', false, true, 183],
  ['toplayici-agi', 'kisisel', false, true, 4100],
  ['bakim-agi', 'kisisel', false, true, 9],
  ['konuk-agi', 'acik', false, true, 222],
  ['eski-saha-agi', 'kisisel', false, true, 183],
  ['ortak-calisma-alani', 'acik', false, true, 219],
  ['konferans-salonu', 'acik', false, true, 47],
];
// Ikiz erisim noktasi ayni adi, ayni kanali ve daha guclu sinyali bildirir. Sonuc:
// 'acik' = istemci baglanir ya da kimlik bilgisini sunar, 'kismi' = baglanti tamamlanmaz
// ama el sikisma mesajlari disari cikar, 'kapali' = istemci karsi tarafi reddeder.
export function sonuc([ad, mod, dogrulanir], d) {
  if (d.otomatikKapali.has(ad)) return 'kapali';   // kullanici onayi olmadan baglanmaz
  if (mod === 'acik') return 'acik';
  if (mod === 'kurumsal') return (dogrulanir || d.sabitlenmis) ? 'kapali' : 'acik';
  return d.kusak4 ? 'kapali' : 'kismi';            // kisisel mod: ortak sir karsilikli dogrular
}
```

```js
// kosum1.mjs — istemci bir agin kimligini neye bakarak kabul ediyor
import { ISARET, PROFIL } from './ikiz.mjs';

const E = [36, 40, 12];
const yaz = (h) => h.map((d, i) => String(d)[i ? 'padStart' : 'padEnd'](E[i])).join('');
console.log(yaz(['isaret', 'kaynagi', 'kanit mi']));
for (const [ad, kaynak, k] of ISARET) console.log(yaz([ad, kaynak, k ? 'evet' : 'hayir']));
const kanit = ISARET.filter(([, , k]) => k).length;
console.log(`\nbaglantidan once gorulen isaret ${ISARET.length - kanit}, kaniti olan 0`);
console.log(`kanit tasiyan isaret ${kanit}; ikisi de baglanti kurulurken ortaya cikar`);
const A = [22, 12, 22, 14, 10];
const yaz2 = (h) => h.map((d, i) => String(d)[i ? 'padStart' : 'padEnd'](A[i])).join('');
console.log('\n' + yaz2(['profil', 'mod', 'sunucu dogrulanir', 'otomatik', 'aygit']));
for (const [ad, mod, d, o, n] of PROFIL)
  console.log(yaz2([ad, mod, d ? 'evet' : 'hayir', o ? 'evet' : 'hayir', n]));
console.log(`\nprofil ${PROFIL.length}, profil tasiyan aygit ` +
  `${PROFIL.reduce((s, p) => s + p[4], 0)}`);
```

```
isaret                                                               kaynagi    kanit mi
ag adi                                               karsi tarafin bildirimi       hayir
sinyal gucu                                          istemcinin kendi olcumu       hayir
kanal                                                karsi tarafin bildirimi       hayir
donanim adresi                                    sifrelenmemis baslik alani       hayir
guvenlik gostergesi                                  karsi tarafin bildirimi       hayir
yetenek bildirimleri                                 karsi tarafin bildirimi       hayir
kimlik sunucusunun sundugu kimlik          imzali, guven kokune baglanabilir        evet
ortak sirdan turetilen dogrulama          iki tarafin da bildigi gizli deger        evet

baglantidan once gorulen isaret 6, kaniti olan 0
kanit tasiyan isaret 2; ikisi de baglanti kurulurken ortaya cikar

profil                         mod     sunucu dogrulanir      otomatik     aygit
sube-agi                  kurumsal                  evet          evet       210
saha-agi                  kurumsal                 hayir          evet       183
toplayici-agi              kisisel                 hayir          evet      4100
bakim-agi                  kisisel                 hayir          evet         9
konuk-agi                     acik                 hayir          evet       222
eski-saha-agi              kisisel                 hayir          evet       183
ortak-calisma-alani           acik                 hayir          evet       219
konferans-salonu              acik                 hayir          evet        47

profil 8, profil tasiyan aygit 5173
```

İlk tablonun ikinci sütunu bu dersin bütün noktasıdır. İstemcinin bağlanmadan **önce** gördüğü
altı işaretin dördü karşı tarafın kendi hakkındaki bildirimidir, biri istemcinin kendi
ölçümüdür, biri de şifrelenmemiş bir başlık alanıdır. Hiçbirinin kanıtı yoktur.

Sinyal gücü özel bir yerde durur, çünkü tek "kendi ölçümü" satırıdır ve bu onu güvenilir
göstermez. İstemci genellikle aynı adı bildiren adaylardan **en güçlü sinyalliyi** seçer. Bu bir
açık değil, tasarım kararıdır — hareket eden bir aygıtın erişim noktaları arasında geçiş
yapabilmesi için gerekir. Ama seçim ölçütü olarak sinyal gücü, karşı tarafın tek bir donanım ayarıyla artırdığı
bir değerdir; kendi ölçümü olması onu kanıt yapmaz.

Kanıt taşıyan iki işaret vardır ve ikisi de **bağlantıdan sonra** ortaya çıkar. Ortak sırdan
türetilen doğrulama kişisel modda, imzalı kimlik ise kurumsal modda devreye girer. Seçim anında
kullanılabilecek bir kanıt yoktur; seçim her zaman kanıtsız işaretlerle yapılır ve kanıt ancak
istemci karşı tarafla konuşmaya başladıktan sonra istenir.

İkinci tablo bu boşluğun kurumdaki karşılığını gösteriyor. Sekiz kayıtlı profil var ve
**hepsinde otomatik bağlanma açık**. İki tanesi kurumun ağı değil: ortak çalışma alanı ve
konferans salonu profilleri, çalışanların dışarıda bağlandığı açık ağlardır ve aygıtın profil
listesinde kalmıştır. Bir tanesi de artık kullanılmayan bir kurum ağıdır.

Son satırdaki beş bin yüz yetmiş üç sayısı bir aygıt sayısı değil, **profil taşıyan aygıt**
sayısıdır: bir şube dizüstü aynı anda şube ağını, konuk ağını ve iki dış ağı kayıtlı tutar.
Ölçünün yolu bu yüzden aygıt değil profildir. Bir aygıtın kaç yola açık olduğu, kaç ağa
bağlandığıyla değil, geçmişte kaç ağa bağlanmış olduğuyla belirlenir; profil listesi silinene
kadar büyümeye devam eden tek kalemdir.

## Karşılıklı Doğrulamanın Kapattığı Yol

Sekiz profilin her biri bir yoldur. Aşağıdaki koşum savunmaları üst üste ekleyip her adımda
açık, kısmi ve kapalı yol sayısını çıkarıyor.

```js
// kosum2.mjs — karsilikli dogrulama kac yolu kapatiyor, kaci acik kaliyor, bedeli ne
import { PROFIL, sonuc } from './ikiz.mjs';

const BOS = new Set();
const KULLANILMAYAN = new Set(['eski-saha-agi', 'konferans-salonu']);
const ACIK_AGLAR = new Set(PROFIL.filter((p) => p[1] === 'acik').map((p) => p[0]));
const HEPSI = new Set([...KULLANILMAYAN, ...ACIK_AGLAR]);
const SAVUNMA = [
  ['taban (hicbiri)', { sabitlenmis: false, kusak4: false, otomatikKapali: BOS }],
  ['guven koku sabitlenir', { sabitlenmis: true, kusak4: false, otomatikKapali: BOS }],
  ['kullanilmayan profil silinir', { sabitlenmis: true, kusak4: false,
    otomatikKapali: KULLANILMAYAN }],
  ['acik agda otomatik baglanma kapali', { sabitlenmis: true, kusak4: false,
    otomatikKapali: HEPSI }],
  ['eszamanli kimlik dogrulama kusagi', { sabitlenmis: true, kusak4: true,
    otomatikKapali: HEPSI }],
];
const E = [37, 7, 8, 9, 12, 13];
const yaz = (h) => h.map((d, i) => String(d)[i ? 'padStart' : 'padEnd'](E[i])).join('');
console.log(yaz(['savunma (ust uste eklenir)', 'acik', 'kismi', 'kapali', 'acik aygit',
  'kismi aygit']));
const sonuclar = SAVUNMA.map(([ad, d]) => {
  const r = PROFIL.map((p) => [p, sonuc(p, d)]);
  const n = (t) => r.filter(([, s]) => s === t).length;
  const a = (t) => r.filter(([, s]) => s === t).reduce((s, [p]) => s + p[4], 0);
  console.log(yaz([ad, n('acik'), n('kismi'), n('kapali'), a('acik'), a('kismi')]));
  return r;
});
const P = [22, 10, 10, 10];
const yaz2 = (h) => h.map((d, i) => String(d)[i ? 'padStart' : 'padEnd'](P[i])).join('');
console.log('\n' + yaz2(['profil', 'taban', 'sabitleme', 'hepsi']));
PROFIL.forEach((p, i) => console.log(yaz2([p[0], sonuclar[0][i][1], sonuclar[1][i][1],
  sonuclar.at(-1)[i][1]])));

// Bedel: her savunmanin dokundugu aygit ve kesilen mesru is (model sabitleri).
const ELLE = 4, ONAY = 2;             // aygit basina dakika, gunluk elle onay sayisi
const kurumsal = PROFIL.filter((p) => p[1] === 'kurumsal').reduce((s, p) => s + p[4], 0);
const silinen = PROFIL.filter((p) => KULLANILMAYAN.has(p[0])).reduce((s, p) => s + p[4], 0);
const acikAygit = PROFIL.filter((p) => ACIK_AGLAR.has(p[0])).reduce((s, p) => s + p[4], 0);
const kisisel = PROFIL.filter((p) => p[1] === 'kisisel').reduce((s, p) => s + p[4], 0);
console.log(`\nbedel:`);
console.log(`  guven koku sabitleme   ${kurumsal} aygitta profil, ${kurumsal * ELLE} dk`);
console.log(`  profil silme           ${silinen} aygitta dokunus, ${silinen * ELLE} dk`);
console.log(`  otomatik baglanma      ${acikAygit} aygit, gunde ${acikAygit * ONAY} elle onay`);
console.log(`  ust kusak zorunlulugu  ${kisisel} aygit disarida kalir`);
```

```
savunma (ust uste eklenir)              acik   kismi   kapali  acik aygit  kismi aygit
taban (hicbiri)                            4       3        1         671         4292
guven koku sabitlenir                      3       3        2         488         4292
kullanilmayan profil silinir               2       2        4         441         4109
acik agda otomatik baglanma kapali         0       2        6           0         4109
eszamanli kimlik dogrulama kusagi          0       0        8           0            0

profil                     taban sabitleme     hepsi
sube-agi                  kapali    kapali    kapali
saha-agi                    acik    kapali    kapali
toplayici-agi              kismi     kismi    kapali
bakim-agi                  kismi     kismi    kapali
konuk-agi                   acik      acik    kapali
eski-saha-agi              kismi     kismi    kapali
ortak-calisma-alani         acik      acik    kapali
konferans-salonu            acik      acik    kapali

bedel:
  guven koku sabitleme   393 aygitta profil, 1572 dk
  profil silme           230 aygitta dokunus, 920 dk
  otomatik baglanma      488 aygit, gunde 976 elle onay
  ust kusak zorunlulugu  4292 aygit disarida kalir
```

Taban satırında sekiz yoldan yalnız **biri** kapalı: güven kökü sabitlenmiş kurumsal profil. Dört
yol açık, üçü kısmi açık. Bu, tabloyu okumadan verilecek yanıtın tersidir — kurumun ağlarının
çoğu şifrelidir, ama şifreleme ikiz erişim noktasına giden yolu kapatmaz.

Kısmi sonuç kişisel modun tam olarak ne yaptığını gösteriyor. Ortak sır iki tarafça bilindiği
için sırrı bilmeyen bir erişim noktası bağlantıyı tamamlayamaz; istemci reddeder. Ama istemci
bunu ancak el sıkışmayı **başlattıktan** sonra anlar ve o mesajlar dışarı çıkmış olur. İlk dersin
tablosunda çevrimdışı denemeye kanıt bulunmayan üç kuşak için bu, bağlantı kurulmasa bile
kaydedilmiş bir el sıkışma anlamına gelir. Kişisel mod yolu kapatır, izi kapatmaz.

Sabitleme satırı bir yol kapatıyor: doğrulama yapmayan kurumsal profil. Etkilenen aygıt yüz
seksen üçtür ve bu, ikinci dersin açık bıraktığı tek satırın karşılığıdır. Kurumsal moda
geçmiş ama sunucu kimliğini doğrulamayan bir profil, kişisel moddan **daha kötü** durumdadır:
kişisel modda sonuç kısmi iken burada açıktır, çünkü istemci kimliğini karşı tarafa sunar.

Kullanılmayan profilin silinmesi iki yol daha kapatıyor ve bunun bir savunma teknolojisiyle
ilgisi yoktur. Eski saha ağı ve konferans salonu profilleri, artık var olmayan ağların adlarını
istemcide tutuyordu; var olmayan bir ağın adı, o adı bildiren herkesin ağı demektir. Bu iki
satır bütün tabloda **bedeli en düşük** olan savunmadır: dokuz yüz yirmi dakikalık bir temizlik,
yeni bir altyapı kalemi getirmiyor ve hiçbir meşru bağlantıyı kesmiyor, çünkü kesilecek meşru
bağlantı zaten yok. Kapatılan yolun ucuz olması, onu en sık atlanan savunma yapıyor — envanterde
görünmeyen bir kalem bakım listesine de girmez.

## Sıfıra İnen Yol ve Ödenen Bedel

Dördüncü satır açık yolu sıfıra indiriyor. Açık ağlarda otomatik bağlanmanın kapatılması dört
yüz seksen sekiz aygıtı ilgilendiriyor ve günde dokuz yüz yetmiş altı elle onay ekliyor. Yolu
kapatan şey bir doğrulama değil, kararın kullanıcıya devredilmesidir; bu, savunmanın bedelinin
en görünür olduğu satırdır çünkü bedel her gün ödenir.

Kısmi iki yol ancak son satırda kapanıyor ve bedeli dört bin iki yüz doksan iki aygıttır. İlk
dersin envanter tablosu bu sayının nereden geldiğini söylüyor: kişisel modda kalan aygıtların
neredeyse tamamı en üst kuşağı desteklemiyor. Son satır bu yüzden ölçülebilir ama seçilebilir
değildir; kısmi iki yol pratikte açık kalır.

Toplam bedel dört kalemde toplanıyor: iki bin dört yüz doksan iki dakikalık bir kerelik
yapılandırma, günde dokuz yüz yetmiş altı elle onay ve dört bin iki yüz doksan iki aygıtlık bir
yenileme. İlk üç savunma bir kerelik ve ucuzdur; dördüncüsü süreklidir; beşincisi bütçe
kararıdır.

Modelin görmediği bir şey var. Tablo istemcinin **kayıtlı bir profille** eşleşmesini sayıyor;
kayıtlı olmayan bir ada bağlanmayı hiç saymıyor. Bir kullanıcı elle bir ağ seçtiğinde
sabitlenmiş güven kökü hâlâ çalışır, ama açık bir ağ seçtiğinde hiçbir savunma devrede değildir.
Sekiz yolun sıfıra inmesi, bu ağdaki kayıtlı profillerin sıfıra indiği anlamına gelir; istemcinin
tercih edebileceği yolların sıfıra indiği anlamına gelmez.

## Özet

- İstemcinin bağlantıdan önce gördüğü altı işaretin **hiçbirinin** kanıtı yok: dördü karşı
  tarafın bildirimi, biri kendi ölçümü, biri şifrelenmemiş başlık alanı. Kanıt taşıyan iki işaret
  de ancak bağlantı kurulurken ortaya çıkıyor.
- Sekiz kayıtlı profilden tabanda yalnız biri kapalı; dördü açık, üçü kısmi açık. Şifreleme
  kuşağı ikiz erişim noktasına giden yolu tek başına kapatmıyor.
- Kişisel mod bağlantıyı tamamlatmıyor ama el sıkışma mesajları dışarı çıkıyor; kurumsal moda
  geçip sunucu kimliğini doğrulamayan profil ise kişisel moddan daha kötü durumda, çünkü kimlik
  bilgisini karşı tarafa sunuyor.
- Güven kökü sabitleme, kullanılmayan profilin silinmesi ve açık ağda otomatik bağlanmanın
  kapatılması açık yolu 4'ten 0'a indiriyor; bedeli 2.492 dakikalık yapılandırma ve günde 976
  elle onay.
- Kısmi iki yol ancak en üst kuşak zorunlu tutulduğunda kapanıyor ve bedeli 4.292 aygıttır; bu
  yüzden ölçülebilir ama uygulanabilir bir seçenek değildir.

## Sonraki Adım

Bu dersin bütün ölçümü bir varsayıma dayanıyordu: istemcinin bağlantısını **kendi isteğiyle**
kuruyor olması. Sekiz profilin altısı kapandığında istemci zaten bağlı olduğu ağda kalır ve
sahte adayı hiç görmez. Ama bir istemcinin bağlı kalması, o bağlantıyı ayakta tutan mesajların
da doğrulanmasını gerektirir. Veri çerçeveleri şifrelidir ve bütünlük kanıtı taşır; bağlantıyı
kuran, sürdüren ve **sonlandıran** çerçeveler ise ayrı bir sınıftandır. Sonraki dersin sorusu
budur: bir kablosuz bağlantıda hangi çerçeve türü bütünlük kanıtı taşıyor, hangisi taşımıyor,
koruma açıldığında kaç çerçeve türü kanıta bağlanıyor ve savunmanın hangi sayacında sapma
görünüyor.
