Bilgisayar ve Programlamaya Giriş · Ders Notu

İnternet

Bir web sayfasını açmak, bir e-posta göndermek ya da görüntülü görüşme yapmak bugün birkaç saniyelik işlerdir. Bu işlerin arkasında birbirine bağlı milyonlarca ağ, ortak kurallarla konuşan cihazlar ve dünyanın öbür ucundaki sunucular vardır. Not, bu düzeni baştan sona izler. Önce bilgisayar ağının ne olduğunu, internete nasıl bağlanıldığını, bant genişliği ile gecikme arasındaki farkı ve ağ cihazlarını anlatır. Ardından verinin katmanlar hâlinde paketlenmesini, paketlerin yönlendiricilerden geçişini, IP adreslerini, NAT'ı, DNS'i, URL'yi, portları ve TCP bağlantısını adım adım ele alır. Şifreleme ve HTTPS'ten sonra Web'in, arama motorlarının, bulut hizmetlerinin ve e-postanın nasıl çalıştığına geçer. Son kesim güvenliğe ayrılmıştır: bilgi güvenliğinin üç hedefi, kötü amaçlı yazılımlar, oltalama, parola gücü, çok faktörlü doğrulama, VPN, güvenlik duvarı ve yedekleme.

Öğrenme çıktıları

Ağ kavramları
İnternet, istemci, sunucu ve protokol arasındaki ilişkiyi açıklamak; ağ cihazlarının görevlerini ayırt etmek; bant genişliği ve gecikmeyle basit süre hesapları yapmak.
Adresleme
IP adresi, alan adı, DNS, URL ve port kavramlarını birbirinden ayırmak; bir IPv4 adresini ikili sayıya çevirmek; paketin katmanlardan, yönlendiricilerden ve NAT'tan geçişini izlemek.
Web kullanımı
Bir web isteğinin yolculuğunu adım adım anlatmak; arama motorlarının ters dizinle nasıl çalıştığını açıklamak; arama operatörlerini ve kaynak değerlendirme ölçütlerini kullanmak.
Güvenlik
Tehditleri tanımak; oltalama iletisinin işaretlerini görmek; parola gücünü hesapla karşılaştırmak; çok faktörlü doğrulama, güvenlik duvarı ve yedekleme gibi önlemleri doğru yerde kullanmak.

1.1Ağların temeli

İnternet tek bir makine ya da tek bir kablo değildir. Birbirinden bağımsız kurulmuş çok sayıda ağın, ortak kurallara uyarak birbirine bağlanmasıyla oluşur. Bu yüzden internetin nasıl çalıştığını anlamanın yolu, önce küçük bir ağın nasıl çalıştığını anlamaktan geçer. Bu kesim temel kavramları kurar: ağ, internet, erişim hattı, bant genişliği, gecikme, istemci, sunucu, protokol ve ağ cihazları. Kesimin sonunda kablosuz ağlar ve güvenlikleri ele alınır.

1.1.1Bilgisayar ağı ve internet

Bir evde iki dizüstü bilgisayar, bir telefon ve bir yazıcı olduğunu düşünelim. Dizüstülerden biri belgeyi yazıcıya göndermek, öteki ise telefondaki fotoğrafları almak istiyor. Bu cihazların veri alışverişi yapabilmesi için bir şekilde birbirine bağlı olması gerekir. Bağlantı bir kablo da olabilir, bir radyo dalgası da. Bağlantının biçimi ne olursa olsun ortaya çıkan yapıya ağ denir.

Tanım 1.1

Bilgisayar ağı (computer network), cihazların veri ve kaynak paylaşmak için birbirine bağlanmasıyla oluşan yapıdır. Paylaşılan kaynak bir dosya, bir yazıcı, bir internet bağlantısı ya da bir hizmet olabilir.

Tek bir evin ağı küçüktür; bir üniversitenin ağı yüzlerce bina ve binlerce cihaz içerir; bir şirketin ağı farklı şehirlerdeki şubeleri birbirine bağlar. Bu ağların her biri kendi sahibince kurulur ve yönetilir. İnternet, bu ayrı ayrı ağları tek bir dev ağ gibi çalıştırır.

Tanım 1.2

İnternet (Internet), farklı büyüklükteki ağları ortak kurallarla birleştiren küresel ağlar ağıdır. Bu ortak kuralların adı TCP/IP'dir: aynı kuralları uygulayan her ağ, internetin bir parçası olabilir.

Şekil 1.1'de dört ayrı ağ görülüyor: bir ev ağı, bir üniversite ağı, bir şirket ağı ve bir veri merkezi. Her ağın kendi cihazları vardır ve her ağ bir yönlendirici (router) üzerinden dışarıya bağlanır. Yönlendiriciler de internet servis sağlayıcılarının birbirine bağlı büyük hatlarından oluşan internet omurgasına bağlanır. Ev ağındaki telefon, veri merkezindeki video sunucusuna ulaşmak için en az iki yönlendiriciden ve omurgadan geçer.

İnternet omurgasıİSS’ler arası bağlantılarEv ağıTelefonDizüstüRÜniversite ağıLabSunucuRŞirket ağıPCYazıcıRVeri merkeziWebVideoRR = yönlendirici (router): ağları birbirine bağlar
Şekil 1.1: Ağlar ağı. Ev, üniversite ve şirket ağları ile veri merkezi, kendi yönlendiricileri (R) üzerinden internet omurgasına bağlanır. Omurga, internet servis sağlayıcıları arasındaki yüksek kapasiteli bağlantılardan oluşur.

Bu yapının önemli bir sonucu vardır: internetin bir merkezi yoktur. Bir ağ çöktüğünde ötekiler çalışmayı sürdürür; bir hat koptuğunda trafik çoğu zaman başka bir hattan dolaşır. İnternet de zaten bu dayanıklılık düşünülerek tasarlanmıştır.

Sık yapılan hata

İnterneti tek bir şirketin işlettiği tek bir ağ sanmak. İnternet, binlerce bağımsız kuruluşun işlettiği ağlardan oluşur. Bu kuruluşları bir arada tutan şey ortak bir sahip değil, herkesin uyduğu ortak protokollerdir.

1.1.2İnternetin gelişimi

İnternetin kökeni 1960'ların sonuna uzanır. ABD Savunma Bakanlığına bağlı bir araştırma ajansının desteklediği ARPANET ağı, ilk bağlantılarını 1969'da kurdu. Bu bağlantılar Kaliforniya Üniversitesi Los Angeles (UCLA) ile Stanford Araştırma Enstitüsündeki (SRI) bilgisayarlar arasındaydı. Sonraki yıllarda ağa yeni üniversiteler ve araştırma merkezleri katıldı. Her yeni ağın kendi kurallarıyla çalışması, ağlar arasında konuşmayı zorlaştırıyordu. Bu sorun 1 Ocak 1983'te çözüldü: ARPANET ortak protokol olarak TCP/IP'ye geçti. Bugünkü internet bu ortak dilin üzerinde büyüdü.

1989'da CERN'de çalışan Tim Berners-Lee, belgeleri birbirine bağlantılarla bağlayan bir bilgi sistemi önerdi. Bu öneri Web'in (World Wide Web) başlangıcıdır. İlk web sitesi 1991'de yayına girdi ve Web herkesin kullanımına açıldı. 2007'de dokunmatik akıllı telefonlar yaygınlaşmaya başladı ve internet cebe girdi. Bugün mobil erişim masaüstü erişimini geride bırakmıştır.

1969ARPANETilk bağlantılar (UCLA–SRI)1983TCP/IPARPANET’in ortak protokolü1989Web önerisiTim Berners-Lee, CERN1991İlk web sitesiWeb herkese açıldı1993TürkiyeODTÜ–NSFNET bağlantısı2007Akıllı telefonmobil internet yaygınlaştı
Şekil 1.2: İnternetin gelişiminde altı dönüm noktası: ARPANET'in ilk bağlantıları (1969), TCP/IP'ye geçiş (1983), Web önerisi (1989), ilk web sitesi (1991), Türkiye'nin internete bağlanması (1993) ve akıllı telefon (2007).

Tarihçede iki kavramın ayrı tarihleri olduğuna dikkat etmek gerekir. İnternet 1969'dan beri gelişen bir altyapıdır; Web ise 1991'de bu altyapının üzerinde başlayan bir hizmettir. İkisi arasındaki fark 1.5.1'de ayrıntılı ele alınır.

Türkiye'de internet. Türkiye'nin ilk sürekli internet bağlantısı 12 Nisan 1993'te Orta Doğu Teknik Üniversitesi (ODTÜ) ile ABD'deki akademik omurga NSFNET arasında kuruldu. Hattın hızı 64 Kbps, yani saniyede 64 bin bitti. 1996'da TÜBİTAK bünyesinde Ulusal Akademik Ağ ve Bilgi Merkezi (ULAKBİM) kuruldu. Üniversiteleri birbirine ve internete bağlayan ulusal akademik ağ ULAKNET ise 1997'de işletmeye girdi. Bugün fiber, mobil ve uydu bağlantıları farklı erişim seçenekleri sunar ve evlere kadar gelen fiber hatlarda hız 1 Gbps'e ulaşır.

1993ODTÜ – NSFNET64 Kbps hat1996ULAKBİMULAKNET 1997’de başladıGünümüzfiber · mobil · uyduev fiberinde 1 Gbps’e kadar
Şekil 1.3: Türkiye'de internetin zaman çizelgesi: 1993'te ODTÜ–NSFNET arasındaki 64 Kbps'lik hat, 1996'da ULAKBİM'in kuruluşu ve 1997'de ULAKNET, günümüzde fiber, mobil ve uydu erişimi.

1.1.3İnternete bağlanma

Bir evin ya da bir kurumun ağı internete kendi başına bağlanamaz; araya bir hizmet sağlayıcı girer. Bu sağlayıcı, kullanıcının ağını kendi ağına, kendi ağını da internet omurgasına bağlar.

Tanım 1.3

İnternet servis sağlayıcısı (Internet service provider, kısaca İSS ya da ISP), kullanıcıyı internet omurgasına bağlayan kuruluştur. Kullanıcının ağı ile İSS arasındaki bağlantıya erişim hattı denir.

Şekil 1.4 evden internete giden yolu gösterir. Evdeki cihazlar Wi-Fi ya da kablo ile modem/yönlendiriciye bağlanır. Bu kutu erişim hattı üzerinden İSS'ye, İSS de omurgaya bağlanır. Şeklin altındaki yazı iki ağ türünü de adlandırır: evin içi bir yerel ağdır (LAN), dışarısı ise geniş alan ağıdır (WAN). Bu iki kavram 1.1.7'de tanımlanır.

CihazlarModem/yönlendiriciErişim hattıfiber · DSL · mobil · uyduİSSOmurgaWi-Fi / kablointernet servis sağlayıcısıev ağı (LAN) ←→ geniş alan ağı (WAN)
Şekil 1.4: Evden internete: cihazlar, modem/yönlendirici, erişim hattı (fiber, DSL, mobil ya da uydu), internet servis sağlayıcısı ve omurga.

Erişim hattı farklı teknolojilerle kurulabilir. Tablo 1.1 dört yaygın seçeneği karşılaştırır.

Tablo 1.1: İnternet erişim hattı türleri.
TürNasıl çalışır?Güçlü yanıZayıf yanı
FiberVeri, cam liflerin içinde ışık darbeleriyle taşınır.Yüksek kapasite ve düşük gecikme.Kablonun binaya kadar döşenmesi gerekir.
DSLMevcut bakır telefon hattı kullanılır.Telefon hattı olan hemen her yerde vardır.Hız, santrale olan uzaklık arttıkça düşer.
Mobil veriTelefon ya da modem, baz istasyonlarıyla radyo dalgası üzerinden konuşur.Taşınabilir; kablo gerektirmez.Hız kapsama alanına ve kalabalığa bağlıdır; çoğu zaman kotalıdır.
Kablosuz ve uyduSabit kablosuz verici ya da yörüngedeki uydu kullanılır.Kablo çekmenin zor olduğu kırsal ve dağlık bölgelerde seçenektir.Yüksek yörüngeli uyduda gecikme çok yüksektir.

Evlerde modem, yönlendirici, kablosuz erişim noktası ve küçük bir switch çoğu zaman tek bir kutuda birleşir. Bu kutu halk arasında “modem” diye anılır; ama içinde aslında birkaç ayrı cihaz çalışır. Bu cihazların görevleri 1.1.6'da ayrı ayrı anlatılır.

1.1.4Bant genişliği ve gecikme

Bir bağlantının “hızlı” olduğunu söylerken aslında iki ayrı özellikten söz ediyor olabiliriz. Birincisi, bağlantının saniyede ne kadar veri taşıyabildiğidir. İkincisi, gönderilen ilk bitin karşıya ne kadar sürede ulaştığıdır. Bu iki özellik birbirinden bağımsızdır ve farklı işlerde belirleyici olur.

Tanım 1.4

Bant genişliği (bandwidth), bir bağlantının birim zamanda taşıyabildiği en yüksek veri miktarıdır ve saniyedeki bit sayısıyla ölçülür (bit/s, Mbit/s, Gbit/s). Gecikme (latency) ise bir bitin kaynaktan hedefe ulaşması için geçen süredir ve milisaniyeyle (ms) ölçülür. Gidiş-dönüş gecikmesi, günlük dilde ping değeri olarak anılır.

İki kavramı bir su borusuyla düşünmek kolaylık sağlar (Şekil 1.5). Bant genişliği borunun genişliğidir: geniş boru saniyede daha çok su akıtır. Gecikme ise borunun uzunluğudur: uzun boruda musluğu açınca suyun öbür uçtan çıkması daha uzun sürer. Çok geniş ama çok uzun bir boru da olabilir; dar ama kısa bir boru da.

Bant genişliğisaniyede taşınan bit10 Mbit/s100 Mbit/sGecikme (ping)ilk bitin varış süresi5 ms (şehir içi)≈ 600 ms (uydu, GEO)
Şekil 1.5: Bant genişliği borunun genişliği, gecikme ise borunun uzunluğu gibidir. 10 Mbit/s ile 100 Mbit/s arasındaki fark genişlikte, şehir içi 5 ms ile yer eşzamanlı (GEO) uydudaki yaklaşık 600 ms arasındaki fark uzunlukta görülür.

Bit ve bayt. Hesaplarda en çok karıştırılan nokta birimlerdir. Hat hızları bit cinsinden verilir (Mbit/s ya da Mbps). Dosya boyutları ise bayt cinsinden verilir (MB, GB). Bir bayt 8 bittir. Bu yüzden indirme süresi hesaplanırken iki büyüklük önce aynı birime çevrilir. Bu notta 1 GB = 1000 MB ve 1 MB = 1000 KB alınır.

indirme süresi (s) = dosya boyutu (MB) × 8 ÷ hat hızı (Mbit/s)

Bu formül “en iyi durumu” verir: hattın tam hızda çalıştığı, başka kimsenin hattı kullanmadığı ve protokol başlıklarının ek yük getirmediği varsayılır. Gerçek süre biraz daha uzundur.

Örnek 1.1

100 Mbit/s'lik bir hatta 500 MB'lık bir dosya en iyi durumda kaç saniyede iner?

  1. Hat hızını bayta çevirelim: 100 Mbit/s ÷ 8 = 12,5 MB/s. Hat saniyede 12,5 megabayt taşır.
  2. Dosya boyutunu bu hıza bölelim: 500 MB ÷ 12,5 MB/s = 40 s.
  3. Aynı sonuca öteki yoldan da ulaşılır: 500 MB = 500 × 8 = 4000 Mbit; 4000 ÷ 100 = 40 s.

Dosya en iyi durumda 40 saniyede iner. Aynı yöntemle 200 Mbit/s'lik bir hatta 1,5 GB'lık dosya için 1,5 GB = 1500 MB = 12.000 Mbit ve 12.000 ÷ 200 = 60 s bulunur.

Sık yapılan hata

“100 megabitlik internet” ile “saniyede 100 megabayt” aynı şey sanılır. 100 Mbit/s'lik hat saniyede en çok 12,5 MB taşır. Hesapta bit ile bayt karıştırılırsa sonuç tam 8 kat yanlış çıkar.

Gecikme nereden gelir? Sinyal ışık hızından hızlı gidemez. Fiberde ışık, camın içinde boşluktakinden yavaş yol alır; hızı yaklaşık saniyede 200.000 km'dir. Bu yüzden 800 km uzaklıktaki bir sunucuya fiberle gidip gelmek en az 2 × 800 ÷ 200.000 s = 8 ms sürer. Başka hiçbir bekleme olmasa bile bu süre kısalmaz. Yönlendiricilerde bekleme ve işleme süreleri buna eklenir.

Örnek 1.2

Yer eşzamanlı (GEO) uydular ekvatorun yaklaşık 35.786 km üzerinde döner. Uydu üzerinden kurulan bir bağlantıda gidiş-dönüş gecikmesinin alt sınırı nedir? (Işık hızı ≈ 300.000 km/s.)

  1. Bir yönde sinyal yerden uyduya çıkar ve uydudan yere iner: 2 × 35.786 = 71.572 km.
  2. Bu yolun süresi: 71.572 ÷ 300.000 ≈ 0,239 s, yani yaklaşık 239 ms.
  3. İstek gider, yanıt döner: gidiş-dönüşte yol dört kez katedilir ve süre yaklaşık 477 ms olur.

Yalnız yolun kendisi yaklaşık yarım saniye tutar. Yer istasyonlarındaki işleme ve kara bağlantıları da eklenince gerçekte ölçülen ≈ 600 ms değerine ulaşılır. Bu gecikme, hattın bant genişliği ne kadar yüksek olursa olsun ortadan kalkmaz.

Hangisi önemli? Cevap işin türüne bağlıdır. Büyük bir dosya indirirken belirleyici olan bant genişliğidir: ilk bitin yarım saniye geç gelmesi, birkaç dakikalık indirmede fark edilmez. Oyunda, görüntülü görüşmede ve uzaktan masaüstü bağlantısında ise belirleyici olan düşük gecikmedir. Görüntülü görüşme birkaç Mbit/s ile yetinir, ama 600 ms gecikmede konuşmacıların sözleri üst üste biner. Örneğin 100 Mbit/s'lik bir uydu hattı ile 30 Mbit/s'lik bir fiber hattı karşılaştıralım. 1 GB'lık dosya uydu hattında yaklaşık 80 s'de, fiber hatta yaklaşık 267 s'de iner. Görüntülü görüşmede ise yaklaşık 10 ms gecikmeli fiber hat açıkça daha iyidir.

1.1.5İstemci, sunucu ve protokol

İnternetteki iletişimin büyük bölümü aynı kalıbı izler. Bir taraf bir şey ister, öteki taraf o isteği karşılar. Örneğin bir öğrencinin tarayıcısı ders sayfasını ister; üniversitenin web sunucusu sayfayı gönderir. Telefondaki hava durumu uygulaması tahmini ister; hava durumu hizmetinin sunucusu tahmini gönderir.

Tanım 1.5

İstemci (client), bir hizmet isteyen cihaz ya da programdır. Sunucu (server), istekleri karşılayan ve kaynak sunan sistemdir. Protokol (protocol) ise iletişimin biçimini ve sırasını belirleyen kurallar bütünüdür: kim önce konuşur, ileti hangi biçimde yazılır, bir hata olursa ne yapılır.

Dizüstü (tarayıcı)Telefon (uygulama)Ağ / İnternetSunucuweb, e-posta, oyun…istekistekyanıtyanıt
Şekil 1.6: İstemciler (tarayıcı çalışan dizüstü, uygulama çalışan telefon) ağ üzerinden sunucuya istek gönderir; sunucu her isteğe bir yanıt döndürür.

“Sunucu” sözcüğü iki anlamda kullanılır. Bazen bir donanımı, yani veri merkezindeki güçlü bir bilgisayarı anlatır. Bazen de bir programı, yani istekleri dinleyip yanıtlayan yazılımı anlatır. Aynı makinede bir web sunucusu, bir e-posta sunucusu ve bir veri tabanı sunucusu birlikte çalışabilir. Benzer biçimde bir bilgisayar bir işte istemci, başka bir işte sunucu olabilir.

1.1.6Ağ cihazları

Bir ağ, cihazların yanı sıra bu cihazları birbirine ve dış dünyaya bağlayan özel donanımlardan oluşur. Şekil 1.7 tipik bir ev ağındaki sıralamayı gösterir: internetten gelen hat önce modeme, oradan güvenlik duvarına ve yönlendiriciye ulaşır. Yönlendiricinin arkasında kablolu cihazlar için bir switch, kablosuz cihazlar için bir erişim noktası bulunur.

