İçeriğe geç
academia.sh

Ders 16 / 20

Kablosuz Şifreleme Kuşakları

Dört kablosuz şifreleme kuşağı aynı on iddialık küme üzerinde ölçülür: akış şifresine dayanan eski kuşak on iddianın hiçbirini kanıtlamıyor, blok şifresini sayaç kipinde kullanan kuşak beşini kanıtlıyor, eşzamanlı kimlik doğrulama kuşağı yediye çıkarıyor. Geçişin bedeli aygıt envanterinde sayılır: en üst kuşak zorunlu tutulduğunda dört bin beş yüz kırk aygıtın dört bin üç yüz yirmi biri dışarıda kalıyor.

İçindekiler

Bir önceki konu çevreyi çizdi: bölgeler ayrıldı, denetim noktaları kondu ve kurallar sıraya girdi. Bütün o sınırların ortak bir dayanağı vardı — bir mesajın belirli bir kablodan girmiş olması. Kablosuz katmanda bu dayanak yoktur. Sinyal binanın duvarında durmaz; bir çerçeveyi alan aygıtın bina içinde mi dışında mı olduğu, çerçevenin kendisinden okunamaz.

O yüzden bu konuda kablonun yaptığı işi şifreleme yapar. Kuşaklar arasındaki fark bir hız ya da uyumluluk farkı değildir; hangi iddianın kanıtlanabildiği farkıdır. Bu ders dört kuşağı kuşak adlarıyla değil taşıdıkları özellikle anar ve hepsini aynı on iddialık küme üzerinde koşturur: kaçı kanıtlanıyor, kaçı açık kalıyor, yükseltmenin bedeli kaç aygıt.

  • KG1. Kurgu bölgesel ölçüm ağı kablosuz tarafıyla ele alınır: şube ağları, saha ekiplerinin el terminalleri ve sayaç uçlarının bağlandığı toplayıcı ağ. Gerçek bir ağ kurulmuyor, gerçek ağ adı ve konum yazılmıyor; ölçülen şey node ile kurulan modeldir.
  • KG2. İddia, bir bağlantı kurulurken taraflardan birinin öne sürdüğü ve karşı tarafın kabul ettiği önermedir. Üç değer alır: kanıtı var, kanıtı zayıf (sonlu bir işle bozulabiliyor), kanıtı yok.
  • KG3. Kuşaklar dört sınıfa indirgenir: akış şifresini sabit anahtarla ve kısa bir sayaçla karıştıran eski kuşak; aynı akış şifresini koruyup her çerçeveye ayrı anahtar türeten geçiş kuşağı; blok şifresini sayaç kipinde kullanıp bütünlüğü aynı anahtarla doğrulayan kuşak; ortak sırdan her oturumda taze anahtar üreten eşzamanlı kimlik doğrulama kuşağı.
  • KG4. Aygıt envanteri kurgudur; her sınıfın desteklediği en üst kuşak model kararıdır.
  • KG5. Çevrimdışı deneme hızı kurgu bir model sabitidir ve donanıma bağlı olarak değişir; karşılaştırma mutlak süre için değil, iki kuşak arasındaki oran için yapılır.
  • KG6. Kuşakların taşıdığı iddialar burada yalnız doğrulama ekseninde ele alınır; şifreleme algoritmalarının kendisi M24/K04’ün konusudur.

Bir Bağlantının Taşıdığı İddialar

Bir aygıt bir kablosuz ağa bağlanırken tek bir soru sormaz. On ayrı önerme kabul eder ve bunların çoğunu sormadan kabul eder.

