FreeBSD kod bazasına VPN WireGuard-ın yeni tətbiqi əlavə edildi

FreeBSD mənbə ağacı VPN WireGuard-ın müəllifi Jason A. Donenfeld və Con H. Baldwin-in girişi ilə əsas FreeBSD və WireGuard inkişaf qrupları tərəfindən birgə hazırlanan nüvə modulunun koduna əsaslanan yeni VPN WireGuard tətbiqi ilə dəyişdirildi. 2000-ci illərin əvvəllərində FreeBSD nüvəsində SMP və NUMA dəstəyini həyata keçirmiş GDB və FreeBSD-nin tanınmış tərtibatçısı. Sürücü FreeBSD-yə (sys/dev/wg) qəbul edildikdən sonra o, bundan sonra FreeBSD deposunda işlənib hazırlanacaq və saxlanılacaq.

Kod qəbul edilməzdən əvvəl, FreeBSD Fondunun dəstəyi ilə dəyişikliklərin tam nəzərdən keçirilməsi aparıldı, bu müddət ərzində sürücünün nüvənin qalan alt sistemləri ilə qarşılıqlı əlaqəsi də təhlil edildi və proqramın təqdim etdiyi kriptoqrafik primitivlərdən istifadə imkanları təhlil edildi. kernel qiymətləndirilib.

Sürücü tərəfindən tələb olunan kriptoqrafik alqoritmlərdən istifadə etmək üçün FreeBSD nüvəsi kriptovalyutası altsisteminin API-si genişləndirildi, ona libsodium kitabxanasından lazımi alqoritmlərin tətbiqindən istifadə edərək, standart kripto API vasitəsilə FreeBSD-də dəstəklənməyən alqoritmlərdən istifadə etməyə imkan verən bağlama əlavə edildi. . Sürücüdə quraşdırılmış alqoritmlərdən yalnız Blake2 heşlərinin hesablanması üçün kod qalır, çünki FreeBSD-də təqdim olunan bu alqoritmin həyata keçirilməsi sabit hash ölçüsünə bağlıdır.

Bundan əlavə, nəzərdən keçirmə prosesi zamanı kodun optimallaşdırılması həyata keçirildi ki, bu da çoxnüvəli CPU-larda yükün paylanmasının səmərəliliyini artırmağa imkan verdi (şifrələmə və paket şifrələmə tapşırıqlarının CPU nüvələrinə bağlanmasının vahid balanslaşdırılması təmin edildi). Nəticədə, paketlərin işlənməsi üçün əlavə xərclər Linux üçün sürücünün tətbiqinə yaxınlaşdı. Kod həmçinin şifrələmə əməliyyatlarını sürətləndirmək üçün ossl drayverindən istifadə etmək imkanı verir.

WireGuard-ı FreeBSD-yə inteqrasiya etmək üçün əvvəlki cəhddən fərqli olaraq, yeni tətbiq Linux və FreeBSD arasında vahid konfiqurasiyaya imkan verən ifconfig-in dəyişdirilmiş versiyası deyil, stock wg yardım proqramından istifadə edir. wg yardım proqramı, eləcə də sürücü, wg koduna lisenziya dəyişikliyi ilə mümkün olan FreeBSD mənbələrinə daxil edilmişdir (kod indi MIT və GPL lisenziyaları altında mövcuddur). WireGuard-ı FreeBSD-yə daxil etmək üçün sonuncu cəhd 2020-ci ildə edildi, lakin qalmaqalla başa çatdı, nəticədə artıq əlavə edilmiş kod keyfiyyətsiz, buferlə diqqətsiz işləmə, çeklər əvəzinə stublardan istifadə, protokolun natamam yerinə yetirilməsi səbəbindən silindi. və GPL lisenziyasının pozulması.

Xatırladaq ki, VPN WireGuard müasir şifrələmə metodları əsasında həyata keçirilir, çox yüksək performans təmin edir, istifadəsi asandır, fəsadlardan məhrumdur və böyük həcmdə trafiki emal edən bir sıra iri yerləşdirmələrdə özünü sübut etmişdir. Layihə 2015-ci ildən inkişaf etdirilir, istifadə edilən şifrələmə üsullarının auditindən və rəsmi yoxlanışından keçmişdir. WireGuard, hər bir şəbəkə interfeysinə şəxsi açarın bağlanmasını və bağlamaq üçün açıq açarların istifadəsini nəzərdə tutan şifrələmə açarının marşrutlaşdırılması konsepsiyasından istifadə edir.

Bağlantı yaratmaq üçün açıq açarların mübadiləsi SSH-ə bənzəyir. Açarları müzakirə etmək və ayrıca istifadəçi məkanı demonunu işə salmadan qoşulmaq üçün SSH-də səlahiyyətli_açarların saxlanmasına bənzər Səs-küy Protokolu Çərçivəsinin Noise_IK mexanizmi istifadə olunur. Məlumatların ötürülməsi UDP paketlərində inkapsulyasiya yolu ilə həyata keçirilir. Avtomatik müştəri konfiqurasiyası ilə əlaqəni kəsmədən VPN serverinin IP ünvanının dəyişdirilməsini (rouminq) dəstəkləyir.

Şifrələmə Daniel J. Bernstein, Tanja Lange və Peter Schwabe tərəfindən hazırlanmış ChaCha20 axın şifrəsindən və Poly1305 mesaj autentifikasiyası (MAC) alqoritmindən istifadə edir. ChaCha20 və Poly1305 AES-256-CTR və HMAC-ın daha sürətli və təhlükəsiz analoqları kimi yerləşdirilib, proqram təminatının tətbiqi xüsusi aparat dəstəyi olmadan sabit icra müddətinə nail olmağa imkan verir. Paylaşılan gizli açar yaratmaq üçün Daniel Bernstein tərəfindən də təklif olunan Curve25519 tətbiqində Diffie-Hellman protokolunun elliptik əyrisi istifadə olunur. Hashing üçün BLAKE2s alqoritmi (RFC7693) istifadə olunur.

Mənbə: opennet.ru

Добавить комментарий