İnternetModemGüvenlik duvarıYönlendiriciSwitchErişim noktasıPCYazıcıTelefonWi-FiEvde modem, yönlendirici, switch ve erişim noktası çoğu zaman tek kutudadır; her cihazda bir NIC vardır.
Şekil 1.7: Ev ağı şeması: internet, modem, güvenlik duvarı, yönlendirici; yönlendiriciden switch aracılığıyla PC ve yazıcıya, erişim noktasından Wi-Fi ile telefona. Her cihazda bir ağ kartı (NIC) vardır.
Tablo 1.2: Ağ cihazları ve görevleri.
CihazGöreviNeye bakarak çalışır?
Ağ kartı (NIC)Cihazın ağa bağlanmasını sağlar; bitleri kabloya ya da radyo dalgasına verir.Her kartın üretimde atanan bir MAC adresi vardır.
SwitchYerel ağdaki çerçeveleri yalnız hedef cihaza iletir.Çerçevedeki hedef MAC adresine.
YönlendiriciFarklı ağlar arasında paket yönlendirir.Paketteki hedef IP adresine ve yönlendirme tablosuna.
ModemErişim hattındaki sinyali (ışık, elektrik, radyo) ağ verisine dönüştürür; tersini de yapar.Hattın fiziksel sinyaline.
Erişim noktasıKablosuz cihazları yerel ağa bağlar.Wi-Fi standardına ve kanal ayarlarına.
Güvenlik duvarıAğ trafiğini kurallara göre denetler; izin verir ya da engeller.Çoğunlukla IP adresi ve port numarasına.

Tablodaki iki cihaz sık karıştırılır: switch ve yönlendirici. İkisinin farkı, hangi sınırın içinde çalıştıklarıdır. Switch tek bir yerel ağın içinde çalışır. Ofisteki PC'nin yazıcıya gönderdiği veri switch'e gelir; switch hangi portunun ucunda yazıcının durduğunu bilir ve veriyi yalnız o porta verir. Yönlendirici ise ağlar arasındaki sınırda durur. Aynı PC bir web sitesine bağlanmak istediğinde veri yerel ağın dışına çıkmalıdır; bu işi yönlendirici yapar ve veriyi bir sonraki ağa doğru yollar.

Sık yapılan hata

Evdeki kutuya “modem” denildiği için bütün işi modemin yaptığını düşünmek. Modem yalnız erişim hattının sinyalini çevirir. Adres dağıtma, ağlar arasında yönlendirme ve NAT yönlendiricinin; kablosuz bağlantı erişim noktasının; trafiği süzme güvenlik duvarının işidir. Hepsi aynı kutuda olabilir, ama görevleri ayrıdır.

1.1.7Tipik bir ağ ve coğrafi kapsam

Cihazları bir araya getirince tipik bir kurum ağı ortaya çıkar (Şekil 1.8). Ofisteki iki PC ve yazıcı kabloyla switch'e bağlıdır. Telefon ve tablet erişim noktası üzerinden kablosuz bağlanır; erişim noktası da switch'e bağlıdır. Switch yönlendiriciye, yönlendirici güvenlik duvarına, güvenlik duvarı da modem üzerinden İSS hattına bağlanır. Aynı kurumun başka şehirdeki şubesi de kendi yönlendiricisiyle internete bağlıdır. İki ofis birbirine internet üzerinden ulaşır.

LAN (ofis)PC 1PC 2YazıcıSwitchErişim noktasıTelefonTabletYönlendiriciGüvenlik duvarıModemWAN / İnternetİSS hatlarıŞube LANYönlendirici
Şekil 1.8: LAN'dan WAN'a tipik bir ağ. Kesikli çerçevenin içi ofisin yerel ağıdır (LAN). Switch aynı yerel ağdaki cihazları, yönlendirici ise farklı ağları birbirine bağlar. Şube ağı ile ofis ağı, İSS hatlarından oluşan geniş alan ağı (WAN) üzerinden haberleşir.