// kusak.mjs — kablosuz kusaklarin iddia tablosu (model). Kusaklar ada gore degil,
// tasidiklari ozellige gore anilir. Kurgu bolgesel olcum agi; gercek ag kurulmuyor.
export const KUSAK = [
  ['akis-sifresi-kisa-sayac', 'akis sifresini sabit anahtarla ve kisa bir sayacla karistiran kusak'],
  ['akis-sifresi-cerceve-anahtari', 'ayni akis sifresini koruyup her cerceveye ayri anahtar tureten kusak'],
  ['blok-sifresi-sayac-kipi', 'blok sifresini sayac kipinde kullanip butunlugu ayni anahtarla dogrulayan kusak'],
  ['eszamanli-kimlik-dogrulama', 'ortak sirdan her oturumda taze anahtar ureten eszamanli kimlik dogrulama kusagi'],
];
// Bir baglanti kurulurken tasinan iddialar. Deger: 2 = kanit var, 1 = kanit zayif
// (sonlu is ile bozulabiliyor), 0 = hicbir kanit yok.
export const IDDIA = [
  ['ag adi dogru',            [0, 0, 0, 0]],
  ['istemci sirri biliyor',   [1, 2, 2, 2]],
  ['erisim noktasi sirri biliyor', [0, 1, 2, 2]],
  ['cerceve icerigi degismedi', [1, 1, 2, 2]],
  ['cerceve tekrar degil',    [0, 2, 2, 2]],
  ['anahtar bu oturuma ozel', [0, 1, 2, 2]],
  ['gecmis trafik acilamaz',  [0, 0, 0, 2]],
  ['yonetim cercevesi agdan geldi', [0, 0, 0, 1]],
  ['parola cevrimdisi denenemez', [0, 0, 0, 2]],
  ['kaynak adresi dogru',     [0, 0, 0, 0]],
];
// Kurgu olcum aginda aygit siniflari: [sinif, adet, destekledigi en ust kusak (indis)]
export const AYGIT = [
  ['sayac ucu (eski seri)', 1840, 0],
  ['sayac ucu (yeni seri)', 2260, 2],
  ['saha el terminali', 145, 2],
  ['saha el terminali (eski)', 38, 1],
  ['sube dizustu', 210, 3],
  ['barkod yazicisi', 26, 1],
  ['pano ekrani', 12, 2],
  ['bakim dizustu', 9, 3],
];
// kosum1.mjs — her kusak kac iddiayi kanitliyor, kaci acik kaliyor
import { KUSAK, IDDIA } from './kusak.mjs';

const G = ['yok', 'zayif', 'var'];
const E = [32, 8, 8, 8, 8];
const yaz = (h) => h.map((d, i) => String(d)[i ? 'padStart' : 'padEnd'](E[i])).join('');
console.log(yaz(['iddia', 'kusak1', 'kusak2', 'kusak3', 'kusak4']));
for (const [ad, d] of IDDIA) console.log(yaz([ad, ...d.map((v) => G[v])]));
const say = (k, v) => IDDIA.filter(([, d]) => d[k] === v).length;
const S = [34, 12, 8, 10, 12];
const yaz2 = (h) => h.map((d, i) => String(d)[i ? 'padStart' : 'padEnd'](S[i])).join('');
console.log('\n' + yaz2(['kusak', 'kanitlanan', 'zayif', 'kanitsiz', 'acik iddia']));
KUSAK.forEach(([ad], k) =>
  console.log(yaz2([ad, say(k, 2), say(k, 1), say(k, 0), say(k, 1) + say(k, 0)])));
iddia                             kusak1  kusak2  kusak3  kusak4
ag adi dogru                         yok     yok     yok     yok
istemci sirri biliyor              zayif     var     var     var
erisim noktasi sirri biliyor         yok   zayif     var     var
cerceve icerigi degismedi          zayif   zayif     var     var
cerceve tekrar degil                 yok     var     var     var
anahtar bu oturuma ozel              yok   zayif     var     var
gecmis trafik acilamaz               yok     yok     yok     var
yonetim cercevesi agdan geldi        yok     yok     yok   zayif
parola cevrimdisi denenemez          yok     yok     yok     var
kaynak adresi dogru                  yok     yok     yok     yok

kusak                               kanitlanan   zayif  kanitsiz  acik iddia
akis-sifresi-kisa-sayac                      0       2         8          10
akis-sifresi-cerceve-anahtari                2       3         5           8
blok-sifresi-sayac-kipi                      5       0         5           5
eszamanli-kimlik-dogrulama                   7       1         2           3

İlk satırdaki sayı bu konunun başlangıç noktasıdır: eski kuşak on iddianın hiçbirini kanıtlamıyor. İki iddiada zayıf bir kanıt var, sekizinde hiç yok. Zayıf olan ikisi de aynı nedenle zayıf: çerçeve başına değişen sayaç kısa olduğu için yeterli sayıda çerçeve biriktiğinde aynı değer tekrar eder ve tekrar eden değer hem içeriği hem de bütünlük toplamını çözülebilir kılar. Bu kuşağın sorunu şifrelemenin varlığı değil, kanıtın sonlu bir işle tükenmesidir.

Geçiş kuşağı iki iddiayı kanıta bağlıyor ve üçünü zayıf bırakıyor. Kazanılan asıl kalem tekrar korumasıdır: sıra sayacı eklendiği için daha önce görülmüş bir çerçevenin yeniden oynatılması reddedilir. Ama akış şifresi yerinde kaldığı için bütünlük ve oturum ayrımı hâlâ türetilmiş bir karıştırma işlemine dayanır; kanıt vardır, tam değildir.

