Kev siv tshiab ntawm VPN WireGuard ntxiv rau FreeBSD codebase

FreeBSD qhov chaw tsob ntoo tau raug hloov kho nrog qhov kev siv VPN tshiab WireGuard raws li cov cai los ntawm cov ntsiav module ua ke npaj los ntawm cov tub ntxhais FreeBSD thiab WireGuard cov pab pawg tsim kho nrog cov tswv yim los ntawm Jason A. Donenfeld, tus sau ntawm VPN WireGuard, thiab John H. Baldwin ), tus tsim tawm paub zoo ntawm GDB thiab FreeBSD, uas tau siv SMP thiab NUMA kev txhawb nqa hauv FreeBSD kernel thaum ntxov 2000s. Thaum tus tsav tsheb raug lees txais rau hauv FreeBSD (sys/dev/wg), nws yuav raug tsim kho thiab khaws cia hauv FreeBSD qhov chaw cia txij li tam sim no.

Ua ntej txoj cai raug lees txais, kev tshuaj xyuas tag nrho ntawm cov kev hloov pauv tau ua nrog kev txhawb nqa ntawm FreeBSD Foundation, thaum lub sijhawm kev sib cuam tshuam ntawm tus neeg tsav tsheb nrog rau lwm cov kernel subsystems kuj tau txheeb xyuas thiab muaj peev xwm siv cov cryptographic primitives muab los ntawm lub kernel raug soj ntsuam.

Txhawm rau siv cov cryptographic algorithms xav tau los ntawm tus neeg tsav tsheb, FreeBSD kernel crypto subsystem API tau txuas ntxiv, uas muaj kev sib txuas ntxiv uas tso cai rau siv cov algorithms tsis txhawb nqa hauv FreeBSD los ntawm tus qauv crypto API, siv cov kev siv ntawm qhov tsim nyog algorithms los ntawm lub tsev qiv ntawv libsodium. . Ntawm cov algorithms ua rau tus neeg tsav tsheb, tsuas yog cov cai rau xam Blake2 hashes tshuav, txij li thaum qhov kev siv ntawm no algorithm muab nyob rau hauv FreeBSD yog khi rau ib tug ruaj hash loj.

Tsis tas li ntawd, thaum lub sijhawm tshuaj xyuas, kev ua kom zoo dua code tau ua tiav, uas ua rau nws muaj peev xwm ua kom muaj txiaj ntsig ntawm kev faib khoom ntawm ntau cov tub ntxhais CPUs (cov khoom sib npaug ntawm kev sib txuas ntawm kev sib txuas ntawm encryption thiab pob ntawv decryption ua haujlwm rau CPU cores tau ua tiav). Raws li qhov tshwm sim, cov nyiaj siv ua haujlwm ntawm cov ntawv ntim khoom tau coj los ze rau qhov kev siv ntawm tus tsav tsheb rau Linux. Cov cai tseem muab lub peev xwm los siv ossl tus tsav tsheb kom ceev cov haujlwm encryption.

Tsis zoo li yav dhau los sim ua ke WireGuard rau hauv FreeBSD, qhov kev siv tshiab siv cov khoom siv hluav taws xob wg, tsis yog hloov kho version of ifconfig, uas tso cai rau kev sib koom ua ke ntawm Linux thiab FreeBSD. Cov nqi hluav taws xob wg, nrog rau tus tsav tsheb, suav nrog hauv FreeBSD qhov chaw, ua tau los ntawm kev hloov pauv daim ntawv tso cai rau wg code (cov cai tam sim no muaj nyob hauv MIT thiab GPL cov ntawv tso cai). Qhov kev sim zaum kawg suav nrog WireGuard hauv FreeBSD tau ua rau xyoo 2020, tab sis tau xaus rau hauv kev tsis txaus ntseeg, vim tias tau ntxiv cov lej raug tshem tawm vim qhov tsis zoo, tsis muaj kev saib xyuas tsis zoo, siv cov stubs es tsis siv cov tshev, ua tsis tiav cov txheej txheem. thiab ua txhaum GPL daim ntawv tso cai.

Nco qab tias VPN WireGuard tau siv los ntawm cov txheej txheem encryption niaj hnub, muab kev ua haujlwm siab heev, siv tau yooj yim, tsis muaj teeb meem thiab tau ua pov thawj nws tus kheej hauv ntau qhov kev xa tawm loj uas ua haujlwm ntau ntawm cov tsheb. Qhov project tau tsim txij li xyoo 2015, dhau los ntawm kev tshuaj xyuas thiab kev pov thawj ntawm cov txheej txheem encryption siv. WireGuard siv lub tswv yim ntawm encryption key routing, uas koom nrog kev khi tus yuam sij ntiag tug rau txhua lub network interface thiab siv cov yuam sij pej xeem los khi.

Kev sib pauv ntawm cov yuam sij pej xeem los tsim kev sib txuas zoo ib yam li SSH. Txhawm rau sib tham cov yuam sij thiab txuas yam tsis tau khiav ib tus neeg siv qhov chaw sib cais, Noise_IK mechanism ntawm Noise Protocol Framework yog siv, zoo ib yam li kev tswj hwm kev tso cai_keys hauv SSH. Kev xa cov ntaub ntawv yog ua los ntawm encapsulation hauv UDP pob ntawv. Nws txhawb kev hloov pauv tus IP chaw nyob ntawm VPN server (roaming) yam tsis muaj kev cuam tshuam kev sib txuas nrog cov neeg siv tsis siv neeg rov teeb tsa.

Encryption siv ChaCha20 kwj cipher thiab Poly1305 message authentication (MAC) algorithm tsim los ntawm Daniel J. Bernstein, Tanja Lange, thiab Peter Schwabe. ChaCha20 thiab Poly1305 yog positioned raws li sai thiab ruaj ntseg analogues ntawm AES-256-CTR thiab HMAC, qhov kev siv software uas tso cai rau ua tiav lub sijhawm ua tiav tsis muaj kev txhawb nqa tshwj xeeb. Txhawm rau tsim kom muaj tus yuam sij zais cia, elliptic nkhaus Diffie-Hellman raws tu qauv hauv Curve25519 kev siv, kuj tau thov los ntawm Daniel Bernstein, yog siv. Rau hashing, BLAKE2s algorithm (RFC7693) yog siv.

Tau qhov twg los: opennet.ru

Ntxiv ib saib