# WireGuard
WireGuard, yönlendirilmeli veya köprülü ağ yapılandırmalarında noktadan noktaya (P2P) güvenli bağlantılar oluşturmak için sanal özel ağ (VPN) tekniklerini uygulayan ücretsiz ve açık kaynak kodlu bir yazılım uygulaması ve iletişim protokolüdür. Linux çekirdeği içinde bir modül olarak çalıştırılır ve IPsec ve OpenVPN tünel protokollerinden daha iyi performans hedeflemektedir. Jason A. Donenfeld tarafından yazılmıştır ve GNU Genel Kamu Lisansı (GPL) sürüm 2 altında yayınlanmıştır. Yazılım Mart 2020'nin sonlarında kararlı bir sürüme ulaştı ve Linux çekirdeği 5.6 sürümüne eklendi.


## Özellikleri.
WireGuard, hem basit hem de son derece etkili bir VPN sağlamayı amaçlamaktadır. Ars Technica tarafından 2018'de yapılan bir inceleme, OpenVPN ve IPsec gibi popüler VPN teknolojilerinin kurulumu karmaşıktır, bağlantıları (konfigürasyonun eksikliğinde) kolayca kesilmektedir, yeniden bağlantılarının kurulması için müzakere edilmesi önemli zaman almaktadır, eskimiş şifreleme yöntemlerini kullanmaktadırlar ve nispeten çok büyük kodlarının (Ars Technica'ya göre sırasıyla 400.000 ve 600.000 satırın üzerinde kod) olduğunu gözlemlemiştir. Bu kadar satır kod hataları bulmayı zorlaştırmaktadır.
WireGuard'ın tasarımı bu sorunları azaltmaya odaklanmıştır, bu da tünelin varsayılan olarak daha güvenli olasını sağlar ve yönetilmesini kolaylaştırır. Şifreleme paketlerinin sürümlerini belirleyerek, en güvenli geçerli şifreleme yöntemleri arasında olduğuna inanılan şifrelere odaklanır. Ars Technica incelemesi sırasında yaklaşık 4000 satırlık saf çekirdek (OpenVPN ve IPSec ile karşılaştırıldığında onların yaklaşık %1'lik oranında) koduna sahiptir. Az sayıda kod satırına sahip olma özelliği güvenlik denetimlerini kolaylaştırır ve Linux çekirdeği yaratıcısı Linus Torvalds tarafından da "bir sanat eseri" olarak OpenVPN ve IPsec'e kıyasla övülmektedir. "Ars Technica", testlerde WireGuard ile istikrarlı tünellerin oluşturulmasının alternatiflerine kıyasla daha kolay olduğunu bildirdi.


## Protokol.
WireGuard anahtar değişimi için Curve25519, şifreleme için ChaCha20, veri kimlik doğrulaması için Poly1305, hashtable anahtarları için SipHash ve hash için BLAKE2'leri kullanır. Hem IPv4 hem de IPv6 için ağ katman 3'ü destekler ve IPv4-in-IPv6'yı veya tam tersini kapsülleyebilir.
Mayıs 2019'da INRIA araştırmacıları protokolün makine tarafından kontrol edilen, CryptoVerif kanıt asistanını kullanılarak üretilen, bir kanıtını yayınladılar.


## Tarihçe.
Kod tabanının en eski anlık görüntüleri 30 Haziran 2016'dan itibaren mevcuttur. WireGuard'ı ilk kullanan dört VPN servis sağlayıcıları Mullvad AzireVPN, IVPN ve cryptostorm idi. WireGuard Mullvad, IVPN ve NLnet Vakfı'ndan bağış aldı. En son Mart 2020'de OVPN tarafından bağış aldı.
Haziran 2018 itibarıyla WireGuard geliştiricileri, kod ve protokolü deneysel olarak ele almayı önerdiler ve keşfedilebilecek herhangi bir güvenlik açığının CVE takibi ile uyumlu, kararlı bir sürüm elde etmediklerine dikkat ettiler.
9 Aralık 2019'da, Linux ağ yığınının birincil koruyucusu David Miller, yaklaşan çekirdeğe dahil edilmek üzere WireGuard yamalarını "sonraki ağ" sürdürücü ağacına kabul etti. 28 Ocak 2020'de Linus Torvalds, David Miller'ın bir sonraki ağ dalını birleştirdi ve WireGuard ana Linux çekirdek ağacına girdi.
20 Mart 2020'de Debian geliştiricileri, Debian 11 sürümü (test) için çekirdek yapılandırmasında WireGuard için modül oluşturma seçeneklerini etkinleştirdi.
29 Mart 2020'de Wireguard, Linux 5.6 sürüm ağacına dahil edildi. Yazılımın Windows sürümü beta sürümündedir.
30 Mart 2020'de Android geliştiricileri Genel Çekirdek Görüntüsüne WireGuard için yerel çekirdek desteği eklediler.


## Tepkiler.
Oregon senatörü Ron Wyden, Ulusal Standartlar ve Teknoloji Enstitüsü'ne (NIST) WireGuard'ı IPsec ve OpenVPN gibi mevcut teknolojilerin yerini almasını önerdi.


## Uygulamalar.
WireGuard protokolünün uygulamaları şunları içerir:
  - Donenfeld'in ilk uygulaması, C ve Go ile yazılmıştı.
  - Cloudflare'nin BoringTun'i, Rust ile yazılmış bir kullanıcı alanı uygulamasıdır.


## Wireguard'ı destekleyen kullanıcı alanı programları.
WireGuard'ı destekleyen kullanıcı alanı programları şunları içerir:
  - NetworkManager, 1.16 sürümünden beri
  - systemd, 237 sürümünden beri
  - Intel ConnMan, sürüm 1.38'den beri 
  - Mozilla'nın Firefox Özel Ağı


## Konuyla ilgili yayınlar.
  - Wireguard'ın teknik tanıtım belgesi