Bag-ong pagpatuman sa VPN WireGuard gidugang sa FreeBSD codebase

Ang punoan sa tinubdan sa FreeBSD gi-update uban ang bag-ong pagpatuman sa VPN WireGuard, base sa kernel module code nga hiniusang gihimo sa kinauyokan nga FreeBSD ug WireGuard development teams nga adunay mga kontribusyon gikan ni Jason A. Donenfeld, awtor sa VPN WireGuard, ug John H. Baldwin ), usa ka inila nga developer sa GDB ug FreeBSD, nga nagpatuman sa suporta alang sa SMP ug NUMA sa FreeBSD kernel sa unang bahin sa 2000s. Human madawat ang drayber sa FreeBSD (sys/dev/wg), ang pag-uswag ug pagmentinar niini ipahigayon sa FreeBSD repository.

Sa wala pa gidawat ang code, ang usa ka bug-os nga pagrepaso sa mga pagbag-o gihimo uban ang suporta sa FreeBSD Foundation, diin ang interaksyon sa drayber sa nahabilin nga mga subsystem sa kernel gisusi usab ug ang posibilidad sa paggamit sa mga cryptographic primitive nga gihatag sa kernel. gi-assess.

Aron magamit ang mga cryptographic algorithm nga gikinahanglan sa drayber, ang API sa FreeBSD kernel crypto-subsystem gipalapdan, diin gidugang ang usa ka harness nga nagtugot sa paggamit sa mga algorithm nga wala gisuportahan sa FreeBSD pinaagi sa standard crypto-API, gamit ang pagpatuman sa gikinahanglan nga mga algorithm gikan sa libsodium library. Sa mga algorithm nga gitukod sa drayber, ang code lamang sa pagkalkula sa Blake2 hash ang nahabilin, tungod kay ang pagpatuman niini nga algorithm nga gihatag sa FreeBSD gihigot sa usa ka piho nga gidak-on sa hash.

Dugang pa, sa panahon sa proseso sa pagrepaso, gihimo ang pag-optimize sa code, nga nagpaposible nga madugangan ang kahusayan sa pag-apod-apod sa load sa mga multi-core nga mga CPU (gisiguro ang uniporme nga pagbalanse sa assignment sa packet encryption ug decryption nga mga buluhaton sa mga cores sa CPU). Ingon usa ka sangputanan, ang overhead kung ang pagproseso sa mga pakete hapit sa implementasyon sa drayber sa Linux. Naghatag usab ang code sa katakus sa paggamit sa driver sa ossl aron mapadali ang mga operasyon sa pag-encrypt.

Dili sama sa miaging pagsulay sa pag-integrate sa WireGuard ngadto sa FreeBSD, ang bag-ong implementasyon naggamit sa standard wg utility, kay sa giusab nga bersyon sa ifconfig, nga nagpaposible sa paghiusa sa configuration sa Linux ug FreeBSD. Ang wg utility, ingon man ang drayber, gilakip sa FreeBSD source code, nga nahimong posible pinaagi sa pagbag-o sa lisensya alang sa wg code (ang code anaa na karon ubos sa MIT ug GPL nga mga lisensya). Ang katapusan nga pagsulay nga ilakip ang WireGuard sa FreeBSD gihimo kaniadtong 2020, apan natapos sa usa ka iskandalo, ingon usa ka sangputanan diin ang nadugang nga code gikuha tungod sa ubos nga kalidad, walay pagtagad nga pagtrabaho sa mga buffer, ang paggamit sa mga stub imbis nga mga tseke, dili kompleto nga pagpatuman sa protocol ug paglapas sa lisensya sa GPL.

Pahinumdum kami kanimo nga ang VPN WireGuard gipatuman pinasukad sa modernong mga pamaagi sa pag-encrypt, naghatag taas kaayo nga pasundayag, dali gamiton, wala’y mga komplikasyon ug napamatud-an ang kaugalingon sa daghang daghang mga pag-deploy nga nagproseso sa daghang mga volume sa trapiko. Ang proyekto nag-uswag sukad sa 2015, ug nakaagi sa pag-audit ug pormal nga pag-verify sa mga pamaagi sa pag-encrypt nga gigamit. Gigamit sa WireGuard ang konsepto sa encryption key routing, nga naglakip sa paglakip sa usa ka pribado nga yawe sa matag interface sa network ug paggamit niini aron mabugkos ang mga yawe sa publiko.

Ang mga yawe sa publiko gibaylo aron magtukod usa ka koneksyon sa parehas nga paagi sa SSH. Aron makigsabot sa mga yawe ug makonektar nga walay linain nga daemon sa user space, ang Noise Protocol Framework's Noise_IK nga mekanismo gigamit, susama sa pagmintinar sa authorized_keys sa SSH. Ang pagpadala sa datos gihimo pinaagi sa encapsulation sa mga pakete sa UDP. Gisuportahan niini ang pagbag-o sa IP address sa VPN server (roaming) nga wala gidiskonekta ang koneksyon sa awtomatikong pag-configure sa kliyente.

Ang pag-encrypt naggamit sa ChaCha20 stream cipher ug sa Poly1305 message authentication algorithm (MAC), nga gimugna ni Daniel J. Bernstein, Tanja Lange ug Peter Schwabe. Ang ChaCha20 ug Poly1305 gipahimutang ingon nga mas paspas ug mas luwas nga mga analogue sa AES-256-CTR ug HMAC, ang pagpatuman sa software nga nagtugot sa pagkab-ot sa usa ka piho nga oras sa pagpatuman nga walay paggamit sa espesyal nga suporta sa hardware. Aron makamugna og gipaambit nga sekreto nga yawe, ang elliptic curve Diffie-Hellman protocol gigamit sa pagpatuman sa Curve25519, nga gisugyot usab ni Daniel Bernstein. Ang BLAKE2s algorithm (RFC7693) gigamit alang sa pag-hash.

Source: opennet.ru

Idugang sa usa ka comment