Blog ~ Web günlüğüm

04 Mayıs

Veri İletişimi - Güvenliği Kavramları - 3

Bilgisayar Ağlarında İletişim Katmanları

Bilgisayar ağları veya haberleşme denildiği zaman akla ilk Telekomünikasyon kelimesi gelmektedir. Yunanca ’da uzak anlamına gelen “Tele” kelimesi ve telefon, telgraf, televizyon gibi iletişim ve haberleşme cihazlarını ifade eden “Komünikasyon” kelimesinin bir araya gelmesi ile uzaktan erişimi tanımlayan bir terimdir. Günümüzde ise telekomünikasyon terimi, veri iletimi için kullanılan teknik ve terimleri tamamını kapsar hale gelmiştir (Tutkun, 2012).
Temel olarak ağ, bilgisayarları birbirine bağlayan bir dizi kablo ya da daha genel anlamda bağlantı mekanizmasından oluşur. Ağların bilgisayarları birleştirmesi, geniş bir ortamda haberleşme sağlaması sonucudur. Günümüzde sürekli hareket eden insanlar bu sayede daha rahat erişim imkânları elde etmişlerdir. Örneğin dünya çapında her gün milyonlarca kişiye hizmet veren sunucunun, hizmet alan kişiden bağımsız çalışması oldukça başarılı bir öngörü ile tasarlanmış ağ yapılarının sonucudur.  Temel bilgisayar ağlarını birbirinden ayırmak ve her birisini tanımlamak için kullanılan üç farklı kavram vardır. Bunlar LAN (Yerel Alan Ağı - Local Area Network), MAN (Şehir Alan Ağı - Metropolitan Area Network) ve WAN (Geniş Alan Ağı – Wide Area Network)’dır. Yerel Alan Ağı – Local Area Network (LAN): Yerel ağ genellikle tek bir bina ya da birbirine yakın yerleşkeler arasındaki iletişimin sağlanması olarak tanımlanabilir. İletişimin sağlanması sırasında ağ donanımları kullanılır. Metropolitan Alan Ağı – Metropolitan Area Network (MAN): Lan yapısına göre daha büyük bir ağ yapısıdır. Metropolitan olarak anılmasının sebebi, büyük bir şehre servis vermek için hazırlanmasıdır. Yerel alan ağları en çok iki kilometrelik alanlarda kullanılabilirken, MAN yapısında bu rakam yüz elli kilometreyi bulur. Geniş Alan Ağı –Wide Area Network (WAN):  Şehirler ve ülkeler arası iletişimi kapsayan, geniş ölçekli ağlardır. Genel olarak, farklı yapılarda yerel alan ağlarının birleştirilmesinden, geniş alan ağlarının oluşturulması mümkündür. WAN ağları sayesinde aynı şirketin, dünya üzerindeki pek çok bayi ya da satış noktasının birbirine hızlı bir ağ ile bağlanması mümkün olur. Böylece yönlendirme ayarlarının tam olarak yapılması halinde, tek bir noktadan bütün firma çalışanları internete çıkabilecektir (Çetin ve Metin, 2005).
Bir bilgisayarda veri büyük dosyalar halinde saklanır. Veri göndermek isteyen bir bilgisayar, iletişim ortamına aynı anda çok miktarda veri gönderirse, ağ işlevselliğini yitirir, iletişim ortamı bu bilgisayarın gönderdiği büyük miktarda veri tarafından bloke edilir ve verinin tamamı gönderilene kadar diğer bilgisayarların iletişim kurması engellenir. Ayrıca, bir hata durumunda tüm verilerin bir daha gönderilmesi gerekebilir. Bu nedenle, birçok kullanıcının ortama erişimini sağlayabilmek ve veriyi hızlı bir şekilde gönderebilmek amacıyla, veri kolay kullanılabilecek küçük parçalara bölünür. Bu parçalara paket (packet) denir. Parçalar, bilgisayar haberleşmesinin temel birimleri olarak görülebilir. Bu yöntemle, ağa bağlı her kullanıcının veri gönderme ve alma şansı artar. Gönderilen paketler, alıcı tarafında hatalı olup olmadığı denetlendikten sonra, sıralı bir şekilde biriktirilir ve özgün veri yeniden oluşturulur. Bu iletişimin sağlanabilmesi için her pakete veri denetim bilgisi eklenir. Bu bilgiler, paketlerin alıcısına doğru olarak ulaşmasını sağlar. İki bilgisayar arasında paket alış-verişi sağlanması, iletişimin kurulması anlamına gelir. Fakat veri iletişimin gerçekleşebilmesi için sadece bilgisayarların birbirine bağlanması yeterli değildir. Veri iletişiminin sağlanabilmesi için iki bilgisayar sistemi arasında üst düzeyde bir işbirliği gerekmektedir. Bu işbirliği, bilgisayarlar arası iletişim (computer communication) olarak adlandırılır. Bilgisayarlar arası iletişimin sağlanabilmesi için, nasıl ve ne zaman iletişim kurulacağına dair aynı dilin kullanılması kararlaştırılmalıdır. Bu dil protokoller aracılığıyla sağlanır. Bir başka deyişle protokoller, farklı sistemlerdeki öğeler arasındaki iletişimi sağlamak için kullanılır. Öğe, bilgi gönderme ve alma işlevini yerine getiren birim, sistem ise bir ya da birden fazla öğeden oluşan bir bütündür. Sistem bir bilgisayar, terminal ya da uzaktan algılama aygıtı olabilir. Öğe ise uygulama programları, dosya aktarım paketleri, veri tabanı yönetim sistemleri veya elektronik postalar olarak düşünülebilir. Yani protokoller iki öğe arasındaki veri değişiminin kurallarını belirler. Bir protokolün öncelikle belirli bir söz dizimi (syntax) olması gerekir. Ayrıca, gönderilen sinyalin düzeyi, verinin hangi biçimde gönderileceği gibi unsurların belirlenmesi gerekir. Bir protokolün, eşgüdüm ve hata saptama-düzeltme yöntemlerinin tanımlanması gerekir. Son olarak hız uyumu ve ardışık veri gönderme gibi zamanlama yöntemlerinin de belirlemesi gerekir. Veri iletişiminde farklı işlevleri yerine getirmek için farklı protokoller kullanılır. Örneğin internette, TCP/IP (Transmission Control Protocol/Internet Protocol) grubu protokoller kullanılır. İnternetin ilk yıllarında, yerel alan ağlarının, geniş alan ağlarına bağlanması kavramı ortaya çıkmış ve birbirine bağlı ağlar arası iletişim (internetwork) gündeme gelmiştir. TCP/IP de bu ağlar arası uyumsuzluk sorununun giderilmesi amacıyla geliştirilmiştir. Bir başka deyişle TCP/IP farklı topoloji ve protokollere sahip bilgisayar ağlarını birbirlerine bağlamak için kullanılan bir protokoller dizisidir (Baykal, 2005).
Bilgisayar ağlarında birçok öğe bulunur; birçok uygulama ve protokol, farklı türde uç birimler ve bunlar arasındaki iletişim türleri, yönlendiriciler ve bağlantı düzeyinde yer alan çok çeşitli ortam vardır. İnternet gibi çok büyük ağlar söz konusu olduğunda ise bu karmaşıklık daha da artar. Bir sistem birçok öğenin bulunduğu ve birçok işlevi bir anda yerine getiren karmaşık yapıya ulaştığı anda tasarımı kolaylaştırmak için soyutlama (abstraction) düzeyleri tanımlanabilir. Soyutlama düzeyleri, ağlarda katman (layer) kavramına karşılık gelir. Büyük ve karmaşık sistemler sürekli güncellendiğinden, katmanlı yapı kullanılır. Çünkü bu yapılarda, katmanların sunduğu hizmetlerin yerine getirilme biçimini değiştirmek kolaydır. Bir katmanın işlevi değiştirildiğinde, sistemin diğer bileşenleri bundan etkilenmez. Katmanlarda da protokoller düzenlenir. Katmanlı protokol yapısında, her protokol bir katmana aittir. Bir katmana ait protokol ise, ağda bu protokolü yerine getirecek olan öğeler arasında dağıtılır. Yani her ağ öğesinde o katmana ait bir parça bulunur. Bu parçalar, birbirleriyle o katmana ait iletiler aracılığıyla iletişim kurar. Bu iletilere ilgili katmana ait, protokol veri birimleri (Protocol Data Unit - PDU) denir. İki farklı ağda yer alan bilgisayarlar birbiriyle iletişime geçeceği zaman, bu bilgisayarların birbirine denk gelen eş katmanları (aynı düzey katmanlar) arasındaki iletişim, protokoller aracılığıyla sağlanır. Katmanlar ve katmanlarda uygulanan protokollerin tümüne bilgisayar ağı iletişim mimarisi ya da kısaca ağ mimarisi adı verilir. En altta veri aktarımının yapıldığı fiziksel ortam vardır. Bunun üzerinde katmanlar yer alır. Protokoller, eş düzey katmanlar arasında ortak bir dil oluşturur. Ancak veri aktarımı yalnızca fiziksel ortamdan yapılabileceği için, bu katmanlar arasında doğrudan bir iletişim yoktur (Şekil 3.6). Bunun yerine her katman, veriyi ve denetim bilgilerini bir altındaki katmana aktarır. Bitişik katmanlar arasındaki arabirimler, temel işlevleri ve hizmetleri sağlayarak bu aktarımı mümkün kılar (Baykal, 2005).


