WireGuard
Orijinal yazar(lar) | Jason A. Donenfeld |
---|---|
Geliştirici(ler) | Jason A. Donenfeld |
İlk yayınlanma | Mart 2020 |
Güncel sürüm | 1 (Linux) [1] |
Programlama dili | C (Linux kernel modülü), Go (Son kullanıcıya uyarlama) |
İşletim sistemi | [1][2][a] |
Tür | Sanal Özel Ağ |
Lisans | GPLv2 |
Resmî sitesi | wireguard.com |
As of | 23 Ocak 2019 |
Kod deposu |
İnternet güvenlik protokolleri |
---|
Anahtar yönetimi |
Uygulama katmanı |
Domain Name System |
|
İnternet Katmanı |
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.[3] 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.[4] 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.[1]
Ö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.[5]
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.[6] 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.[4] Hem IPv4 hem de IPv6 için ağ katman 3'ü destekler ve IPv4-in-IPv6'yı veya tam tersini kapsülleyebilir.[7]
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.[8]
Tarihçe
Kod tabanının en eski anlık görüntüleri 30 Haziran 2016'dan itibaren mevcuttur.[9] WireGuard'ı ilk kullanan dört VPN servis sağlayıcıları Mullvad [10] AzireVPN,[11] IVPN[12] ve cryptostorm[13] idi. WireGuard Mullvad, IVPN ve NLnet Vakfı'ndan bağış aldı.[14] En son Mart 2020'de OVPN tarafından bağış aldı.[15]
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.[16][17]
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.[18][19][20] 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.[21]
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.[22]
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.[1]
30 Mart 2020'de Android geliştiricileri Genel Çekirdek Görüntüsüne WireGuard için yerel çekirdek desteği eklediler.[23]
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.[24]
Uygulamalar
WireGuard protokolünün uygulamaları şunları içerir:
- Donenfeld'in ilk uygulaması, C ve Go ile yazılmıştı.[25]
- Cloudflare'nin BoringTun'i, Rust ile yazılmış bir kullanıcı alanı uygulamasıdır.[26][27]
Wireguard'ı destekleyen kullanıcı alanı programları
WireGuard'ı destekleyen kullanıcı alanı programları şunları içerir:
- NetworkManager, 1.16 sürümünden beri[28]
- systemd, 237 sürümünden beri[29]
- Intel ConnMan, sürüm 1.38'den beri [30]
- Mozilla'nın Firefox Özel Ağı[31]
Konuyla ilgili yayınlar
- Wireguard'ın teknik tanıtım belgesi4 Mart 2018 tarihinde Wayback Machine sitesinde arşivlendi.
Dış bağlantılar
Notlar
- ^ Tüm platformların şu anda yayınlanan kararlı bir sürümü olmayabilir ve bazıları beta sürümde olabilir.
Kaynakça
- ^ a b c d Salter, Jim (30 Mart 2020). "WireGuard VPN makes it to 1.0.0—and into the next Linux kernel". 31 Mart 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 23 Nisan 2020.
- ^ "Installation". WireGuard. 11 Eylül 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 23 April 2020.
- ^ Preneel, Bart; Vercauteren, Frederik ((Ed.)). Applied Cryptography and Network Security (İngilizce). Springer. ISBN 978-3-319-93387-0. 18 Şubat 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 25 June 2018.
- ^ a b "WireGuard: fast, modern, secure VPN tunnel". WireGuard. 28 Nisan 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Nisan 2018.
- ^ Salter, Jim (26 Ağustos 2018). "WireGuard VPN review: A new type of VPN offers serious advantages". Ars Technica. 20 Eylül 2018 tarihinde kaynağından arşivlendi.
- ^ "Arşivlenmiş kopya". 19 Ağustos 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Nisan 2020.
- ^ Donenfeld, Jason A. "Introduction & Motivation" (PDF). WireGuard: Next Generation Kernel Network Tunnel (PDF). 4 Mart 2018 tarihinde kaynağından arşivlendi (PDF).
- ^ Lipp, Benjamin; Blanchet, Bruno; Bhargavan, Karthikeyan (2019), A Mechanised Cryptographic Proof of the WireGuard Virtual Private Network Protocol, Research Report RR-9269, Paris: Inria, hal-02100345, 29 Nisan 2020 tarihinde kaynağından arşivlendi, erişim tarihi: 28 Nisan 2020
- ^ "Arşivlenmiş kopya". 31 Ocak 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Nisan 2020.
- ^ Mason, John (13 Şubat 2019). "Mullvad Review". thebestwpn. 2. Strong Tunneling Protocols – OpenVPN & WireGuard. 24 June 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 8 April 2019.
- ^ Mason, John (19 Şubat 2019). "AzireVPN Review". thebestvpn. 2. Impressive Protocols and Encryption. 8 Mayıs 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 8 April 2019.
- ^ Pestell, Nick. "Introducing Wireguard". 3 Ocak 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 22 Eylül 2019.
- ^ "WireGuard support added!". cryptostorm blog. 5 Nisan 2019. 9 Aralık 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 9 Aralık 2019.
- ^ "Donations". WireGuard. 28 Nisan 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Nisan 2018.
- ^ "OVPN donates to support WireGuard". OVPN. 28 Mart 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Nisan 2020.
- ^ "About The Project". WireGuard. Work in Progress. 25 Haziran 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 25 Haziran 2018.
- ^ "Installation". WireGuard. 26 Haziran 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 26 Haziran 2018.
- ^ "e7096c131e5161fa3b8e52a650d7719d2857adfd - pub/scm/linux/kernel/git/davem/net-next - Git at Google". kernel.googlesource.com. 16 Mayıs 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Nisan 2020.
- ^ "LKML: David Miller: Re: [PATCH net-next v2] net: WireGuard secure network tunnel". lkml.org. 9 Aralık 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Nisan 2020.
- ^ "[ANNOUNCE] WireGuard merged to net-next, on its way to Linux 5.6". web.archive.org. 9 Ocak 2020. 16 Mayıs 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Nisan 2020.
- ^ Torvalds, Linus. "index : kernel/git/torvalds/linux.git". Linux kernel source tree. Kernel.org. 16 Mayıs 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 2 Şubat 2020.
- ^ "drivers/net: Enable WIREGUARD as module". 21 Mart 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Nisan 2020.
- ^ "ANDROID: GKI: enable CONFIG_WIREGUARD". 3 Nisan 2020 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Nisan 2020.
- ^ "US Senator Recommends Open-Source WireGuard To NIST For Government VPN". Phoronix. 30 June 2018. 5 Ağustos 2018 tarihinde kaynağından arşivlendi. Erişim tarihi: 5 Ağustos 2018.
- ^ Donenfeld, Jason (7 Haziran 2019). "WireGuard: fast, modern, secure VPN tunnel". 1 Aralık 2001 tarihinde kaynağından arşivlendi. Erişim tarihi: 16 Haziran 2019.
- ^ Krasnov, Vlad (18 Aralık 2018). "BoringTun, a userspace WireGuard implementation in Rust". Cloudflare Blog (İngilizce). 4 April 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 March 2019.
- ^ "CloudFlare Launches "BoringTun" As Rust-Written WireGuard User-Space Implementation". phoronix.com. 21 Eylül 2009 tarihinde kaynağından arşivlendi. Erişim tarihi: 29 Mart 2019.
- ^ Haller, Thomas (15 Mart 2019). "WireGuard in NetworkManager". GNOME Blogs. 16 Mart 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Nisan 2020.
- ^ Poettering, Lennart (28 Ocak 2018). "[ANNOUNCE] systemd v237" (E-posta). 19 Ocak 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Nisan 2020.
- ^ Larabel, Michael (18 Şubat 2020). "Intel ConnMan 1.38 Released With WireGuard Support". Phoronix. 21 Eylül 2009 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Nisan 2020.
- ^ "Firefox Private Network: VPN to Protect Your Entire Device". 3 Aralık 2019 tarihinde kaynağından arşivlendi. Erişim tarihi: 28 Nisan 2020.