Üçüncü kuşak beş iddiayı kanıta bağlıyor ve zayıf sütununu sıfırlıyor. Bu tablo okumasının en önemli yeri burasıdır: zayıf kanıt ortadan kalkıyor ama kanıtsız iddia sayısı beşten beşe, yani hiç değişmiyor. Şifrelemenin güçlenmesi, kanıtı olmayan iddiayı kanıtlı yapmaz.

Kapanmayan İki İddia

Dördüncü kuşak yedi iddiayı kanıta bağlıyor ve tablonun iki satırı dört sütunda da boş kalıyor: ağ adının doğruluğu ve kaynak adresinin doğruluğu.

Bunlar rastgele seçilmiş iddialar değildir. Ağ adı, erişim noktasının kendi hakkında yaptığı bir bildirimdir ve bağlantı kurulmadan, yani herhangi bir anahtar devreye girmeden önce yayılır. Şifreleme bağlantıdan sonra başlar; bağlantıdan önceki bildirimi hiçbir kuşak imzalamaz. Kaynak adresi de aynı yerdedir: çerçeve başlığındaki adres alanı şifrelenmez, çünkü çerçevenin doğru alıcıya ulaşması için okunabilir olması gerekir.

İki satır bu konunun geri kalanını belirliyor. Üçüncü ders ağ adı iddiasını, dördüncü ders yönetim çerçevesi iddiasını ölçecek — ikisi de şifreleme kuşağının dışında kalan iddialardır ve kuşak yükseltmek ikisini de kapatmaz.

Dördüncü kuşağın kazandırdığı iki kalem ise ayrı bir sınıftandır. Geçmiş trafiğin açılamaması, ortak sır sonradan öğrenilse bile daha önce kaydedilmiş oturumların çözülememesi demektir; üç kuşakta bu iddianın hiçbir kanıtı yoktur, yani bugün kaydedilen trafik yarın öğrenilen parolayla açılabilir. Parolanın çevrimdışı denenememesi ise ölçülebilir bir kalemdir ve aşağıdaki koşum onu sayıya çeviriyor.

Yükseltmenin Bedeli

Kuşak seçmek bir tercih değil, bir envanter kararıdır. Zorunlu tutulan en düşük kuşak, o kuşağı desteklemeyen her aygıtı ağın dışında bırakır.

// kosum2.mjs — kusak yukseltmesinin bedeli: disarida kalan aygit ve cevrimdisi deneme direnci
import { KUSAK, IDDIA, AYGIT } from './kusak.mjs';

const TOPLAM = AYGIT.reduce((s, [, n]) => s + n, 0);
const acik = (k) => IDDIA.filter(([, d]) => d[k] < 2).length;
const E = [34, 10, 12, 10, 12];
const yaz = (h) => h.map((d, i) => String(d)[i ? 'padStart' : 'padEnd'](E[i])).join('');
console.log(`aygit ${TOPLAM}, sinif ${AYGIT.length}`);
console.log(yaz(['en dusuk zorunlu kusak', 'baglanan', 'disarida', 'sinif', 'acik iddia']));
KUSAK.forEach(([ad], k) => {
  const dis = AYGIT.filter(([, , m]) => m < k);
  console.log(yaz([ad, TOPLAM - dis.reduce((s, [, n]) => s + n, 0),
    dis.reduce((s, [, n]) => s + n, 0), dis.length, acik(k)]));
});
console.log('\ndisarida kalan siniflar (en ust kusak zorunlu tutulursa):');
for (const [ad, n, m] of AYGIT.filter(([, , m]) => m < KUSAK.length - 1))
  console.log(`  ${ad.padEnd(26)}${String(n).padStart(6)}  en ust destek: kusak${m + 1}`);

// Cevrimdisi deneme direnci. Hiz kurgu model sabitidir; gercek deger donanima baglidir.
// Kusak 1-3: yakalanan el sikismadan aday parola ag ile konusmadan denenebilir.
// Kusak 4: her deneme ag ile bir tur ister; erisim noktasi hizi sinirlar.
const CEVRIMDISI = 400000, CEVRIMICI = 3, YIL = 365 * 24 * 3600;
const sure = (u, h) => u / h / YIL;
const bicim = (y) => y < 1 ? `${(y * 365).toFixed(1)} gun` :
  y < 1e6 ? `${y.toFixed(0)} yil` : `${y.toExponential(1)} yil`;