Şekil 3.6. Ağ Katmanlarında Paket Oluşturma.

Protokollerin standartlaştırılması, farklı bilgisayar sistemlerinin birbirleri ile etkin ve doğru olarak etkileşimde bulunabilmelerine olanak sağlamaktadır. Uluslararası protokol standartlarının ilk adımı, Uluslararası Standartlar Kurumu (International Organization for Standardization - ISO) tarafından önerilmiş ve geliştirilmiştir. Bu standart Açık Sistemler Bağlantı Başvuru Modeli (Open Systems Interconnection Reference Model) ya da kısaca ISO-OSI olarak adlandırılır. OSI başvuru modeli, yedi katmandan oluşur. Katman kavramının oluşturulması ve katman sayısının belirlenmesinde temel alınan ilkeler şunlardır:

  • Yeni katman, ancak farklı düzeyde bir soyutlama gerekiyorsa oluşturulur.
  • Her katman, iyi tanımlanmış bir işlevi yerine getirmelidir.
  • Her katmanın yerine getireceği işlev, uluslararası protokol standartlarını tanımlamaya yönelik olarak seçilmelidir.
  • Arabirimler aracılığıyla bir katmandan diğerine gönderilen bilgiler en aza indirgenmelidir.
  • Katman sayısı, farklı ve çok sayıda işlevi katmanlar arasında bölüştürebilecek kadar fazla, fakat mimariyi fazla genişletmeyecek kadar az sayıda olmalıdır.

