An-diugh ghluais Linus an ath mheur lìon le eadar-aghaidh VPN dha fhèin . Mun tachartas seo air liosta puist WireGuard.

Tha cruinneachadh còd airson an kernel Linux 5.6 ùr a’ dol air adhart an-dràsta. Tha WireGuard na VPN luath an ath ghinealach a bhios a’ buileachadh cryptography an latha an-diugh. Chaidh a leasachadh an toiseach mar roghainn eile nas sìmplidh agus nas goireasaiche na VPNn a th’ ann mar-thà. Is e an t-ùghdar eòlaiche tèarainteachd fiosrachaidh à Canada Jason A. Donenfeld. Anns an Lùnastal 2018, WireGuard le Linus Torvalds. Timcheall air an àm sin, thòisich obair air VPN a thoirt a-steach don kernel Linux. Thug am pròiseas beagan nas fhaide.
“Tha mi a’ faicinn gu bheil Jason air iarrtas tarraing a dhèanamh gus WireGuard a thoirt a-steach don kernel, ”sgrìobh Linus air 2 Lùnastal, 2018. - An urrainn dhomh a-rithist mo ghaol airson an VPN seo innse agus dòchas airson aonachadh a dh’ aithghearr? Is dòcha nach eil an còd foirfe, ach choimhead mi air, agus an taca ri uabhasan OpenVPN agus IPSec, is e fìor obair ealain a th’ ann."
A dh'aindeoin miann Linus, chaidh an aonachadh air adhart airson bliadhna gu leth. B 'e am prìomh dhuilgheadas a bhith ceangailte ri gnìomhachadh seilbh de ghnìomhan criptografach, a chaidh a chleachdadh gus coileanadh a leasachadh. Às deidh còmhraidhean fada san t-Sultain 2019 bha e eadar-theangachadh badan gu na gnìomhan Crypto API a tha rim faighinn anns an kernel, ris a bheil gearanan aig luchd-leasachaidh WireGuard ann an raon coileanaidh agus tèarainteachd coitcheann. Ach chuir iad romhpa na gnìomhan dùthchasach WireGuard crypto a sgaradh gu API Zinc aig ìre ìosal air leth agus mu dheireadh cuir iad chun kernel. San t-Samhain, chùm an luchd-leasachaidh kernel an gealladh agus gluais pàirt den chòd bho Zinc chun phrìomh kernel. Mar eisimpleir, anns an Crypto API buileachadh luath de na h-algorithms ChaCha20 agus Poly1305 air an ullachadh ann an WireGuard.
Mu dheireadh, air 9 Dùbhlachd, 2019, Daibhidh S. Miller, le uallach airson fo-shiostam lìonraidh an kernel Linux, dhan lìon - ath mheur le buileachadh eadar-aghaidh VPN bhon phròiseact WireGuard.
Agus an-diugh, 29 Faoilleach 2020, chaidh na h-atharrachaidhean gu Linus airson an toirt a-steach don kernel.

