# İnternet anahtar değişim protokolü
İnternet anahtar değişim protokolü ya da Internet Key Exchange (IKE ya da IKEv2) internet üzerinde güvenli bir şekilde veri alışverişi için kullanılan anahtarların değişimini sağlayan protokoldür.
Bu protokolde her iki kullanıcı bir bilgi değişimi yapılmadan önce gizli bir anahtar üzerinde anlaşabilirler. Bu protokol genel olarak VPN için kullanılır. Bu anahtar değişim protokolünü her iki tarafta kimliğini doğrulama ve aralarında bir iletişim oturumu şifreleme için kullanabilirler. Karşılıklı doğrulama için anahtar alt yapısı kullanılır.
IP (internet protokol) üzerinde çalışan ve bir güvenlik protokolü olan IPSEC'in ("internet protokol security") bir parçası olarak geliştirilmiştir. Asıl amacı internet ağı üzerinde güvenli şifreleme için kullanılan anahtarları değiştirmektir. Bu değişim için Diffie-Hellman anahtar değişimi algoritması yaygın olarak kullanılır. Bu algoritma 500. porttan iletişim sağlayan UDP paketleri aracılığıyla her iki kullanıcının anahtarlarının değişimlerini sağlar. Buna örnek olarak AES şifrelemesi gösterilebilir. Bu şifreleme ile iki kullanıcı arasında sadece 2-3 adımda güvenli bir iletişim kanalı oluşturulabilir.
IKE'de bulunan bazı eksiklikler nedeniyle IKEv2 adında ikinci bir IKE sürümü çıkarılmıştır. IKEv2, Windows 7.0, Windows Server 2008 tarafından tam destekle karşılanmakla birlikte BSD tarafından da destek görmüştür. Hatta burada açık kaynak kodlu bir geliştirme ortamı oluşturulmuştur.
İnternet Anahtar Değişimi (IKE veya IKEv2), IPsec protokolü için bir güvenlik ilişkisi (SA) kurmak için kullanılan bir protokoldür. IKE Oakley protokolu ile ISAKMP üzerine inşa edilmiştir. IKE kimlik doğrulaması için X.509 sertifikasını kullanır. Türetilmiş gizli oturum anahtarını DNS (tercihen DNSSEC) ve Diffie-Hellman anahtar değişimini kullanarak yapar. Buna ek olarak, bağlanılacak her bir eş (peer) için bir güvenlik politikası manuel olarak sürdürülmelidir.


## Tarihçe.
Internet Engineering Task Force (IETF) RFC 2407, RFC 2408 ve RFC 2409 olarak bilinen bir yayınlar dizisinde (Request for Comments)  Kasım 1998 yılında IKE' yi tanımladı:
  - RFC 2407 ISAKMP için Yorumlama Internet IP Güvenlik Domain' i tanımlamıştır. 
  - RFC 2408 Internet Güvenlik Ortaklığı ve Anahtar Yönetimi Protokolü (ISAKMP).
  - RFC 2409 Internet Anahtar Değişimi (IKE)’ ni tanımlamış.
IKE, RFC4306 tarafından sürüm 2’ ye (IKEv2) Kasım 2005'te güncellenmiştir. Bazı açık ayrıntılar RFC4718 tarafından Ekim 2006'da netleştirilmiştir. Bu iki doküman artı ilave açıklamalar Eylül 2010'da yayımlanan güncellenmiş IKEv2 RFC5996 içine kombine edilmiştir. Bir sonraki güncelleme, Proposed Standart to Önerilen standarttan Internet standardına olan dokümanı yükseltmiştir ve RFC7296 olarak Ekim 2014'te yayımlanmıştır.
IETF' nin ana organizasynu, the Internet Society (ISOC) serbestçe Internet toplumunca kullanılabilen bu standartların telif hakkını korumuştur.


## Mimari.
En IPsec uygulamaları, kullanıcı alanında koşan  bir  IKE daemondan ve asıl IP paketleri işleyen kerneldeki bir IPsec yığınından oluşur.
Kullanıcı alanı daemonları, gerektiği gibi IPsec uç nokta adresleri, anahtarları ve sertifikaları gibi konfigürasyon bilgisi içeren yığın depolamaya kolay erişime sahiptir. Kernel modülleri, diğer taraftan, paketleri verimli ve minimum yük ile işleyebilir. Bu performans sebepleri için önemlidir.
IKE protokolü genellikle port 500 UDP paketleri kullanır ve genellikle her iki tarafta bir SA oluşturmak için 2-3 kez çevrede dönen 4-6 paketlere ihtiyaç duyar. Anlaşmalı anahtar malzeme daha sonra IPsec yığınına verilir. Örneğin bu, korunan IP uç noktaları ve portları belirleyen bilgi olan bir AES anahtarı olabilir.
IPsec yığını da, eğer gerekirse ilgili IP paketlerini durdurur ve gerektiği gibi bir şifreleme / şifre çözme uygular. Uygulamalar,  paketlerin nasıl durdurulduğuna göre çeşitlenir örneğin, bazıları sanal aygıtlar kullanır, diğerleri güvenlik duvarının dışından bir parça alır gibi.
IKEv1 2 faz içerir: faz 1 ve faz 2.


