FreeBSD kod tabanına yeni VPN WireGuard uygulaması eklendi

FreeBSD kaynak ağacı, VPN WireGuard'ın yazarı Jason A. Donenfeld ve John H. Baldwin'in katkılarıyla çekirdek FreeBSD ve WireGuard geliştirme ekipleri tarafından ortaklaşa üretilen çekirdek modül kodunu temel alan yeni bir VPN WireGuard uygulamasıyla güncellendi. 2000'li yılların başında FreeBSD çekirdeğinde SMP ve NUMA desteğini uygulayan tanınmış bir GDB ve FreeBSD geliştiricisi. Sürücü FreeBSD'ye (sys/dev/wg) kabul edildikten sonra geliştirilmesi ve bakımı bundan sonra FreeBSD deposunda gerçekleştirilecektir.

Kod kabul edilmeden önce, FreeBSD Vakfı'nın desteğiyle değişikliklerin tam bir incelemesi yapıldı; bu sırada sürücünün çekirdek alt sistemlerinin geri kalanıyla etkileşimi de analiz edildi ve çekirdek tarafından sağlanan şifreleme ilkellerini kullanma olasılığı da analiz edildi. değerlendirildi.

Sürücünün gerektirdiği kriptografik algoritmaları kullanmak için, FreeBSD çekirdek kripto-alt sisteminin API'si genişletildi ve buna FreeBSD'de desteklenmeyen algoritmaların standart kripto-API aracılığıyla kullanılmasına izin veren bir donanım eklendi. libsodium kütüphanesinden gerekli algoritmalar. Sürücüde yerleşik algoritmalardan yalnızca Blake2 karmalarını hesaplamaya yönelik kod kaldı, çünkü FreeBSD'de sağlanan bu algoritmanın uygulanması sabit bir karma boyutuna bağlı.

Ek olarak, inceleme sürecinde, çok çekirdekli CPU'larda yük dağıtımının verimliliğini artırmayı mümkün kılan kod optimizasyonu gerçekleştirildi (paket şifreleme ve şifre çözme görevlerinin CPU çekirdeklerine atanmasının eşit şekilde dengelenmesi sağlandı). Sonuç olarak, paketleri işlerken oluşan ek yük, Linux sürücüsü uygulamasınınkine yakındı. Kod ayrıca şifreleme işlemlerini hızlandırmak için ossl sürücüsünü kullanma olanağı da sağlar.

WireGuard'ı FreeBSD'ye entegre etmeye yönelik önceki girişimden farklı olarak, yeni uygulama, ifconfig'in değiştirilmiş bir sürümü yerine standart wg yardımcı programını kullanıyor ve bu, Linux ve FreeBSD'deki yapılandırmayı birleştirmeyi mümkün kılıyor. Wg yardımcı programı ve sürücünün FreeBSD kaynak koduna dahil edilmesi, wg kodunun lisansının değiştirilmesiyle mümkün olmuştur (kod artık MIT ve GPL lisansları altında mevcuttur). WireGuard'ı FreeBSD'ye dahil etmek için son girişim 2020'de yapıldı, ancak bir skandalla sonuçlandı, bunun sonucunda zaten eklenmiş olan kod düşük kalite, arabelleklerle dikkatsiz çalışma, kontroller yerine saplamaların kullanılması, eksik uygulama nedeniyle kaldırıldı. protokolün ihlali ve GPL lisansının ihlali.

VPN WireGuard'ın modern şifreleme yöntemleri temelinde uygulandığını, çok yüksek performans sağladığını, kullanımının kolay olduğunu, komplikasyon içermediğini ve büyük hacimli trafiği işleyen çok sayıda büyük dağıtımda kendini kanıtladığını hatırlatalım. Proje 2015'ten bu yana geliştiriliyor ve kullanılan şifreleme yöntemlerinin denetiminden ve resmi doğrulamasından geçti. WireGuard, her ağ arayüzüne özel bir anahtar eklemeyi ve bunu genel anahtarları bağlamak için kullanmayı içeren şifreleme anahtarı yönlendirme konseptini kullanır.

Genel anahtarlar, SSH'ye benzer şekilde bir bağlantı kurmak için değiştirilir. Kullanıcı alanında ayrı bir arka plan programı çalıştırmadan anahtarlar üzerinde anlaşmak ve bağlanmak için, SSH'de yetkili_anahtarların bakımına benzer şekilde, Gürültü Protokolü Çerçevesi'nin Noise_IK mekanizması kullanılır. Veri iletimi UDP paketlerinde kapsülleme yoluyla gerçekleştirilir. Otomatik istemci yeniden yapılandırmasıyla bağlantıyı kesmeden VPN sunucusunun IP adresini değiştirmeyi (dolaşım) destekler.

Şifreleme, Daniel J. Bernstein, Tanja Lange ve Peter Schwabe tarafından geliştirilen ChaCha20 akış şifresini ve Poly1305 mesaj kimlik doğrulama algoritmasını (MAC) kullanır. ChaCha20 ve Poly1305, yazılım uygulaması özel donanım desteği kullanılmadan sabit bir yürütme süresi elde edilmesini sağlayan AES-256-CTR ve HMAC'ın daha hızlı ve daha güvenli analogları olarak konumlandırılmıştır. Paylaşılan bir gizli anahtar oluşturmak için yine Daniel Bernstein tarafından önerilen Curve25519 uygulamasında eliptik eğri Diffie-Hellman protokolü kullanılır. Karma işlemi için BLAKE2s algoritması (RFC7693) kullanılır.

Kaynak: opennet.ru

Yorum ekle