Ağlar coğrafi kapsamlarına göre de adlandırılır. Kapsam büyüdükçe ağın kurulumu ve işletilmesi başka kuruluşlara (İSS'ler, operatörler) devredilir.

Tablo 1.3: Ağların coğrafi kapsamı.
TürAçılımıKapsamÖrnek
PANkişisel alan ağı (personal area network)Birkaç metreTelefon ile kablosuz kulaklık
LANyerel ağ (local area network)Oda, bina ya da kampüsOfis ağı, okul laboratuvarı
MANmetropol alan ağı (metropolitan area network)Şehir ölçeğiBelediye ağı
WANgeniş alan ağı (wide area network)Ülke ya da kıtaKurumun şubeleri; internet en büyük WAN'dır
WANMANLANPAN
Şekil 1.9: Ağların kapsamı iç içe halkalar gibidir: PAN en içte, onu LAN, MAN ve WAN izler.

1.1.8Wi-Fi standartları ve bantları

Kablosuz yerel ağlar, IEEE (Elektrik ve Elektronik Mühendisleri Enstitüsü) 802.11 standartlar ailesine göre çalışır. Standartların teknik adları akılda kalmadığı için üreticiler 2018'den beri nesil numarası kullanır: Wi-Fi 5, Wi-Fi 6 gibi. Cep telefonu ağları ise farklı bir kuruluşun (3GPP) standartlarına dayanır.

Tablo 1.4: Wi-Fi nesilleri ve mobil ağlar.
AdStandartBantlarBaşlıca fark
Wi-Fi 5802.11ac5 GHzGeniş kanallar; 802.11n'e göre belirgin hız artışı.
Wi-Fi 6802.11ax2,4 ve 5 GHzKalabalık ortamda daha verimli (OFDMA); çok cihazlı ağlarda daha iyi.
Wi-Fi 6E802.11ax2,4, 5 ve 6 GHzWi-Fi 6'ya 6 GHz bandı eklenir; girişim daha azdır.
Wi-Fi 7802.11be2,4, 5 ve 6 GHzDaha geniş kanallar (320 MHz); birden çok bantta eş zamanlı bağlantı (MLO).
4G (LTE) → 5G3GPPOperatör bantları5G'de tipik olarak daha yüksek hız ve daha düşük gecikme; gerçek değer operatöre ve kapsamaya bağlıdır.

Tablodaki iki kısaltma kısa bir açıklama ister. OFDMA (dikgen frekans bölmeli çoklu erişim), bir kanalı küçük alt parçalara bölüp aynı anda birden çok cihaza dağıtır. Kalabalık bir sınıftaki onlarca telefon böylece sırayla beklemez; her biri aynı anda küçük bir pay alır. MLO (çok bağlantılı çalışma) ise bir cihazın aynı anda birden çok bantta bağlantı kurmasıdır; bantlardan biri sıkışınca veri ötekinden akar.

Tablodaki hızlar kuramsal en yüksek değerlerdir. Gerçek hız mesafeye, aradaki engellere, kanal genişliğine ve hem yönlendiricinin hem cihazın hangi standardı desteklediğine bağlıdır. Wi-Fi 7 destekli bir yönlendirici, Wi-Fi 5 destekli bir dizüstüyle ancak Wi-Fi 5 hızında konuşur.

Bantlar. Wi-Fi üç frekans bandında çalışabilir: 2,4 GHz, 5 GHz ve 6 GHz. Her bandın güçlü ve zayıf yanları vardır (Şekil 1.10).

Wi-Fi6 GHzen hızlı, en kısa5 GHzorta menzil2,4 GHzen uzun menzilmenzil
Şekil 1.10: Wi-Fi bantlarının menzili. 6 GHz en hızlı ama en kısa menzilli banttır; 5 GHz orta menzillidir; 2,4 GHz en uzağa ulaşır.
  • 2,4 GHz: Menzil uzundur ve duvarlardan daha iyi geçer; hız tipik olarak düşüktür. Mikrodalga fırın, Bluetooth ve komşu ağlar aynı bandı kullandığı için kalabalıktır.
  • 5 GHz: Orta menzil, daha yüksek hız. Duvarlardan 2,4 GHz'e göre daha çok zayıflar.
  • 6 GHz: Kısa menzil, en yüksek hız potansiyeli ve az kalabalık (Wi-Fi 6E ve 7). Engellerden en çok etkilenen banttır.

Genel kural şudur: frekans yükseldikçe hız potansiyeli artar, menzil ve duvar geçişi azalır. Bu ödünleşimin fiziksel bir nedeni vardır. Elektromanyetik dalganın dalga boyu, ışık hızının frekansa bölümüdür: λ = c / f. Frekans arttıkça dalga boyu kısalır ve kısa dalgalar duvar, beton ve su gibi engellerde daha çok enerji kaybeder.

Örnek 1.3

Üç Wi-Fi bandının dalga boyları nedir? (c ≈ 3 × 108 m/s.)

  1. 2,4 GHz: λ = 3 × 108 ÷ 2,4 × 109 = 0,125 m, yani yaklaşık 12,5 cm.
  2. 5 GHz: 3 × 108 ÷ 5 × 109 = 0,06 m, yani 6 cm.
  3. 6 GHz: 3 × 108 ÷ 6 × 109 = 0,05 m, yani 5 cm.

2,4 GHz'in dalgası 6 GHz'inkinin iki buçuk katı uzunluktadır. Bu fark, iki duvar arkadaki bir odada 2,4 GHz'in neden daha kararlı bağlantı verdiğini açıklar.

Pratik sonuç basittir: modemden uzak bir odada 2,4 GHz, yakın mesafede ise 5 ya da 6 GHz çoğu zaman daha uygundur. Birçok yönlendirici cihazı kendiliğinden en uygun banda yönlendirir.

1.1.9Wi-Fi güvenliği

Kablolu bir ağa bağlanmak için kabloya fiziksel olarak erişmek gerekir. Kablosuz ağda ise sinyal duvarların ötesine, sokağa ve komşu dairelere yayılır. Bu yüzden kablosuz ağın trafiği şifrelenmeli ve ağa yalnız parolayı bilenler katılabilmelidir. Bu işi Wi-Fi güvenlik protokolleri yapar.

Tablo 1.5: Wi-Fi güvenlik protokolleri.
ProtokolDurumAçıklama
WEPGüvensizÇok eskidir; dakikalar içinde kırılabilir. Artık kullanılmamalıdır.
WPA / TKIPEskiÖnerilmez; yalnız eski cihazlarla uyum için bulunur.
WPA2 (AES)YaygınGüçlü ve uzun parola şarttır; zayıf parola tahmin edilebilir.
WPA3GüncelZayıf parolaya karşı daha dayanıklıdır; 6 GHz bandında WPA3 (ya da parolasız ağlar için Enhanced Open) zorunludur. Cihaz desteği gerekir.
WEP1997 · kırıkWPA2003 · eskiWPA22004 · yaygınWPA32018 · günceleski, zayıfyeni, güçlü
Şekil 1.11: Wi-Fi güvenlik protokollerinin sırası: soldan sağa eskiden yeniye ve zayıftan güçlüye WEP, WPA, WPA2, WPA3.

WPA2 ile WPA3 arasındaki önemli bir fark, parola tahminine karşı davranıştır. WPA2'de saldırgan, ağa bağlanan bir cihazın kısa el sıkışma trafiğini kaydedip parolayı kendi bilgisayarında, ağa hiç dokunmadan deneyebilir. Parola kısa ya da sözlükte geçen bir sözcükse kısa sürede bulunur. WPA3'te her tahmin için ağla yeniden konuşmak gerekir; bu yüzden çevrim dışı tahmin yapılamaz.

Açık (parolasız) ağlar. Kafe, havalimanı ya da otel ağlarında trafik şifresiz olabilir. Aynı ağdaki biri trafiği dinleyebilir ya da aynı adla sahte bir erişim noktası kurup kullanıcıları kendi cihazına çekebilir. Bu yüzden böyle ağlarda bankacılık ya da e-Devlet gibi hassas işlemler yalnız HTTPS ile, gerekirse VPN ile yapılmalıdır. HTTPS 1.4.2'de, VPN 1.7.8'de ele alınır.

Sık yapılan hata

Ağın adını gizlemenin ya da yalnız tanıdık cihazların MAC adreslerine izin vermenin ağı güvenli kıldığını düşünmek. Gizli ağ adı da MAC adresleri de havada açıkça görünür ve kolayca taklit edilir. Kablosuz ağı koruyan şey güncel bir protokol (WPA2 ya da WPA3) ve uzun, tahmin edilemez bir paroladır.

1.2Protokoller, katmanlar ve paketler

İki bilgisayarın birbirini anlaması için ortak kurallara uyması gerekir. Ancak “bir web sayfasını getir” gibi tek bir iş bile çok sayıda alt işten oluşur: sayfa istenir, istek parçalara bölünür, parçalar numaralanır, her parça adreslenir, yol bulunur, bitler kabloya verilir, kaybolan parça yeniden gönderilir. Bu işlerin hepsini tek bir protokole yüklemek yerine her alt iş ayrı bir protokole verilir ve protokoller katmanlar hâlinde üst üste dizilir. Bu kesim önce temel protokolleri tanıtır, sonra katman modelini, paketlere bölmeyi ve paketlerin yönlendiricilerden geçişini adım adım izler.

1.2.1Temel iletişim protokolleri

Ders boyunca adı sık geçecek altı protokol ailesi Tablo 1.6'da özetlenmiştir. Her birinin ayrıntısı notun ilerleyen kesimlerinde gelir; burada amaç, hangi işin hangi protokole düştüğünü baştan görmektir.

Tablo 1.6: Temel iletişim protokolleri.
ProtokolAçılımıGörevi
IPinternet protokolü (Internet Protocol)Paketlerin ağlar arasında adreslenmesi ve yönlendirilmesi.
TCPiletim denetim protokolü (Transmission Control Protocol)Verinin sıralı ve güvenilir iletimi.
UDPkullanıcı datagram protokolü (User Datagram Protocol)Düşük gecikmeli, bağlantısız iletim.
DNSalan adı sistemi (Domain Name System)Alan adını IP adresine dönüştürme.
HTTP / HTTPSköprü metni aktarım protokolü (Hypertext Transfer Protocol), güvenli sürümüWeb kaynaklarının aktarımı; HTTPS iletişimi şifreler.
SMTP / IMAPbasit posta aktarım protokolü / internet ileti erişim protokolüE-posta gönderme (SMTP) ve okuma (IMAP).

TCP ile UDP arasındaki seçim bir ödünleşimdir. TCP her paketin ulaştığını denetler, kaybolanı yeniden gönderir ve veriyi doğru sırayla teslim eder. Bunun bedeli ek mesajlar ve beklemedir. UDP ise paketi gönderir ve arkasına bakmaz: kayıp olursa telafi etmez. Bir dosya ya da web sayfası indirilirken tek bir baytın bile eksik olması kabul edilemez; bu yüzden TCP kullanılır. Canlı görüntülü görüşmede ise yarım saniye önce kaybolmuş bir görüntü karesini yeniden göndermenin anlamı yoktur; o anda yeni kare gelmiştir. Bu tür işlerde UDP tercih edilir. DNS sorguları da kısa oldukları için çoğunlukla UDP ile taşınır.

1.2.2Protokoller katman katman çalışır

Bir mektubu postayla göndermeyi düşünelim. Mektubu yazan kişi yalnız içerikle ilgilenir. Zarfı kapatıp adresi yazan, mektubun içeriğini bilmez. Postane zarfı torbaya koyar ve torbanın üzerine hangi şehre gideceğini yazar. Kamyon şoförü yalnız torbaları taşır. Her aşama kendi işini yapar, bir üstündeki aşamanın içine bakmaz ve bir altındaki aşamanın nasıl çalıştığıyla uğraşmaz. Ağ protokolleri de aynı ilkeyle düzenlenir.

Tanım 1.6

İnternet protokolleri dört katmanda (layer) toplanır. Uygulama katmanı ne söyleneceğini belirler (HTTP, DNS, SMTP). Taşıma katmanı veriyi parçalara böler ve uçtan uca iletimi yönetir (TCP, UDP). İnternet katmanı paketleri adresler ve ağlar arasında yönlendirir (IP). Bağlantı katmanı bitleri aynı ağdaki bir sonraki cihaza fiziksel olarak iletir (Ethernet, Wi-Fi). Her katman, aşağıya gönderdiği veriye kendi başlığını (header) ekler; bu işleme kapsülleme denir.

Gönderen tarafta veri yukarıdan aşağıya iner ve her katmanda bir başlık kazanır. Şekil 1.12'nin sol yarısı bu birikimi gösterir:

  1. Uygulama katmanı. Tarayıcı bir HTTP isteği üretir; örneğin “GET /duyurular”. Bu istek, alt katmanlar açısından yalnızca “veridir”.
  2. Taşıma katmanı. Veri gerekirse parçalara bölünür ve her parçanın başına bir TCP başlığı eklenir. Başlıkta port numarası (verinin hangi uygulamaya gideceği) ve sıra numarası (parçanın bütün içindeki yeri) yazar. Kaybolan bir parça bu numara sayesinde yeniden istenebilir.
  3. İnternet katmanı. TCP parçasının başına bir IP başlığı eklenir: kaynak ve hedef IP adresi. Yönlendiriciler yalnız bu başlığa bakarak yol seçer; içerideki TCP başlığını ya da HTTP isteğini okumaları gerekmez.
  4. Bağlantı katmanı. En dışa çerçeve başlığı eklenir. Bu başlıkta yerel ağdaki bir sonraki cihazın MAC adresi bulunur. Bitler sonra kabloya ya da radyo dalgasına verilir.
UygulamaHTTP, DNS, SMTPVeriTaşımaTCP, UDPTCPVeriİnternetIPIPTCPVeriBağlantıEthernet, Wi-FiEthIPTCPVeri
UygulamaHTTP, DNS, SMTPTaşımaTCP, UDPİnternetIPBağlantıEthernet, Wi-Fialıcı: başlıklar alttan üste doğrutek tek çıkarılırVeri
Şekil 1.12: Kapsülleme. Üstte gönderen taraf: veri her katmanda bir başlık kazanır ve sonunda Eth | IP | TCP | Veri biçiminde gönderilir. Altta alıcı taraf: başlıklar alttan üste doğru tek tek çıkarılır ve veri uygulamaya ulaşır.

Alıcı tarafta işlem tersine döner. Bağlantı katmanı çerçeve başlığını okur ve çıkarır. İnternet katmanı IP başlığına bakar; hedef adres bu makineyse başlığı çıkarıp içeriği yukarı verir. Taşıma katmanı parçaları sıra numarasına göre dizer ve port numarasına bakarak verinin hangi uygulamaya ait olduğunu bulur. En sonunda web sunucusu, tarayıcının ürettiği isteğin aynısını alır.

Tablo 1.7: Katmanların başlıkları ve kullananlar.
KatmanÖrnek protokollerBaşlıkta ne var?Bu başlığı kim okur?
UygulamaHTTP, DNS, SMTPİsteğin kendisi (yöntem, kaynak yolu)Karşı taraftaki uygulama
TaşımaTCP, UDPKaynak ve hedef port, sıra numarasıUçlardaki işletim sistemleri
İnternetIPKaynak ve hedef IP adresi, TTLYoldaki her yönlendirici
BağlantıEthernet, Wi-FiKaynak ve hedef MAC adresiAynı yerel ağdaki bir sonraki cihaz

Katmanlı yapının en büyük kazancı bağımsızlıktır. Tarayıcı, verinin fiberle mi Wi-Fi ile mi gittiğini bilmek zorunda değildir. Yönlendirici, paketin içinde bir web isteği mi yoksa bir e-posta mı olduğunu bilmek zorunda değildir. Bir katmanda yeni bir teknoloji çıktığında (örneğin Wi-Fi 7) öteki katmanlarda hiçbir şey değişmez.

Kapsüllemenin bir bedeli de vardır: her başlık birkaç düzine bayt yer kaplar. Asıl veri küçükse başlıkların payı büyür.

Örnek 1.4

Tipik başlık boyları şöyledir: TCP 20 bayt, IPv4 20 bayt, Ethernet 18 bayt (14 bayt başlık ve 4 bayt hata denetimi). 100 baytlık bir HTTP isteği ve 1460 baytlık bir veri parçası için kablodaki toplam boy ve verimlilik nedir?

  1. Başlıkların toplamı: 20 + 20 + 18 = 58 bayt.
  2. 100 baytlık istek: kablodaki boy 100 + 58 = 158 bayt. Verimlilik 100 ÷ 158 ≈ %63,3.
  3. 1460 baytlık parça: 1460 + 58 = 1518 bayt. Verimlilik 1460 ÷ 1518 ≈ %96,2.

Küçük iletilerde kablodaki baytların üçte birinden fazlası başlıktır. Büyük dosya aktarımında ise başlıkların payı %4'ün altına iner. 1518 bayt, Ethernet çerçevesinin olağan en büyük boyudur; bu yüzden TCP verisi çoğu zaman 1460 baytlık parçalarla taşınır.

Sık yapılan hata

Yönlendiricinin paketin içindeki web sayfasını okuyup ona göre yol seçtiğini düşünmek. Yönlendirici yalnız IP başlığına bakar. Paketin içinde ne olduğu yol seçimini etkilemez; HTTPS kullanıldığında içerik zaten şifrelidir ve yönlendirici onu okuyamaz.

1.2.3Veri paketlere bölünür

Büyük bir veri tek parça hâlinde gönderilmez. Bunun iki nedeni vardır. Birincisi, uzun bir aktarım hattı bir süre tek başına işgal ederdi; başka kimse araya giremezdi. İkincisi, yolda tek bir bit bozulduğunda bütün verinin yeniden gönderilmesi gerekirdi. Veri küçük parçalara bölündüğünde hat birçok kullanıcı arasında paylaşılır ve bozulan yalnız tek bir parça yeniden gönderilir.

Tanım 1.7

Paket (packet), ağda bağımsız olarak taşınan veri parçasıdır. Her paket kendi başlığını taşır: kaynak adresi, hedef adresi ve sıra numarası. TCP'nin taşıdığı parçaya bölüt (segment) de denir. Verinin paketlere bölünerek iletildiği bu düzene paket anahtarlama adı verilir.

Örnek iletide “MERHABA DÜNYA!” iletisi gönderiliyor. İleti boşluk ve ünlemle birlikte 14 karakterdir ve dörder karakterlik parçalara bölünür: MERH, ABA␣, DÜNY, A! (␣ boşluğu gösterir). Gönderen ile alıcı arasında dört yönlendirici vardır: R1, R2, R3 ve R4. R1'den R4'e iki yol gider: biri R2 üzerinden, öteki R3 üzerinden (Şekil 1.13).

GönderenAlıcıR1R2R3R4#1MERH#2ABA␣#3DÜNY#4A!ileti: “MERHABA DÜNYA!”alıcı tamponu#1#2#3#4
Şekil 1.13: “MERHABA DÜNYA!” iletisi dört pakete bölünmüştür. Sağ üstte alıcının tamponu boştur; paketler geldikçe sıra numaralarına göre bu tampondaki yerlerine yerleşir.

Paketlerin yolculuğu Tablo 1.8'de adım adım izlenmiştir.

Tablo 1.8: “MERHABA DÜNYA!” iletisinin paketlerinin izlemesi.
AdımOlayAlıcının tamponu (#1 #2 #3 #4)
1İleti dört pakete bölünür; her başlıkta sıra numarası, kaynak ve hedef adresi vardır.— — — —
2#1 ve #3, R1 → R2 → R4 yolundan gider.— — — —
3#2 ve #4, R1 → R3 → R4 yolundan gider. Yönlendiriciler her paket için o anki en uygun yolu seçer.MERH — DÜNY —
4Paketler sırasız gelir: önce #1 ve #3, sonra #4. #2 yoğun bir yönlendiricide kaybolur.MERH — DÜNY A!
5TCP eksik sıra numarasını fark eder; #2 yeniden gönderilir (bu kez de R3 yolundan).MERH — DÜNY A!
6#2 gelir; alıcı paketleri sıra numarasına göre dizer ve iletiyi birleştirir.MERH ABA␣ DÜNY A!
GönderenAlıcıR1R2R3R4ileti: “MERHABA DÜNYA!”alıcı tamponu#1MERH#2#3DÜNY#4A!#2 kayboldu ✗
GönderenAlıcıR1R2R3R4ileti: “MERHABA DÜNYA!”alıcı tamponu#1MERH#2ABA␣#3DÜNY#4A!MERHABA DÜNYA!
Şekil 1.14: Üstte 4. adım: #1, #3 ve #4 gelmiştir, #2 yolda kaybolmuştur. Altta son adım: yeniden gönderilen #2 de gelmiş ve ileti “MERHABA DÜNYA!” olarak birleştirilmiştir.

Örnekten çıkan üç sonuç önemlidir. Birincisi, aynı iletinin paketleri farklı yollardan gidebilir. İkincisi, paketler gönderildikleri sırayla gelmek zorunda değildir: #4, #2'den önce gelmiştir. Üçüncüsü, kayıp bir istisna değil, ağın olağan bir durumudur: yoğun bir yönlendiricinin tamponu dolduğunda yeni gelen paketler atılır. Bütün bu düzensizliğe rağmen uygulama iletiyi eksiksiz ve doğru sırayla alır, çünkü sıralama ve yeniden gönderme işini TCP üstlenir.

Sık yapılan hata

Paketlerin bir boru içindeki su gibi tek bir yoldan ve sırayla aktığını düşünmek. IP her paketi ayrı ayrı yönlendirir; yol ve varış sırası paketten pakete değişebilir. Sıralı teslim IP'nin değil, TCP'nin sağladığı bir hizmettir.

1.2.4Paketin yönlendiricilerden geçişi

Bir paket, hedefine ulaşana kadar birçok yönlendiriciden geçer. Her yönlendirici, paketi bir sonraki yönlendiriciye teslim eder; bu tek adıma atlama (hop) denir. Hiçbir yönlendirici yolun tamamını bilmez. Her biri yalnız “bu hedefe giden paketi hangi komşuma vermeliyim?” sorusunu yanıtlar. Yanıt, yönlendiricinin yönlendirme tablosunda yazılıdır.

Tanım 1.8

Yönlendirme tablosu (routing table), her satırında bir adres bloğu ve o bloğa giden paketlerin gönderileceği sonraki atlamayı tutan tablodur. Adres bloğu 203.0.113.0/24 biçiminde yazılır: eğik çizgiden sonraki sayı, adresin baştan kaç bitinin bloğu belirlediğini gösterir. Bu bitlere önek (prefix) denir. 0.0.0.0/0 satırı önek uzunluğu sıfır olan, yani her adresi kapsayan varsayılan yoldur (default route).

Önek ne demektir? Bir IPv4 adresi 32 bittir (1.3.1). /24, adresin ilk 24 bitinin, yani ilk üç sayının sabit olduğunu söyler. 203.0.113.0/24 bloğu 203.0.113.0'dan 203.0.113.255'e kadar 28 = 256 adresi kapsar. 203.0.0.0/16 ise yalnız ilk iki sayıyı sabitler ve 216 = 65.536 adresi kapsar. Önek ne kadar uzunsa blok o kadar küçük, yani o kadar özeldir.

Tanım 1.9

En uzun önek eşleşmesi (longest prefix match): Hedef adresi kapsayan birden çok satır varsa yönlendirici, öneki en uzun olan, yani en özel satırı seçer.

Her yönlendiricinin bir paketi aldığında izlediği algoritma kısadır:

paketi al, hedef IP’ye bak
TTL = TTL − 1;  0 olursa at, kaynağa bildir
tablodan hedefi kapsayan satırları bul
en uzun önekli (en özel) satırı seç
paketi o satırın sonraki atlamasına gönder

İkinci satırdaki TTL (time to live, yaşam süresi) IP başlığındaki bir sayaçtır. Gönderen onu bir başlangıç değerine (örneğin 64) ayarlar; her yönlendirici paketi iletmeden önce TTL'yi 1 azaltır. TTL sıfıra inerse paket atılır ve gönderene “süre aşıldı” iletisi döner. Bu kural, yanlış ayarlanmış yönlendiriciler arasında bir döngüye giren paketin ağda sonsuza dek dolaşmasını önler.

Bir örnek izleyelim. Evdeki dizüstü (192.168.1.10), 203.0.113.10 adresli bir sunucuya paket gönderiyor. Yol üzerinde dört yönlendirici var: evdeki R0, İSS'nin R1'i, R2 ve sunucunun ağına bağlı R3. R1'in ve R2'nin başka komşuları da var (R4, R5, R6), ama bu paket için kullanılmıyorlar.

Tablo 1.9: Yönlendiricilerin tabloları ve 203.0.113.10 hedefi için seçimler.
YönlendiriciTablo satırları (önek → sonraki)Hedefi kapsayan satırlarSeçilen
R0 (ev)192.168.1.0/24 → yerel ağ
0.0.0.0/0 → R1 (İSS)
yalnız /00.0.0.0/0 → R1
R1 (İSS)203.0.113.0/24 → R2
198.51.100.0/24 → R4
0.0.0.0/0 → R5
/24 ve /0203.0.113.0/24 → R2
R2203.0.0.0/16 → R6
203.0.113.0/24 → R3
/16 ve /24203.0.113.0/24 → R3
R3203.0.113.0/24 → doğrudan bağlı/24sunucuya teslim
Tablo 1.10: Paketin yolculuğunun izlemesi.
AdımKonumTTLSeçilen satırSonraki
1dizüstü64—R0
2R0630.0.0.0/0R1 (İSS)
3R162203.0.113.0/24R2
4R261203.0.113.0/24R3
5R360203.0.113.0/24doğrudan bağlı
6sunucu60——

Adımları tek tek açıklayalım. Dizüstü, hedefin kendi yerel ağında (192.168.1.0/24) olmadığını görür ve paketi varsayılan ağ geçidine (default gateway), yani ev yönlendiricisi R0'a verir. R0 TTL'yi 63'e indirir. Hedef, R0'ın tablosunda yalnız varsayılan yola uyar; paket İSS'nin R1'ine gider. NAT kullanılıyorsa paketin kaynak adresi de burada değişir (1.3.2).

R1'de TTL 62 olur ve iki satır hedefi kapsar: 203.0.113.0/24 ve 0.0.0.0/0. En uzun önek kazanır; /24 daha özeldir ve paket R2'ye gider. R4 ve R5 yolları kullanılmaz. R2'de TTL 61 olur. Burada da iki satır hedefi kapsar: 203.0.0.0/16 ve 203.0.113.0/24. Yine /24 daha uzundur ve paket R3'e gider. /16 seçilseydi paket yanlış yöne, R6'ya giderdi. R3'te TTL 60'tır; hedef ağ R3'e doğrudan bağlıdır ve paket sunucuya teslim edilir.

dizüstüR0R1R2R3sunucu203.0.113.10192.168.1.10R4R5R6TTL = 62R1 yönlendirme tablosu203.0.113.0/24→ R2kapsar (/24)198.51.100.0/24→ R40.0.0.0/0→ R5kapsar (/0)
dizüstüR0R1R2R3sunucu203.0.113.10192.168.1.10R4R5R6TTL = 61R2 yönlendirme tablosu203.0.0.0/16→ R6kapsar (/16)203.0.113.0/24→ R3kapsar (/24)
Şekil 1.15: Üstte R1'in kararı: TTL 62, iki satır hedefi kapsar ve en uzun önekli 203.0.113.0/24 satırı R2'yi gösterir. Altta R2'nin kararı: TTL 61, /16 ve /24 satırlarından /24 seçilir ve paket R3'e gider.
Örnek 1.5

203.0.113.10 adresinin 203.0.0.0/16 ve 203.0.113.0/24 bloklarına girdiğini bit düzeyinde gösterelim.

  1. Adresi ikiliye çevirelim (yöntem 1.3.1'de): 203 = 11001011, 0 = 00000000, 113 = 01110001, 10 = 00001010. Adres: 11001011.00000000.01110001.00001010.
  2. 203.0.0.0/16 bloğunun ilk 16 biti: 11001011.00000000. Adresin ilk 16 biti aynıdır: adres bu bloktadır.
  3. 203.0.113.0/24 bloğunun ilk 24 biti: 11001011.00000000.01110001. Adresin ilk 24 biti de aynıdır: adres bu bloktadır da.
  4. İki eşleşme vardır; 24 bitlik eşleşme 16 bitlik eşleşmeden uzundur. Seçilen satır 203.0.113.0/24'tür.

Aynı karşılaştırmayı 203.0.200.5 adresi için yaparsak üçüncü sayı 200 = 11001000 olduğundan /24 bloğu tutmaz; yalnız /16 eşleşir ve R2 bu paketi R6'ya gönderir.

traceroute. TTL mekanizmasının yan ürünü, yoldaki yönlendiricileri keşfetmeyi sağlayan bir araçtır. Windows'ta tracert, Linux ve macOS'te traceroute adıyla çalışır. Araç önce TTL'si 1 olan bir paket gönderir: ilk yönlendirici TTL'yi sıfıra indirir, paketi atar ve “süre aşıldı” iletisi döndürür. İletinin geldiği adres, yoldaki ilk yönlendiricidir. Sonra TTL 2, 3, … diye artırılır ve yoldaki yönlendiriciler sırayla listelenir. Her satırda o yönlendiriciye gidiş-dönüş süresi de yazar.

Sık yapılan hata

Yönlendirme tablosunun yukarıdan aşağı okunup ilk tutan satırın seçildiğini sanmak. Yönlendiricide satırların sırası önemli değildir: hedefi kapsayan bütün satırlar arasından öneki en uzun olan seçilir. (Güvenlik duvarı kurallarında ise durum farklıdır; orada ilk eşleşen kural uygulanır: 1.7.9.)

1.3Adresleme: IP, NAT, DNS, URL ve port

Bir paketin doğru yere ulaşması için hedefin kesin bir adresi olmalıdır. İnternette bu iş birkaç katmanlı bir adres sistemiyle yapılır. IP adresi hangi cihaza gidileceğini, port numarası o cihazdaki hangi programa gidileceğini söyler. İnsanlar sayılardan oluşan adresleri akılda tutamadığı için alan adları kullanılır; DNS bu adları IP adresine çevirir. URL ise bütün bu bilgileri, istenen kaynağın yoluyla birlikte tek bir satırda toplar. Bu kesim bu adresleri sırayla ele alır.

1.3.1IP adresi

Tanım 1.10

IP adresi (IP address), bir ağ arayüzünü tanımlayan ve paketlerin hedefe yönlendirilmesini sağlayan sayısal adrestir. IPv4 adresi 32 bittir ve noktayla ayrılmış dört sayı olarak yazılır; her sayı 0 ile 255 arasındadır. Bu yazıma noktalı onluk gösterim (dotted decimal notation), her sayıya da sekizli (octet) denir. IPv6 adresi 128 bittir ve iki nokta üst üsteyle ayrılmış onaltılık gruplar hâlinde yazılır.

Tanımda “cihaz” değil “ağ arayüzü” denmesi bilinçlidir. Bir dizüstünün hem kablolu hem kablosuz ağ kartı varsa iki ayrı IP adresi olabilir. Bir yönlendiricinin de bağlı olduğu her ağ için ayrı bir adresi vardır.

19211000000.16810101000.100000001.2500011001ağ kısmı (/24): 192.168.1cihaz kısmı: 25
Şekil 1.16: 192.168.1.25 adresinin dört sekizlisi ve her birinin 8 bitlik ikili karşılığı. /24 ağında ilk üç sekizli ağı (192.168.1), son sekizli cihazı (25) belirtir.

Neden 0–255? Her sekizli 8 bittir. 8 bitle 28 = 256 farklı değer yazılabilir: en küçüğü 00000000 = 0, en büyüğü 11111111 = 255. Dört sekizli toplam 4 × 8 = 32 bit eder ve 232 = 4.294.967.296 farklı adres verir. Bu sayı ilk bakışta büyük görünür, ama dünya nüfusu 8 milyarı aşmıştır ve kişi başına yarım adres bile düşmez. Üstelik bir kişinin telefonu, dizüstüsü, televizyonu ve akıllı saati ayrı adresler ister. IPv4 adresleri bu yüzden tükenmiştir; NAT (1.3.2) ve IPv6 bu sorunun iki çözümüdür.

Onluktan ikiliye çevirme. Bir sekizliyi ikiliye çevirmenin en kolay yolu, bit ağırlıklarını büyükten küçüğe denemektir. Sekiz bitin ağırlıkları soldan sağa 128, 64, 32, 16, 8, 4, 2, 1'dir. Her adımda sayı ağırlıktan büyük ya da ona eşitse o bit 1 yazılır ve ağırlık sayıdan çıkarılır; değilse bit 0 yazılır ve sayı değişmez.

Örnek 1.6

192.168.1.25 adresindeki 168 ve 25 sekizlilerini ikiliye çevirelim.

Ağırlık168 için: sayı ≥ ağırlık?BitKalan25 için: sayı ≥ ağırlık?BitKalan
128168 ≥ 128 evet14025 ≥ 128 hayır025
6440 ≥ 64 hayır04025 ≥ 64 hayır025
3240 ≥ 32 evet1825 ≥ 32 hayır025
168 ≥ 16 hayır0825 ≥ 16 evet19
88 ≥ 8 evet109 ≥ 8 evet11
40 ≥ 4 hayır001 ≥ 4 hayır01
20 ≥ 2 hayır001 ≥ 2 hayır01
10 ≥ 1 hayır001 ≥ 1 evet10

168 = 10101000 (denetim: 128 + 32 + 8 = 168) ve 25 = 00011001 (denetim: 16 + 8 + 1 = 25). 192 = 128 + 64 olduğundan 11000000, 1 ise 00000001'dir. Adresin tamamı: 11000000.10101000.00000001.00011001.

Her sekizli tam 8 bitle yazılır; baştaki sıfırlar atılmaz. 25'in ikili karşılığı “11001” diye değil, “00011001” diye yazılır. Aksi hâlde 32 bitlik adresin hangi bitinin hangi sekizliye ait olduğu kaybolur ve önek karşılaştırması yanlış çıkar.

IPv6. 128 bitlik IPv6 adresi 2128 ≈ 3,4 × 1038 farklı değer alabilir; bu, IPv4 adres sayısının yaklaşık 7,9 × 1028 katıdır. Adres sekiz gruba bölünür; her grup 16 bittir ve dört onaltılık rakamla yazılır (her onaltılık rakam 4 bittir). Uzun adresleri kısaltmak için iki kural vardır: bir grubun baştaki sıfırları yazılmayabilir ve art arda gelen sıfır grupları bir kez :: ile gösterilebilir.

Örnek 1.7

2001:db8::25 adresinin açık yazımı nedir?

  1. Görünen gruplar üç tanedir: 2001, db8 ve 25. Toplam grup sayısı sekiz olmalıdır; :: eksik 8 − 3 = 5 sıfır grubunun yerini tutar.
  2. Her grup dört rakama tamamlanır: db8 → 0db8, 25 → 0025.
  3. Açık yazım: 2001:0db8:0000:0000:0000:0000:0000:0025.

:: bir adreste yalnız bir kez kullanılabilir; iki kez kullanılsaydı hangi tarafta kaç sıfır grubu olduğu belirsiz kalırdı.

Sık yapılan hata

Bir sekizliye 256 ya da daha büyük bir sayı yazmak. 192.168.1.256 geçerli bir IPv4 adresi değildir; 8 bit en çok 255'e kadar sayabilir. Benzer biçimde IPv6 adresinde “g” ya da “z” gibi harfler bulunamaz: onaltılık rakamlar yalnız 0–9 ve a–f'dir.

1.3.2Yerel ve genel IP adresi: NAT

Evdeki bir dizüstünün ağ ayarlarına bakıldığında çoğu zaman 192.168.1.10 gibi bir adres görülür. Aynı dizüstüyle “IP adresim ne?” diye soran bir web sitesine girildiğinde ise bambaşka bir adres çıkar, örneğin 203.0.113.7. İki adresin farklı olması bir hata değildir; aradaki dönüşümü yönlendirici yapar.

Tanım 1.11

Yerel IP adresi (private IP address), yalnız yerel ağ içinde geçerli olan ve internette yönlendirilmeyen adrestir. Bu iş için üç blok ayrılmıştır: 10.0.0.0/8, 172.16.0.0/12 ve 192.168.0.0/16. Genel IP adresi (public IP address) ise internette tek olan ve doğrudan ulaşılabilen adrestir. NAT (network address translation, ağ adresi çevirisi), yönlendiricinin yerel adresleri kendi genel adresiyle değiştirmesidir. Port numaralarını da değiştiren yaygın biçimine NAPT denir.

Yerel adres blokları her evde, her okulda yeniden kullanılır. Giresun'daki bir evde de İstanbul'daki bir evde de 192.168.1.10 adresli bir cihaz olabilir. Bu adresler ağın içinde benzersizdir ama dünyada benzersiz değildir. Bu yüzden internete çıkan her paketin kaynak adresi, yönlendiricinin genel adresiyle değiştirilmek zorundadır.

Örnekteki evde üç cihaz var: dizüstü (192.168.1.10), telefon (192.168.1.11) ve tablet (192.168.1.12). Yönlendiricinin iç adresi 192.168.1.1, dış (genel) adresi 203.0.113.7'dir. Dizüstü 198.51.100.20 adresli bir sunucuya bağlanıyor.

Tablo 1.11: NAT ile adreslerin değişimi (dizüstü 192.168.1.10, genel adres 203.0.113.7, sunucu 198.51.100.20).
AdımKonumKaynakHedefNAT tablosu
1Ev ağı (gidiş)192.168.1.10:50000198.51.100.20boş
2Yönlendiriciden çıkış203.0.113.7:61000198.51.100.20192.168.1.10:50000 ↔ 203.0.113.7:61000
3İnternet (dönüş)198.51.100.20203.0.113.7:61000aynı
4Ev ağı (dönüş)198.51.100.20192.168.1.10:50000aynı
  1. Dizüstü paketi gönderir. Kaynak adresi yerel IP'dir (192.168.1.10) ve bu özel adres internette yönlendirilmez.
  2. Yönlendirici kaynak adresini kendi genel adresiyle (203.0.113.7), kaynak portunu da kendi seçtiği bir portla (61000) değiştirir. Yanıtın kime ait olduğunu sonra bulabilmek için bu eşlemeyi NAT tablosuna yazar.
  3. Sunucu yalnız 203.0.113.7 adresini görür ve yanıtı bu adrese, 61000 numaralı porta gönderir. Evdeki bütün cihazlar dışarıdan tek bir adres gibi görünür.
  4. Yönlendirici yanıtın hedef portuna (61000) bakar; NAT tablosuna göre bu bağlantı dizüstüne aittir. Hedefi 192.168.1.10:50000'e çevirip paketi iletir.
Ev ağı (yerel adresler)Dizüstü192.168.1.10Telefon192.168.1.11Tablet192.168.1.12Yönlendiriciiç: 192.168.1.1dış: 203.0.113.7İnternetSunucu198.51.100.20kaynak: 203.0.113.7hedef: 198.51.100.20NAT tablosu192.168.1.10:50000 ↔ 203.0.113.7:61000
Ev ağı (yerel adresler)Dizüstü192.168.1.10Telefon192.168.1.11Tablet192.168.1.12Yönlendiriciiç: 192.168.1.1dış: 203.0.113.7İnternetSunucu198.51.100.20kaynak: 198.51.100.20hedef: 192.168.1.10NAT tablosu192.168.1.10:50000 ↔ 203.0.113.7:61000
Şekil 1.17: Üstte gidiş: yönlendirici kaynağı 203.0.113.7 yapar ve eşlemeyi NAT tablosuna yazar. Altta dönüş: tablodaki eşlemeye bakılarak hedef 192.168.1.10'a çevrilir.

Port numarası neden değiştirilir? Evde telefon ile dizüstü aynı anda aynı sunucuya bağlanabilir ve ikisi tesadüfen aynı kaynak portunu seçmiş olabilir. Yönlendirici her bağlantıya farklı bir dış port verirse dönen yanıtları karıştırmadan ayırabilir. Port numarası 16 bittir ve 216 = 65.536 değer alır; bu yüzden tek bir genel adresin arkasında aynı anda on binlerce bağlantı yürüyebilir.

Örnek 1.8

Şu adreslerden hangileri yerel (özel) adrestir? 10.5.5.5 · 172.31.255.1 · 172.32.0.1 · 203.0.113.7 · 192.168.1.10.

  1. 10.5.5.5: ilk sekizli 10'dur; 10.0.0.0/8 bloğundadır. Özel.
  2. 172.16.0.0/12 bloğu 172.16.0.0'dan 172.31.255.255'e kadar uzanır (/12, ilk sekizlinin tamamını ve ikinci sekizlinin ilk 4 bitini sabitler; ikinci sekizli 16 ile 31 arasında değişebilir). 172.31.255.1 bu aralıktadır: özel.
  3. 172.32.0.1'in ikinci sekizlisi 32'dir; aralığın dışındadır: genel.
  4. 203.0.113.7 üç bloğun hiçbirinde değildir: özel değildir.
  5. 192.168.1.10, 192.168.0.0/16 bloğundadır: özel.

Not: 203.0.113.0/24 ve 198.51.100.0/24 blokları belgelerde ve örneklerde kullanılmak üzere ayrılmıştır; gerçek bir cihaza verilmez. Bu nottaki örnek adreslerin bu bloklardan seçilmesi bu yüzdendir.

Sık yapılan hata

Bilgisayarın ağ ayarlarında görülen 192.168.x.x adresinin internette görünen adres olduğunu düşünmek. Bu adres yalnız ev ağında geçerlidir. Siteler yönlendiricinin genel adresini görür; aynı evdeki herkes dışarıya aynı genel adresle çıkar.

1.3.3Alan adı ve DNS

Bir web sitesine 203.0.113.10 gibi bir sayıyla bağlanmak mümkündür, ama bu sayıları akılda tutmak zordur. Üstelik bir kurum sunucusunu değiştirdiğinde IP adresi de değişebilir. Bu iki sorunu çözmek için insanların okuyabileceği adlar kullanılır.

Tanım 1.12

Alan adı (domain name), insanlar için okunabilir bir addır; örneğin www.ornek.edu.tr. DNS (Domain Name System, alan adı sistemi), alan adını bağlantı kurulabilecek IP adresine çeviren, dünyaya dağılmış bir ad veri tabanıdır. Bu çeviri işlemine DNS çözümlemesi (DNS resolution) denir.

www.ornek.edu.tr → DNS sorgusu → 203.0.113.10 → web sunucusu

DNS'i telefon rehberine benzetmek yaygındır: kişinin adı bilinir, rehber numarasını verir. Ama DNS tek bir rehber değildir. Dünyadaki bütün alan adlarını tek bir sunucuda tutmak hem çok büyük bir yük olurdu hem de o sunucu çöktüğünde bütün internet dururdu. DNS bu yüzden hiyerarşik ve dağıtık kurulmuştur: her sunucu adın yalnız bir kısmından sorumludur.

1.3.4DNS çözümlemesi adım adım

Çözümlemede dört tür sunucu rol alır. DNS çözümleyicisi (DNS resolver), kullanıcı adına bütün soruları soran ve sonucu getiren sunucudur; çoğunlukla İSS'nin ya da kurumun sunucusudur. Kök sunucu (root server), hiyerarşinin en tepesidir ve üst düzey alanların (.tr, .com, .org…) sunucularını bilir. Üst düzey alan sunucusu (örneğin .tr sunucusu), kendi altındaki alanların yetkili sunucularını bilir. Yetkili sunucu (authoritative server) ise belirli bir alanın kayıtlarını tutan ve son yanıtı veren sunucudur.

Bir kullanıcının www.ornek.edu.tr adresini ilk kez açtığını, hiçbir önbellekte kayıt olmadığını varsayalım.

  1. Kullanıcı adres çubuğuna www.ornek.edu.tr yazar. Bağlanmak için bu adın IP adresi gerekir.
  2. Tarayıcı ve işletim sistemi önce kendi önbelleklerine bakar: kayıt yoktur.
  3. Soru, ağ ayarlarındaki DNS çözümleyicisine gönderilir.
  4. Çözümleyici en tepeden başlar. Kök sunucu adı bilmez, ama “.tr sunucularına sor” der.
  5. .tr sunucusu da tam adresi bilmez: “ornek.edu.tr'nin yetkili sunucusuna sor” der.
  6. Yetkili sunucu kaydı bilir ve yanıtlar: 203.0.113.10.
  7. Çözümleyici yanıtı tarayıcıya iletir ve kaydı belli bir süre önbelleğinde saklar; aynı soru tekrar gelirse hemen yanıtlar.
  8. Tarayıcı artık IP adresini bildiği için 203.0.113.10 adresindeki web sunucusuna bağlanır.
Tarayıcıönbellek + işletim sistemiÇözümleyiciİSS veya kurum DNS’iKök (.)kök sunucu.tr sunucusuüst düzey alan (TLD)ornek.edu.tryetkili sunucuWeb sunucusu203.0.113.10→ .tr’ye sor
Tarayıcıönbellek + işletim sistemiÇözümleyiciİSS veya kurum DNS’iKök (.)kök sunucu.tr sunucusuüst düzey alan (TLD)ornek.edu.tryetkili sunucuWeb sunucusu203.0.113.10203.0.113.10
Şekil 1.18: DNS çözümlemesinin iki adımı. Üstte çözümleyici kök sunucuya sorar ve “.tr'ye sor” yönlendirmesini alır. Altta yetkili sunucu kaydı bilir ve 203.0.113.10 yanıtını döndürür.

Dikkat edilirse kök ve .tr sunucuları asıl yanıtı vermez; yalnız bir sonraki adımda kime sorulacağını söyler. Bu yanıtlara yönlendirme denir. Çözümleyici ad hiyerarşisinde yukarıdan aşağı iner ve her adımda biraz daha özel bir sunucuya ulaşır. Kullanıcının bilgisayarı ise bu yolculuğun hiçbir adımını görmez: tek bir soru sorar ve tek bir yanıt alır.

1.3.5Çözümleyicinin önbelleği

Her ad için kök sunucudan başlayıp üç ayrı sunucuya sormak hem yavaş hem de kök sunucular için ağır bir yük olurdu. Çözümleyiciler bu yüzden öğrendikleri her bilgiyi bir süre önbellekte (cache) tutar. Yalnız son yanıt değil, ara yönlendirmeler de saklanır: “.tr sunucusu şudur”, “ornek.edu.tr'nin yetkili sunucusu şudur”. Her kaydın ne kadar saklanacağını, kaydı veren yetkili sunucu bir TTL değeriyle belirler.

Çözümleyicinin bir soru geldiğinde izlediği algoritma şöyledir:

önbellekte ad var mı?  Evet → yanıtla, bitir
sunucu = en yakın bilinen (yoksa kök)
sunucuya adı sor
yönlendirme: önbelleğe yaz, ona sor
IP gelirse önbelleğe yaz (TTL), yanıtla

İkinci satır önemlidir: çözümleyici her zaman kökten başlamaz, önbelleğinde bildiği en yakın sunucudan başlar. Tablo 1.12 yeni açılmış, önbelleği boş bir çözümleyiciye arka arkaya gelen üç soruyu izler.

Tablo 1.12: Çözümleyici önbelleğinin izlemesi. Son sütun, o soru için dış sunuculara gönderilen sorgu sayısıdır.
SoruÖnbellekte ne bulundu?Sorulan sunucularÖnbelleğe eklenenlerYanıtSorgu
www.ornek.edu.trhiçbir şeykök → .tr → yetkili.tr → sunucu; ornek.edu.tr → yetkili; www → 203.0.113.10 (TTL 1 saat)203.0.113.103
ogrenci.ornek.edu.tr (aynı dakika)ad yok, ama yetkili sunucu biliniyoryetkiliogrenci → 203.0.113.20203.0.113.201
www.ornek.edu.tr (başka kullanıcı)kayıt var——203.0.113.100
tarayıcıçözümleyicikök.trornek.edu.tr yetkiliyanıt: 203.0.113.10, TTL 3600 sçözümleyici önbelleği:.tr → sunucuornek.edu.tr → yetkiliwww → 203.0.113.10203.0.113.10
tarayıcıçözümleyicikök.trornek.edu.tr yetkiliyanıt: 203.0.113.20çözümleyici önbelleği:.tr → sunucuornek.edu.tr → yetkiliwww → 203.0.113.10ogrenci → 203.0.113.20203.0.113.20
Şekil 1.19: Üstte ilk sorunun sonu: yetkili sunucu 203.0.113.10 yanıtını TTL 3600 s ile verir; önbellekte üç kayıt vardır. Altta ikinci soru: kök ve .tr atlanır, doğrudan yetkili sunucuya sorulur ve ogrenci kaydı önbelleğe eklenir.

İlk soru üç sorgu gerektirir. İkinci soru tek sorguyla biter, çünkü ornek.edu.tr'nin yetkili sunucusu artık bilinir; kök ve .tr adımları atlanır. Üçüncü soru hiç dış sorgu gerektirmez ve yanıt hemen döner. Gerçek çözümleyiciler milyonlarca kullanıcıya hizmet verdiği için popüler adların çoğu her zaman önbellekte bulunur.

Önbelleğin bir yan etkisi de vardır. TTL 3600 s, yani 1 saattir; kayıt bu süre dolmadan silinmez. Kurum bu arada sunucusunu taşıyıp IP adresini değiştirirse, eski kaydı önbelleğinde tutan çözümleyiciler bir saate kadar eski adresi vermeyi sürdürür. Adres değişikliğinin herkese hemen yansımaması bundandır. Kurumlar planlı bir taşımadan önce TTL'yi geçici olarak kısaltır.

Sık yapılan hata

DNS'teki TTL ile IP başlığındaki TTL'yi aynı şey sanmak. IP paketindeki TTL bir atlama sayacıdır ve her yönlendiricide 1 azalır (1.2.4). DNS kaydındaki TTL ise saniye cinsinden bir süredir ve kaydın önbellekte ne kadar tutulacağını söyler. Adları aynıdır, çünkü ikisi de “yaşam süresi” anlamına gelir; ama ölçtükleri şey farklıdır.

1.3.6Alan adının bölümleri

Bir alan adı noktalarla ayrılmış etiketlerden oluşur ve sağdan sola, genelden özele doğru okunur. www.giresun.edu.tr adını ele alalım:

  • tr: ülke kodlu üst düzey alan (top-level domain, TLD). Türkiye'yi gösterir; .de Almanya'yı, .jp Japonya'yı gösterir. .com, .org gibi ülkeye bağlı olmayan genel üst düzey alanlar da vardır.
  • edu: kuruluş türü. Türkiye'de .edu.tr eğitim kurumlarına, .gov.tr kamu kurumlarına, .com.tr şirketlere ayrılmıştır.
  • giresun: kurumun alan adı. Kurum bu adı kaydettirmiştir ve altındaki adları kendisi yönetir.
  • www: alt alan adı (subdomain) ya da sunucu adı. Kurum aynı alan altında obs, mail, kutuphane gibi başka alt alanlar da açabilir.
. (kök)trülke kodu (ccTLD)comedukuruluş türügovgiresunkurumwwwalt alan / sunucu
Şekil 1.20: DNS ad ağacı. Kökün (.) altında üst düzey alanlar (tr, com), onların altında kuruluş türleri (edu, gov), daha altta kurum (giresun) ve en altta sunucu adı (www) bulunur.

DNS sorgusu bu ağacı kökten aşağı izler: önce kök, sonra tr, sonra edu.tr ve giresun.edu.tr. Ad sağdan sola okunduğu için çözümleme de sağdan sola ilerler. Bu düzen sorumluluğu da dağıtır. Kök sunucular yalnız üst düzey alanları, .tr sunucuları yalnız .tr altındaki alanları bilir. giresun.edu.tr'nin içindeki adları ise yalnız üniversitenin yetkili sunucusu tutar.

Sık yapılan hata

Alan adını soldan sağa okumak. giresun.edu.tr.example.com adresi Giresun Üniversitesine değil, example.com alanının sahibine aittir; çünkü ad sağdan sola okunur ve kurumu belirleyen kısım en sağdaki kayıtlı alandır. Oltalama saldırıları bu yanılgıdan yararlanır (1.7.4).

1.3.7URL'nin yapısı

Tanım 1.13

URL (Uniform Resource Locator, tek biçimli kaynak konumlayıcı), internetteki bir kaynağın tam adresidir. Hangi protokolle, hangi sunucuya bağlanılacağını ve o sunucuda hangi kaynağın istendiğini tek satırda söyler.

httpsprotokol://www.ornek.edu.tralan adı/duyurularyol?id=42sorgu#detayparça (bölüm)
Şekil 1.21: https://www.ornek.edu.tr/duyurular?id=42#detay adresinin bölümleri: protokol, alan adı, yol, sorgu ve parça.
Tablo 1.13: URL'nin bölümleri.
BölümÖrnekteAnlamı
ProtokolhttpsHangi kurallarla iletişim kurulacağı (şifreli HTTP).
Alan adıwww.ornek.edu.trSunucunun adı; DNS ile IP adresine çevrilir.
Yol/duyurularSunucudaki kaynağın yolu.
Sorgu?id=42Sunucuya giden ek bilgi, ad=değer biçiminde; birden çok çift & ile ayrılır.
Parça#detaySayfa içindeki bölüm; sunucuya gönderilmez, tarayıcı o bölüme kayar.

URL'de bunlardan başka bir bölüm daha olabilir: port. Alan adından sonra iki nokta üst üsteyle yazılır, örneğin http://203.0.113.10:8080. Port yazılmazsa protokolün varsayılan portu kullanılır: HTTP için 80, HTTPS için 443. Bu örnekte alan adı yerine doğrudan IP adresi yazıldığına da dikkat edelim; bu durumda DNS'e hiç başvurulmaz.

Örnek 1.9

http://203.0.113.10:8080/rapor?yil=2025&ay=3#ozet adresini bölümlerine ayıralım. Hangi parça sunucuya gitmez? Hangi porta bağlanılır?

  1. Protokol: http. Şifresizdir.
  2. Sunucu: 203.0.113.10. Bir IP adresidir; DNS sorgusu gerekmez.
  3. Port: 8080. Açıkça yazıldığı için HTTP'nin varsayılan portu 80 kullanılmaz.
  4. Yol: /rapor.
  5. Sorgu: ?yil=2025&ay=3. İki ad=değer çifti vardır: yil = 2025 ve ay = 3.
  6. Parça: #ozet. Sunucuya gönderilmez; tarayıcı sayfa yüklendikten sonra “ozet” kimlikli bölüme kayar.

Sunucuya giden istek yalnız /rapor?yil=2025&ay=3 kısmını içerir ve 203.0.113.10 adresinin 8080 numaralı portuna gönderilir.

Sık yapılan hata

Parçanın (#…) sunucuya gittiğini düşünmek ya da sorguyu (?…) parçayla karıştırmak. Sorgu sunucunun yanıtını değiştirebilir; parça ise yalnız tarayıcıda işlenir. Kişisel ya da gizli bilgi URL'nin hiçbir bölümüne yazılmamalıdır, çünkü URL'ler tarayıcı geçmişinde, sunucu kayıtlarında ve paylaşılan bağlantılarda açıkça görünür.

1.3.8Port

Bir sunucuda aynı anda birçok hizmet çalışabilir: web sunucusu, e-posta sunucusu, uzaktan bağlantı hizmeti, DNS hizmeti. IP adresi paketin hangi bilgisayara gideceğini söyler, ama o bilgisayardaki hangi hizmete gideceğini söylemez. Bu işi port numarası yapar.

Tanım 1.14

Port, bir cihazdaki belirli bir hizmeti ya da bağlantı ucunu tanımlayan 16 bitlik sayıdır (0–65.535). IP adresi bir binaya, port numarası o binadaki bir daireye benzer. Sık kullanılan portlar: 80 HTTP, 443 HTTPS, 22 SSH (şifreli uzaktan bağlantı), 53 DNS.

  1. Tarayıcı https://ornek.edu.tr adresini açar. DNS IP adresini verir; HTTPS için varsayılan port 443'tür. Pakete hedef olarak IP:port, yani 203.0.113.10:443 yazılır.
  2. Paket yönlendiriciler aracılığıyla önce IP adresine, yani binaya ulaşır. IP yalnız hangi bilgisayara gidileceğini belirler.
  3. Sunucunun işletim sistemi port numarasına, yani daireye bakar. Paketi o portu dinleyen hizmete, burada HTTPS web sunucusuna teslim eder. 80 numaralı porta gelen paket başka, 22 numaralı porta gelen paket yine başka bir hizmete gider.
  4. URL'ye port yazılırsa varsayılan port yerine o kullanılır: http://203.0.113.10:8080 adresine giden paket, 8080'i dinleyen başka bir uygulamaya (örneğin bir test sunucusuna) ulaşır.
İstemci(tarayıcı)Sunucu: IP 203.0.113.10:22 SSH:53 DNS:443 HTTPS:80 HTTP:8080 Yerel uygulama (örn. test sunucusu)port 443?
Şekil 1.22: 203.0.113.10 adresli sunucuda beş hizmet farklı portlarda çalışır. 443 numaralı porta gelen paket HTTPS web sunucusuna teslim edilir.

Bağlantının istemci tarafında da bir port vardır. Tarayıcı bir bağlantı açtığında işletim sistemi ona geçici bir port verir (örneğin 50000). Sunucunun yanıtı bu porta gelir. Bu sayede aynı bilgisayarda açık olan on sekme, aynı sunucuya ayrı ayrı bağlanabilir: her sekmenin bağlantısı farklı bir istemci portu kullanır. NAT'ın port değiştirmesi de (1.3.2) bu istemci portları üzerinde yapılır.

Sık yapılan hata

Ağ portunu bilgisayarın arkasındaki fiziksel girişlerle (USB, HDMI ya da switch'in kablo girişi) karıştırmak. Ağ portu fiziksel bir delik değil, işletim sisteminin bağlantıları ayırt etmek için kullandığı bir sayıdır.

1.4TCP bağlantısı ve şifreli iletişim

IP paketleri yalnızca “elden geldiğince” taşır: paket kaybolabilir, sırası değişebilir, kopyası gelebilir. Bir web sayfasının ya da bir banka işleminin ise eksiksiz ve doğru sırayla ulaşması gerekir. Ayrıca yolda veriyi okuyabilecek kişilere karşı içeriğin gizli kalması gerekir. Bu kesim bu iki ihtiyacın nasıl karşılandığını anlatır: önce TCP'nin güvenilir bağlantısı, sonra HTTPS'in şifrelemesi.

1.4.1TCP: üçlü el sıkışma, veri ve kapanış

TCP, iki uç arasında veri göndermeden önce bir bağlantı kurar. Bağlantı kurulurken iki taraf birbirine başlangıç sıra numaralarını bildirir. Veri aktarılırken her bayt bir numara alır ve alıcı, hangi bayta kadar aldığını onay (acknowledgment, ACK) ile bildirir. İş bitince bağlantı iki yönde de düzenli biçimde kapatılır.

Tanım 1.15

Üçlü el sıkışma (three-way handshake), TCP bağlantısının üç bölütle kurulmasıdır: istemci SYN (eşzamanla) gönderir, sunucu SYN + ACK ile yanıt verir, istemci ACK ile onaylar. Sıra numarası (sequence number, seq) bir bölütteki ilk baytın numarasıdır. Onay numarası (ack) ise “bu numaraya kadar her şeyi aldım, sıradaki beklediğim bayt budur” anlamına gelir.

Örnekte istemci, 443 numaralı portta dinleyen bir sunucuya bağlanıyor. Bütün süreç kısaca şöyledir:

istemci → SYN
sunucu → SYN + ACK
istemci → ACK        // bağlantı kuruldu
istemci → veri (HTTP isteği)
sunucu → ACK
istemci → FIN;  sunucu → ACK
sunucu → FIN;  istemci → ACK  // kapandı

Sayılarla izleyelim. İstemcinin başlangıç sıra numarası 1000, sunucununki 5000 olsun. Gerçekte bu sayılar her bağlantıda rastgele seçilir; böylece eski bir bağlantıdan kalan bölütler yenisiyle karışmaz ve dışarıdan sahte bölüt sokmak zorlaşır.

Tablo 1.14: TCP bağlantısının izlemesi (istemcinin başlangıç sıra numarası 1000, sunucununki 5000).
#YönBölütseqackİstemci durumuSunucu durumu
1istemci → sunucuSYN1000—SYN-SENTSYN-RECEIVED
2sunucu → istemciSYN + ACK50001001SYN-SENTSYN-RECEIVED
3istemci → sunucuACK10015001ESTABLISHEDESTABLISHED
4istemci → sunucuveri (100 bayt)1001—ESTABLISHEDESTABLISHED
5sunucu → istemciACK—1101ESTABLISHEDESTABLISHED
6istemci → sunucuFIN1101—FIN-WAITCLOSE-WAIT
7sunucu → istemciACK—1102FIN-WAITCLOSE-WAIT
8sunucu → istemciFIN5001—TIME-WAITLAST-ACK
9istemci → sunucuACK—5002TIME-WAITCLOSED

Satırları sırayla açıklayalım:

  1. SYN. İstemci bağlantı ister ve başlangıç sıra numarasını (1000) bildirir.
  2. SYN + ACK. Sunucu kabul eder: kendi sıra numarası 5000'dir ve ack = 1001'dir, yani “1000'i aldım, 1001'i bekliyorum”. SYN bölütü veri taşımasa da bir sıra numarası harcar; ack'in 1001 olması bundandır.
  3. ACK. İstemci, sunucunun SYN'ini ack = 5001 ile onaylar. Üç bölütle bağlantı kurulmuştur, ama henüz hiç veri gönderilmemiştir.
  4. Veri. İstemci 100 baytlık HTTP isteğini yollar. İlk baytın numarası 1001'dir; baytlar 1001'den 1100'e kadar numaralanır. HTTPS'te bu kanal üzerinden önce TLS anlaşması da yapılır (1.4.4).
  5. ACK. Sunucu ack = 1101 ile 100 baytın hepsini aldığını bildirir: 1001 + 100 = 1101. Onay gelmeseydi istemci bir süre bekleyip aynı baytları yeniden gönderirdi.
  6. FIN. İş bitmiştir; istemci FIN ile kendi yönünü kapatır.
  7. ACK. Sunucu FIN'i ack = 1102 ile onaylar. FIN de SYN gibi bir sıra numarası harcar. Sunucunun göndereceği veri kaldıysa hâlâ yollayabilir; bağlantı şimdilik yalnız bir yönde kapanmıştır.
  8. FIN. Sunucu da kendi yönünü kapatır (seq = 5001).
  9. ACK. İstemci son onayı (ack = 5002) yollar. Bağlantı iki yönde de kapanmıştır.
istemcisunucu :443TIME-WAITCLOSEDSYN seq=1000SYN + ACK seq=5000, ack=1001ACK seq=1001, ack=5001veri (100 bayt) seq=1001ACK ack=1101FIN seq=1101ACK ack=1102FIN seq=5001ACK ack=5002
Şekil 1.23: TCP bağlantısının bütün bölütleri zaman çizgisinde. Yukarıdan aşağı: üçlü el sıkışma, 100 baytlık veri ve onayı, dört bölütlük kapanış. Alttaki yazılar iki tarafın son durumunu gösterir.

Kurmak 3, kapatmak 4 bölüt sürer. Kapanışın dört bölüt sürmesinin nedeni, iki yönün birbirinden bağımsız kapatılmasıdır: bir taraf “benim söyleyeceklerim bitti” dediğinde öteki taraf hâlâ veri göndermeyi sürdürebilir. UDP'de bu adımların hiçbiri yoktur; UDP bağlantı kurmadan ilk pakette doğrudan veriyi gönderir.

Örnek 1.10

Başka bir bağlantıda istemcinin başlangıç sıra numarası 300, sunucununki 9000'dir. İstemci 250 baytlık bir istek, sunucu da 1200 baytlık bir yanıt gönderiyor. Bölütlerdeki seq ve ack değerleri nedir?

  1. SYN: seq = 300.
  2. SYN + ACK: seq = 9000, ack = 300 + 1 = 301.
  3. ACK: seq = 301, ack = 9000 + 1 = 9001.
  4. İstek: seq = 301; baytlar 301'den 301 + 250 − 1 = 550'ye kadar. Sunucunun onayı ack = 551'dir.
  5. Yanıt: seq = 9001; baytlar 9001'den 9001 + 1200 − 1 = 10.200'e kadar. İstemcinin onayı ack = 10.201'dir.

Kural her seferinde aynıdır: onay numarası = alınan son baytın numarası + 1. SYN ve FIN birer numara harcar.

Sık yapılan hata

Onay numarasını alınan son baytın numarası sanmak. ack = 1101, “1101'e kadar aldım” değil, “1100'e kadar aldım, sıradaki beklediğim bayt 1101” demektir. Bir başka yaygın hata da SYN'in sıra numarası harcadığını unutup ilk veri baytını 1000 olarak yazmaktır.

1.4.2HTTP ve HTTPS

HTTP, tarayıcı ile web sunucusu arasındaki konuşmanın protokolüdür. Tarayıcı “şu kaynağı ver” der, sunucu kaynağı gönderir. Bu konuşma düz metin hâlindedir: yoldaki herhangi bir cihaz paketleri okuyabilir. HTTPS ise aynı konuşmayı TLS (Transport Layer Security, taşıma katmanı güvenliği) ile şifreler.

TarayıcıSunucuornek.edu.trkullanici=ali parola=Gizli123Dinleyen saldırgangörür: parolayı ✗
TarayıcıSunucuornek.edu.tr7f3a 9c1e b24d 0e88 …kilit: TLS ile şifreliDinleyen saldırgangörür: anlamsız veri ✓sertifika: ornek.edu.trgüvenilir kuruluş imzalı
Şekil 1.24: Üstte HTTP: aynı ağdaki dinleyen saldırgan kullanıcı adını ve parolayı düz metin olarak görür. Altta HTTPS: aynı saldırgan yalnız anlamsız baytlar görür; tarayıcı ayrıca sunucunun ornek.edu.tr adına verilmiş sertifikasını denetler.

Farkı somut bir durumla görelim. Bir öğrenci kafedeki açık Wi-Fi ağından bir siteye giriş yapıyor. Site HTTP kullanıyorsa, aynı ağdaki biri paketleri yakalayıp kullanici=ali parola=Gizli123 gibi bir satırı açıkça okuyabilir. Site HTTPS kullanıyorsa aynı paketlerde 7f3a 9c1e b24d 0e88 … gibi anlamsız baytlar görünür. Tarayıcının adres çubuğundaki “bağlantı güvenli” göstergesi (eski sürümlerde kilit simgesi) bağlantının şifreli olduğunu belirtir.

HTTPS'in ikinci işi kimlik denetimidir. Şifreleme tek başına yetmez: kullanıcı farkında olmadan saldırganın sunucusuna bağlanmışsa, veri şifreli bile olsa saldırgana gider. Bu yüzden sunucu, güvenilir bir kuruluşun imzaladığı bir sertifika (certificate) gösterir. Sertifika, “bu açık anahtar gerçekten ornek.edu.tr alan adına aittir” der. Tarayıcı imzayı denetler; sertifika başka bir ada verilmişse ya da süresi dolmuşsa uyarı gösterir.

Sık yapılan hata

Kilit simgesini “bu site güvenilir” diye okumak. Kilit iki şeyi garanti eder: trafik şifrelidir ve sertifika adres çubuğundaki alan adına verilmiştir. Sitenin dürüst olduğunu garanti etmez. Oltalama siteleri de kendi alan adları için kolayca sertifika alıp HTTPS kullanır. Asıl bakılması gereken şey alan adının kendisidir.

1.4.3Şifreleme temelleri

Şifreleme (encryption), okunabilir bir metni (düz metin) bir anahtar yardımıyla anlamsız görünen bir metne dönüştürmektir. Ters işleme çözme (decryption) denir. Anahtarı bilmeyen biri şifreli metni görse bile içeriği okuyamaz. Kullanılan anahtarın türüne göre iki yaklaşım vardır; bunlara bir de şifrelemeyle sık karıştırılan özet işlemi eklenir.

Simetrik: aynı anahtartestx7#QptestKKşifreleçözAsimetrik: anahtar çiftitestx7#QptestaçıközelşifreleçözÖzet: tek yönlütest9f86d081…SHA-256✗ geri çözülemez
Şekil 1.25: Soldan sağa: simetrik şifrelemede aynı anahtar (K) şifreler ve çözer; asimetrik şifrelemede açık anahtar şifreler, özel anahtar çözer; özet (SHA-256) tek yönlüdür ve geri çözülemez.
Tanım 1.16

Simetrik şifreleme (symmetric encryption): şifreleme ve çözme için aynı anahtar kullanılır. Hızlıdır; sorun, anahtarın karşı tarafa güvenle ulaştırılmasıdır. Örnek: AES.

Asimetrik şifreleme (asymmetric encryption): her tarafın bir anahtar çifti vardır. Açık anahtar (public key) herkese verilir ve şifrelemede ya da imza doğrulamada kullanılır. Özel anahtar (private key) gizli kalır ve çözmede ya da imzalamada kullanılır. Daha yavaştır, ama anahtar dağıtım sorununu çözer. Örnek: RSA, eliptik eğri.

Özet (hash): veriden sabit uzunlukta bir “parmak izi” üretir. Şifreleme değildir; geri çözülemez. Parola saklama ve bütünlük denetiminde kullanılır. Örnek: SHA-256.

Simetrik şifrelemenin mantığı. Bilinen en eski örnek Sezar şifresidir: her harf alfabede sabit sayıda öteye kaydırılır. 29 harfli Türk alfabesinde kaydırma 3 ise A → Ç, Ğ → İ olur ve “AĞ” sözcüğü “Çİ” biçiminde yazılır. Alıcı aynı anahtarı (3) bilir ve harfleri 3 geri kaydırarak çözer. Bu şifre bugün birkaç saniyede kırılır, çünkü yalnız 28 farklı anahtar vardır ve hepsi denenebilir. AES gibi gerçek algoritmalar 128 ya da 256 bitlik anahtar kullanır; 2128 anahtarı denemek akla gelebilecek her bilgisayar gücünün ötesindedir. Ama ilke aynıdır: iki tarafta da aynı gizli anahtar bulunmalıdır.

Sorun da buradadır. Tarayıcı ile hiç tanımadığı bir sunucu, internet üzerinden ortak bir gizli anahtarı nasıl belirleyecek? Anahtarı açıkça gönderirlerse yoldaki dinleyici de öğrenir. Asimetrik şifreleme bu sorunu çözer.

Örnek 1.11

Asimetrik şifrelemenin nasıl çalıştığını küçük sayılarla, oyuncak bir RSA örneğiyle görelim. Burada a mod n, a'nın n'ye bölümünden kalandır.

  1. Sunucu iki asal sayı seçer: p = 5, q = 11. Çarpımları n = 55'tir.
  2. (p − 1)(q − 1) = 4 · 10 = 40 hesaplanır. Açık üs e = 3 seçilir; özel üs d, e · d'nin 40'a bölümünden kalan 1 olacak biçimde bulunur: d = 27, çünkü 3 · 27 = 81 = 2 · 40 + 1.
  3. Açık anahtar (n = 55, e = 3) herkese duyurulur. Özel anahtar d = 27 yalnız sunucuda kalır.
  4. Tarayıcı 7 sayısını göndermek istiyor. Açık anahtarla şifreler: 73 = 343 ve 343 mod 55 = 13 (çünkü 6 · 55 = 330, 343 − 330 = 13). Yola 13 çıkar.
  5. Sunucu özel anahtarla çözer: 1327 mod 55 = 7. Asıl sayı geri gelmiştir.

Dinleyici 13'ü ve açık anahtarı (55, 3) görür; d'yi bulmak için 55'i asal çarpanlarına ayırması gerekir. 55 = 5 · 11 hemen bulunur. Gerçek RSA anahtarlarında ise n yüzlerce basamaklıdır (2048 bit). Böyle bir sayıyı çarpanlarına ayırmanın bilinen hızlı bir yolu yoktur. Güvenlik bu zorluğa dayanır.

Özet işlevleri. SHA-256, girdisi ne kadar uzun olursa olsun 256 bitlik (64 onaltılık rakamlık) bir özet üretir. test sözcüğünün SHA-256 özeti 9f86d081884c7d65… ile başlar. Girdideki en küçük değişiklik özeti tamamen değiştirir: Test (büyük T ile) 532eaabd9574880d…, sonuna bir boşluk eklenmiş test␣ ise 231aa78c52a74a57… özetini verir. Özetten girdiyi geri hesaplamanın bir yolu yoktur.

Bu özellikler iki işe yarar. Bütünlük denetimi: bir dosya indirilirken sitenin yayımladığı özet ile indirilen dosyanın özeti karşılaştırılır; tek bir bit bile değiştiyse özetler tutmaz. Parola saklama: iyi tasarlanmış sistemler kullanıcının parolasını değil, parolanın özetini saklar. Giriş sırasında yazılan parolanın özeti hesaplanıp saklananla karşılaştırılır. Veri tabanı çalınsa bile parolalar doğrudan okunamaz.

Sık yapılan hata

“Parolalar SHA-256 ile şifrelenmiş” demek. Özet bir şifreleme değildir: anahtar kullanmaz ve geri çözülemez. “Şifrelenmiş” veri doğru anahtarla geri açılır; “özetlenmiş” veri hiçbir anahtarla geri açılmaz. İki kavram ayrı amaçlara hizmet eder.

1.4.4HTTPS'te yöntemler birlikte çalışır

Simetrik şifreleme hızlıdır ama anahtar dağıtımı sorunludur. Asimetrik şifreleme anahtar dağıtımını çözer ama yavaştır. HTTPS ikisinin güçlü yanlarını birleştirir: asimetrik yöntemi yalnız bir kez, ortak bir oturum anahtarı üzerinde anlaşmak için kullanır; asıl veriyi ise bu anahtarla simetrik olarak şifreler.

  1. Sunucu, tarayıcıya sertifikasını ve açık anahtarını gönderir. Özel anahtar sunucuda gizli kalır. Tarayıcı sertifikayı denetler.
  2. Tarayıcı rastgele bir oturum anahtarı (K) üretir ve sunucunun açık anahtarıyla şifreleyerek yollar. Bu asimetrik adımdır; yolda dinleyen biri K'yi çözemez.
  3. Sunucu K'yi kendi özel anahtarıyla çözer. Artık iki tarafta da aynı gizli anahtar vardır ve asimetrik şifreleme işini bitirmiştir.
  4. Asıl veri (sayfa, form, parola) K ile simetrik olarak şifrelenir ve iki yönde akar.
TarayıcıSunucuoturum anahtarı KK (açık anahtarla şifreli)özel anahtar (gizli)
TarayıcıSunucuveri: K ile simetrik şifreli(hızlı, iki yönlü)KK
Şekil 1.26: Üstte asimetrik adım: tarayıcı oturum anahtarı K'yi sunucunun açık anahtarıyla şifreleyip gönderir. Altta simetrik adım: iki tarafta da K vardır ve veri K ile iki yönde şifreli akar.

Bu anlatım ilkeyi gösteren sade bir modeldir. Güncel TLS 1.3 sürümü K'yi doğrudan şifreleyip göndermez; iki taraf Diffie–Hellman türü bir anahtar anlaşması (key agreement) ile, anahtarı hiç yola çıkarmadan ortak bir sır hesaplar. Sonuç aynıdır: iki tarafta aynı gizli anahtar oluşur, dinleyici ise onu öğrenemez. Sertifika ve özel anahtar bu süreçte sunucunun kimliğini kanıtlamak için kullanılır. Asimetrik işlemler simetrik işlemlerden yüzlerce kat yavaş olduğu için bu bölüşüm, şifrelemenin maliyetini neredeyse hissedilmez kılar.

1.5Web

Gündelik dilde “internete girmek” çoğu zaman bir web tarayıcısı açmak anlamına gelir. Oysa Web, internetin üzerinde çalışan hizmetlerden yalnız biridir. Bu kesim önce iki kavramı birbirinden ayırır, sonra bir web sayfasının hangi parçalardan oluştuğunu ve tarayıcıya nasıl ulaştığını adım adım izler. Kesimin ikinci yarısı arama motorlarına ve bulunan bilginin değerlendirilmesine ayrılmıştır.

1.5.1İnternet ve Web

Tanım 1.17

Web (World Wide Web), birbirine bağlantılarla bağlanmış sayfalardan ve web uygulamalarından oluşan, HTTP/HTTPS ile erişilen bir hizmettir. İnternet altyapıdır; Web bu altyapının üzerindeki hizmetlerden biridir.

WebHTTP/HTTPSE-postaSMTP, IMAPDosya aktarımıFTP, SFTPGörüntülü aramaRTPÇevrim içi oyunUDPİnternet (altyapı)kablolar, fiber, radyo bağlantıları, yönlendiriciler ve TCP/IP protokolleri
Şekil 1.27: İnternet altyapısı (kablolar, fiber, radyo bağlantıları, yönlendiriciler ve TCP/IP protokolleri) üzerinde çalışan hizmetler: Web (HTTP/HTTPS), e-posta (SMTP, IMAP), dosya aktarımı (FTP, SFTP), görüntülü arama (RTP) ve çevrim içi oyun (UDP).

Bir benzetmeyle: internet bir ülkenin karayolu ağıdır; Web ise bu yollarda çalışan otobüs firmalarından biridir. Aynı yolları kargo şirketleri, ambulanslar ve özel araçlar da kullanır. E-posta, dosya aktarımı, görüntülü arama ve çevrim içi oyunlar Web'i değil, doğrudan internet altyapısını kullanır. Telefondaki bir mesajlaşma uygulaması da hiç tarayıcı açmadan internet üzerinden çalışır.

Sık yapılan hata

“İnternet” ile “Web”i eş anlamlı kullanmak. İnternet 1969'dan beri gelişen ağ altyapısıdır; Web 1991'de bu altyapının üzerinde başlamıştır. Web olmadan da e-posta gönderilebilir; internet olmadan ise Web çalışamaz.

1.5.2HTML, CSS, JavaScript ve tarayıcı

Bir web sayfası tek bir dosya değil, birlikte çalışan üç dilde yazılmış kaynakların toplamıdır. Her dilin ayrı bir görevi vardır:

  • HTML (köprü metni işaretleme dili) sayfanın yapısını tanımlar: başlık nerede, paragraf nerede, hangi metin bir bağlantıdır.
  • CSS (basamaklı stil sayfaları) görünümü düzenler: renkler, yazı tipleri, boşluklar, sayfa düzeni.
  • JavaScript etkileşim ve davranış ekler: bir düğmeye tıklanınca ne olacağı, bir formun gönderilmeden önce denetlenmesi, sayfanın yenilenmeden güncellenmesi.

Web tarayıcısı (web browser) bu kaynakları sunucudan alır, yorumlar ve ekranda gösterir. Aşağıdaki iki satırlık HTML kaynağı, tarayıcıda büyük bir “Merhaba” başlığı ve altında bir paragraf olarak görünür (Şekil 1.28).

<h1>Merhaba</h1>
<p>İlk web sayfam.</p>
kaynak (HTML)<h1>Merhaba</h1><p>İlk web sayfam.</p>Tarayıcıyorumlarornek.edu.trMerhabaİlk web sayfam.
Şekil 1.28: Soldaki HTML kaynağı tarayıcıdan geçer ve sağdaki pencerede biçimlendirilmiş sayfa olarak görünür.

<h1> ve </h1> birer etikettir: aradaki metnin birinci düzey başlık olduğunu söyler. <p> ise bir paragrafı işaretler. HTML bir programlama dili değil, bir işaretleme dilidir: hesap yapmaz, döngü kurmaz; yalnız içeriğin hangi parçasının ne olduğunu belirtir. Başlığın hangi büyüklükte ve hangi renkte görüneceğine CSS, düğmeye basılınca ne olacağına JavaScript karar verir.

1.5.3Bir web isteğinin yolculuğu

Bu noktaya kadar anlatılan kavramların hepsi, tek bir web sayfasının açılmasında birlikte rol alır. Kullanıcının adres çubuğuna https://www.ornek.edu.tr/duyurular yazıp Enter'a bastığını düşünelim.

Tablo 1.15: Bir web isteğinin yolculuğu ve her adımda kullanılan kavram.
AdımNe olur?İlgili kavram
1Tarayıcı URL'yi parçalarına ayırır: protokol https, port 443, alan adı www.ornek.edu.tr, yol /duyurular.URL, varsayılan port
2Tarayıcı alan adının IP adresini sorar.DNS çözümlemesi
3Yanıt gelir: sunucu 203.0.113.10 adresindedir.DNS, önbellek
4Tarayıcı sunucuyla TCP bağlantısı kurar; HTTPS olduğu için TLS ile şifreleme anahtarları üzerinde anlaşılır.Üçlü el sıkışma, TLS
5Şifreli kanal üzerinden HTTP isteği gönderilir: “/duyurular kaynağını ver” (GET /duyurular).HTTP isteği
6Sunucu isteği işler: bir dosyayı okur ya da veri tabanından duyuruları çekip HTML üretir.Sunucu
7Yanıt döner: durum kodu 200 OK (başarılı) ve sayfanın HTML içeriği. Kaynak bulunamasaydı 404 dönerdi.HTTP yanıtı, durum kodu
8Tarayıcı HTML'i okurken gereken CSS, JavaScript ve resim dosyalarını ayrı isteklerle alır.Ek istekler
9Tarayıcı HTML yapısını, CSS görünümünü ve JavaScript davranışını birleştirip sayfayı ekrana çizer.Tarayıcı
TarayıcıDNS çözümleyiciWeb sunucusuURL yazılırwww.ornek.edu.tr ?203.0.113.10TCP bağlantısı + TLSGET /duyurularsayfa hazırlanır200 OK + HTMLGET stil.css, logo.png…sayfa çizilir
Şekil 1.29: Web isteğinin zaman çizgisi: tarayıcı, DNS çözümleyicisi ve web sunucusu arasındaki iletiler yukarıdan aşağı sırayla; en altta sayfa çizilir.

Görünürde tek bir tıklama, arka planda en az dört ayrı konuşma başlatır: DNS sorgusu, TCP el sıkışması, TLS anlaşması ve HTTP isteği. Her biri en az bir gidiş-dönüş sürer. Sunucu 25 ms uzaktaysa (gidiş-dönüş), ilk bayt gelmeden önce yalnız bu konuşmalar için 100 ms kadar beklenir. Gecikmenin, bant genişliğinden bağımsız olarak sayfa açılış süresini neden bu kadar etkilediği buradan anlaşılır.

Durum kodları. Sunucunun her yanıtı üç basamaklı bir durum kodu (status code) taşır. İlk basamak sonucun türünü söyler: 2 ile başlayanlar başarı, 3 ile başlayanlar yönlendirme, 4 ile başlayanlar istemci kaynaklı hata, 5 ile başlayanlar sunucu kaynaklı hatadır.

Tablo 1.16: Sık görülen HTTP durum kodları.
KodAnlamıNe zaman görülür?
200 OKBaşarılıİstenen kaynak gönderildi.
301Kalıcı olarak taşındıSayfanın adresi değişti; tarayıcı yeni adrese gider.
403YasakKaynak var, ama bu kullanıcının erişim izni yok.
404BulunamadıYol yanlış yazıldı ya da sayfa kaldırıldı.
500Sunucu iç hatasıSunucudaki program çalışırken bir hata oluştu.

Bu yolculuğu adım adım izlemek için Bir Web İsteğinin Yolculuğu simülatörü kullanılabilir.

1.5.4Arama motoru: tara, dizinle, sırala

Bir arama motoruna sorgu yazıldığında Web o anda gezilmez. Milyarlarca sayfayı her sorguda tek tek okumak saatler sürerdi. Yanıt, önceden hazırlanmış bir dizinden (index) gelir. Arama motorunun işi dört aşamada özetlenebilir: tara, dizinle, sırala, sonuçları göster.

  1. Tara. Web robotu (web crawler) bir başlangıç sayfası listesinden yola çıkar. Her sayfayı indirir, içindeki bağlantıları bulur ve bu bağlantıları ziyaret edilecekler kuyruğuna ekler. Tüm Web taranmaz; yalnız bağlantılarla ulaşılabilen ve site sahibinin taranmasına izin verdiği sayfalar taranır.
  2. Dizinle. Taranan sayfalardaki sözcükler ters dizine yazılır.
  3. Sırala. Sorgudaki sözcükleri içeren aday sayfalar bulunur ve ilgi, güncellik, gelen bağlantılar, yükleme hızı gibi ölçütlerle puanlanır.
  4. Sonuç. Puanı en yüksek sayfalar başlık, adres ve kısa bir özetle listelenir. Bütün bu işlem genellikle saniyenin kesirlerinde tamamlanır.
Tanım 1.18

Ters dizin (inverted index), her sözcük için o sözcüğün geçtiği sayfaların listesini tutan tablodur: sözcük → sayfalar. Adının “ters” olması, sayfa → sözcükler biçimindeki doğal düzenin tersine çevrilmiş olmasındandır. Birden çok sözcüklü bir sorgunun sonucu, sözcüklerin sayfa listelerinin kesişimidir.

Ters dizinin nasıl işlediğini kitapların sonundaki dizin iyi anlatır. Bir ders kitabında “yönlendirici” sözcüğünün geçtiği yerleri bulmak için kitabı baştan sona okumak gerekmez; sondaki dizinde “yönlendirici: 12, 45, 78” yazar. Arama motorunun dizini de aynı işi Web ölçeğinde yapar.

Örnek 1.12

Dört sayfa taranmış olsun: Sayfa 1 “kedi mama”, Sayfa 2 “kedi bakım”, Sayfa 3 “köpek mama”, Sayfa 4 “kedi mama fiyat”. Ters dizini kuralım ve üç sorguyu yanıtlayalım: (a) kedi mama, (b) mama -kedi, (c) köpek bakım.

  1. Her sayfanın sözcükleri dizine eklenir: kedi → {1, 2, 4}; mama → {1, 3, 4}; bakım → {2}; köpek → {3}; fiyat → {4}.
  2. (a) İki sözcük de geçmeli: {1, 2, 4} ∩ {1, 3, 4} = {1, 4}. Sonuç: Sayfa 1 ve Sayfa 4; hangisinin önce görüneceğine sıralama karar verir.
  3. (b) “mama” geçmeli, “kedi” geçmemeli: {1, 3, 4} − {1, 2, 4} = {3}. Sonuç: Sayfa 3.
  4. (c) {3} ∩ {2} = ∅. Hiçbir sayfa iki sözcüğü birlikte içermez; sonuç yoktur.

Sorgu sırasında hiçbir sayfa okunmamıştır; yalnız iki kısa liste karşılaştırılmıştır. Gerçek dizinde “kedi” sözcüğünün listesi milyonlarca sayfa içerir, ama kesişim işlemi yine de çok hızlıdır.

1. Tara2. Dizinle3. Sırala4. Sonuçtaranan sayfalarters dizin (sözcük → sayfa)Sayfa 1: kedi mamaSayfa 2: kedi bakımSayfa 3: köpek mamaSayfa 4: kedi mama fiyatkedi → sayfa 1, 2, 4mama → sayfa 1, 3, 4bakım → sayfa 2köpek → sayfa 3fiyat → sayfa 4“kedi mama”: {1, 2, 4} ∩ {1, 3, 4} = {1, 4}; kesişimde iki aday sayfa kalır.
1. Tara2. Dizinle3. Sırala4. SonuçSorgu: kedi mamaKesişimdeki aday sayfalar ve örnek puanlar1Sayfa 1: kedi mama0,922Sayfa 4: kedi mama fiyat0,78Sıralama ölçütleri• sözcük eşleşmesi (ilgi)• güncellik• gelen bağlantılar• yükleme hızı, mobil uyum
Şekil 1.30: Üstte dizinleme: taranan dört sayfanın sözcükleri ters dizine yazılır; “kedi mama” için kesişim {1, 4}'tür. Altta sıralama: kesişimde kalan iki aday sayfa ilgi, güncellik, gelen bağlantılar gibi ölçütlerle puanlanır; Sayfa 1 (0,92) Sayfa 4'ün (0,78) önüne geçer (puanlar yalnızca örnektir).

1.5.5Etkili arama

Arama motorları, sorguyu daraltmak için özel operatörler tanır. Doğru operatörü kullanmak, aranan bilgiyi binlerce ilgisiz sonuç arasından ayıklar.

Tablo 1.17: Arama operatörleri.
YöntemÖrnekAmaç
Tam ifade"hesaplamalı düşünme"Sözcükleri yan yana ve bu sırayla ara.
Hariç tutmajava -kahveİstenmeyen anlamı çıkar.
Site sınırısite:gov.tr bursYalnız belirli alanlardaki sayfalarda ara.
Dosya türüfiletype:pdf ağ güvenliğiBelge biçimini sınırla.

Operatörler birleştirilebilir. Örneğin yalnız üniversite sitelerinde, “staj başvurusu” ifadesini içeren PDF belgeleri bulmak için site:edu.tr filetype:pdf "staj başvurusu" yazılır. java -kahve sorgusu da ters dizin işlemlerinin tam karşılığıdır: “java” listesinden “kahve” listesindeki sayfalar çıkarılır.

Sık yapılan hata

Operatörleri tırnak içine almak ya da yerlerini karıştırmak. "site:gov.tr burs" yazılırsa bu dizi tam ifade olarak aranır ve operatör çalışmaz. filetype:gov.tr gibi bir yazım da anlamsızdır, çünkü filetype: bir dosya uzantısı, site: ise bir alan adı bekler.

1.5.6Kaynak değerlendirme ve yapay zekâ çıktıları

Arama motoru bir sayfayı üst sıraya koyduğunda, o sayfanın doğru olduğunu söylemiş olmaz. Web'de herkes yayın yapabilir; yanlış, eski ya da kasıtlı olarak yanıltıcı bilgiler de aynı kolaylıkla bulunur. Bu yüzden bulunan her bilgi birkaç soruyla sınanmalıdır.

Tablo 1.18: Kaynak değerlendirme soruları.
SoruNeye bakılır?
YazarKim yazmış? Konuda uzman bir kişi ya da sorumlu bir kurum mu?
TarihNe zaman yayımlanmış ya da güncellenmiş? Konu için güncel mi?
KaynakBilgi nereden alınmış? Alıntı ve bağlantılar verilmiş mi?
DoğrulamaVeriler ve iddialar kanıtlanabiliyor mu?
Çapraz kontrolAynı bilgiyi birbirinden bağımsız başka güvenilir kaynaklar da veriyor mu?

Bir örnekle düşünelim. Bir forum sayfasında “Wi-Fi 6, 6 GHz bandını kullanır” yazdığını görelim. Yazarı belli değil, tarih yok, kaynak gösterilmemiş. Tablo 1.4'e ya da standardı yayımlayan kuruluşların sayfalarına bakıldığında 6 GHz'in Wi-Fi 6 ile değil Wi-Fi 6E ile geldiği görülür. Tek bir çapraz kontrol, yanlışı ortaya çıkarmaya yetmiştir.

Yapay zekâ çıktıları. Sohbet tabanlı yapay zekâ araçları akıcı ve kendinden emin metinler üretir. Bu metinler de yanlış olabilir; hatta var olmayan bilgiler ve var olmayan kaynaklar içerebilir. Araç, cümlenin doğru olup olmadığını değil, dil olarak akla yatkın olup olmadığını önceler. Bu yüzden yapay zekâdan alınan önemli bir bilgi, yukarıdaki ölçütlerle tıpkı bir web sayfası gibi doğrulanmalıdır. Özellikle verilen kaynakların gerçekten var olup olmadığı ve gerçekten o bilgiyi içerip içermediği denetlenmelidir.

1.6Dijital hizmetler

İnternet altyapısının ve Web'in üzerinde gündelik hayatın büyük bir bölümü yürür: kamu işlemleri, iletişim, eğlence, alışveriş, dosya saklama ve yapay zekâ araçları. Bu kesim bu hizmetlerin bazılarının nasıl çalıştığını anlatır: bulut hizmet modelleri, elektronik ticaret türleri ve e-postanın yolculuğu.

1.6.1Çevrim içi hizmetler

Tablo 1.19: Çevrim içi hizmet türleri.
AlanÖrnekler
KamuE-Devlet, sağlık, vergi ve eğitim hizmetleri.
İletişimSosyal ağlar, anlık mesajlaşma ve topluluk platformları.
MedyaVideo, müzik ve dijital yayın hizmetleri.
TicaretMağazalar, pazar yerleri ve ödeme sistemleri.
BulutDosya saklama, ortak çalışma ve uygulamalar.
Yapay zekâMetin, görüntü ve karar desteği sunan araçlar.

1.6.2Bulut hizmet modelleri ve CDN

Bulut bilişim (cloud computing), işlem gücünü, depolamayı ve yazılımı kendi makinelerinde barındırmak yerine bir sağlayıcıdan internet üzerinden kiralamaktır. Ne kadarının kiralandığına göre üç model vardır. Modelleri ayırt etmenin en kolay yolu, bir uygulamanın çalışması için gereken katmanları alttan üste sıralayıp her katmandan kimin sorumlu olduğuna bakmaktır.

Tablo 1.20: Bulut hizmet modellerinde sorumluluk paylaşımı (“Kullanıcı”: hizmeti alan kurum ya da kişi).
KatmanYerindeIaaSPaaSSaaS
UygulamaKullanıcıKullanıcıKullanıcıSağlayıcı
VeriKullanıcıKullanıcıKullanıcıKullanıcı (içerik)
Çalışma zamanıKullanıcıKullanıcıSağlayıcıSağlayıcı
İşletim sistemiKullanıcıKullanıcıSağlayıcıSağlayıcı
Sunucu ve ağ donanımıKullanıcıSağlayıcıSağlayıcıSağlayıcı
ÖrnekKendi sunucu odasıSanal sunucu kiralamaUygulama barındırma platformuE-posta, çevrim içi ofis
  • Yerinde (on-premises): kurum her şeyi kendisi kurar ve işletir; donanımdan uygulamaya kadar bütün sorumluluk kurumdadır.
  • IaaS (Infrastructure as a Service, hizmet olarak altyapı): sağlayıcı fiziksel makineleri ve ağı verir; kullanıcı sanal sunucuya kendi işletim sistemini ve yazılımlarını kurar.
  • PaaS (Platform as a Service, hizmet olarak platform): sağlayıcı işletim sistemini ve çalışma ortamını da yönetir; kullanıcı yalnız kendi uygulamasını yükler.
  • SaaS (Software as a Service, hizmet olarak yazılım): uygulamanın kendisi hazır gelir; kullanıcı tarayıcıdan girip kullanır. Çevrim içi ofis programları ve web tabanlı e-posta bu modele örnektir.

Tablonun “Veri” satırına dikkat etmek gerekir. SaaS'ta bile verinin içeriğinden kullanıcı sorumludur: yanlışlıkla silinen bir belge, zayıf bir parolayla ele geçirilen bir hesap ya da gereksiz yere herkesle paylaşılan bir klasör sağlayıcının değil, kullanıcının sorunudur.

CDN. İçerik dağıtım ağı (content delivery network, CDN), aynı içeriğin kopyalarını dünyanın çeşitli yerlerindeki sunucularda tutar ve her kullanıcıya kendisine en yakın kopyadan sunar. Böylece hem gecikme azalır hem de asıl sunucunun yükü hafifler. Popüler video siteleri ve büyük haber siteleri içeriklerini bu yolla dağıtır.

Örnek 1.13

Giresun'daki bir kullanıcı, asıl sunucusu yaklaşık 2500 km uzaktaki bir şehirde bulunan bir siteye bağlanıyor. Site, İstanbul'da (yaklaşık 800 km uzakta) bir CDN sunucusu da kullanıyor. Fiberdeki ışık hızını 200.000 km/s alarak yalnız yol gecikmesini karşılaştıralım.

  1. Asıl sunucu: tek yön 2500 ÷ 200.000 = 0,0125 s = 12,5 ms; gidiş-dönüş 25 ms.
  2. CDN sunucusu: tek yön 800 ÷ 200.000 = 0,004 s = 4 ms; gidiş-dönüş 8 ms.
  3. Bir sayfa açılırken en az dört gidiş-dönüş gerekiyorsa (DNS, TCP, TLS, HTTP): asıl sunucuda en az 4 × 25 = 100 ms, CDN'de en az 4 × 8 = 32 ms.

Kablolar hiçbir zaman düz bir çizgi izlemediği ve yönlendiricilerde bekleme olduğu için gerçek süreler daha uzundur; ama oran aşağı yukarı korunur. Mesafeyi kısaltmak, hattı genişletmenin yapamayacağı bir kazanç sağlar.

1.6.3Elektronik ticaret

Elektronik ticaret (e-commerce), ürün ve hizmetlerin internet üzerinden alınıp satılmasıdır. Tarafların kim olduğuna göre dört tür ayırt edilir. Kısaltmalardaki B işletmeyi (business), C tüketiciyi (consumer) gösterir; ilk harf satıcıyı, son harf alıcıyı belirtir.

Alıcı →Tüketici (C)İşletme (B)Satıcı ↓İşletme(B)Tüketici(C)B2Cçevrim içimağazaB2Btoptancı →marketC2Cikinci elilanıC2Bserbest çalışan→ şirket
Şekil 1.31: Elektronik ticaretin dört türü: satıcı (satırlar) ve alıcı (sütunlar) işletme ya da tüketici olabilir.
  • B2C (işletmeden tüketiciye): bir mağazanın internet sitesinden ayakkabı almak.
  • B2B (işletmeler arası): bir lokantanın toptancıdan çevrim içi sipariş vermesi.
  • C2C (tüketiciler arası): ikinci el ilan sitesinde bir öğrencinin eski kitabını başka bir öğrenciye satması.
  • C2B (tüketiciden işletmeye): serbest çalışan bir tasarımcının bir şirkete logo tasarlaması ya da bir fotoğrafçının fotoğraflarını bir ajansa satması.

Hangi tür olursa olsun, işlemden önce birkaç şey denetlenmelidir: satıcının kimliği ve iletişim bilgisi, fiyatın kargo ve vergiler dâhil son hâli, teslimat süresi, iade koşulları ve ödeme sayfasının güvenliği. Ödeme sayfasının adresi çubukta doğru alan adıyla ve HTTPS ile görünmelidir. Piyasa fiyatının çok altındaki “kaçırılmayacak fırsatlar” dolandırıcılığın en yaygın işaretlerindendir.

1.6.4E-posta adresi ve bileşenleri

Bir e-posta adresi iki parçadan ve bunları ayıran bir işaretten oluşur. sercan.kulcu@giresun.edu.tr adresinde:

  • Kullanıcı adı (sercan.kulcu) posta kutusunu tanımlar.
  • @ işareti kullanıcı adını alan adından ayırır.
  • Alan adı (giresun.edu.tr) posta hizmetini yöneten kurumu gösterir. İletiyi hangi sunucuya teslim edeceğini bulmak için gönderen sunucu bu kısmı DNS'e sorar.

Bir ileti yazılırken doldurulan alanlar, iletinin kime nasıl ulaşacağını belirler.

Yeni iletiKime:ali@ornek.edu.trBilgi:ayse@ornek.edu.trGizli:mehmet@ornek.edu.trKonu:Ödev 1 teslimi(diğerleri görmez)Merhaba Hocam,Ödevim ektedir. İyi çalışmalar.Ek: odev1.pdfGönder
Şekil 1.32: Yeni ileti penceresi: Kime, Bilgi ve Gizli alıcılar, konu, ileti metni, ek dosya ve Gönder düğmesi. Gizli alıcı öteki alıcılara görünmez.
Tablo 1.21: E-posta bileşenleri.
AlanAnlamı
Kime (To)İletinin asıl alıcısı.
Bilgi (Cc)İletiyi bilgi amacıyla alan kişiler; bütün alıcılar onları görür.
Gizli (Bcc)Öteki alıcıların göremediği alıcılar.
Konuİletinin kısa ve açıklayıcı başlığı.
Ekİletiyle gönderilen dosya.
Yanıtla / YönlendirGönderene yanıt verme ya da iletiyi başka birine iletme. “Tümünü yanıtla” görünen bütün alıcılara gider.
Örnek 1.14

Bölüm sekreteri Elif bir duyuruyu şöyle gönderiyor: Kime: Can · Bilgi: Deniz ve Ece · Gizli: Bölüm başkanı. Can “Tümünü yanıtla” derse yanıt kimlere gider? Ece alıcı listesinde kimleri görür?

  1. Her alıcı, iletinin başlığında Kime ve Bilgi alanlarını görür; Gizli alanı yalnız gönderende kalır.
  2. Ece'nin gördüğü liste: Kime: Can; Bilgi: Deniz ve Ece. Bölüm başkanı listede yoktur.
  3. Can “Tümünü yanıtla” derse yanıt gönderene ve görünen bütün alıcılara gider: Elif, Deniz ve Ece. Bölüm başkanı listede görünmediği için yanıtı almaz.

Gizli alan, büyük gruplara duyuru gönderirken alıcıların adreslerini birbirinden saklamak için de kullanılır. Yüz kişiye Bilgi alanıyla gönderilen bir duyuru, yüz adresin hepsini herkese açar.

1.6.5Bir e-posta nasıl ulaşır?

E-posta, Web'den farklı protokollerle çalışan ayrı bir hizmettir. Gönderme işi SMTP ile, okuma işi IMAP ile yapılır. Arada en az iki posta sunucusu ve bir DNS sorgusu vardır. Örnekte Ali, ayse@ornek.com.tr adresine bir ileti gönderiyor.

  1. Ali iletiyi yazar ve Gönder'e basar.
  2. Ali'nin e-posta istemcisi iletiyi SMTP ile kendi kurumunun giden posta sunucusuna (smtp.ornek.edu.tr) teslim eder.
  3. Sunucu, @ işaretinden sonraki alan adının (ornek.com.tr) posta sunucusunu DNS'e sorar. Bu soru bir MX kaydı sorgusudur (mail exchanger, posta değiştirici).
  4. DNS yanıtlar: ornek.com.tr adresine gelen postaları mx.ornek.com.tr kabul eder.
  5. İleti SMTP ile alıcının posta sunucusuna aktarılır.
  6. Alıcı sunucu iletiyi spam ve virüs filtresinden geçirip Ayşe'nin posta kutusuna kaydeder.
  7. Ayşe iletiyi IMAP ile okur. İleti sunucuda kaldığı için telefonda ve bilgisayarda aynı görünür.
Ali’nin istemcisismtp.ornek.edu.trDNSmx.ornek.com.trPosta kutusuAyşe’nin telefonuali@ornek.edu.trayse@…IMAP
Şekil 1.33: E-postanın yolu: Ali'nin istemcisi → smtp.ornek.edu.tr (DNS'ten MX kaydını sorar) → mx.ornek.com.tr → filtre → Ayşe'nin posta kutusu → IMAP ile Ayşe'nin telefonu.
Sık yapılan hata

SMTP'nin e-postayı okumak için de kullanıldığını sanmak. SMTP yalnız göndermek ve sunucular arasında aktarmak içindir. Posta kutusundaki iletiyi okumak için IMAP kullanılır. (Eski POP3 protokolü de okuma içindir, ama iletiyi çoğunlukla sunucudan indirip siler; bu yüzden birden çok cihazla kullanıma uygun değildir.)

1.7Güvenlik

İnternetin açıklığı, onu bu kadar kullanışlı yapan özelliktir; aynı açıklık kötü niyetli kişilere de kapı aralar. Saldırıların büyük bölümü teknik açıklardan çok insanların dikkatsizliğinden ve alışkanlıklarından yararlanır. Bu kesim önce güvenliğin neyi korumaya çalıştığını tanımlar, sonra tehditleri ve bu tehditlere karşı alınabilecek önlemleri sırayla ele alır.

1.7.1Bilgi güvenliğinin üç hedefi

Tanım 1.19

Bilgi güvenliği (information security) üç hedefi korumaya çalışır; İngilizce baş harflerinden ötürü bu üçlüye CIA denir.

  • Gizlilik (confidentiality): Bilgiye yalnız yetkililer erişir.
  • Bütünlük (integrity): Bilgi izinsiz değiştirilmez.
  • Erişilebilirlik (availability): Bilgi ve hizmet gerektiğinde ulaşılabilirdir.
BilgigüvenliğiGizlilikşifreleme, parolaBütünlüközet (hash), dijital imzaErişilebilirlikyedek, yedekli sistem
Şekil 1.34: Bilgi güvenliğinin üç hedefi ve her birinin tipik koruma yöntemi: gizlilik için şifreleme ve parola, bütünlük için özet ve dijital imza, erişilebilirlik için yedek ve yedekli sistem.

Her hedefin kendine özgü tehditleri vardır. Bir öğrencinin parolasının çalınıp not dökümünün başkasınca okunması gizlilik ihlalidir. Bir saldırganın öğrenci bilgi sistemine sızıp bir notu değiştirmesi bütünlük ihlalidir; bilgi gizli kalmış olsa bile artık doğru değildir. Fidye yazılımının sunucudaki dosyaları kilitlemesi ya da sistemin aşırı yükle çökertilmesi ise erişilebilirlik ihlalidir; kimse bilgiyi çalmamış ya da değiştirmemiştir, ama bilgiye ulaşılamaz.

1.7.2Kişisel veri, KVKK ve e-Devlet

Tanım 1.20

Kişisel veri (personal data), kimliği belirli ya da belirlenebilir bir kişiyle ilgili her türlü bilgidir: ad, kimlik numarası, telefon, adres, fotoğraf, konum, sağlık bilgisi. Dijital ayak izi (digital footprint), çevrim içi etkinliklerin bıraktığı kayıtların toplamıdır. Mahremiyet ise bilginin kimlerle, hangi amaçla ve ne kadar süre paylaşıldığını denetleyebilmektir.

Dijital ayak izinin iki türü vardır (Şekil 1.35). Etkin iz, bilerek paylaşılan içeriktir: gönderiler, fotoğraflar, yorumlar, doldurulan formlar. Edilgen iz ise farkında olmadan bırakılır: konum kaydı, çerezler, IP adresi, arama geçmişi. İkinci tür çoğu zaman daha kapsamlıdır ve kullanıcının denetimi daha azdır.

SenEtkin iz: bilerek paylaşılanEdilgen iz: farkında olmadanGönderi, fotoğrafKonum kaydıYorum, beğeniÇerezlerForm, üyelikIP ve arama geçmişi
Şekil 1.35: Dijital ayak izi. Solda etkin iz (bilerek paylaşılanlar: gönderi, fotoğraf, yorum, beğeni, form, üyelik); sağda edilgen iz (farkında olmadan bırakılanlar: konum kaydı, çerezler, IP ve arama geçmişi).

İnternete bir kez çıkan bilgiyi tamamen geri almak çoğu zaman mümkün değildir: kopyalanmış, ekran görüntüsü alınmış ya da arşivlenmiş olabilir. Bu yüzden bir bilgi paylaşılmadan önce üç soru sorulmalıdır: Bu bilgiyi paylaşmak gerekli mi? Kimler görebilecek? Daha sonra silinebilecek mi? Örneğin tatil fotoğrafını “şu an” paylaşmak, evin boş olduğunu herkese duyurmak demektir.

KVKK. Türkiye'de kişisel verilerin korunması 2016'da yürürlüğe giren 6698 sayılı Kişisel Verilerin Korunması Kanunu (KVKK) ile düzenlenir. Kanun, kişisel verilerin işlenmesinde kişilerin haklarını korur. Veriyi işleyen kurum ya da şirket, yani veri sorumlusu, verinin hangi amaçla işlendiğini açıklamak ve verinin güvenliğini sağlamakla yükümlüdür. Kişi de kendisi hakkında hangi verilerin işlendiğini öğrenme ve yanlış verilerin düzeltilmesini isteme hakkına sahiptir.

e-Devlet güvenliği. Kamu hizmetleri e-Devlet üzerinden kimlik doğrulamasıyla sunulur. Bir e-Devlet hesabı tapu, vergi, sağlık ve eğitim kayıtlarına kapı açtığı için en iyi korunması gereken hesaplardandır. Güçlü ve başka hiçbir yerde kullanılmayan bir parola, iki adımlı doğrulama ve parolanın kimseyle paylaşılmaması temel kurallardır. Kimlik bilgisi isteyen e-posta ya da SMS'lerdeki bağlantılara tıklanmamalı; resmî siteye adres tarayıcıya elle yazılarak girilmelidir.

1.7.3Kötü amaçlı yazılımlar

Kötü amaçlı yazılım (malware), bilgisayara ya da kullanıcısına zarar vermek için yazılmış programların genel adıdır. Türleri, nasıl yayıldıklarına ve ne yaptıklarına göre ayrılır.

Tablo 1.22: Kötü amaçlı yazılım türleri.
TürTemel davranışTipik örnek
VirüsDosyalara bulaşır; kullanıcı bulaşmış dosyayı açınca yayılır.USB bellekteki bulaşmış bir programı çalıştırmak.
SolucanAğ üzerinden kendi kendine yayılabilir; kullanıcı eylemi gerekmez.Güncellenmemiş bir hizmetteki açığı kullanıp ağdaki öteki makinelere geçen program.
Truva atıYararlı görünür, ama zararlı bir işlev gizler.“Ücretsiz” sunulan korsan bir oyunun içine gizlenmiş uzaktan erişim programı.
Fidye yazılımıDosyaları şifreleyip erişilemez hâle getirir ve açmak için ödeme ister.Bütün belgelerin açılmaz hâle gelip ekranda ödeme talebi çıkması.
Casus yazılımKullanıcının etkinliklerini gizlice izler ve dışarı gönderir.Tuş vuruşlarını kaydedip parolaları saldırgana yollayan program.
Virüs: kullanıcı eylemiyleSolucan: kendi kendineBulaşmış dosyaDiğer dosyalarkullanıcı açarveya paylaşırPC 1PC 2PC 3ağ üzerinden
Şekil 1.36: Virüs ile solucanın yayılma farkı. Solda virüs: bulaşmış dosya kullanıcı açınca ya da paylaşınca öteki dosyalara geçer. Sağda solucan: PC 1'den ağ üzerinden PC 2 ve PC 3'e kendiliğinden yayılır.

Virüs ile solucan arasındaki fark yayılma biçimidir: virüs bir kullanıcının bir dosyayı açmasını bekler; solucan hiç beklemez ve ağdaki açık makineleri kendisi bulur. Bu yüzden solucanlar çok kısa sürede binlerce makineye yayılabilir. Korunmanın en etkili yolu, işletim sistemini ve uygulamaları güncel tutmaktır; solucanların kullandığı açıkların çoğu, güncellemelerle aylar önce kapatılmış olur.

1.7.4Sosyal mühendislik ve oltalama

Tanım 1.21

Sosyal mühendislik (social engineering), teknik açıklar yerine insanların güvenini, korkusunu ya da merakını kullanarak bilgi elde etme ya da bir eylem yaptırma yöntemidir. Oltalama (phishing), kendini güvenilir bir kurum gibi gösteren sahte iletilerle kullanıcının parolasını, kart bilgisini ya da doğrulama kodunu ele geçirme saldırısıdır.

Oltalama saldırısı dört halkalı bir zincir gibi ilerler: acil ya da cazip bir ileti gelir, ileti sahte bir bağlantı içerir, kullanıcı bağlantıdaki sayfaya bilgilerini girer ve hesap ele geçirilir. Her halkada saldırganın bir hamlesi, kullanıcının da bir kırma noktası vardır.

Tablo 1.23: Oltalama saldırı zinciri ve her halkadaki kırma noktası.
HalkaSaldırgan ne yapar?Zincir nasıl kırılır?
1. Sahte e-postaResmî görünen, acil ve tehditkâr bir ileti gönderir; gönderen alan adı kurumunki değildir.Gönderen adresi ve alan adı denetlenir; tıklamadan şüphelenilir, bildirilir.
2. Sahte sayfaBağlantı, gerçeğine çok benzeyen bir giriş sayfasına götürür; alan adı farklıdır.Adres elle yazılır; parola yöneticisi yanlış alan adında parolayı doldurmaz.
3. Parola girişiYazılan bilgiler doğrudan saldırganın sunucusuna gider; kurban çoğu zaman gerçek siteye yönlendirilir ve fark etmez.Parola girmeden önce kuruma bilinen bir kanaldan doğrulama yapılır.
4. Hesap ele geçirmeHesaba girer, parolayı değiştirir, aynı parolayı başka hesaplarda dener, rehberdekilere yeni oltalama iletileri gönderir.Çok faktörlü doğrulama açıktır; parola çalınsa bile giriş reddedilir. Her hesapta farklı parola vardır.
Sahte e-postaSahte sayfaParola girişiHesap ele geçirmeGönderen alan adınıdoğrula; tıklama,şüpheliyi bildirAdresi elle yaz;parola yöneticisi sahtealanı doldurmazParola girmeden öncekurumu ayrı kanaldandoğrulaÇok faktörlü doğrulamaaçık olsun; parolayıdeğiştir, bildirHer halka bir kırma noktasıdır:zincir bir yerden koparsa saldırı başarısız olur.Şüphede kaldığınızda bağlantıya değil, kurumun bilinen adresine gidin.
Şekil 1.37: Oltalama zincirinin dört halkası ve her halkanın altındaki kırma noktası. Tek bir halka kırılırsa saldırı başarısız olur.

Zincir benzetmesinin önemli bir sonucu vardır: korunmak için dört halkanın hepsinde kusursuz olmak gerekmez; tek bir halkayı kırmak yeter. Dikkatli bir kullanıcı ilk halkada iletiyi tanır. Gözden kaçırırsa, adresi elle yazma alışkanlığı ikinci halkada onu korur. Parolayı yine de girdiyse, çok faktörlü doğrulama dördüncü halkada hesabı kurtarır.

Oltalama yalnız e-postayla yapılmaz. SMS ile yapılan oltalama (“Kargonuz teslim edilemedi, adres bilgilerinizi güncelleyin”), sesli aramayla yapılan oltalama (“Bankanızdan arıyoruz, telefonunuza gelen kodu okur musunuz?”) ve sosyal medya mesajlarıyla yapılan oltalama da yaygındır. Ortak işaretler aynıdır: aciliyet, korku ya da cazip bir teklif, ve bir bağlantıya tıklatma ya da bir kod istetme.

1.7.5Bir oltalama e-postasını incelemek

Örnek ileti, bir üniversitenin bilgi işlem birimi adına gönderilmiş gibi görünüyor. İletide altı ayrı uyarı işareti vardır (Şekil 1.38).

Kimden:“Giresun Üni. Bilgi İşlem” <destek@destek-bilgi.example>Konu:ACİL: Hesabınız 24 saat içinde kapatılacak!Sayın kullanıcı,Posta kutunuz kotayı aştı. Hesabınızın kapanmaması içinparolanızı aşağıdaki bağlantıdan hemen doğrulayın.Hesabımı Doğrulahttp://destek-hesap-giris.example/loginEk:Kota_Raporu.pdf.exe123456
Şekil 1.38: İşaretli oltalama e-postası. 1: gönderen adresi, 2: acil konu, 3: genel hitap, 4: parola doğrulama isteği, 5: düğmenin gerçek adresi, 6: çift uzantılı ek dosya.
  1. Gönderen adresi. Görünen ad “Giresun Üni. Bilgi İşlem”dir, ama adres destek@destek-bilgi.example'dır. Gerçek bir iletinin alan adı giresun.edu.tr olmalıydı. Görünen ad istenildiği gibi yazılabilir; asıl bakılacak yer adresin @'ten sonraki kısmıdır.
  2. Aciliyet ve tehdit. Konu satırı “ACİL: Hesabınız 24 saat içinde kapatılacak!” der. Amaç, kullanıcının düşünmeden tıklamasıdır.
  3. Genel hitap. “Sayın kullanıcı” yazar. Kurum kendi öğrencisini ya da çalışanını adıyla tanır.
  4. Parola doğrulama isteği. Gerçek kurumlar parolayı e-postayla ya da bir bağlantı üzerinden “doğrulatmaz”.
  5. Bağlantının gerçek adresi. Düğmenin üzerine gelindiğinde (tıklamadan) görünen adres destek-hesap-giris.example alan adına gider; kurumla hiçbir ilgisi yoktur.
  6. Çift uzantılı ek. Ek dosyanın adı Kota_Raporu.pdf.exe'dir. Son uzantı .exe olduğu için bu bir belge değil, çalıştırılabilir bir programdır. Windows uzantıları gizleyecek biçimde ayarlıysa kullanıcı yalnız “Kota_Raporu.pdf” görür.

Bu işaretlerden yalnız biri bile iletiyi şüpheli kılmaya yeter. Böyle bir iletiyle karşılaşıldığında en güvenli davranış, iletideki hiçbir bağlantıyı kullanmadan kurumun resmî sitesine adresi elle yazarak girmek ya da kurumu bilinen bir telefonla aramaktır. Duyuru gerçekse resmî sitede de görünür.

Sık yapılan hata

Bağlantıdaki adreste kurumun adının geçmesini yeterli saymak. giresun.edu.tr.hesap-dogrula.example adresi Giresun Üniversitesine değil, hesap-dogrula.example alanına aittir. Alan adı sağdan sola okunur (1.3.6); belirleyici olan, en sağdaki kayıtlı alandır.

1.7.6Parola gücü

Bir saldırgan parolayı tahmin etmek için olası bütün parolaları sırayla deneyebilir; buna kaba kuvvet saldırısı denir. Saldırının ne kadar süreceği, olası parola sayısına bağlıdır. Parolada kullanılabilecek simge sayısı S, parolanın uzunluğu L ise olası parola sayısı

N = SL

olur. Her karakter için S seçenek vardır ve L karakterin seçimleri birbirinden bağımsızdır; bu yüzden seçenekler çarpılır. Saldırgan saniyede D deneme yapabiliyorsa en kötü durumda süre N ÷ D saniyedir. Bu notta D = 1010, yani saniyede 10 milyar deneme alınır; özetlenmiş parolaları güçlü ekran kartlarıyla deneyen bir saldırgan için bu gerçekçi bir değerdir.

Örnek 1.15

Saniyede 1010 deneme yapan bir saldırgan için en kötü durum süresini üç parola türü için hesaplayalım: (a) 8 küçük harf, (b) harf, rakam ve simge içeren 8 karakter, (c) 16 küçük harften oluşan bir parola cümlesi. İngilizce alfabede 26 küçük harf vardır; klavyedeki bütün yazdırılabilir karakterler 94 tanedir.

  1. (a) N = 268 ≈ 2,1 × 1011. Süre: 2,1 × 1011 ÷ 1010 ≈ 21 saniye.
  2. (b) N = 948 ≈ 6,1 × 1015. Süre: 6,1 × 105 s. Bir günde 86.400 s olduğundan 6,1 × 105 ÷ 86.400 ≈ 7 gün.
  3. (c) N = 2616 ≈ 4,4 × 1022. Süre: 4,4 × 1012 s. Bir yılda yaklaşık 3,16 × 107 s olduğundan ≈ 1,4 × 105 yıl, yani yaklaşık 140 bin yıl.

Simge çeşidini 26'dan 94'e çıkarmak süreyi 21 saniyeden 7 güne çıkarmıştır (yaklaşık 29.000 kat). Uzunluğu 8'den 16'ya çıkarmak ise yalnız küçük harfle 140 bin yıla ulaştırmıştır. Uzunluk, simge eklemekten çok daha etkilidir.

8 küçük harf26^8 ≈ 2,1×10^11≈ 21 saniye8 karakter (harf, rakam, simge)94^8 ≈ 6,1×10^15≈ 7 gün16 küçük harf (parola cümlesi)26^16 ≈ 4,4×10^22≈ 1,4×10^5 yılsüre: saniyede 10 milyar deneme yapan saldırgan için en kötü durum (logaritmik ölçek)
Şekil 1.39: Üç parola türünün olası parola sayısı ve saniyede 10 milyar deneme yapan bir saldırgan için en kötü durum süresi. Çubuklar logaritmik ölçektedir: her çubuğun boyu olası parola sayısının basamak sayısıyla orantılıdır.

Uzunluğun neden bu kadar etkili olduğu formülden görülür. S'yi artırmak tabanı büyütür; L'yi artırmak üssü büyütür. Üsse eklenen her karakter, olası sayıyı S katına çıkarır. 8 küçük harfe bir karakter daha eklemek sayıyı 26 katına; dört karakter daha eklemek 264 ≈ 457.000 katına çıkarır. 12 küçük harflik bir parola (2612 ≈ 9,5 × 1016), 8 karakterlik karışık bir paroladan (948) yaklaşık 16 kat daha çok seçenek sunar ve akılda tutmak da daha kolaydır.

Hesabın bir varsayımı vardır: saldırgan bütün olasılıkları rastgele bir sırayla dener. Gerçek saldırganlar önce sözlükteki sözcükleri, sık kullanılan parolaları (123456, qwerty), doğum tarihlerini, takım adlarını ve bunların küçük değişikliklerini (Galatasaray1905!) dener. Bu tür parolalar uzun ve karışık görünse bile saniyeler içinde bulunur. Başka bir sitede kullanılıp sızdırılmış bir parola ise artık hiç güvenli değildir: saldırgan onu ilk denediği parolalar arasına koyar.

Parola yöneticisi (password manager) bu sorunların pratik çözümüdür. Her hesap için uzun ve rastgele bir parola üretir, şifreli bir kasada saklar ve gerektiğinde doldurur. Kullanıcı yalnız kasanın tek bir ana parolasını hatırlar. Parola yöneticisi bir oltalama sayfasında parolayı doldurmaz, çünkü kaydedilen alan adıyla sayfanın alan adı tutmaz; bu da ek bir koruma sağlar.

1.7.7Çok faktörlü doğrulama

Tanım 1.22

Çok faktörlü doğrulama (multi-factor authentication, MFA), giriş için birbirinden farklı türde en az iki kanıt istenmesidir. Kanıt türleri: kullanıcının bildiği bir şey (parola, PIN), elinde bulunan bir şey (telefon, donanım anahtarı) ve kendisi olan bir şey (parmak izi, yüz).

  1. Kullanıcı kullanıcı adını ve parolasını girer. Bu birinci faktördür: bildiği bir şey.
  2. Parola doğruysa sunucu ikinci bir kanıt ister. Telefondaki doğrulama uygulaması 30 saniyede bir değişen 6 haneli bir kod üretir. Bu ikinci faktördür: elinde bulunan bir şey.
  3. Kullanıcı kodu girer; sunucu kodu doğrular ve oturum açılır.
  4. Parola sızdırılmış olsa bile saldırganın elinde kullanıcının telefonu olmadığı için giriş çoğunlukla reddedilir.
KullanıcıTelefonSunucuSaldırgan✗ reddedildiçalıntı parola
Şekil 1.40: Çalınmış parolayla giriş denemesi. Saldırgan parolayı bilir, ama telefondaki kodu üretemediği için sunucu girişi reddeder.

MFA kusursuz değildir. Gerçek zamanlı oltalamada saldırgan, kullanıcının sahte sayfaya girdiği kodu aynı anda gerçek siteye girer. SIM değiştirme saldırısında ise saldırgan operatörü kandırıp kurbanın telefon numarasını kendi SIM kartına aktarır ve SMS ile gelen kodları alır. Bu yüzden SMS kodu, doğrulama uygulamasından daha zayıf bir ikinci faktördür. En dayanıklı yöntemler FIDO2/geçiş anahtarı (passkey) ve donanım anahtarıdır: bu yöntemler sitenin alan adını kendileri denetler ve sahte bir sayfaya hiçbir şey vermez.

1.7.8VPN

Tanım 1.23

VPN (virtual private network, sanal özel ağ), cihaz ile bir VPN sunucusu arasında internet üzerinden şifreli bir tünel kuran hizmettir. Cihazın bütün trafiği bu tünelden VPN sunucusuna gider; sunucu trafiği oradan asıl hedefine iletir.

Cihazınşifreli tünelVPN sunucusuWeb sitesiKafe Wi-Fi ve İSS: yalnızca şifreli veri görürSağlayıcı: gidilen siteyi görebilirVPN’in IP’sini görür
Şekil 1.41: VPN tüneli. Kafe Wi-Fi'ı ve İSS yalnız şifreli veriyi görür; web sitesi kullanıcının değil, VPN sunucusunun IP adresini görür; VPN sağlayıcısı ise kullanıcının hangi sitelere gittiğini görebilir.

VPN'in ne yaptığını ve ne yapmadığını ayırmak önemlidir:

Tablo 1.24: VPN'in yaptıkları ve yapmadıkları.
VPN yaparVPN yapmaz
Halka açık Wi-Fi'da yerel dinlemeyi zorlaştırır.Mutlak anonimlik sağlamaz; VPN sağlayıcısı trafiğin hangi sitelere gittiğini görebilir.
Sitelere kullanıcının IP adresi yerine VPN sunucusunun IP adresini gösterir.Hesaba giriş yapıldıysa ya da çerezler duruyorsa siteler kullanıcıyı yine tanır.
Kurumsal ağa uzaktan güvenli erişim sağlar (örneğin kampüs dışından kütüphane veri tabanlarına).Kötü amaçlı yazılımı ve oltalamayı engellemez.

VPN kullanmak, trafiği İSS'nin ya da kafe ağının görmesinden alıp VPN sağlayıcısının görmesine aktarmak demektir. Sağlayıcıların “kayıt tutmuyoruz” iddiaları kendi beyanlarıdır ve dışarıdan doğrulanması zordur. Bu yüzden VPN, güvenilir bir sağlayıcı seçmeyi gerektirir. VPN HTTPS'in yerini de tutmaz: tünel yalnız VPN sunucusuna kadardır; sunucudan siteye giden kısım ancak HTTPS ile şifrelidir. İkisi birbirini tamamlar.

1.7.9Güvenlik duvarı

Tanım 1.24

Güvenlik duvarı (firewall), gelen ve giden bağlantılara kurallara göre izin veren ya da onları engelleyen yazılım ya da donanımdır. Kurallar çoğunlukla IP adresine ve port numarasına dayanır ve yukarıdan aşağı sırayla denenir: ilk eşleşen kural uygulanır, sonrakilere bakılmaz.

Bir web sunucusunu koruyan güvenlik duvarının kuralları Tablo 1.25'teki gibi olsun. Yöneticinin IP adresi 192.0.2.50'dir.

Tablo 1.25: Güvenlik duvarı kural örneği.
SıraYönHedef portKaynakEylem
1Gelen443 (HTTPS)Herkesİzin ver (web sunucusu)
2Gelen22 (SSH)Yalnız yönetici IP'siİzin ver
3Gelen23 (Telnet)HerkesEngelle (şifresiz, eski protokol)
4GelenDiğer tümüHerkesEngelle (varsayılan ret)
güvenlik duvarıSunucu443 ve yönetici SSH açıkziyaretçi → :443kural 1: izinyönetici IP → :22kural 2: izinbaşka IP → :22✗ kural 4: engelbaşka IP → :23✗ kural 3: engel
Şekil 1.42: Gelen dört bağlantı ve güvenlik duvarının kararları: ziyaretçinin 443'e ve yöneticinin 22'ye bağlantısı geçer; başka bir IP'nin 22'ye bağlantısı 4. kuralla, 23'e bağlantısı 3. kuralla engellenir.
Örnek 1.16

Aşağıdaki gelen bağlantılar için hangi kural eşleşir ve karar ne olur? (a) 198.51.100.7 → 443, (b) 192.0.2.50 → 22, (c) 198.51.100.7 → 22, (d) 192.0.2.50 → 3389 (uzak masaüstü).

  1. (a) Kural 1'in portu (443) tutar ve kaynak “herkes”tir: kural 1, izin.
  2. (b) Kural 1'in portu tutmaz. Kural 2'nin portu (22) ve kaynağı (yönetici IP'si) tutar: kural 2, izin.
  3. (c) Kural 2'nin portu tutar ama kaynak yönetici değildir; kural uygulanmaz. Kural 3'ün portu 23'tür, tutmaz. Kural 4 her şeyi kapsar: kural 4, engel.
  4. (d) Kaynak yönetici olsa bile 3389 için izin veren bir kural yoktur. Kural 1, 2 ve 3'ün portları tutmaz: kural 4, engel.

(d) şıkkı “varsayılan ret” ilkesini gösterir: açıkça izin verilmeyen her şey engellenir. Yönetici bile, yalnız kendisi için açılmış porta bağlanabilir.

İyi uygulama budur: önce her şeyi engellemek, yalnız gerekli portlara izin vermek. Telnet (23) şifresiz çalıştığı için parolayı düz metin olarak taşır; bu yüzden açıkça kapatılmıştır. SSH (22) ise yönetim için gereklidir ama yalnız yöneticinin adresine açılmıştır. Kural sırası da önemlidir: 4. kural (her şeyi engelle) listenin başına yazılsaydı, hiçbir bağlantı 1. ve 2. kurallara ulaşamazdı.

Güvenlik duvarının bir sınırı vardır: ağa girişi sınırlar, ama kullanıcının kendi isteğiyle indirip çalıştırdığı zararlı dosyayı tek başına durdurmaz. Kullanıcı bir web sitesinden (443 üzerinden, yani izin verilen bir bağlantıyla) bir Truva atı indirirse duvar bunu olağan bir web trafiği olarak görür.

1.7.10Yedekleme: 3-2-1 kuralı

Disk arızası, hırsızlık, yangın, yanlışlıkla silme ya da fidye yazılımı… Verinin kaybolmasının pek çok yolu vardır ve bunların bir kısmına karşı hiçbir önlem tam koruma sağlamaz. Son savunma hattı yedektir.

Tanım 1.25

3-2-1 yedekleme kuralı: verinin en az 3 kopyası bulunur (asıl veri ve en az iki yedek); kopyalar en az 2 farklı türde ortamda tutulur; kopyalardan en az 1'i başka bir konumdadır (bulut ya da başka bir bina).

BilgisayarKopya 1 (asıl veri)Harici diskKopya 2 (2. ortam)Bulut veya başka binaKopya 3 (dışarıda)3 kopya · 2 farklı ortam · 1 kopya dışarıda
Şekil 1.43: 3-2-1 kuralı: bilgisayardaki asıl veri (kopya 1), harici diskteki yedek (kopya 2, ikinci ortam) ve bulutta ya da başka bir binada tutulan yedek (kopya 3, dışarıda).

Kuralın her parçası farklı bir tehdide karşıdır. Üç kopya, bir kopyanın bozulması ihtimaline karşıdır. İki ortam, aynı türden iki ortamın (örneğin aynı seriden iki diskin) aynı nedenle aynı anda bozulmasına karşıdır. Bir kopyanın dışarıda olması, yangın, hırsızlık ya da su baskını gibi bütün odayı etkileyen olaylara karşıdır.

Örnek 1.17

Mert proje dosyalarını dizüstünde tutuyor. Her akşam dosyaları masasının çekmecesindeki bir USB belleğe kopyalıyor; ayrıca dizüstündeki ikinci bir klasöre de bir kopya alıyor. 3-2-1 kuralına göre durumu değerlendirelim.

  1. Kopya sayısı: dizüstündeki asıl dosyalar, dizüstündeki ikinci klasör, USB bellek. Üç kopya vardır.
  2. Ortam sayısı: dizüstü diski ve USB bellek. İki farklı ortam vardır. Ama dizüstündeki iki kopya aynı diskte durduğu için disk bozulduğunda ikisi birden gider; bu kopya, ortam açısından ayrı sayılmaz.
  3. Dışarıdaki kopya: yoktur. Çanta çalınırsa ya da oda yanarsa dizüstü ve USB bellek birlikte kaybolur.

Eksik, farklı konumdaki kopyadır. Dosyaları bir bulut depolama hizmetine ya da evdeki bir diske yedeklemek kuralı tamamlar.

İki uyarı daha yapılmalıdır. Birincisi: yedek ancak geri yüklenebiliyorsa işe yarar. Yıllarca alınan yedeklerin, gerektiği gün açılamadığı çok görülmüş bir durumdur; bu yüzden ara sıra bir dosyayı yedekten geri yükleyip denemek gerekir. İkincisi: bilgisayara sürekli bağlı bırakılan bir disk, fidye yazılımı bulaştığında asıl dosyalarla birlikte şifrelenebilir. Yedek diskin yalnız yedek alınırken bağlanması bu riski azaltır. Eşitleme yapan bulut klasörlerinde de benzer bir risk vardır: yanlışlıkla silinen ya da şifrelenen dosya buluttaki kopyaya da yansıyabilir. Sürüm geçmişi tutan bir hizmet bu durumda eski sürüme dönmeyi sağlar.

1.8Özet

  • İnternet, ağları ortak protokollerle (TCP/IP) birleştiren, merkezi olmayan küresel ağlar ağıdır. Türkiye 12 Nisan 1993'te ODTÜ–NSFNET hattıyla internete bağlandı.
  • Kullanıcı internete bir İSS ve bir erişim hattı (fiber, DSL, mobil, uydu) üzerinden bağlanır. Bant genişliği saniyede taşınan bit, gecikme ilk bitin varış süresidir; indirme süresi = MB × 8 ÷ Mbit/s.
  • İstemci ister, sunucu karşılar, protokol kuralları koyar. Switch yerel ağ içinde MAC adresine, yönlendirici ağlar arasında IP adresine göre çalışır. Ağlar kapsamlarına göre PAN, LAN, MAN ve WAN'dır; Wi-Fi'da frekans yükseldikçe hız artar, menzil azalır; güncel güvenlik protokolleri WPA2 ve WPA3'tür.
  • Protokoller dört katmanda çalışır ve her katman kendi başlığını ekler (kapsülleme). Veri paketlere bölünür; paketler farklı yollardan ve sırasız gelebilir, sıralama ve yeniden gönderme TCP'nin işidir.
  • Yönlendirici, hedefi kapsayan satırlardan en uzun önekliyi seçer ve TTL'yi 1 azaltır; TTL sıfırlanınca paket atılır.
  • IPv4 adresi 32 bit (dört sekizli, 0–255), IPv6 adresi 128 bittir. Yerel adresler (10/8, 172.16/12, 192.168/16) internette yönlendirilmez; yönlendirici NAT ile onları kendi genel adresine ve bir porta çevirir.
  • DNS alan adını IP adresine çevirir: çözümleyici kökten üst düzey alana ve yetkili sunucuya iner, öğrendiklerini TTL süresince önbellekte tutar. Alan adı sağdan sola okunur.
  • URL; protokol, alan adı, port, yol, sorgu ve parçadan oluşur; parça sunucuya gönderilmez. Port hizmeti seçer: 80 HTTP, 443 HTTPS, 22 SSH, 53 DNS.
  • TCP üçlü el sıkışmayla kurulur, dört bölütle kapanır; ack = alınan son bayt + 1. HTTPS, TLS ile şifreler ve sertifikayla sunucunun kimliğini doğrular; kilit sitenin dürüstlüğünü garanti etmez.
  • Simetrik şifreleme hızlıdır, asimetrik şifreleme anahtar dağıtımını çözer; HTTPS ikisini birlikte kullanır. Özet şifreleme değildir, geri çözülemez.
  • Web, internet üzerindeki hizmetlerden biridir; sayfa HTML, CSS ve JavaScript'ten oluşur. Arama motoru önceden tarar, ters dizin kurar ve sorguda listeleri kesiştirir. Bulunan bilgi ve yapay zekâ çıktıları yazar, tarih, kaynak ve çapraz kontrolle sınanır.
  • Bulut modelleri IaaS, PaaS ve SaaS'tır; CDN gecikmeyi azaltır. E-posta SMTP ile gönderilir, MX kaydıyla alıcı sunucu bulunur, IMAP ile okunur.
  • Bilgi güvenliği gizlilik, bütünlük ve erişilebilirliği korur. Oltalama dört halkalı bir zincirdir ve tek halkayı kırmak saldırıyı durdurur. Olası parola sayısı SL'dir; uzunluk simgeden etkilidir. Parola yöneticisi, çok faktörlü doğrulama, güncelleme, güvenlik duvarında varsayılan ret ve 3-2-1 yedekleme temel önlemlerdir; VPN tüneli şifreler ama anonimlik sağlamaz.

1.9Kavram listesi

Terimlerin İngilizce karşılıkları ve öteki bölümlerdeki kullanımları terim sözlüğünde bulunur.

1.10Kendini Dene

  1. 25 Mbit/s'lik bir hatta 750 MB'lık bir video en iyi durumda kaç dakikada iner? Sekizle çarpma unutulursa hangi sonuç bulunur?

    Cevap

    750 MB = 750 × 8 = 6000 Mbit; 6000 ÷ 25 = 240 s = 4 dakika. Sekizle çarpma unutulursa 750 ÷ 25 = 30 s bulunur; sonuç 8 kat kısa çıkar.

  2. 10.20.30.40 adresinin ikili gösterimi nedir? Bu adres yerel (özel) bir adres midir?

    Cevap

    10 = 8 + 2 → 00001010; 20 = 16 + 4 → 00010100; 30 = 16 + 8 + 4 + 2 → 00011110; 40 = 32 + 8 → 00101000. Adres: 00001010.00010100.00011110.00101000. İlk sekizli 10 olduğu için 10.0.0.0/8 bloğundadır; yerel bir adrestir ve internette yönlendirilmez.

  3. Bir yönlendiricinin tablosu: 10.0.0.0/8 → A, 10.1.0.0/16 → B, 10.1.2.0/24 → C, 0.0.0.0/0 → D. 10.1.2.7, 10.1.9.9, 10.200.0.1 ve 8.8.8.8 hedefli paketler hangi komşuya gider?

    Cevap

    10.1.2.7 dört satıra da uyar; en uzun önek /24'tür → C. 10.1.9.9, /8, /16 ve /0'a uyar (üçüncü sekizli 9, /24'ü tutmaz) → B. 10.200.0.1 yalnız /8 ve /0'a uyar → A. 8.8.8.8 yalnız varsayılan yola uyar → D.

  4. Bir paket TTL = 5 ile gönderiliyor; hedef, yolda 7 yönlendirici ötededir. Ne olur?

    Cevap

    Her yönlendirici TTL'yi 1 azaltır: 1. yönlendiricide 4, 2.'de 3, 3.'te 2, 4.'te 1, 5.'te 0 olur. 5. yönlendirici paketi atar ve gönderene “süre aşıldı” iletisi döndürür. Paket hedefe ulaşmaz. traceroute bu iletileri kullanarak yolu keşfeder.

  5. https://ders.ornek.edu.tr:8443/odev/liste?hafta=5&sinif=b#teslim adresinde bağlanılan port hangisidir? Sunucuya hangi kısım gönderilir?

    Cevap

    Port açıkça yazıldığı için HTTPS'in varsayılanı 443 değil, 8443 kullanılır. Alan adı ders.ornek.edu.tr'dir ve DNS ile IP'ye çevrilir. Sunucuya giden istek yol ve sorgudan oluşur: /odev/liste?hafta=5&sinif=b (iki ad=değer çifti). #teslim parçası sunucuya gönderilmez.

  6. Bir çözümleyicinin önbelleğinde “.tr sunucusu” ve “ornek.edu.tr'nin yetkili sunucusu” kayıtları var, başka kayıt yok. mail.ornek.edu.tr ve www.baska.edu.tr soruları için kaç dış sorgu gerekir?

    Cevap

    mail.ornek.edu.tr: ornek.edu.tr'nin yetkili sunucusu bilindiği için doğrudan ona sorulur; 1 sorgu. www.baska.edu.tr: baska.edu.tr'nin yetkili sunucusu bilinmez, ama .tr sunucusu bilinir; kök atlanır, önce .tr'ye sonra yetkiliye sorulur; 2 sorgu.

  7. İstemcinin başlangıç sıra numarası 7000'dir. Üçlü el sıkışmadan sonra 500 baytlık veri gönderip bağlantıyı kapatıyor. Sunucunun SYN + ACK'teki ack değeri, veri bölütünün seq değeri, verinin onayı ve istemcinin FIN'ine verilen onay nedir?

    Cevap

    SYN + ACK: ack = 7001 (SYN bir numara harcar). Veri: seq = 7001; baytlar 7001–7500. Onay: ack = 7501. İstemcinin FIN'i seq = 7501'dir; onayı ack = 7502'dir, çünkü FIN de bir numara harcar.

  8. Saniyede 1010 deneme yapan bir saldırgan için yalnız rakamlardan oluşan 10 karakterlik bir parola ile 10 küçük harften oluşan bir parolanın en kötü durum süreleri nedir?

    Cevap

    Rakamlar: 1010 olasılık; 1010 ÷ 1010 = 1 saniye. Küçük harfler: 2610 ≈ 1,41 × 1014 olasılık; ≈ 1,41 × 104 s ≈ 3,9 saat. Aynı uzunlukta simge çeşidi 10'dan 26'ya çıkınca süre yaklaşık 14.000 katına çıkar; ama ikisi de güçlü sayılmaz. Güçlü bir parola için uzunluk artırılmalıdır.

  9. Aşağıdaki olaylarda bilgi güvenliğinin hangi hedefi ihlal edilmiştir? (a) Bir hastanenin randevu sistemi, sahte isteklerle yüklenip saatlerce açılmıyor. (b) Hasta kayıtlarını içeren şifresiz bir USB bellek otobüste unutuluyor. (c) Bir e-ticaret sitesinde bir saldırgan ürün fiyatlarını değiştiriyor.

    Cevap

    (a) Erişilebilirlik: bilgi ne çalınmış ne değiştirilmiştir, ama ulaşılamaz. (b) Gizlilik: belleği bulan herkes kayıtları okuyabilir; şifreleme bu riski önlerdi. (c) Bütünlük: bilgi izinsiz değiştirilmiştir.

  10. Tablo 1.25'teki kurallarda 4. kural (“diğer tümü, engelle”) listenin en başına taşınırsa 198.51.100.7 → 443 ve 192.0.2.50 → 22 bağlantıları ne olur?

    Cevap

    Kurallar yukarıdan aşağı denenir ve ilk eşleşen uygulanır. Yeni ilk kural her bağlantıyı kapsadığı için iki bağlantı da engellenir; izin veren kurallara hiç sıra gelmez. Web sitesi dışarıdan erişilemez olur, yönetici de sunucuya bağlanamaz. Varsayılan ret kuralı her zaman listenin sonunda durmalıdır.

1.11İleri okuma

  • J. F. Kurose ve K. W. Ross, Computer Networking: A Top-Down Approach (8. baskı, 2021): bu notta izlenen “yukarıdan aşağı” sırayla uygulama katmanından başlayıp HTTP, DNS, TCP, IP yönlendirmesi ve bağlantı katmanını ayrıntılı ve bol şekilli anlatır.
  • A. S. Tanenbaum, N. Feamster ve D. J. Wetherall, Computer Networks (6. baskı, 2021): ağları fiziksel katmandan yukarı doğru inceler; elektrik-elektronik öğrencileri için modülasyon ve kablosuz iletim bölümleri özellikle yararlıdır.
  • R. Anderson, Security Engineering (3. baskı, 2020): oltalama, parolalar, kimlik doğrulama ve şifrelemenin gerçek sistemlerde neden başarısız olduğunu çok sayıda vaka üzerinden anlatır.
  • Internet Society, A Brief History of the Internet: ARPANET'ten bugüne internetin gelişimini, onu tasarlayan kişilerin kaleminden kısa ve okunaklı biçimde aktarır.

1.12Kaynaklar

  1. Internet Society, A Brief History of the Internet, B. M. Leiner ve diğerleri, 1997.
  2. IETF, Internet Standards and RFC documents; özellikle RFC 1918 (yerel adres blokları, 1996), RFC 5737 (belgelerde kullanılan IPv4 adresleri, 2010), RFC 8446 (TLS 1.3, 2018) ve RFC 9293 (TCP, 2022).
  3. W3C, Web Standards.
  4. NIST, Cybersecurity and Privacy guidance; özellikle SP 800-63B, Digital Identity Guidelines: Authentication and Lifecycle Management.
  5. 6698 sayılı Kişisel Verilerin Korunması Kanunu, Resmî Gazete, 7 Nisan 2016, sayı 29677.
  6. TÜBİTAK ULAKBİM, Faaliyet Raporu, 2001 ve 2012 (ULAKBİM'in 1996'da kuruluşu ve ULAKNET'in 1997'den itibaren işletilmesi).
  7. J. F. Kurose, K. W. Ross, Computer Networking: A Top-Down Approach, 8. baskı, Pearson, 2021.

İlgili sayfalar: İnternet sunumu · Çalışma soruları · Bir Web İsteğinin Yolculuğu simülatörü · Terim sözlüğü · © Sercan Külcü. Tüm hakları saklıdır.