Buannachdan tagraidh WireGuard thairis air fuasglaidhean VPN eile:
- Furasta a chleachdadh.
- A’ cleachdadh crioptachadh ùr-nodha: frèam protocol fuaim, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF, msaa.
- Còd teann, furasta a leughadh, nas fhasa a sgrùdadh airson so-leòntachd.
- Coileanadh àrd.
- Soilleir agus mionaideach .
Bidh a h-uile loidsig bunaiteach aig WireGuard a’ toirt suas nas lugha na loidhnichean còd 4000, ach feumaidh OpenVPN agus IPSec ceudan de mhìltean de loidhnichean.
“Bidh WireGuard a’ cleachdadh a’ bhun-bheachd air slighe iuchair crioptachaidh, a tha a’ toirt a-steach a bhith a’ ceangal iuchair phrìobhaideach ri gach eadar-aghaidh lìonraidh agus a’ cleachdadh iuchraichean poblach airson a cheangal. Tha iuchraichean poblach air an iomlaid gus ceangal a stèidheachadh san aon dòigh ri SSH. Gus iuchraichean a cho-rèiteachadh agus ceangal a dhèanamh gun a bhith a 'ruith daemon air leth ann an àite luchd-cleachdaidh, tha an inneal Noise_IK bho coltach ri cumail ùghdarraichte_keys ann an SSH. Tha tar-chur dàta air a dhèanamh tro ghlacadh ann am pacaidean UDP. Tha e a 'toirt taic do bhith ag atharrachadh seòladh IP an fhrithealaiche VPN (gluasad) gun a bhith a' ceangal a 'cheangail ri ath-dhealbhadh fèin-ghluasadach an neach-dèiligidh, - Fosgailte.
Airson crioptachadh cipher sruth agus algorithm dearbhaidh teachdaireachd (MAC) , air a dhealbhadh le Daniel Bernstein (), Tanja Lange agus Peter Schwabe. Tha ChaCha20 agus Poly1305 air an suidheachadh mar analogues nas luaithe agus nas sàbhailte de AES-256-CTR agus HMAC, agus tha buileachadh bathar-bog a’ ceadachadh ùine cur gu bàs stèidhichte gun a bhith a’ cleachdadh taic bathar-cruaidh sònraichte. Gus iuchair dhìomhair co-roinnte a ghineadh, thathas a’ cleachdadh protocol elliptic curve Diffie-Hellman anns a’ bhuileachadh , cuideachd air a mholadh le Daniel Bernstein. Tha an algairim a thathar a 'cleachdadh airson hashing ".
Toraidhean bho làrach-lìn oifigeil:
Bandwidth (megabit/s)

Ping (ms)

Rèiteachadh deuchainn:
- Intel Core i7-3820QM agus Intel Core i7-5200U
- Cairtean Gigabit Intel 82579LM agus Intel I218LM
- Linux 4.6.1
- Rèiteachadh WireGuard: 256-bit ChaCha20 le Poly1305 airson MAC
- A’ chiad rèiteachadh IPsec: 256-bit ChaCha20 le Poly1305 airson MAC
- An dàrna rèiteachadh IPsec: AES-256-GCM-128 (le AES-NI)
- Configuration OpenVPN: Sreath cipher co-ionann AES 256-bit le HMAC-SHA2-256, modh UDP
- Chaidh coileanadh a thomhas a’ cleachdadh
iperf3, a 'sealltainn an toradh cuibheasach thairis air 30 mionaidean.
Ann an teòiridh, aon uair ‘s gu bheil e air fhilleadh a-steach don chruach lìonra, bu chòir do WireGuard obrachadh eadhon nas luaithe. Ach ann an da-rìribh cha bhith seo fìor mar thoradh air gluasad gu gnìomhan criptografach Crypto API a chaidh a thogail a-steach don kernel. Is dòcha nach eil iad uile fhathast air an ùrachadh gu ìre coileanaidh WireGuard dùthchasach.
“Bho mo bheachd-sa, tha WireGuard sa chumantas air leth freagarrach airson an neach-cleachdaidh. Tha a h-uile co-dhùnadh ìre ìosal air a dhèanamh anns an t-sònrachadh, agus mar sin cha toir am pròiseas ullachadh bun-structar VPN àbhaisteach ach beagan mhionaidean. Cha mhòr nach eil e comasach an rèiteachadh a mhilleadh - air Habré ann an 2018. - Pròiseas stàlaidh air an làrach-lìn oifigeil, bu mhath leam fa-leth a thoirt fa-near an sàr-mhath . Chaidh an furasta seo a chleachdadh agus cho teann sa bha bunait còd a choileanadh le bhith a’ cur às do chuairteachadh iuchraichean. Chan eil siostam teisteanais iom-fhillte ann agus an uabhas corporra seo gu lèir; tha iuchraichean crioptachaidh goirid air an cuairteachadh gu math coltach ri iuchraichean SSH."
Tha am pròiseact WireGuard air a bhith a’ leasachadh bho 2015, chaidh a sgrùdadh agus . Tha taic WireGuard air fhilleadh a-steach do NetworkManager agus systemd, agus tha pìosan kernel air an toirt a-steach do na sgaoilidhean bunaiteach de Debian Unstable, Mageia, Alpine, Arch, Gentoo, OpenWrt, NixOS, Subgraph agus ALT.
Source: www.habr.com