const P = [30, 14, 18, 18];
const yaz2 = (h) => h.map((d, i) => String(d)[i ? 'padStart' : 'padEnd'](P[i])).join('');
console.log('\n' + yaz2(['ortak sir bilesimi', 'aday sayisi', 'cevrimdisi', 'ag ile tur']));
for (const [ad, u] of [['8 kucuk harf', 26 ** 8], ['10 harf ve rakam', 36 ** 10],
  ['12 harf, rakam, imle', 72 ** 12], ['dort sozcuk (7776 sozluk)', 7776 ** 4]])
  console.log(yaz2([ad, u.toExponential(1), bicim(sure(u, CEVRIMDISI)), bicim(sure(u, CEVRIMICI))]));
aygit 4540, sinif 8
en dusuk zorunlu kusak              baglanan    disarida     sinif  acik iddia
akis-sifresi-kisa-sayac                 4540           0         0          10
akis-sifresi-cerceve-anahtari           2700        1840         1           8
blok-sifresi-sayac-kipi                 2636        1904         3           5
eszamanli-kimlik-dogrulama               219        4321         6           3

disarida kalan siniflar (en ust kusak zorunlu tutulursa):
  sayac ucu (eski seri)       1840  en ust destek: kusak1
  sayac ucu (yeni seri)       2260  en ust destek: kusak3
  saha el terminali            145  en ust destek: kusak3
  saha el terminali (eski)      38  en ust destek: kusak2
  barkod yazicisi               26  en ust destek: kusak2
  pano ekrani                   12  en ust destek: kusak3

ortak sir bilesimi               aday sayisi        cevrimdisi        ag ile tur
8 kucuk harf                         2.1e+11           6.0 gun          2207 yil
10 harf ve rakam                     3.7e+15           290 yil        3.9e+7 yil
12 harf, rakam, imle                 1.9e+22        1.5e+9 yil       2.1e+14 yil
dort sozcuk (7776 sozluk)            3.7e+15           290 yil        3.9e+7 yil

Birinci tablonun iki sütunu bu dersin kararını veriyor. Üçüncü kuşak zorunlu tutulduğunda dört bin beş yüz kırk aygıtın bin dokuz yüz dördü dışarıda kalıyor ve açık iddia ondan beşe iniyor. Dördüncü kuşak zorunlu tutulduğunda açık iddia üçe iniyor, ama bağlanabilen aygıt iki yüz on dokuza düşüyor: sayaç uçlarının tamamı, saha terminallerinin tamamı ve pano ekranları dışarıda kalıyor.

İkinci sütun tek başına okunduğunda karar veremez. En üst kuşağa geçmek iki açık iddia daha kapatıyor; karşılığında dört bin üç yüz yirmi bir aygıt yerine yenisi konmadan ağ çalışmıyor. Bu, ağ kararı değil bütçe kararıdır ve o yüzden gerçek kurumlarda genellikle üçüncü satır seçilir: kabul edilebilir aygıt kaybı karşılığında zayıf kanıtın sıfırlanması.

Tablonun sessiz bir varsayımı var: her satır tek bir kuşağın zorunlu tutulduğunu kabul ediyor. Aygıt kaybını görmemek için sık başvurulan çözüm, erişim noktasını iki kuşağı birden kabul edecek biçimde bırakmaktır. O durumda hiçbir aygıt dışarıda kalmaz, ama açık iddia sayısı üst kuşağın değil alt kuşağın sayısıdır: bir istemci hangi kuşakla bağlanacağını kendisi seçer ve kabul edilen en düşük kuşak, ağdaki her bağlantı için erişilebilir bir seçenektir. İki kuşağı birlikte kabul eden bir ağın ölçüsü beş değil ondur; tablodaki ilk satır o ağın satırıdır.

Ölçüm ikinci bir şeyi göstermiyor: dışarıda kalan aygıtların nereye gittiğini. Uygulamada bunlar silinmez, ayrı bir ağa taşınır. O ağ birinci ya da ikinci kuşakla çalışır, yani kendi sütunundaki açık iddia sayısını taşır. Bin sekiz yüz kırk sayaç ucu için açılan ikinci ağ, on açık iddialık bir bağlantıyı kurumda tutar; kazanılan beş iddia, o aygıtların olduğu yerde kazanılmaz. Doğru okuma budur: yükseltme açık iddiayı azaltmaz, açık iddiayı bir bölgeye taşır — ve o bölgenin nasıl ayrılacağı bir önceki konunun bölütleme sorusudur.