OSI bu ilkelerden yola çıkarak yedi katmanlı bir yapı önermiş ve her katmanda yapılması önerilen işlevleri tanımlamıştır (Şekil 3.7). Katman 1 (Fiziksel Katman): Verilerin fiziksel ortam üzerinden 1 ve 0 olarak aktarılmasından sorumludur. Bir başka deyişle veri ikililerinin bir iletişim kanalı boyunca doğru/hatasız gönderilmesiyle ilgilidir. Katman 2 (Veri Bağlantı Katmanı): Gerekli eş zamanlama, hata ve akış denetimlerini sağlayarak bilginin fiziksel bağlantı üzerinden güvenli biçimde aktarılmasını sağlar.  Asıl görevi gönderilen veriyi, iletişim hatalarından arındırılmış olarak fiziksel katmandan almak ve ağ katmanına göndermektir. Katman 3 (Ağ Katmanı): Alt ağlar arasında bağlantı kurulması, sürdürülmesi ve sonlandırılmasından sorumludur. Paketlerin, ağ üzerinde yönlendirilerek gönderilmesini koordine eder. Bu katmanın temel görevi, paketlerin gönderici (kaynak) ve alıcı bilgisayara (hedef) nasıl ulaştırılacağıdır. Bu nedenle de yönlendirme protokolleri bu katman düzeyinde çalışır. Katman 4 (Taşıma Katmanı): Oturum katmanından aldığı veriyi küçük birimlere böler ve ağ katmanına aktarır. Uçtan uca bağlantı kurulması, hata kurtarma ve akış denetimi sağlar. Gelen verinin doğruluğunu denetler ve verinin taşınması sırasında oluşan hataları ortaya çıkarır. Katman 5 (Oturum Katmanı): Uygulamalar arasında oturum açma, sürdürme ve kapama görevlerini yerine getirerek, uygulamalar arası iletişimi ve erişim denetimini sağlar. Katman 6 (Sunum Katmanı): Uygulamadan bağımsız olarak, verinin geçirmesi gereken sıkıştırma, kod dönüşümü, şifreleme, şifre çözme gibi işlemleri gerçekleştirir. Bu katmanda gelen paketler bilgi haline dönüştürülür. Yani sunum katmanı, iletilen verinin söz dizimi ve anlamıyla ilgilidir. Katman 7 (Uygulama Katmanı): Bu katman kullanıcıya en yakın katmandır. Kullanıcıların uygulama yazılımları, veri tabanları, elektronik posta gibi programlar aracılığıyla OSI sistemine erişimini sağlar. Uygulama katmanının bir başka işlevi de dosya aktarımını sağlamaktır (Dosya Aktarım Protokolü – File Transfer Protocol - FTP). Farklı dosya sistemleri arasında; dosya adlandırma, metin satırı gösterimi gibi konulardaki farklılıkların yarattığı uyumsuzluklar olabilir. İki farklı sistem arasında böyle bir dosyanın aktarılmasını sağlamak, uygulama katmanının işlevleri arasındadır (Baykal, 2005).

