Ders 16 / 21
Ağ Erişimi için Kimlik Doğrulama
Merkezî ağ doğrulama servisinin erişim kararı cinsinden ölçülmesi: 80 aygıtın tek servise sorması, aygıt başına 6 kalemlik zincir, servis erişilemezken dört geri düşme davranışının 0 ile 1348 arasında yol açması ve 957 uca kadar meşru erişim durdurması, bugünkü karışımda 436 yeni yolun açık kalması ve tek paylaşılan sırrın yenilenmesinin 80 aygıta elle dokunmak olması.
İçindekiler
Önceki ders bir aslın bir servise erişmesini ölçtü ve akışın altı adımını saydı. Adımların hepsi istemcinin ağa çoktan bağlanmış olmasını varsayıyordu: bilet isteği bir yerden çıkıp bir yere gitmek zorundadır. Kurumsal ağlarda o bağlantının kendisi de bir karar noktasıdır. Bir kablo takıldığında ya da bir aygıt kablosuz ağa katılmak istediğinde, kenar anahtarı ile erişim noktası kimliği kendisi doğrulamaz — merkezî bir servise sorar ve yanıta göre bağlanma noktasını açar.
Bu ders o servisi erişim kararı cinsinden ölçer. Kaç aygıt tek servise soruyor, kararın verilebilmesi için kaç kalem aynı anda doğru olmalı, servis erişilemez olduğunda hangi geri düşme davranışı seçiliyor ve o davranışların her biri kaç yol açıyor. İstemci ile ağ arasındaki sır Ağ Güvenliği kursunda ölçüldü; burada ölçülen, aygıt ile servis arasındaki bacaktır.
Kararı Veren Servis
KK8: erişim katmanındaki aygıt kimliği kendisi doğrulamaz; kararı merkezî bir ağ doğrulama servisine sorar. Aygıt ile servis arasındaki paylaşılan sır, o aygıtın verdiği her erişim kararının güven köküdür. KK9: servis erişilemez olduğunda aygıt bir geri düşme davranışı seçer; seçilen davranış hem açılan yol sayısını hem durdurulan meşru erişimi belirler ve seçilmemiş olması bir davranışın olmadığı anlamına gelmez — varsayılan da bir seçimdir. KK10: açılan yol sayısı tek başına bir sıralama ölçütü değildir; aynı sayıda yol, ulaşılan sistem sayısına göre iki ayrı sonuç verir.
Bu servisin açık şartnamesi RADIUS adıyla anılır ve kararın kendisi iki parçadan oluşur: aygıtın soru sorma hakkı ile ucun kimliği. Birincisi paylaşılan sırra, ikincisi ucun sunduğu kimlik bilgisine dayanır. Servis ikinciyi doğrulamak için kendisi bir yere sorar — önceki derslerde ölçülen merkezî dizine.
Seksen Aygıt, Tek Servis
Aşağıdaki envanter bir modeldir: kurgu bölgesel ölçüm ağının erişim katmanı. Gerçek bir kurum, gerçek bir aygıt ya da gerçek bir sır yoktur.
// aguc/erisim.mjs — kurgu bolgesel olcum aginda erisim katmani aygitlarinin merkezi ag // dogrulama servisine baglanmasi (model): gercek bir kurum, gercek bir aygit ya da gercek // bir sir yok. Rastgelelik yok. // KK8: erisim katmanindaki aygit kimligi kendisi dogrulamaz; karari merkezi bir ag dogrulama // servisine sorar ve yanita gore baglanti noktasini acar. Servis ile aygit arasindaki // paylasilan sir, o aygitin verdigi her erisim kararinin guven kokudur. // Sutunlar: adet = aygit sayisi, nokta = dogrulamadan gecmesi gereken baglanma noktasi, // uc = o an bagli mesru uc, iptal = son donemde yetkisi kaldirilmis uc. export const AYGIT = ` merkez-kenar-anahtari anahtar 6 144 131 4 merkez-kablosuz-nokta kablosuz 12 240 186 9 sube-kenar-anahtari anahtar 18 216 174 7 sube-kablosuz-nokta kablosuz 24 360 212 11 saha-uzak-erisim-ucu uzak 3 120 96 6 depo-kenar-anahtari anahtar 5 60 41 2 olcum-toplama-anahtari anahtar 4 48 44 1 konuk-kablosuz-nokta kablosuz 8 160 73 3` .trim().split("\n").map((r) => { const p = r.trim().split(/\s+/); return { ad: p[0], tur: p[1], adet: +p[2], nokta: +p[3], uc: +p[4], iptal: +p[5] }; }); // KK9: servis erisilemez oldugunda aygit bir geri dusme davranisi secer; secilen davranis // acilan yol sayisini da duran mesru erisimi de belirler. "erisim" sutunu, geri dusen // baglantinin ulasabildigi sistem sayisidir (kurumdaki toplam 16 sistemin kaci). export const GERI_DUSME = { "kapali": { yeni: (a) => 0, iptal: (a) => 0, duran: (a) => a.uc, erisim: 0 }, "acik": { yeni: (a) => a.nokta, iptal: (a) => a.iptal, duran: (a) => 0, erisim: 16 }, "kritik-bolut": { yeni: (a) => a.nokta, iptal: (a) => a.iptal, duran: (a) => 0, erisim: 2 }, "onbellek": { yeni: (a) => 0, iptal: (a) => a.iptal, duran: (a) => 0, erisim: 16 }, }; // KK10: kokten karara uzanan zincir, aygit basina ayni anda dogru olmasi gereken kalemlerdir. export const ZINCIR = ["paylasilan sir", "servis sertifikasi", "uc kimlik bilgisi", "servisin dizin baglantisi", "politika kaydi", "bolut eslemesi"];
// aguc/sayim.mjs — kac aygit tek servise soruyor, zincir kac kalem, servis erisilemezken // hangi geri dusme davranisi kac yol aciyor ve paylasilan sir ele gecerse yenileme ne tutar. import { AYGIT, GERI_DUSME, ZINCIR } from "./erisim.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 topla = (f, s = AYGIT) => s.reduce((a, x) => a + f(x), 0); const kip = Object.keys(GERI_DUSME); const adet = topla((a) => a.adet); console.log(`${adet} aygit tek servise soruyor, ${topla((a) => a.nokta)} baglanma noktasi, ` + `${topla((a) => a.uc)} bagli uc, ${topla((a) => a.iptal)} iptal edilmis uc`); console.log(`zincir ${ZINCIR.length} kalem, aygit basina; alanda ${adet * ZINCIR.length} kalem`); const A = [-10, 7, 8, 8, 8, 8]; console.log("\n1. aygit turune gore yuk"); yaz(A, "tur", "aygit", "nokta", "uc", "iptal", "kalem"); for (const t of ["anahtar", "kablosuz", "uzak"]) { const s = AYGIT.filter((a) => a.tur === t); yaz(A, t, topla((a) => a.adet, s), topla((a) => a.nokta, s), topla((a) => a.uc, s), topla((a) => a.iptal, s), topla((a) => a.adet, s) * ZINCIR.length); } const B = [-14, 10, 10, 10, 9]; console.log("\n2. servis erisilemezken ayni ag, dort geri dusme kipi"); yaz(B, "kip", "yeni yol", "iptal yol", "duran uc", "erisim"); for (const k of kip) { const g = GERI_DUSME[k]; yaz(B, k, topla(g.yeni), topla(g.iptal), topla(g.duran), `${g.erisim}/16`); } const C = [-24, -14, 9, 10, 10]; console.log("\n3. aygitlarin bugunku kip dagilimi ile sonuc"); const secim = { "merkez-kenar-anahtari": "kapali", "merkez-kablosuz-nokta": "onbellek", "sube-kenar-anahtari": "kritik-bolut", "sube-kablosuz-nokta": "onbellek", "saha-uzak-erisim-ucu": "kapali", "depo-kenar-anahtari": "acik", "olcum-toplama-anahtari": "kapali", "konuk-kablosuz-nokta": "acik" }; yaz(C, "aygit", "kip", "yeni yol", "iptal yol", "duran uc"); let y = 0, i = 0, d = 0; for (const a of AYGIT) { const g = GERI_DUSME[secim[a.ad]]; y += g.yeni(a); i += g.iptal(a); d += g.duran(a); yaz(C, a.ad, secim[a.ad], g.yeni(a), g.iptal(a), g.duran(a)); } yaz(C, "toplam", "-", y, i, d); const D = [-24, 8, 9, 16]; console.log("\n4. paylasilan sir ele gecerse dusen kalem ve yenileme"); yaz(D, "kalem", "sayi", "dusen", "yenileme"); const satir = [ ["bir aygitin sirri", 1, 1, "1 aygit elle"], ["ayni sirri tasiyan aygit", adet, adet, `${adet} aygit elle`], ["etkilenen nokta", topla((a) => a.nokta), topla((a) => a.nokta), "kendiliginden"], ["servis sertifikasi", 1, adet, `${adet} aygit elle`], ["uc kimlik bilgisi", topla((a) => a.uc), 0, "etkilenmez"], ]; for (const s of satir) yaz(D, ...s); console.log(`tek sir tum aygitlarda ayniysa elle kalem ${adet}, ayri ayriysa 1`);
80 aygit tek servise soruyor, 1348 baglanma noktasi, 957 bagli uc, 43 iptal edilmis uc zincir 6 kalem, aygit basina; alanda 480 kalem 1. aygit turune gore yuk tur aygit nokta uc iptal kalem anahtar 33 468 390 14 198 kablosuz 44 760 471 23 264 uzak 3 120 96 6 18 2. servis erisilemezken ayni ag, dort geri dusme kipi kip yeni yol iptal yol duran uc erisim kapali 0 0 957 0/16 acik 1348 43 0 16/16 kritik-bolut 1348 43 0 2/16 onbellek 0 43 0 16/16 3. aygitlarin bugunku kip dagilimi ile sonuc aygit kip yeni yol iptal yol duran uc merkez-kenar-anahtari kapali 0 0 131 merkez-kablosuz-nokta onbellek 0 9 0 sube-kenar-anahtari kritik-bolut 216 7 0 sube-kablosuz-nokta onbellek 0 11 0 saha-uzak-erisim-ucu kapali 0 0 96 depo-kenar-anahtari acik 60 2 0 olcum-toplama-anahtari kapali 0 0 44 konuk-kablosuz-nokta acik 160 3 0 toplam - 436 32 271 4. paylasilan sir ele gecerse dusen kalem ve yenileme kalem sayi dusen yenileme bir aygitin sirri 1 1 1 aygit elle ayni sirri tasiyan aygit 80 80 80 aygit elle etkilenen nokta 1348 1348 kendiliginden servis sertifikasi 1 80 80 aygit elle uc kimlik bilgisi 957 0 etkilenmez tek sir tum aygitlarda ayniysa elle kalem 80, ayri ayriysa 1
Sayılar ölçüm sınıfındadır; girdileri KK8–KK10 ile aygıt envanteridir.
Zincir ve Yük
Başlık satırı bağımlılığın büyüklüğünü verir: 80 aygıt tek bir servise sorar, 1348 bağlanma noktası o yanıta bağlıdır ve o an bağlı 957 uç vardır. Kararın verilebilmesi için aygıt başına altı kalem aynı anda doğru olmalıdır — paylaşılan sır, servisin sertifikası, ucun kimlik bilgisi, servisin dizine bağlantısı, politika kaydı ve bölüt eşlemesi. Alandaki toplam 480 kalemin hiçbiri kendiliğinden tutmaz.
Bu altı kalemin dördüncüsü zincirleme bir bağımlılıktır ve önceki iki dersi buraya bağlar. Servis, ucun kimliğini kendisi bilmez; merkezî dizine sorar. Yani bir kablonun takılması ile bir portun açılması arasındaki kararın arkasında iki kök vardır: aygıt ile servis arasındaki sır ve servis ile dizin arasındaki bağ. Birincisi bu dersin konusudur, ikincisi ilk derste ölçüldü ve orada dizin kesintisinde duran sistem sayısı 13’tü; bu ders o listeye 1348 bağlanma noktasını ekler.
Yük eşit dağılmaz. Kablosuz aygıtlar 44 kalemle aygıt sayısının yarısından fazlasını, 760 noktayla bağlanma noktalarının %56’sını taşır. Uzak erişim ucu yalnız üç aygıttır ama 120 nokta ve 96 uç barındırır; aygıt başına düşen nokta sayısı 40’tır ve bu, listedeki en yoğun kalemdir. Tek bir aygıtın yapılandırma hatası, aygıt sayısına değil, taşıdığı nokta sayısına oranlı bir sonuç üretir.
Servis Erişilemezken Dört Davranış
İkinci tablo aynı ağı dört geri düşme davranışıyla koşturur. Kapalı davranışta doğrulanmamış hiçbir aygıt giremez — yeni yol sıfır, iptal yolu sıfır — ama 957 uç durur. Bu satır, listedeki en güvenli ve en pahalı seçimdir; bir doğrulama servisinin kesintisi bütün ağın kesintisine dönüşür.
Açık davranış tam tersidir: hiçbir meşru uç durmaz, ama 1348 noktanın hepsi doğrulanmamış bir aygıta açılır ve açılan bağlantı 16 sistemin 16’sına ulaşır. Kritik bölüt davranışı aynı 1348 yolu açar; farkı, açılan bağlantının 16 sistemin yalnız ikisine ulaşmasıdır. KK10’un ölçüsü budur: iki satırın yol sayısı özdeştir, sonucu değildir. Yol sayımını kapsam sütunu olmadan yazan bir ölçüm, bu iki satırı ayırt edemez.
Önbellek davranışı ilk bakışta ikisinden de iyidir: yeni yol sıfır, duran uç sıfır. Bedeli üçüncü sütundadır — yetkisi kaldırılmış 43 uç ağa girmeye devam eder. Bu, ilk derste önbellek penceresi ve ikinci derste bilet ömrü olarak sayılan aynı örüntünün üçüncü görünümüdür. Bir kararın saklanması, kararın iptalini saklama süresi kadar geciktirir; mekanizma değişir, sayı aynı yerde çıkar.
Bugünkü Karışım
Üçüncü tablo davranışın ağ genelinde tek seçilmediğini gösterir. Sekiz aygıt kümesinin dördü kapalı, ikisi önbellek, biri kritik bölüt, biri açık davranışa ayarlıdır. Toplam 436 yeni yol açık kalır, 32 iptal yolu geçer ve 271 uç durur.
436 sayısı tek başına okunamaz. Bunun 216’sı kritik bölüte düşen şube anahtarlarından gelir ve o yollar iki sisteme ulaşır; kalan 220’si açık davranışa ayarlı iki aygıt kümesinden gelir ve 16 sistemin hepsine ulaşır. Kapsamla çarpıldığında iki grubun ağırlığı ters döner: sayıca daha küçük olan 220, ölçüde daha büyüktür. Konuk kablosuz noktalarının açık bırakılması makul bir karar olabilir, ama makullüğü ayrı bir bölüte bağlı olmasına dayanır ve tabloda o bölüt yazılmadığı sürece kararın doğruluğu ölçülemez.
Duran 271 uç da tek bir yerden gelmez: 131’i merkez anahtarlarından, 96’sı uzak erişim ucundan, 44’ü ölçüm toplama anahtarından. Uzak erişim ucunun kapalı davranışa ayarlı olması, servis kesintisinde sahadaki 96 ucun tamamının bağlantısız kalması demektir. Geri düşme davranışı bir güvenlik ayarı gibi görünür; gerçekte kesinti planının parçasıdır.
İkinci Servis Neyi Değiştirir
Geri düşme tablosunun tamamı tek bir varsayıma dayanır: servis erişilemez. İkinci bir doğrulama servisi eklendiğinde bu varsayım seyrekleşir ve 436 yeni yol, 271 duran uçla birlikte ortadan kalkar. Kazanç gerçektir, ama bedeli kökün kendisinde ödenir.
İkinci servisin aynı kararları verebilmesi için aynı paylaşılan sırları bilmesi gerekir. Yani 80 aygıtın sırrı iki yerde durur ve kökün bulunduğu yer sayısı ikiye çıkar. İlk derste çoğaltılan şey bir kayıttı ve kopyalanması kaydın doğruluğunu değiştirmiyordu; burada çoğaltılan şey bir sırdır ve bir sır her kopyalandığında ele geçme yüzeyi büyür. Yenileme faturası da değişmez biçimde ikiye katlanır: 80 aygıt artı iki servis yapılandırması.
Erişilebilirlik için çoğaltılan kalem bir kayıtsa maliyet yönetimdir, bir sırsa maliyet yüzeydir. İkinci servis kararı bu iki cümle arasında verilir ve kararın doğruluğu, sırların aygıt başına ayrı tutulup tutulmadığına bağlıdır.
Paylaşılan Sır Ele Geçerse
Dördüncü tablo kökün kırılmasını sayar. Bir aygıtın sırrı ele geçerse düşen kalem birdir ve yenileme o tek aygıta dokunmakla biter. Sorun, aynı sırrın kaç aygıtta kullanıldığıdır: bütün aygıtlarda aynıysa düşen kalem 80’e çıkar ve yenileme 80 aygıta elle dokunmak demektir. Aygıt başına ayrı sır tutulduğunda aynı olayın yenileme maliyeti birdir.
Servis sertifikası satırı bu dersin ters yönlü kalemidir. Sertifika tek bir kalemdir, ama değiştiğinde ona güvenen 80 aygıtın yapılandırması güncellenir; sayı 1’den 80’e sertifikanın kendisinde değil, ona başvuran kalem sayısında büyür. Bu, önceki konuda ölçülen güven zincirinin buradaki karşılığıdır — aygıtlar sertifikayı bir zincire bağlamak yerine doğrudan tanıyorsa, sertifika yaşam döngüsünün her adımı 80 kalemlik bir işe dönüşür.
Uç kimlik bilgileri satırı sıfır düşer. Uçların kimliği dizinde durur ve paylaşılan sırla ilgisizdir; kök kırılması aygıtın soru sorma hakkını taklit etmeye yarar, ucun kimliğini ele geçirmeye değil. İki kökün ayrı olması, kırılmanın da ayrı kalmasını sağlar.
Özet
- Erişim katmanındaki 80 aygıt kararı tek bir merkezî servise sorar; 1348 bağlanma noktası ve 957 bağlı uç o yanıta bağlıdır.
- Karar zinciri aygıt başına 6 kalemdir ve dördüncü kalem servisin dizine bağlantısıdır; bu bağ, ilk derste ölçülen kökü buraya zincirler.
- Geri düşme davranışları uçlardadır: kapalı davranış 0 yol açar ama 957 uç durdurur, açık davranış 1348 yol açar ve hiçbir ucu durdurmaz.
- Aynı 1348 yol, kritik bölütte 16 sistemin 2’sine, açık davranışta 16’sına ulaşır; yol sayısı kapsam sütunu olmadan sıralanamaz.
- Bugünkü karışımda 436 yeni yol açık kalır ve bunların kapsamca ağır olan 220’si iki aygıt kümesinden gelir; tek paylaşılan sırrın yenilenmesi 80 aygıta elle dokunmak demektir.
Sonraki Adım
Bu ders erişim kararını ağa girişte ölçtü. Ağa girmiş bir kullanıcı ise gün boyunca onlarca uygulamaya bağlanır ve her birinde ayrı ayrı doğrulanması istenmez; bir kez doğrulanır ve o doğrulama uygulamalara bir iddia belgesiyle taşınır. Belgeyi üreten kimlik sağlayıcısının imzalama anahtarı, bu kez uygulamaların tamamı için tek bir köktür. Sonraki ders federasyonu bu eksende ölçer: kaç uygulama tek sağlayıcıya bağlı, kök kırılırsa kaç uygulama düşer, iddia belgesinin ömrü ne kadar ve bir hesabın kapatılması hangi uygulamada ne kadar sürede etkili oluyor.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.