Çevrimdışı Denemenin Ölçüsü

İkinci tablo dördüncü kuşağın en somut kalemini sayıyor. İlk üç kuşakta, bağlantı kurulurken alışverilen mesajlar kaydedilebilirse aday ortak sırlar ağla hiç konuşmadan denenebilir: deneme sayısı ağın değil, denemeyi yapan tarafın işlem gücüyle sınırlıdır. Dördüncü kuşakta her deneme ağla bir tur gerektirir, yani sınır erişim noktasının kabul ettiği hızdır.

Fark sayıda görülüyor. Sekiz küçük harflik bir ortak sır çevrimdışı altı günde tükeniyor; aynı sır ağla tur gerektirdiğinde iki bin iki yüz yıl sürüyor. Aradaki oran, model sabitlerinin oranıdır: saniyede dört yüz bine karşı saniyede üç.

Alt iki satır ikinci bir kararı veriyor. On karakterlik harf ve rakam bileşimi ile dört sözcüklük bir dizi aynı aday sayısını veriyor — üç virgül yedi çarpı on üzeri on beş — ve ikisi de çevrimdışı iki yüz doksan yıl dayanıyor. Aynı direnç iki farklı biçimde elde edilebiliyor; hangisinin seçileceği güvenlik değil, aygıta yazılabilirlik sorusudur. On iki karakterlik geniş bileşim çevrimdışı denemeyi zaten anlamsız kılıyor, ama bir sayaç ucuna elle girilecek dizi olarak da en pahalısı.

Buradan çıkan kural şudur: ilk üç kuşakta ortak sırrın uzunluğu bir yapılandırma tercihi değil, tek savunma hattıdır. Dördüncü kuşakta aynı sır kısa olsa bile çevrimdışı denenemez; kuşağın kazandırdığı asıl şey, kullanıcı seçimindeki zayıflığı protokolün taşımasıdır.

Özet

  • Bir kablosuz bağlantı on iddia taşıyor. Akış şifresini kısa bir sayaçla karıştıran eski kuşak bunların hiçbirini kanıtlamıyor: iki zayıf kanıt, sekiz kanıtsız iddia.
  • Blok şifresini sayaç kipinde kullanan kuşak zayıf kanıt sütununu sıfırlıyor ve beş iddiayı kanıta bağlıyor; kanıtsız iddia sayısı beşte kalıyor. Şifrelemenin güçlenmesi, kanıtı olmayan iddiayı kanıtlı yapmıyor.
  • Ağ adının ve kaynak adresinin doğruluğu dört kuşakta da kanıtsız kalıyor; ikisi de bağlantı kurulmadan önce ya da başlıkta açık olarak taşındığı için hiçbir kuşağın kapsamına girmiyor.
  • Üçüncü kuşak zorunlu tutulduğunda 4.540 aygıtın 1.904’ü, dördüncü kuşak zorunlu tutulduğunda 4.321’i dışarıda kalıyor. Dışarıda kalan aygıtlar silinmiyor, ayrı bir ağa taşınıyor — açık iddia azalmıyor, yer değiştiriyor.
  • Sekiz küçük harflik ortak sır çevrimdışı 6 günde tükeniyor, ağla tur gerektiğinde 2.207 yıl dayanıyor. Dört sözcüklük dizi ile on karakterlik harf-rakam bileşimi aynı aday sayısını veriyor.

Sonraki Adım

Bu ders ortak sırrın uzunluğunu ölçtü ama sırrın kime ait olduğunu hiç sormadı. Dört kuşağın hepsinde tek bir dizi vardı ve o dizi bin sekiz yüz kırk sayaç ucunda, iki yüz on şube dizüstünde ve kırk üç saha terminalinde aynıydı. Bir kişi ayrıldığında, bir terminal kaybolduğunda ya da bir sayaç ucu sökülüp alındığında o dizi hâlâ geçerlidir ve onu değiştirmek her aygıta ayrı ayrı dokunmak demektir. Sonraki dersin sorusu güven kökünün nerede durduğudur: paylaşılan tek sır kaç kaleme erişim veriyor, kişi başına ayrı kimlik kaç kalemi ayırıyor, bir kimliği iptal etmek kaç adım sürüyor ve kişi başına kimlik hangi ek altyapı kalemlerini zorunlu kılıyor.

İlerlemeni kaydetmek ve not almak için Giriş yap

Notlarım

Not almak için giriş yapmalısın.

Aramak için yazmaya başlayın.

↑↓ Esc gezin · aç · kapat