Şekil 3.7. OSI Katmanları ve Yapısı.

Linux ağ dünyasında da kendisini kanıtlamış bir işletim sistemidir. Üzerinde birden fazla ağ arayüzü bulunan Linux makineyi yönlendirici (router) veya güvenlik duvarı (firewall) olarak yapılandırmak ve kullanmak mümkündür. Piyasadaki birçok ticari yönlendirici ve güvenlik duvarında Linux işletim sistemleri kullanılmaktadır. Linux sistemlerde bu işlemleri gerçekleştirmek daha kolay ve güvenlidir. Linux sürekli güncellenen bir yapıda olduğu için, kullanıcıların her zaman en güncel ve en güvenli bir yapıda hizmet almasını sağlama amacı taşımaktadır (Özbilen, 2013).

 Not: İzinsiz alınan her yazı haktır. Kaynak belirtilerek istenildiği kadar içerikler kullanılabilir.

 

KAYNAKLAR DİZİNİ
Alakoç, Z. (1998). İşletim Sistemleri, Açık Sistemler(OSI) ve Bir Uygulama (Linux). Sivas: Cumhuriyet Üniversitesi Sosyal Bilimler Enstitüsü.
Ambainis, A., Jakobsson, M., ve Lipmaa, H. (2004). Cryptographic randomized response techniques. Public Key Cryptography, Lecture Notes in Computer Science, 425–438.
Angenendt, R., Membrey, P., ve Verhoeven, T. (2009). The Definitive Guide to CentOS. Apress.
Babaoğlu, A. (2009). Kriptolojinin Geçmişi Bir Şifreleme Algoritması Kullanmadan Önce Son Kullanım Tarihine Bakın! Tübitak Bilim ve Teknik, 24-27.
Batten, L. M. (2013). Public Key Cryptography. Hoboken, New Jersey: John Wiley ve Sons, Inc.
Baykal, N. (2005). Bilgisayar Ağları. Ankara: Sas Bilişim Yayınları.
Buluş, H. N. (2006). Temel Şifreleme Algoritmaları ve Kriptanalizlerinin İncelenmesi. Edirne: Trakya Üniversitesi Fen Bilimleri Enstitüsü.
Canbek, G., ve Sağıroğlu, Ş. (2006). Bilgi,Bilgi Güvenliği ve Süreçleri Üzerine Bir İnceleme. Politeknik Dergisi, 165-174.
Conrad, E., Misenar, S., ve Feldman, J. (2010). Eleventh Hour CISSP. Syngress.
Çetin, G., ve Metin, B. (2005). Linux Ağ Yönetimi. Ankara: Seçkin Yayıncılık.
Çetin, Ö. (2006). Eliptik Eğri Kriptografisi. Ankara: Gazi Üniversitesi Fen Bilimleri Enstitüsü.
Çimen, C., Akleylek, S., ve Akyıldız, E. (2014). Şifrelerin Matematiği: Kriptografi. Ankara: ODTÜ Geliştirme Vakfı Yayıncılık.
Dahlgren, A., ve Jönsson, O. (2000). IPSec the Future of Network Security. Göteborg University School of Economics and Commercial Law, 32-35.
Devolder, I. (2012). Arch Linux Environment Setup How-to. Packt Publishing.
Dierks, T. (2008). The Transport Layer Security (TLS) Protocol. Rfc-5246.
Dinçel, T. (2011). Bilgisayar Öğreniyorum 2012. İstanbul: Kodlab Yayınları.
Dwork, C., McSherry, F., Nissim, K., ve Smith, A. (2006). Calibrating noise to sensitivity in private data analysis. TCC Lecture Notes in Computer Science, 265-284.
Efe, A. (2006). Yeni nesil internet protokolü'ne(IPv6) geçişle birlikte internet saldırılarının geleceğine yönelik beklentiler. Akademik Bilişim 2006, (s. 134 Numaralı Bildiri). Denizli. http://ab.org.tr/ab06/bildiri/134.doc adresinden alındı