## IKEv1.
IKE faz 1'in amacı; iletişimi şifrelemek için paylaşılan gizli anahtarı oluşturmak için Diffie-Hellman anahtar değişimi algoritması kullanarak daha güvenli bir doğrulanmış bir IKE iletişim kanalı kurmaktır. Bu müzakere  tek çift yönlü ISAKMP Güvenlik Ortaklığında (SA) sonuçlandırılmıştır. Kimlik doğrulama işlemi  ya önceden paylaşılmış imzalar ya da ortak anahtar şifreleme kullanılarak yapılabilir. Faz 1 Ana Mod ve Agresif Mod'dan oluşur Ana Mod çiftlerin kimliklerini korur; Agresif Mod korumaz. Faz 2 boyunca; IKE çifleri, güvenlik ortaklığını IPSEC gibi diğer hizmetler adına müzakere etmek için faz 1 de kurulmuş güvenli kanalı kullanır. Müzakere en az iki tane tek yönlü güvenlik ortaklığıyla (bir gelen ve bir giden) sonuçlanır. Faz 2 yalnızca Hızlı modunda çalışır. 


## IKEv1 Sorunları.
IKE çok sayıda yapılandırma seçenekleri vardı ama tanınmış bir varsayılan durumda(evrensel uygulanan) otomatik müzakere için genel bir olanak yoktu. Sonuç olarak, IKE'deki her iki taraf tam güvenlik ortaklığı  türü üzerinde anlaşmaya vardı Onlar kurulamadı bir bağlantı oluşturmak istedi kurulamayan bir bağlantı yaratmak istediler. Eğer hata ayıklama rutii varsa, hata ayıklama çıkışını yorumlamak zor olduğu gerçeği ortaya çıktı.
Şifreleme parametresi:
Alice'in destekleyebildiği tüm algoritma kombinasyonları sunuluyor. (Çok fazla kombinasyon olabilir.)
Kimlik doğrulama:
Protokol mesajlarındaki belirli alanlar son turlarda imzalanmış şifrelenmiş / özetlenmiş.(Neden tamamı değil.)
Dahil değildir: Bob'un kabul ettiği parametreler(sorunlu)
Cookies :
Cookie koruması: Photuris Cookie'ye benzer
Karmaşıklık:
8 farklı protokol tanımlanır. (2 mod, her birinde kimlik doğrulama 4 tip)
Gereksiz yere esnek ve karmaşık.


## IKEv2.
IKE' nin bakımının ihtiyacı ve niyeti RFC4306' nın Ek-A' sında betimlenmiştir. Aşağıdaki sorunlar ele alınmıştır:
  - Daha az RFC: IKE' nin özellikleri en az 3 RFC' de kaplanmıştır. Bunların en az bir tanesi NAT geçişi ve diğer yaygın olarak kullanımda olan uzantıları dikkate alır. IKEv2, genel olarak NAT geçişi ve güvenlik duvarı geçişi için desteklemek üzere, bunları bir RFC' de bağlar.
  - Standart Hareketlilik desteği: IKev2 için hareketliliği desteklemek amaçlı standart bir uzantı (MOBIKE olarak adlandırılmıştır) vardır. IKEv2 uzantısının kullanımı ile, IPsec birden çok ana kullanıcılar ve mobil tarafından kullanılabilir.
  - NAT traversal: UDP port 4500' deki IKE' nin ve ESP' nin kapsüllemesi, bu protokollerin bir aygıt veya güvenlik duvarı üzerinden geçmesine izin verir. 
  - SCTP desteği: IKEv2 Internet Telephony VoIP’ de kullanılan SCTP protokolüne izin verir.
  - Basit bir mesaj alışverişi: IKEv2, IKE’ nin sekiz tane belirgin olarak farklı başlangıç değişim mekanizması sağladığı yerde, bir tane 4-mesajlı başlangıç değişim mekanizmasına sahiptir. Bu sekiz mekanizmanın her biri hafif avantaj ve dezavantajlara sahiptir.
  - Daha az şifreleme mekanizmaları: IKEv2 paketlerini korumak için kriptografik mekanizmalar kullanır. Bu paketler, IPsec ESP' nin IPsec paketlerini korumak için kullandığı paketlere benzer. Bu basit uygulamalara ve Ortak Kriterler ve FIPS 140-2 sertifikalara izin verir.  Bu Ortak Kriterler ve FIPS 140-2 ayrı ayrı onaylanmak için her bir kriptografik uygulamaya ihtiyaç duyar.
  - Güvenilirlik ve Devlet yönetimi: IKEv2, güvenilirlik sağlamak için sıra numaraları ve bildirimleri kullanır ve bazı hata işleme lojistiklerini ve paylaşılmış durum yönetimini zorunlu kullanır. IKE, güvenilirlik ölçümleri azlığı sebebi yüzünden ölü durum içinde sonlanabilir.  Bu ölçümlerde her iki parti, diğerinin sonuçlanmayan bir çözüm başlatacağını bekler. Çalışma yolları (Ölü-Çift Algılama gibi) geliştirilmiştir  fakat standartize edilmemiştir. Bu durum, çalışma yollarının farklı uygulamalarının her zaman uyumlu olmadığı anlamına gelmektedir.
