IPsec
İnternet Protokolü Güvenliği(IPsec), Internet Protokolü(IP) kullanılarak sağlanan iletişimlerde her paket için doğrulama ve şifreleme kullanarak koruma sağlayan bir protokol paketidir. IPsec, içinde bulundurduğu protokoller sayesinde, oturum başlarken karşılıklı doğrulama ve oturum sırasında anahtar değişimlerini gerçekleştirme yetkisine sahiptir. İki bilgisayar arasında(host-to-host), iki güvenlik kapısı arasında(network-to-network), bir güvenlik kapısı ve bir bilgisayar arasında(network-to-host) sağlanan bağlantıdaki veri akışını korumak için kullanılır.[1] IPsec kriptografik güvenlik servislerini kullanarak IP protokolü ile gerçekleştirilen bağlantıları korumak için kullanılır. Ağ seviyesinde doğrulama, veri kaynağı doğrulama,veri bütünlüğü, şifreleme ve replay saldırılarına karşı koruma görevlerini üstlenir.
TCP/IP protokolü geliştirilirken güvenlik üzerinde pek fazla durulmamıştı. Çünkü TCP/IP protokolünün bu denli yoğun ve standart olarak kabul edilip kullanılacağı düşünülmemişti. Bu nedenle verilerimiz ağ üzerinde savunmasız olarak ilerler ve birçok tehlikeyle karşılaşabilirler. Bu tehlikeler verilerimizin değiştirilmesi, verilerimizin kaybolması ve bununla beraber verilerimizin istenilen hedeflere ulaştırılamamasıdır. IPsec protokolü sayesinde verilerimiz ağ üzerinde güvenli bir şekilde ulaşmak istedikleri hedeflere ulaştırılır. IPsec protokolü IP protokollerinin güvenlik ihtiyaçlarını karşılamak için geliştirilmiş olan bir güvenlik protokolüdür.
Tarihçe
Yazılım IP Şifreleme Protokolü swIPe 1993 yılı aralık ayında, John Ioannidis ve takımı ile birlikte Columbia Üniversitesi ve AT&T Bell Labs işbirliği ile araştırılmaya başlandı.
1994 Temmuz ayında, Trusted Information Systems'da çalışmakta olan Wei Xu, bu araştırmaya devam ederek IP protokollerinin gelişmesine katkı sağladı ve protokolün BSDI platformuna uygulanmasını başarı ile sonuçlandırdı. Bu başarının ardından, protokolü Sun OS ve HP UX gibi UNIX tabanlı sistemlere de uyarladı. DES ve 3-DES protokollerinin yavaş çalışması, araştırma sırasında karşılaştığı zorluklar arasındaydı. Yazılım şifrelemesi, Intel 80386 mimarisinde T1 hızını yakalayamıyordu. Wei Xu daha sonra, bugün tak-ve-çalıştır olarak bilinen otomatik cihaz sürücüsünü geliştirdi. Bu başarı ile birlikte Gauntlet Güvenlik Duvarı üretildi ve ticari olarak pazarlandı. 1994 aralık ayında, bu güvenlik duvarı ilk kez, Amerika Birleşik Devletleri'nde batı yakası ve doğu yakası arasında bazı siteler arasında güvenli bağlantı kurulması için kullanıldı.[2]
Bir diğer IP Kapsüllenmiş Güvenlik Yükü, Naval Araştırma Laboratuvarlarında DARPA tarafından desteklenen bir proje olarak araştırılmış ve IEFT SIPP çalışma grubu tarafından SIPP ye güvenlik uzantısı olarak tasarlanmış ve 1993 Aralık ayında yayımlanmıştır. Kapsüllenmiş Güvenlik Yükü, ilk olarak Amerika Birleşik Devletlerini Savunma Bakanlığı SP3D protokolünden elde edilmiş, sanılanın aksine ISO Ağ Katmanı Güvenlik Protokolünden elde edilmemiştir.SP3D protokolünün özellikleri, NIST tarafından yayımlanmış, fakat Amerika Birleşik Devletlerini Savunma Bakanlığının Güvenli Bilgi Ağı Sistemi projesi tarafından tasarlanmıştır. Güvenlik Doğrulama Başlığı daha önce Basit Ağ Yönetim Protokolünün 2. Versiyonu için çalışan önceki IETF standartları tarafından elde edilmiştir.
1995 te, IEFT deki IPsec çalışma grubu ücretsiz kullanılabilen, Güvenli Bilgi Ağı Sistemi projesinde NSA sözleşmesi altında geliştirilen protokollerin incelenmiş versiyonlarını oluşturmaya başladı. Güvenli Bilgi Ağı Sistemi projesi NIST tarafından yayımlanan Güvenlik Protokolü Katmanı 3 tarafından tanımlanmış ve ISO Ağ Katmanı Güvenlik Protokolünün temellerini oluşturmuştur. Güvenlik Protokolü Katmanı 3 ün anahtar yönetimi IPsec komitesinde devam eden çalışmalara bir referans sağlayan Ağ Yönetim Protokolü tarafından desteklenmiştir.
IPsec IETF tarafından standartlaştırılmıştır.
Güvenlik Mimarisi
IPsec aşağıdaki protokolleri kullanarak çeşitli işlevler sağlamaktadır.
- Doğrulama Başlığı: Bağlantısız olarak IP datagramları üzerinde bütünlük ve kaynak doğrulaması ve replay saldırılarına karşı koruma sağlar.[3][4]
- Kapsüllenmiş Güvenlik Yükü: Doğrulama Başlığının servislerinin yanı sıra, bir de veri gizliliği ve sınırlı olarak trafik akışı gizliliği sağlar.[1]
- Güvenlik Ortaklığı: Doğrulama Başlığı ve Kapsüllenmiş Güvenlik Yükü protokolleri için gerekli bilgileri sağlar ve içerisinde kullanılmak üzere çeşitli protokoller bulunur. İnternet Güvenlik Ortaklığı ve Anahtar Yönetimi Protokolü(ISAKMP) doğrulama ve anahtar değişimi için bir çatı(framework) sağlar.[5]
Doğrulama Başlığı
Doğrulama Başlığı IPsec protokol paketinin bir parçasıdır ve bağlantısız olarak bütünlük ve kaynak doğrulaması sağlar. Ayrıca isteğe bağlı olarak kayan pencere tekniğini kullanarak replay saldırılarına karşı koruma sağlar ve bunu yaparken eski paketleri düşürür.
- IPv4 kullanıldığında, IP paket yükünün ve IP başlığındaki alanlarından iletim sırasında değiştirilebilecek olanları hariç tümünü koruma altına alır. Ayrıca bu koruma, IP Güvenlik Opsiyonu(RFC-1108) gibi, IP opsiyonlarını da kapsar. Bahsedilen iletim sırasında değiştirilebilecek IPv4 başlığı alanları şunlardır; DSCP/ToS, ECN, bayraklar, Bölüm Ofseti, TTL ve Başlık Sağlaması.[3]
- IPv6 kullanıldığında, IP başlığının çoğunu, kendisine ait olan başlığı, değişken olmayan ek başlık alanlarını ve IP paket yükünü korur. IP başlığındaki şu değişken alanlarda koruma sağlamaz: DSCP, ECN, Akış Etiketi, ve Atlama Limiti.[3]
Doğrulama Başlığı IP protokolünün üzerinde çalışır ve IP protokol numarası olarak 51 numarasını kullanır. Aşağıda Doğrulama Başlığı'nın nasıl oluşturulduğu gösterilmektedir.
Offsets | Octet16 | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Octet16 | Bit10 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
0 | 0 | Sonraki Başlık | Yük Uzunluğu | Rezerve | |||||||||||||||||||||||||||||
4 | 32 | Güvenlik Parametreleri İndeksi (SPI) | |||||||||||||||||||||||||||||||
8 | 64 | Sıra Numarası | |||||||||||||||||||||||||||||||
C | 96 | Bütünlük Kontrol Değeri (ICV) … | |||||||||||||||||||||||||||||||
… | … |
- Sonraki Başlık(8 bit): Hangi üst katman protokolünün korunduğu bilgisi burada yer alır ve değerini IP protokol numaraları listesinden alır.
- Yük Uzunluğu(8 bit): Doğrulama Başlığının uzunluğu. IPv6 ve IPv4 prtokollerinden hangisinin kullanıldığına göre değeri farklılık gösterir.
- Rezerve(16 bit): Gelecekteki kullanımlar için boş bırakılmıştır ve değeri şu an için sıfırdır.
- Güvenlik Parametreleri İndeksi(32 bit): Alıcı tarafta, hedef IP adresi ile birlikte Güvenlik Ortaklığını tanımlamak için kullanılır.
- Sıra Numarası(32 bit): Replay saldırılarından korunma amaçlı kullanılan ve her gönderilen pakette 1 arttırılan, gönderilen pakete ait sıra numarasını içerir. Bir kez kullanılan sıra numarası tekrar kullanılmaz ve eğer maksimum değerini geçiyorsa yeni bir Güvenlik Ortaklığının kurulması gerekmektedir.[3]
- Bütünlük Kontrol Değeri: Değişken uzunluklu bir kontrol değeridir ve bütünlük kontrolü için, alıcı tarafta kullanılır.
Kapsüllenmiş Güvenlik Yükü
Kapsüllenmiş Güvenlik Yükü protokolü, IPsec protokol paketinin bir parçasıdır, kaynak doğrulama, bütünlük ve gizlilik sağlar. Sadece gizlilik ve sadece doğrulama gerçekleştirme ayarına sahiptir fakat sadece gizlilik ayarı güvenlik açıklarına yol açtığı önerilmemektedir.[6][7][8] Doğrulama Başlığının aksine, taşıma modu ile kullanıldığında tüm IP paketi üzerinde bütünlük ve doğrulama sağlamamaktadır. Fakat tünel modu ile kullanıldığında, tüm paket kapsülleneceği ve yeni bir başlık ekleneceği için kapsüllenen paketin tamamında koruma sağlamaktadır.
Kapsüllenmiş Güvenlik Yükü protokolü, IP katmanının üzerinde çalışır ve IP protokol numarası olarak 50 numarasını kullanır. Aşağıda Kapsüllenmiş Güvenlik Yükü'nün nasıl oluşturulduğu gösterilmektedir.
Offsets | Octet16 | 0 | 1 | 2 | 3 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
Octet16 | Bit10 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 |
0 | 0 | Güvenlik Parametreleri İndeksi (SPI) | |||||||||||||||||||||||||||||||
4 | 32 | Sıra Numarası | |||||||||||||||||||||||||||||||
8 | 64 | Yük Verisi | |||||||||||||||||||||||||||||||
… | … | ||||||||||||||||||||||||||||||||
… | … | ||||||||||||||||||||||||||||||||
… | … | Dolgu (0-255 octets) | |||||||||||||||||||||||||||||||
… | … | Dolgu Uzunluğu | Sonraki Başlık | ||||||||||||||||||||||||||||||
… | … | Bütünlük Kontrol Değeri (ICV) … | |||||||||||||||||||||||||||||||
… | … |
- Güvenlik Parametreleri İndeksi(32 bit): Alıcı tarafta, hedef IP adresi ile birlikte Güvenlik Ortaklığını tanımlamak için kullanılır.
- Sıra Numarası(32 bit): Replay saldırılarından korunma amaçlı kullanılan ve her gönderilen pakette 1 arttırılan, gönderilen pakete ait sıra numarasını içerir. Bir kez kullanılan sıra numarası tekrar kullanılmaz ve eğer maksimum değerini geçiyorsa yeni bir Güvenlik Ortaklığının kurulması gerekmektedir.[3]
- Yük Verisi(değişken uzunlukta): Korunmakta olan IP paketi burada tutulmaktadır. Paket ile beraber, korunma gerçekleştirilirken kullanılan diğer veriler de bu alanda bulunur.
- Dolgu(0-255 oktet): Şifreleme aşamasında kullanılacak blok şifreleyicinin veri üzerinde düzgün çalışabilmesi için yük verisinin genişletecek dolgu.
- Dolgu Uzunluğu(8 bit): Bu alanda dolgu alanındaki dolgunun uzunluğu tutulmaktadır.
- Sonraki Başlık(8 bit): Hangi üst katman protokolünün korunduğu bilgisi burada yer alır ve değerini IP protokol numaraları listesinden alır.
- Bütünlük Kontrol Değeri: Değişken uzunluklu bir kontrol değeridir ve bütünlük kontrolü için, alıcı tarafta kullanılır.
Güvenlik Ortaklığı
IPsec tarafından sağlanan güvenlik politikası kaynaktan hedefe gönderilecek olan her veri paketine uygulanır. Bu güvenlik politikası iki veritabanın etkileşimi ile belirlenir. Bu veritabanları Güvenlik Ortaklığı Veritabanı(Security Assocation Database) ve Güvenlik Politikası Veritabanı(Security Policy Database) olarak adlandırılır.
Güvenlik Ortaklığı
Güvenlik Ortaklığı(Security Association) alıcı ve gönderici arasında kurulmuş olan mantıksal bağlantıya verilen isimdir. Bu bağlantı tek yönlü olarak sağlanmaktadır. IPsec güvenlik işlemleri bu bağlantı içerisinde gönderilen veri paketleri üzerine uygulanır. Eğer sistemdeki alıcı ve göndericinin çift yönlü veri alışverişi yapmaları gerekiyorsa, iki farklı Güvenlik Ortaklığının kurulması gerekmektedir. Güvenik Ortaklıkları üç farklı değer ile birbirinden ayırt edilir;
- Güvenlik Parametreleri İndeksi: 32-bit değere sahip olan bu indeks sayesinde, gönderici tarafından iletilmiş paketin alıcı tarafında doğru Güvenlik Ortaklığı ile ilişkilendirilmesi sağlanır. Bu ilişkilendirme sayesinde alıcı, veri paketi üzerinde gerçekleştireceği işlemleri belirler. Güvenlik Parametreleri İndeksi sadece yerel olarak bir anlama sahiptir. Bunun nedeni her Güvenlik Ortaklığına özel olmasıdır.
- IP Hedef Adresi: Bu değer ortaklığın kurulduğu uç, veri paketlerinin gönderileceği, noktanın IP adresini tutmaktadır. Bu IP adresi, bir son kullanıcı sistemini gösterebileceği gibi, bir güvenlik duvarını veya bir yönlendiriciyi de göstermekte olabilir.
- Güvenlik Protokolü Göstergesi: Gönderilen veri paketinin IP başlığı içerisinde bulunan bu değer, alıcıya, Güvenlik Ortaklığının Doğrulama Başlığı veya Kapsüllenen Güvenlik Yükü protokollerinden hangisinin kullanıldığının bilgisini verir.
Güvenlik Ortaklığı Veritabanı
Her IPsec uygulmasında bulunması zorunlu bir veritabanı olan Güvenlik Ortaklığı Veritabanı, sistemden sisteme işleyişinde farklılık gösterebilir. Bu farklılıklar, IPsec protokolünü gerçekleştiren kişiler tarafından belirlenir.
Bu veritabanının amacı, sistemde bulunan Güvenlik Ortaklıklarını tutmaktır. Veritabanı içerisinde Güvenlik Ortaklıkları aşağıdaki parametrelere bağlı olarak tutulmakta ve ayırt edilmektedir;
- Güvenlik Parametreleri İndeksi: Güvenlik Ortaklığına verilmiş benzersiz bir göstergedir. Bu değer sayesinde Güvenlik Ortaklıkları birbirinden ayırt edilir ve gereken işlemlerde kullanılır. Eğer tutulan kayıt, sisteme giren bir Güvenlik Ortaklığına ait ise, bu gösterge sayesinde veri trafiği ilgili Güvenlik Ortaklığına yönlendirilir. Eğer tutulan kayıt, sistemden çıkan bir Güvenlik Ortaklığına ait ise, bu değer gönderilecek veri paketinin Doğrulama Başlığı veya Kapsüllenen Güvenlik Yükü başlıklarını oluşturmak için kullanılır.
- Sıra Numarası Sayacı: Doğrulama Başlığı veya Kapsüllenen Güvenlik Yükü başlıklarının içerisinde bulunan sıra numarası değerini oluşturmak için kullanılan, 32-bit değere sahip bir göstergedir.
- Sıra Sayacı Taşması: Bu alan bir boole değere sahip bir bayraktır. Kullanılmasının amacı, eğer Sıra Numarası Sayacında bir taşma meydana gelirse, sistemin veri trafiğini durdurup durdurmaması gerektiğini göstermektedir.
- Yeniden Gönderme Karşıtı Pencere: Yeniden Gönderme saldırılarından korunmak amacıyla kullanılmakta olan bir değerdir.
- Doğrulma Başlığı Bilgisi: Bu alanda doğrulama için kullanılacak olan algoritma, yaşam süreleri ile beraber protokol tarafından kullanılacak anahtarlar ve Doğrulama Başlığı hakkında gerekli diğer bilgiler yer alır. Eğer IPsec, Doğrulama Başlığı protokolü ile kurulmuşsa Güvenlik Ortaklığı Veritabanı içerisinde bu alanın bulunması zorunludur.
- Kapsüllenen Güvenlik Yükü Bilgisi: Bu alanda doğrulama ve şifreleme için kullanılacak algoritma, yaşam süreleri ile birlikte kullanılacak anahtarlar ve Kapsüllenen Güvenlik Yükü hakkında gerekli diğer bilgiler yer alır. Eğer Ipsec, Kapsüllenen Güvenlik Yükü protokolünü kullanıyorsa, bu alanın Güvenlik Ortaklığı Veritabanı içerisinde bulunması zorunludur.
- IPsec Protokolü Operasyon Modu: IPsec protokolünün operasyon modlarından(Taşıma veya Tünel Modu) hangisinin kullanıldığını göstermektedir.
- Maksimum İletim Birimi: Bir veri paketi gönderilirken, parçalamaya uğramayacak en küçük paket boyutunu gösterir.
- Güvenlik Ortaklığı Yaşam Süresi: Bu alan, Güvenlik Ortaklığının yaşam süresini tutmakta ve yaşam süresi dolan ortaklığın hangi işleme tabii tutulacağını göstermektedir. Bu işlemler, ortaklığın tekrar kurulması veya tamamen silinmesi olabilir.
Güvenlik Politikası Veritabanı
Güvenlik Politikası Veritabanı(Security Policy Database), hangi veri trafiğinin hangi Güvenlik Ortaklığı ile ilişkili olduğunu belirten kayıtlara sahip olan bir veritabanıdır. Aynı zamanda veri paketleri üzerinde hangi koruma işlemlerinin gerçekleştirileceğini de göstermektedir. Bu veritabanında bulunan her kayıt, kaynak ve hedef IP adresleri ve port numaraları ile ayırt edilir. Veri paketleri işlenirken geçtiği aşamalar şu şekilde sıralanabilir; Öncelikle Güvenlik Politikası Veritabanı ilgili kayıt için aranır ve kayıtın gösterdiği Güvenlik Ortaklığı elde edilir. Daha sonra Güvenlik Ortaklığının sahip olduğu Güvenlik Parametreleri İndeksi bulunur. Bu indeks sayesinde pakete uygulanacak, kullanılan protokollerle ilişkili, işlemler elde edilir. Bu bilgiler doğrultusunda IPsec koruma işlemleri veri paketine uygulanır.
Operasyon Modları
IPsec protokolü uygulanırken kullanılan Doğrulama Başlığı ve Kapsüllenen Güvenlik Yükü, aşağıda anlatılan iki modu desteklemektedir.
Taşıma Modu
Bu mod kullanıldığında, IPsec, Ağ Katmanının üzerinde yer alan Taşıma Katmanı ve Uygulama Katmanına koruma sağlamaktadır. IP paketinin yükü, IPsec başlığı ile genişletilmiştir. Genişletilmiş bu başlık daha sonra Ağ Katmanı protokolü olan IP protokolünün başlığı ile çevrelenir. Taşıma modu, IP paketinin yüküne, şifreleme ve/veya kimlik doğrulama işlemlerini uygulayarak çalışmaktadır. Bu mod, genellikle iki bilgisayar arasında, örnek olarak bir alıcı ve bir sunucu verilebilir, uçtan uca iletişimin korunması amaçlı kullanılır.
Doğrulama Başlığı ile kullanıldığında, IP paketinin yükünün ve IP paket başlığının belirlenen kısımlarının doğrulanması gerçekleştirilir.
Kapsüllenen Güvenlik Yükü ile kullanıldığında, IP paketinin yükü şifrelenir ve opsiyonel olarak doğrulama işlemi gerçekleştirilir. Fakat IP paket başlığı üzerinde bu işlemler gerçekleştirilmez.
Tünel Modu
Bu mod, tüm IP paketi üzerinde koruma sağlamaktadır. IP paketi üzerine Doğrulama Başlığı ve Kapsüllenen Güvenlik Yükü alanları eklenir. Oluşan yeni pakete yeni bir IP paket yükü gibi davranılır ve tekrar yeni bir IP başlığı ile çevrelenir. Orijinal IP paketi, içeride kalan yük içerisindedir. Paket bir noktadan diğerine iletilirken, iç içe oluşturulmuş bu yapı sayesinde, yol üzerindeki yönlendiriciler, içerideki IP paketini okuyamaz ve değerlendiremezler. Orijinal IP paketininde bulunan kaynak ve hedef adresleri, gönderilmekte olan pakette bulunan kaynak ve hedef adreslerinden farklı olacağı için bu durum, güvenliğe katkıda bulunmaktadır. Tünel modu, Security Association'ın tek veya iki tarafının da, bir güvenlik duvarı veya IPsec uygulanmış bir yönlendirici gibi, bir güvenlik geçidi(gateway) ise kullanılmaktadır.
Doğrulama Başlığı ile kullanıldığında, gönderilen paket içerisinde bulunan tüm IP paketi üzerinde doğrulama işlemi gerçekleştirilir. Buna içerideki IP paketinin başlığı da dahildir. Dışarıda bulunan IP paket başlığının belirli kısımlarının da doğrulanması gerçekleştirilir.
Kapsüllenmiş Güvenlik Yükü ile kullanıldığında, gönderilen paket içerisinde bulunan IP paketine şifreleme ve opsiyonel olarak doğrulama işlemleri gerçekleştirilir.
Bu mod, VPN (Virtual Private Network) oluşturmak için kullanılmaktadır.
Paket İşleme
IPsec protokolü işlemleri, gönderilecek veya alınan her paket için ayrı ayrı uygulanır. Gönderilecek ve alınan paketler için detaylı adımlar aşağıda anlatılmıştır.
Gönderilecek Paketlerde
- IPsec Güvenlik Politikası Veritabanında gönderilecek olan bu pakete karşılık gelen kaydı arar. Eğer bir kayıt bulunamazsa paket düşürülür ve sistem hata mesajı ile yanıt verir.
- Eğer bir kayıt bulunduysa, kayıt içerisinde belirtilen politikaya bakılır. Bu politika, paketin düşürülmesi gerektiğini gösteriyorsa, paket düşürülür. Eğer paketin baypas edilmesi gerektiğini gösteriyorsa, paket herhangi bir IPsec işlemine tabii tutulmadan iletim işlemine başlanır. Eğer pakete koruma işlemlerinin uygulanması gerektiğini gösteriyorsa, Güvenlik Ortaklığı Veritabanında ilgili Güvenlik Ortaklığı aranır.
- Eğer bir kayıt bulunamazsa, Güvenlik Ortaklığı olmadığı anlaşılır ve İnternet Anahtar Değişimi protokolü ile sistem ve hedef arasında bir Güvenlik Ortaklığı oluşturulur. Bu ortaklık Güvenlik Ortaklığı Veritabanına kayıt edilir.
- Güvenlik Ortaklığı kaydı -önceden oluşturulmuş veya yeni oluşturulmuş- ile pakete uygulanacak işlemler hakkında bilgi elde edilmiş olur. Paket üzerine bu bilgiler doğrultusunda, şifreleme, doğrulama ve IPsec operasyon modu(Taşıma veya Tünel) uygulanır.
- İşlenen paket, Ağ Katmanına iletime başlanması üzere iletilir.
Alınan Paketlerde
- Alınan paketin, IPsec ile korunmakta olan bir paket olup olmadığı IP başlığındaki değerler yardımı ile belirlenir. Korumalı ve korumasız paketler üzerinde gerçekleştirilecek işlemler farklılık göstermektedir.
- Eğer paket korumasız ise, yani herhangi bir IPsec koruma işleminden geçmediyse, Güvenlik Politikası Veritabanı pakete karşılık gelen kayıt için aranır ve bu kayda göre paketin düşürüleceğine veya Taşıma Katmanına iletileceğine karar verilir.
- Eğer paket IPsec korumalı ise, Güvenlik Ortaklığı Veritabanı ilgili Güvenlik Ortaklığı için aranır. Kayıt bulunamazsa, paket düşürülür. Kayıt bulunursa, kayıt bilgilerine bakarak pakete Doğrulama Başlığı veya Kapsüllenmiş Güvenlik Yükü protokollerinin gerektirdiği işlemler uygulanır.
- Paket, Taşıma Katmanına iletilir.
IPsec Güvenlik Nasıl Sağlanır ?
IPSec’ in güvenlik mimarisini oluşturan üç temel unsur vardır:
1.Bütünlük (integrity); hedefe ulaşan verinin kaynaktan gelen veri ile aynı olup olmadığı kontrol edilir. Ağ üzerinden gönderilen mesajın gerçekten gönderilen mesaj olup olmadığını anlamak için, mesajı alan bilgisayarın hesapladığı mesaj özeti (message digest) değeri ile mesajı gönderinin ilettiği mesaj özeti değerleri karşılaştırılır. Sonuç farklıysa iletilen mesaja iletim sırasında müdahale edildiği anlaşılır. Mesajları özetlemek için MD5 ve SHA-1 algoritmaları kullanılır.
2.Kimlik doğrulama (Authentication); iletişimde bulunan her iki tarafın da birbirlerinin kimliklerinin doğrulanması için kullanılır. İletişimde bulunan bilgisayarların birbirlerinin kimliklerini doğrulamaları için aynı kimlik doğrulama metodunu kullanması gerekir. IPSec protokolünü kullanarak iletişim kuracak bilgisayarlar, kimlik doğrulama işlemi için çeşitli yöntemler kullanabilirler. Bunları şöyle sıralayabiliriz:
- Önpaylaşımlı anahtar (preshared key) (MS-CHAP)
- Kerberos (Windows tabanlı ağlar için)
- Sertifika yetkilisi (certificate authority)
3.Gizlilik (Confidentiality); gönderilen verinin ağ üzerinden şifrelenmiş bir şekilde iletilmesini belirtmek için kullanılır. Bu durumda, ağdaki paketler bir izleyici (sniffer) aracılığıyla yakalansalar bile içerikleri şifrelenmiş olduğu için taşınan verilerin üçüncü şahıslar tarafından okunması engellenmiş olur. Şifreleme işleminde en çok kullanılan yöntemler DES ve 3DES yöntemleridir.
Bu işlemler yapılırken veri paketi farklı algoritmalarla şifrelenir. Bu işleme Encrypiton denir. Veri paketi hedefe ulaştığında şifrelenen veri paketi açılır ve kullanılabilir hale getirilir. Bu işlemede Decryption denir.
IPsec çift mod end-to-end ise, İnternet Katmanı Internet Protokolü Suite Yaklaşık Katmanı 3 OSI modelde olduğu güvenlik düzeni işletim. SSL, TLS ve SSH gibi yaygın kullanımı, bazı diğer Internet güvenlik sistemleri, bu modellerin alt katmanlara faaliyet, SSL VPN bir örnek olmaktır. Çünkü trafiği korumak için kullanılabilir. Çünkü uygulama kullanımı ise IPsec kullanmak için tasarlanmış olması gerekmez. IPsec daha yığıtın bir alt düzey olarak bir at çalışma, esnek TLS / SSL veya diğer yüksek katman protokolleri bu düzeyde uygulamaların tasarım dahil olmalıdır.
Kriptografi Algoritmaları
Aşağıda IPsec içerisinde kullanım için tanımlanmış algoritmalar bulunmaktadır.
- HMAC-SHA1, bütünlük ve doğrulama için.
- TripleDES-CBC, gizlilik için.
- AES-CBC, gizlilik için.
- AES-GCM,gizlilik ve doğrulama için. İkisinin beraber kullanıldığında etkin sonuçlar vermektedir.
Daha fazla detay için: RFC-7321.
Yazılım Uygulamaları
IPsec desteği genellikle kernel içine, anahtar yönetimi ile birlikte uygulanır ve ISAKMP/IKE anlaşması kullanıcı uzayında gerçekleştirilir. PF_KEY Key Management API, Version 2 , uygulama tarafında anahtar yönetimi sağlayarak kernel içerisinde depolanmış Güvenlik Ortaklıklarının güncellenmesini sağlar.
Var olan IPsec uygulamaları genellikle Doğrulma Başlığı, Kapsüllenmiş Güvenlik Yükü ve İnternet Anahtar Değişimi(IKE) protokollerini içerisinde bulundurur. Sun Solaris ve Linux gibi UNIX tabanlı işletim sistemleri içerisinde PF_KEY versiyon 2'yi hazır olarak bulundurmaktadır.
Standartların Durumu
IPsec, IPv6 bağlamı ile geliştirilmiştir ve RFC-6434 dokümanın yayınlanmasından önce IPv6'nın bütün standartlarıyla uyumlu uygulamaları tarafından desteklenmesi gereklidir.[9] Ayrıca IPsec IPv4 standartları ile isteğe bağlı olarak kullanılabilir ama IPv6'nın yavaş uygulanmasından dolayı çoğunlukla IPv4 kullanılır.
IPsec protokolü, 1995'te yayınlanan RFC-1825 ve RFC-1829 dokümanlarında tanımlanmıştır. 1998 yılında, konsept olarak önceki dokümanlar ile aynı olsalar da, IPsec tanımı daha fazla mühendislik detayı içerecek şekilde RFC-2401 ve RFC-2412 dokümanlarıyla genişletilmiştir. Ek olarak, bir karşılıklı doğrulama ve anahtar yönetimi protokolü olan İnternet Anahtar Değişimi(IKE), Güvenlik Ortaklıklarını oluşturmak ve yönetmek için tanımlanmıştır. 2005 yılında, önceki dokümanları kapsayan ve İnternet Anahtar Değimi protokolünün ikinci versiyonu olan IKEv2 protokolünü anlatan RFC-4301 ve RFC-4309 dokümanları yayınlanmıştır.
2008 yılının ortasından beri bir IPsec bakım ve geliştirme grubu IETF içerisinde çalışmalarını sürdürmektedir.[10]
NSA Müdahalesi İddiası
2013 yılında Snowden sızıntılarının bir parçası olarak, Birleşik Devletler'in Ulusal Güvenlik Dairesi(NSA) tarafından, aktif olarak, hedeflerin kullandıkları ticari şifreleme sistemlerine, IT sistemlerine, ağlara ve son kullanıcı cihazlarına Bullrun programı kapsamında güvenlik açıkları yerleştirilmeye çalışıldığı yayınlandı.[11] NSA hedefinde olan şifreleme sistemlerinin birisinin de IPsec olduğu iddia edildi.[12]
OpenBSD IPsec paketi, açık kaynak kodlu ilk uygulama olması nedeniyle birçok kişi tarafından kullanıldı. OpenBSD'nin geliştirici takım lideri Theo De Raadt, 11 Aralık 2010 tarihinde, Gregory Perry'den bir mektup almıştır. Bu mektupta iddia edildiği üzere, FBI için çalışmakta olan Jason Wright ve takımı tarafından OpenBSD'nin şifreleme kodu içerisine arka kapılar ve anahtar sızdırma mekanizmaları konmuştur. 2010 yılında iletilen e-postada, Theo De Raadt en başta iddiaların gerçekliğine resmî bir açıklama vermedi fakat daha sonra e-posta'nın diğer kişilere iletilmesini üstü kapalı olarak destekledi.[13] Bu olanların üzerine Jason Wright yaptığı açıklamada, iddiaların asılsız olduğunu ve OpenBSD içerisine arka kapıların veya anahtar sızdırma mekanizmalarının yerleştirilmediğini söyledi.[14] Fakat birkaç gün sonra De Raadt, yapılan bu iddialara ve arka kapıların bulunduğuna inandığını duyurdu.[15] Bu olanlar, Snowden sızıntılarından önce gerçekleşmiştir.
IETF Dokümanları
Standartlar
- RFC 2403: The Use of HMAC-MD5-96 within ESP and AH
- RFC 2404: The Use of HMAC-SHA-1-96 within ESP and AH
- RFC 2405: The ESP DES-CBC Cipher Algorithm With Explicit IV
- RFC 2410: The NULL Encryption Algorithm and Its Use With IPsec
- RFC 2451: The ESP CBC-Mode Cipher Algorithms
- RFC 2857: The Use of HMAC-RIPEMD-160-96 within ESP and AH
- RFC 3526: More Modular Exponential (MODP) Diffie-Hellman groups for Internet Key Exchange (IKE)
- RFC 3602: The AES-CBC Cipher Algorithm and Its Use with IPsec
- RFC 3686: Using Advanced Encryption Standard (AES) Counter Mode With IPsec Encapsulating Security Payload (ESP)
- RFC 3947: Negotiation of NAT-Traversal in the IKE
- RFC 3948: UDP Encapsulation of IPsec ESP Packets
- RFC 4106: The Use of Galois/Counter Mode (GCM) in IPsec Encapsulating Security Payload (ESP)
- RFC 4301: Security Architecture for the Internet Protocol
- RFC 4302: IP Authentication Header
- RFC 4303: IP Encapsulating Security Payload
- RFC 4304: Extended Sequence Number (ESN) Addendum to IPsec Domain of Interpretation (DOI) for Internet Security Association and Key Management Protocol (ISAKMP)
- RFC 4307: Cryptographic Algorithms for Use in the Internet Key Exchange Version 2 (IKEv2)
- RFC 4308: Cryptographic Suites for IPsec
- RFC 4309: Using Advanced Encryption Standard (AES) CCM Mode with IPsec Encapsulating Security Payload (ESP)
- RFC 4543: The Use of Galois Message Authentication Code (GMAC) in IPsec ESP and AH
- RFC 4555: IKEv2 Mobility and Multihoming Protocol (MOBIKE)
- RFC 4806: Online Certificate Status Protocol (OCSP) Extensions to IKEv2
- RFC 4835: Cryptographic Algorithm Implementation Requirements for Encapsulating Security Payload (ESP) and Authentication Header (AH)
- RFC 4868: Using HMAC-SHA-256, HMAC-SHA-384, and HMAC-SHA-512 with IPsec
- RFC 4945: The Internet IP Security PKI Profile of IKEv1/ISAKMP, IKEv2, and PKIX
- RFC 5996: Internet Key Exchange Protocol Version 2 (IKEv2)
Deneysel RFC'ler
- RFC 4478: Repeated Authentication in Internet Key Exchange (IKEv2) Protocol
Bilgi Amaçlı RFC'ler
- RFC 2367: PF_KEY Interface
- RFC 2412: The OAKLEY Key Determination Protocol
- RFC 3706: A Traffic-Based Method of Detecting Dead Internet Key Exchange (IKE) Peers
- RFC 3715: IPsec-Network Address Translation (NAT) Compatibility Requirements
- RFC 4621: Design of the IKEv2 Mobility and Multihoming (MOBIKE) Protocol
- RFC 4809: Requirements for an IPsec Certificate Management Profile
- RFC 6027: IPsec Cluster Problem Statement
- RFC 6071: IPsec and IKE Document Roadmap
Eski RFC'ler
IPsec Yararları
IPsec protokolü bir güvenlik geçidine(gateway) -örnek olarak güvenlik duvarları ve yönlendiriciler verilebilir- uygulandığında, bu geçidin sahip olduğu trafiğe güvenlik ve koruma sağlaması için kullanılır. Dışarıdan gelen tüm trafiğin geçeceği güvenlik duvarına uygulanmış IPsec sayesinde, sisteme sızmaya veya güvenlik duvarını atlatmaya çalışan saldırganlar önlenebilir. IPsec, Taşıma ve Uygulama katmanlarının aşağısındaki bir katman olan Ağ Katmanı üzerinde çalıştığından dolayı, uygulamalar tarafından algılanmazlar. Yani IPsec uygulandıktan sonra sistem üzerinde çalışmakta olan uygulamaların değiştirilmesine gerek yoktur çünkü bilgisayarlar üzerinde çalışmakta olan işlemlere(process) Ağ Katmanından iletilecek yük formatı değişmeyecektir. Ayrıca, aynı nedenden dolayı, bu sistemdeki bir uygulamayı kullanmakta olan son kullanıcıların IPsec gerçekleştirildikten sonra eğitilmesine gerek yoktur. IPsec belirli kullanıcılara güvenlik sağlaması üzere düzenlenebilir. Bu kullanıcılar, dışarıdan çalışmakta olan çalışanlar olarak örneklendirilebilir.
Kaynakça
- IPsec
- Stallings, William (2014). Cryptography and Network Security: Principles and Practice (Sixth Edition). Pearson Education Limited. ISBN 0133354695
Dış bağlantılar
- VPN ve IPsec
- Çanakkale OnSekiz Mart Üniversitesi11 Haziran 2020 tarihinde Wayback Machine sitesinde arşivlendi.
- Çanakkale OnSekiz Mart Üniversitesi Bilgisayar Mühendisliği22 Ekim 2013 tarihinde Wayback Machine sitesinde arşivlendi.
- TOBB Ekonomi ve Teknoloji Üniversitesi
- TOBB Ekonomi ve Teknoloji Üniversitesi Bilgisayar Mühendisliği Bölümü
Kaynakça
- Kent, S.; Atkinson, R. (November 1998). IP Encapsulating Security Payload (ESP). IETF. RFC 2406.
- Trusted Information Systems
- Kent, S. (December 2005). IP Authentication Header. IETF. RFC 4302.
- Kent, S.; Atkinson, R. (November 1998). IP Authentication Header. IETF. RFC 2402.
- The Internet Key Exchange (IKE), RFC 2409, §1 Abstract
- Paterson, Kenneth G.; Yau, Arnold K.L. (2006-04-24)."Cryptography in theory and practice: The case of encryption in IPsec" (PDF). Eurocrypt 2006, Lecture Notes in Computer Science Vol. 4004. Berlin. pp. 12–29. Retrieved 2007-08-13.
- Bellovin, Steven M. (1996). "Problem Areas for the IP Security Protocols" (POSTSCRIPT). Proceedings of the Sixth Usenix Unix Security Symposium. San Jose, CA. pp. 1–16. Retrieved2007-07-09.
- Degabriele, Jean Paul; Paterson, Kenneth G. (2007-08-09)."Attacking the IPsec Standards in Encryption-only Configurations" (PDF). IEEE Symposium on Security and Privacy, IEEE Computer Society. Oakland, CA. pp. 335–349. Retrieved 2007-08-13.
- RFC 6434, "IPv6 Node Requirements", E. Jankiewicz, J. Loughney, T. Narten (December 2011)
- ipsecme charter
- "Secret Documents Reveal N.S.A. Campaign Against Encryption". New York Times.
- John Gilmore. "Re: [Cryptography] Opening Discussion: Speculation on "BULLRUN"".
- Theo de Raadt. "Allegations regarding OpenBSD IPSEC".
- Jason Wright. "Allegations regarding OpenBSD IPSEC".
- Theo de Raadt. "Update on the OpenBSD IPSEC backdoor allegation".