Elmas, H. (2013). Bulut Teknolojisinin Uygulama Sunucularının Yönetimi ve Performansı Üzerindeki Etkisi. İstanbul: İstanbul Üniversitesi Fen Bilimleri Enstitüsü.
Eminağaoğlu, M., ve Gökşen, Y. (2009). Bilgi Güvenliği Nedir, Ne Değildir, Türkiye'de Bilgi Güvenliği Sorunları ve Çözüm Önerileri. Dokuz Eylül Üniversitesi Sosyal Bilimler Enstitüsü Dergisi, 01-15.
Fischlin, M., Lehmann, A., ve Wagner, D. (2010). Hash Function Combiners in TLS and SSL. The Cryptographers' Track at the RSA Conference 2010 (s. 268-283). San Francisco: Springer-Verlag Berlin Heidelberg.
Gülaçtı, E. (2006). Açık Anahtar Alt Yapısı Eğitim Kitabı. Tübitak Ulusal Elektronik ve Kriptoloji Araştırma Enstitüsü.
Güngör, M., ve Evren, G. (2002). İnternet Sektörü ve Türkiye İncelemeleri. Ankara: Telekomünikasyon Kurumu Tarifeler Dairesi Başkanlığı.
Güvensan, M. A. (2006). Linux İşletim Sistemi Çekirdeği İle Bütünleşik Bir Kriptografik Sistemin Tasarımı ve Gerçeklenmesi. İstanbul: 2006.
Hobson, J. (2013). Centos 6 Linux Server Cookbook. Packt Publishing.
Hunter, P. (2004). Linux security: separating myth from reality. Network Security, 8-9.
Kahn, D. (1996). The Codebreakers: The Story of Secret Writing. Scribner.
Kanat, A. (2014, 04 25). Dağıtımlar Klavuzu. www.linux.org.tr: http://www.linux.org.tr/dagitimlar-kilavuzu/ adresinden alındı.
Kara, O. (2009). II. Dünya Savaşından Günümüze Kriptoloji: Enigmadan AES'e Şifreleme. Tübitak Bilim ve Teknik, 28-33.
Keyman, E., ve Yıldırım, M. (2014). Kriptolojiye Giriş Ders Notları . Ankara: Oddü Uygulamalı Matematik Enstitüsü Kriptografi Bölümü.
Kırımlı, M. (2007). Açık Anahtar Kriptografisi ile Sayısal İmza Tasarımı ve Uygulaması. Ankara: Gazi Üniversitesi Fen Bilimleri Enstitüsü.
Kleidermacher, D., ve Kleidermacher, M. (2012). Embedded Systems Security. Elsevier Inc.
Maurer, U. M. (1992). A universal statistical test for random bit generators. Journal of Cryptology, 89-105.
Menezes, A. J., Oorschot, P. C., ve Vanstone, S. A. (1997). Handbook of Applied Cryptography. New York: CRC.
Nabiyev, V. V. (2013). Teoriden Uygulamaya Algoritmalar. P. V. Nabiyev içinde, Teoriden Uygulamaya Algoritmalar (s. 29-39). Ankara: Seçkin Yayınevi.
KAYNAKLAR DİZİNİ (devam)
Negus, C., ve Johnson, E. F. (2009). Fedora 10 and Redhat Enterprise Linux. Indianapolis: Wiley Publishing Inc.
Öğün, M. N., ve Kaya, A. (2013). Siber Güvenliğin Milli Güvenlik Açısından Önemi ve Alınabilecek Tedbirler. Güvenlik Stratejileri Dergisi, 145-181.
Özbilen, A. (2013). Linux Sistem ve Ağ Yönetimi. İstanbul: Pusula Yayınları.
Panek, W., ve Wentworth, T. (2010). Mastering Microsoft Windows 7 Administration. Indianapolis: John Wiley & Sons Publishing.
Rankin, K. (2012). DevOps Troubleshooting. Pearson Education Inc.
Robichaux, k. (2005). The Definitive Guide to Exchange Disaster Recovery and Availability. Realtime Publishers.
Sarıkaya, K. (2012). Ssl/Tls Protokolü İçin Parolaya Dayalı İstemci Doğrulamanın Elgamal Ve Chebyshev Polinomları İle Gerçekleştirimi. Ankara: Hacettepe Üniversitesi Fen Bilimleri Enstitüsü.
Silberschatz, A., Galvin, P. B., ve Gagne, G. (2013). Operating System Concepts. John Wiley & Sons Inc.
Stair, R., ve Reynolds, G. (2009). Fundamentals Of Information Systems. Boston: Cengage Learning.
Thomas, S. A. (2000). SSL & TLS Essential Securing the Web. Canada: John Wiley & Sons Inc.
Tuncal, T. (2008). Bilgisayar Güvenliği Üzerine Bir Araştırma ve Şifreleme Deşifreleme Üzerine Uygulama. İstanbul : Maltepe Üniversitesi Fen Bilimleri Enstitüsü.
Tutkun, H. K. (2012). Network Sistemleri Sistem Yöneticisinin El Kitabı. Ankara: Seçkin Yayıncılık.
Ulutürk, A. (2010). Gelişmiş Şifreleme Standardı. Ankara: Gazi Üniversitesi Fen Bilimleri Enstitüsü.
Vacca, J. R. (2013). Computer and Information Security Handbook (Second Edition). Syngress.
W3techs. (2014, 04 01). Usage of operating systems for websites. W3techs.com: http://w3techs.com/technologies/overview/operating_system/all adresinden alındı.
Wikipedia. (2013, 12 20). Eniac. 02 14, 2014 tarihinde Wikipedia: http://tr.wikipedia.org/wiki/ENIAC adresinden alındı.
Wikipedia. (2014, 03 17). Tabulating_machine. 03 27, 2014 tarihinde Wikipedia: http://en.wikipedia.org/wiki/Tabulating_machine adresinden alındı.