Genel olarak; IKEv1 basitleştirildi, hatalar düzeltildi, belirsizlikler düzeltildi, IKEv1'e bağlı kalındı.
Kimlik doğrulama modları:
- Genel anahtar imzalar
- Önceden paylaşılan anahtarlar (PSK)
IKE SA + IPsec aynı protokolde kurulmuştur, 4 mesajda. (~ Phase 1)
Eklenebilen çocuk  SA'lar, gerektiğinde sadece (~ Faz 2)
DoS koruması için isteğe bağlı via cookies.
Kripto müzakereleri basitleştirilmiştir.


## Protokol Uzantıları.
IETF ipsecme çalışma grubu IKEv2 protokolü modernizasyonu ve yüksek hacimli üretim ortamlarında daha iyi adapte amacıyla, uzantıları bir dizi standart hale getirmiştir.
  - IKE oturumu yeniden başlatılması: tüm IKE kurulum işlemi (RFC 5723) geçmesi gerek kalmadan, bir hatadan sonra başarısız bir IKE / IPsec "oturumu" devam etmek için.
  - IKE yönlendirme: Gelen IKE istekleri yeniden yönlendirilmesini, basit yük dengeleme birden IKE uç noktaları arasında (RFC 5685) .
  - IPsec trafik görünürlüğü: Daha kolay (örneğin saldırı tespit sistemleri gibi) middleboxes debi (RFC 5840) analiz için yapım amacı ile, kimliği doğrulanmış ancak şifreli değildir ESP paketlerinin özel etiketleme.
  - Karşılıklı EAP kimlik doğrulama: IKE çiftlerinin  EAP-sadece (yani, sertifika-az) kimlik doğrulaması için destek  amaç, modern parola tabanlı kimlik doğrulama yöntemleri (RFC 5998) kullanılmak üzere izin vermektir.
  - Hızlı çarpışma algılama: Bir IKE eşlerin çarpışmasından dolayı  (RFC 6290) çöktü algıladığına kadar geçen süreyi en aza indirir.
  - Yüksek kullanılabilirlik uzantıları: Başarısızlık durumunda (RFC 6311) sonra düştü bağlantıları olasılığını azaltmak için, IPsec uç noktaları bir küme ve bir eş arasında IKE / IPsec düzey protokol senkronizasyonunu geliştirmek.


## Uygulamalar.
IKE,  Windows 2000, Windows XP, Windows Server 2003, Windows Vista ve Windows Server 2008’ teki Ipsec uygulamasının kısmı olarak desteklenir. ISAKMP/IKE uygulaması Cisco ve Microsoft tarafından geliştirilmiştir.
Microsoft Windows 7 ve Windows Server 2008 R2, MOBIKE (RFC 4555) gibi IKEv2’ (RFC 4306) yi de  "VPN Tekrarbağlan özelliği" sırasında kısmen destekler. (asAgile VPN olarak da bilir.)
ilişkili IKE yetenekleri ile IPsec' in  birçok açık kaynak uygulamaları vardır. Linux üzerinde, Openswan ve strongswan uygulamaları "pluto" olarak çağrılan bir IKE daemonu sağlar. Pluto, KLIPS veya NETKEY kernel tabanlı IPsec yığınlarına konfigüre olabilir. NETKEY, Linux2.6 kernelinin ana Ipsec uygulamasıdır.
Berkeley Yazılım Dağıtımları da bir IPsec uygulaması ve IKE daemonuna ve en önemlisi kriptografik hızlandırıcıları desteklemeyi daha kolay yapan bir kriptografik çerçeveye (OpenBSD Cryptographic Framework, OCF) sahiptir. OCF  yakın zamanda Linux' a taşınmıştır.
Ağ ekipman satıcılarının önemli bir kısmı kendi IKE daemonlarını (ve IPsec uygulamalarının) ya da birbirlerinden bir yığın lisans oluşturdu.
ICSA Labs, dünyanın dört bir yanından gelen 13 satıcıları ile 2007 yılının Mart ayında Orlando, FL' de en son IKEv2 Interoperability Workshop' unu düzenledi.