Ders 10 / 22
Fiziksel Teknikler
Peşine takılma, omuz sörfü ve çöp karıştırmayı erişim kalemi cinsinden saymak: on kapı, beş kart ve iki görsel doğrulamadan oluşan kurgu bir binada hedef bölgeye giden yol sayısı, her yolda kaç kapının zinciri kırdığı, hiç kırılmayan iki yol ve refakat yordamının kazandırdığı on erişim kalemi ile günlük 6,8 saatlik bedeli.
İçindekiler
Önceki dersin dört kanalı da uzaktan işliyordu ve hepsinin ortak önkoşulu bir adresti: posta adresi, numara ya da hesap. Bir kişinin binaya girmesi bunların hiçbirine ihtiyaç duymaz. Kapıdan geçmek, açık bırakılmış bir ekrana bakmak ya da atılmış bir belgeyi toplamak farklı bir kaynak kümesini kullanır ve bu kümenin kalemleri sayılabilir: kapı, kart, görsel doğrulama.
Bu ders üç tekniği aynı bina modeli üzerinde ölçer. Peşine takılma bir kapının açık kalmasından yararlanır; omuz sörfü bir görüş açısından; çöp karıştırma ayrılmamış bir atıktan. Üçünün de zinciri kısadır ve üçünün de ilk adımı hiçbir denetimin görmediği bir adımdır. Ölçülen şey binaya girmenin nasıl yapıldığı değil, hangi erişim kaleminin hangi halkayı kırdığıdır. Bu tür denemelerin yazılı yetki ve tanımlı kapsam dışında yapılması hem yasadışı hem de meslek dışıdır.
- SM19. Bina, kapı grafiği, kart yetkileri ve atık akışı kurgusal bölgesel ölçüm ağının bir
şube binasına aittir. Gerçek bir bina yok; ölçülen şey
nodeile kurulan modeldir. - SM20. Kart tek başına peşine takılmayı durdurmaz: bir kart okunduğunda kapı açılır ve arkasından kaç kişi geçtiğini kart bilmez. Zinciri kıran denetimler kişiyi gören denetim ile tek kişilik geçiştir.
- SM21. Yol araması aynı kapıdan iki kez geçmeyen yolları sayar. Pencere, asansör boşluğu ve yangın çıkışı gibi kapı dışı geçişler modellenmedi; gerçek bir binada bu yollar da sayılır.
- SM22. Görsel doğrulama, orada bir kişinin bulunmasına bağlıdır. Vardiya dışı saatler ve yoğun geçiş anları modellenmedi; ikisi de bu denetimin gücünü düşürür.
- SM23. Düşen erişim kalemi, o adımdan sonra ulaşılabilir hale gelen kapı, ekran ve belge kaleminin sayısıdır. Kalem türleri ayrı ağırlıklandırılmadı.
- SM24. Refakat yordamı, iç bölgelerde yalnız başına bulunan kişinin görüldüğü varsayımına dayanır. Bir kişinin refakat ettiği kişiyi gözden kaçırması modellenmedi.
Erişim Kalemleri ve Yollar
// bina.mjs — kapi grafigi, kart yetkileri ve uc fiziksel teknigin zinciri; model // [kapi, kaynak bolge, hedef bolge, denetim] export const KAPI = [ ['ana giris', 'disari', 'giris holu', 'gorsel'], ['yan giris', 'disari', 'giris holu', 'kart'], ['otopark asansoru', 'disari', 'ofis kati', 'kart'], ['sevkiyat kapisi', 'disari', 'depo', 'yok'], ['hol turnikesi', 'giris holu', 'ofis kati', 'kart+tek kisi'], ['depo koridoru', 'depo', 'ofis kati', 'yok'], ['teknik oda kapisi', 'ofis kati', 'teknik oda', 'kart'], ['sunucu odasi kapisi', 'teknik oda', 'sunucu odasi', 'kart+gorsel'], ['arsiv kapisi', 'ofis kati', 'arsiv', 'kart'], ['atik noktasi', 'depo', 'atik alani', 'yok'], ]; export const KART = { // kart turu: actigi kapilar ziyaretci: ['yan giris'], ofis: ['yan giris', 'hol turnikesi', 'arsiv kapisi'], saha: ['yan giris', 'hol turnikesi', 'sevkiyat kapisi'], teknik: ['yan giris', 'otopark asansoru', 'hol turnikesi', 'teknik oda kapisi', 'sunucu odasi kapisi'], temizlik: ['yan giris', 'hol turnikesi', 'teknik oda kapisi', 'arsiv kapisi'], }; // kart tek basina pesine takilmayi durdurmaz; kisiyi goren ya da tek kisilik gecis durdurur export const kirar = (denetim) => denetim.includes('gorsel') || denetim.includes('tek kisi'); export function yollar(hedef, bolge = 'disari', gecilen = []) { if (bolge === hedef) return [gecilen]; return KAPI.filter((k) => k[1] === bolge && !gecilen.includes(k[0])) .flatMap((k) => yollar(hedef, k[2], [...gecilen, k[0]])); } export const denetimi = (ad) => KAPI.find((k) => k[0] === ad)[3]; // [teknik, [adim, onkosul, adimi goren denetim, adim bitince dusen erisim kalemi]] export const TEKNIK = { 'pesine takilma': [ ['kapi onunde bekleme', 'kapinin disaridan gorulmesi', null, 0], ['yetkili gecisin beklenmesi', 'yogun gecis saati', null, 0], ['ayni gecisle iceri girme', 'kapinin acik kalmasi', 'tek kisilik gecis', 2], ['hedef bolgeye ilerleme', 'ic kapilarin denetimsiz olmasi', 'gorsel dogrulama', 5], ], 'omuz sorfu': [ ['ortak alanda konumlanma', 'ziyaretci erisimi', null, 0], ['ekran ya da tus gozlemi', 'gorus acisi', 'ekran yerlesimi', 1], ['gozlenen bilginin kullanimi', 'gecerli oturum', 'ikinci etmen', 4], ], 'cop karistirma': [ ['atik noktasina erisim', 'atik alaninin denetimsiz olmasi', null, 0], ['belge toplama', 'ayrilmamis atik', 'belge imha yordami', 3], ['toplanan bilginin kullanimi', 'bilginin guncel olmasi', 'kayit saklama suresi', 4], ], }; export const REFAKAT = { gunluk_gecis: 34, ortalama_dakika: 12 }; // kurgu
// kosum1.mjs — erisim kalemlerinin sayimi ve hedef bolgeye giden yollarin denetim yogunlugu import { KAPI, KART, kirar, yollar, denetimi } from './bina.mjs'; const gorsel = KAPI.filter((k) => k[3].includes('gorsel')); console.log(`${KAPI.length} kapi, ${Object.keys(KART).length} kart turu, ${gorsel.length} gorsel dogrulama noktasi`); console.log(`denetimsiz kapi ${KAPI.filter((k) => k[3] === 'yok').length}, yalniz kartla acilan ${KAPI.filter((k) => k[3] === 'kart').length}, ` + `pesine takilmayi kiran ${KAPI.filter((k) => kirar(k[3])).length}\n`); console.log(`${'kapi'.padEnd(20)} ${'kaynak'.padEnd(11)} ${'hedef'.padEnd(12)} ${'denetim'.padEnd(13)} ${'acan kart'.padStart(9)}`); for (const [ad, a, b, d] of KAPI) console.log(`${ad.padEnd(20)} ${a.padEnd(11)} ${b.padEnd(12)} ${d.padEnd(13)} ` + `${String(Object.values(KART).filter((v) => v.includes(ad)).length).padStart(9)}`); for (const hedef of ['sunucu odasi', 'arsiv']) { const y = yollar(hedef); console.log(`\n${hedef}: ${y.length} yol`); console.log(`${'yol'.padEnd(72)} ${'kapi'.padStart(4)} ${'kiran'.padStart(5)} ${'kartsiz gecilen'.padStart(15)}`); for (const yol of y) console.log(`${yol.join(' > ').padEnd(72)} ${String(yol.length).padStart(4)} ` + `${String(yol.filter((k) => kirar(denetimi(k))).length).padStart(5)} ` + `${String(yol.filter((k) => denetimi(k) === 'yok').length).padStart(15)}`); const enaz = y.reduce((a, b) => (b.filter((k) => kirar(denetimi(k))).length < a.filter((k) => kirar(denetimi(k))).length ? b : a)); console.log(`en az denetimli yol: ${enaz.join(' > ')} (${enaz.filter((k) => kirar(denetimi(k))).length} kiran kapi)`); } console.log(`\nsunucu odasini acan kart turu ${Object.entries(KART).filter(([, v]) => v.includes('sunucu odasi kapisi')).length}, ` + `teknik oda kapisini acan ${Object.entries(KART).filter(([, v]) => v.includes('teknik oda kapisi')).length}`);
10 kapi, 5 kart turu, 2 gorsel dogrulama noktasi denetimsiz kapi 3, yalniz kartla acilan 4, pesine takilmayi kiran 3 kapi kaynak hedef denetim acan kart ana giris disari giris holu gorsel 0 yan giris disari giris holu kart 5 otopark asansoru disari ofis kati kart 1 sevkiyat kapisi disari depo yok 1 hol turnikesi giris holu ofis kati kart+tek kisi 4 depo koridoru depo ofis kati yok 0 teknik oda kapisi ofis kati teknik oda kart 2 sunucu odasi kapisi teknik oda sunucu odasi kart+gorsel 1 arsiv kapisi ofis kati arsiv kart 2 atik noktasi depo atik alani yok 0 sunucu odasi: 4 yol yol kapi kiran kartsiz gecilen ana giris > hol turnikesi > teknik oda kapisi > sunucu odasi kapisi 4 3 0 yan giris > hol turnikesi > teknik oda kapisi > sunucu odasi kapisi 4 2 0 otopark asansoru > teknik oda kapisi > sunucu odasi kapisi 3 1 0 sevkiyat kapisi > depo koridoru > teknik oda kapisi > sunucu odasi kapisi 4 1 2 en az denetimli yol: otopark asansoru > teknik oda kapisi > sunucu odasi kapisi (1 kiran kapi) arsiv: 4 yol yol kapi kiran kartsiz gecilen ana giris > hol turnikesi > arsiv kapisi 3 2 0 yan giris > hol turnikesi > arsiv kapisi 3 1 0 otopark asansoru > arsiv kapisi 2 0 0 sevkiyat kapisi > depo koridoru > arsiv kapisi 3 0 2 en az denetimli yol: otopark asansoru > arsiv kapisi (0 kiran kapi) sunucu odasini acan kart turu 1, teknik oda kapisini acan 2
Kapı tablosu erişim kalemlerini sayıyor: on kapı, beş kart türü, iki görsel doğrulama noktası. Üç kapıda hiçbir denetim yok, dört kapı yalnız kartla açılıyor ve peşine takılmayı kıran kapı sayısı üçtür. Kart sütunu ikinci bir dengesizliği gösteriyor: sunucu odası kapısını tek bir kart türü açıyor, ama teknik oda kapısını iki tür açıyor ve bunlardan biri temizlik kartıdır. Yetkinin en dar olduğu yer son kapıdır, bir öncekinde ise iki katına çıkar.
Yol tablosu asıl sayıyı veriyor. Sunucu odasına dört yol var ve bu yolların kırıcı kapı sayısı üç ile bir arasında değişiyor. Ana girişten geçen yol üç kırıcı kapı içerir; otopark asansöründen geçen yol yalnız bir tane. Aynı hedefe giden iki yol arasındaki bu fark, savunmanın ana girişe yığıldığını ve yan girişlerin aynı ölçüyle ele alınmadığını gösterir.
Arşiv daha keskin. Dört yolun ikisinde kırıcı kapı sayısı sıfırdır. Sevkiyat kapısı ile depo koridoru hiçbir denetim taşımıyor ve ikisi de kartsız geçiliyor; otopark asansörü kart istiyor ama kişiyi görmüyor. Yol sayımı burada bir yüzey değil, bir sıralama üretir: hangi hedefe hangi yoldan gidildiğinde hiçbir denetimin görmediği bir güzergâh kalıyor.
Üç Zincir ve Refakat Yordamı
// kosum2.mjs — uc teknigin zinciri, yola bagli kirilan halka ve refakat yordaminin bedeli import { TEKNIK, REFAKAT, yollar, denetimi } from './bina.mjs'; const kumulof = (z) => { let s = 0; return z.map((a) => (s += a[3])); }; console.log(`${'teknik'.padEnd(16)} ${'adim'.padStart(4)} ${'denetimli'.padStart(9)} ${'erken kalem'.padStart(11)} ` + `${'gec kalem'.padStart(9)} ${'kazanc'.padStart(6)} ${'hic kirilmazsa'.padStart(14)}`); for (const [ad, z] of Object.entries(TEKNIK)) { const k = kumulof(z), d = z.map((a, i) => (a[2] ? i : -1)).filter((i) => i >= 0); const e = d[0] ? k[d[0] - 1] : 0, g = k[d[d.length - 1] - 1]; console.log(`${ad.padEnd(16)} ${String(z.length).padStart(4)} ${String(d.length).padStart(9)} ${String(e).padStart(11)} ` + `${String(g).padStart(9)} ${String(g - e).padStart(6)} ${String(k[z.length - 1]).padStart(14)}`); } const P = TEKNIK['pesine takilma'], PK = kumulof(P); console.log(`\npesine takilma zinciri:`); P.forEach((a, i) => console.log(` ${i + 1} ${a[0].padEnd(26)} onkosul ${a[1].padEnd(33)} denetim ${(a[2] ?? '-')}`)); const halka = (yol, refakat) => { const d = []; if (yol.some((k) => denetimi(k).includes('tek kisi'))) d.push(2); if (refakat || yol.some((k) => denetimi(k).includes('gorsel'))) d.push(3); return d; }; const dusen = (d) => (d.length ? { e: d[0] ? PK[d[0] - 1] : 0, g: PK[d[d.length - 1] - 1] } : { e: PK[3], g: PK[3] }); let kirilmayan = 0, kazanc = 0; // dusen sutunu: en erken kirilabilen halkada dusen erisim kalemi; hic kirilamiyorsa zincirin tamami for (const hedef of ['sunucu odasi', 'arsiv']) { console.log(`\n${hedef} (${yollar(hedef).length} yol)`.padEnd(74) + `${'halka'.padStart(5)} ${'dusen'.padStart(5)} ${'refakatli'.padStart(9)} ${'dusen'.padStart(5)}`); for (const yol of yollar(hedef)) { const a = halka(yol, false), b = halka(yol, true), da = dusen(a), db = dusen(b); if (!a.length) kirilmayan++; kazanc += da.e - db.e; console.log(`${yol.join(' > ').padEnd(73)} ${String(a.length).padStart(5)} ${String(da.e).padStart(5)} ` + `${String(b.length).padStart(9)} ${String(db.e).padStart(5)}`); } } console.log(`\nrefakatsiz hic kirilmayan yol ${kirilmayan}/8; refakat yordaminin toplam kazanci ${kazanc} erisim kalemi`); console.log(`bedel: gunde ${REFAKAT.gunluk_gecis} refakatli gecis x ${REFAKAT.ortalama_dakika} dk = ` + `${REFAKAT.gunluk_gecis * REFAKAT.ortalama_dakika} dk (${(REFAKAT.gunluk_gecis * REFAKAT.ortalama_dakika / 60).toFixed(1)} saat/gun)`);
teknik adim denetimli erken kalem gec kalem kazanc hic kirilmazsa pesine takilma 4 2 0 2 2 7 omuz sorfu 3 2 0 1 1 5 cop karistirma 3 2 0 3 3 7 pesine takilma zinciri: 1 kapi onunde bekleme onkosul kapinin disaridan gorulmesi denetim - 2 yetkili gecisin beklenmesi onkosul yogun gecis saati denetim - 3 ayni gecisle iceri girme onkosul kapinin acik kalmasi denetim tek kisilik gecis 4 hedef bolgeye ilerleme onkosul ic kapilarin denetimsiz olmasi denetim gorsel dogrulama sunucu odasi (4 yol) halka dusen refakatli dusen ana giris > hol turnikesi > teknik oda kapisi > sunucu odasi kapisi 2 0 2 0 yan giris > hol turnikesi > teknik oda kapisi > sunucu odasi kapisi 2 0 2 0 otopark asansoru > teknik oda kapisi > sunucu odasi kapisi 1 2 1 2 sevkiyat kapisi > depo koridoru > teknik oda kapisi > sunucu odasi kapisi 1 2 1 2 arsiv (4 yol) halka dusen refakatli dusen ana giris > hol turnikesi > arsiv kapisi 2 0 2 0 yan giris > hol turnikesi > arsiv kapisi 1 0 2 0 otopark asansoru > arsiv kapisi 0 7 1 2 sevkiyat kapisi > depo koridoru > arsiv kapisi 0 7 1 2 refakatsiz hic kirilmayan yol 2/8; refakat yordaminin toplam kazanci 10 erisim kalemi bedel: gunde 34 refakatli gecis x 12 dk = 408 dk (6.8 saat/gun)
Üç teknik tablosu zincirlerin ne kadar kısa olduğunu gösteriyor: dört, üç ve üç adım. Üçünde de ilk adım denetimsizdir ve üçünde de denetimli halka sayısı ikidir. Erken kırma kazançları farklıdır: peşine takılmada iki, omuz sörfünde bir, çöp karıştırmada üç erişim kalemi. En yüksek kazanç çöp karıştırmadadır, çünkü ikinci adımı — belge toplama — üç kalem düşürür ve o adımı kıran denetim kapıda değil, atığın ayrılmasındadır. Zincir hiç kırılmazsa düşen kalem yedidir.
Yol tablosu peşine takılmayı bina üzerinde koşturuyor ve kursun ikinci kez gördüğü durumu bir kez daha üretiyor: sekiz yolun ikisinde hiçbir halka kırılmıyor. Bu iki yol arşive gidiyor ve düşen kalem yedidir — zincirin tamamı. Kalan altı yolda en erken kırılabilen halkada düşen kalem ya sıfır ya ikidir; yani denetim varsa erkendir, yoksa hiç yoktur. Arada bir seçenek çıkmıyor.
Refakat yordamı sütunları karşılaştırınca yordamın nerede işe yaradığı görünüyor. Altı yolda hiçbir şey değişmiyor, çünkü o yollarda zaten erken kırılan bir halka var. Değişen iki yol, hiç kırılmayanlardır: düşen kalem yediden ikiye iniyor ve toplam kazanç on erişim kalemidir. Yordamın kazandırdığı her şey, daha önce hiçbir denetimin bulunmadığı iki güzergâhtadır.
Bedel tek satırda yazılı: günde otuz dört refakatli geçiş, geçiş başına ortalama on iki dakika, toplam 408 dakika — günde 6,8 saat. Bu süre bir kişinin işgücünün tamamına yakınıdır ve refakat edenin kendi işinden düşer. Yordamın yalnız iki güzergâhta kazanç sağladığı bilindiğinde ortaya ölçülebilir bir seçenek çıkar: refakat yerine o iki güzergâhtaki üç denetimsiz kapıya görsel ya da tek kişilik geçiş denetimi eklemek. İkisi de aynı on kalemi kazandırır; biri her gün ödenir, öteki bir kez.
Özet
- Bina modelinde 10 kapı, 5 kart türü ve 2 görsel doğrulama noktası var. 3 kapı denetimsiz, 4 kapı yalnız kartla açılıyor; peşine takılmayı kıran kapı sayısı 3’tür.
- Sunucu odasına 4 yol gidiyor ve kırıcı kapı sayısı 3 ile 1 arasında değişiyor. Arşive giden 4 yolun 2’sinde kırıcı kapı sayısı 0’dır.
- Üç tekniğin de ilk adımı denetimsizdir. Erken kırma kazancı peşine takılmada 2, omuz sörfünde 1, çöp karıştırmada 3 erişim kalemidir; zincir hiç kırılmazsa düşen kalem 7, 5 ve 7’dir.
- Peşine takılma 8 yolun 6’sında kırılıyor, 2’sinde hiç kırılmıyor. Kırılan yollarda en erken halkada düşen kalem 0 ya da 2; ara bir değer çıkmıyor.
- Refakat yordamı yalnız o 2 yolda etkili: düşen kalem 7’den 2’ye iniyor, toplam kazanç 10 erişim kalemidir. Öteki 6 yolda kazanç 0’dır.
- Yordamın bedeli günde 34 refakatli geçiş × 12 dakika = 408 dakika (6,8 saat). Aynı 10 kalem, o 2 güzergâhtaki 3 denetimsiz kapıya denetim eklenerek de kazanılır.
Sonraki Adım
Bu dersin bütün zincirleri bir kapıdan geçmeyi gerektirdi ve her kapı sayılabilir bir kalemdi. Uzaktan yapılan bir taklit hiçbir kapıya ihtiyaç duymaz: gerçek bir adın bir karakter uzağındaki bir alan adı, kaydedildiği anda hiçbir denetimin karşısına çıkmaz. Bu adların üretilmesi değil, tespit edilmesi ölçülebilir bir iştir: korunan adlarla aday adlar arasındaki düzenleme uzaklığı hesaplanabilir, görsel olarak benzeyen karakterler normalleştirilebilir. Sonraki dersin sorusu budur: bir kayıt listesinde kaç taklit adayı çıkıyor, bunların kaçı yanlış pozitif ve kaydın izlenmesi kullanıma geçmeden önce kaç günlük pencere kazandırıyor.
İlerlemeni kaydetmek ve not almak için Giriş yap
Notlarım
Not almak için giriş yapmalısın.