A tọhapụrụ WireGuard VPN maka Windows na WireGuardNT 1.0

Jason A. Donenfeld, onye dere WireGuard VPN, ewepụtala mwepụta mbụ nke ngwanrọ ndị ahịa WireGuard maka Windows 1.0, yana ndị ọkwọ ụgbọala WireGuardNT 1.0 nwere ọdụ ụgbọ mmiri. Okwey WireGuard maka kernel Windows 10 na 11, na-akwado usoro nhazi AMD64, x86, na ARM64. Koodu akụkụ kernel Windows nwere ikike n'okpuru GPLv2, a na-enyekwa ikike maka ngwanrọ onye ahịa n'okpuru ikike MIT.

Ọdụ ụgbọ mmiri ahụ dabere na koodu ntọala nke ọrụ WireGuard bụ isi maka kernel Linux, nke agbanweela ka ọ bụrụ ihe Windows kernel na ihe ndị dị na netwọk NDIS. Ma e jiri ya tụnyere ọrụ wireguard-go, nke na-agba ọsọ na oghere onye ọrụ ma na-eji interface netwọk Wintun, WireGuardNT na-enye mmezi arụmọrụ dị mkpa site na iwepụ mgbanwe ọnọdụ na idetuo ọdịnaya ngwugwu site na kernel gaa na oghere onye ọrụ. Dịka mmejuputa maka Linux, OpenBSD, na FreeBSD, usoro nhazi protocol niile na WireGuardNT na-agba ọsọ ozugbo na ọkwa nhazi netwọk.

E tinyere ụdị 1.0 n'ọkwa dị mkpa, nke na-egosi mkpebi nke ọtụtụ nsogbu na mmezu nke ọrụ ndị a chọrọ ime, dịka: iji ọrụ NdisWdfGetAdapterContextFromAdapterHandle() kama nchekwa dị ala nke steeti ọkwọ ụgbọala n'ọhịa echekwara na iji ihe ndị a na-edeghị ede; nsochi ziri ezi na ngwa ngwa nke nha MTU (Ngalaba Nnyefe Kachasị Elu) site na njide oku sistemụ; iji ọkọlọtọ C23 na koodu ahụ.

Ka anyị na-echetara gị na VPN WireGuard na-emejuputa atumatu na ndabere nke ọgbara ọhụrụ ụzọ ezoro ezo ụzọ, na-enye nnọọ elu arụmọrụ, dị mfe iji, na-enweghị nsogbu na-egosikwa onwe ya nke ọma na a ọnụ ọgụgụ nke nnukwu mmejuputa iwu nhazi nnukwu okporo ụzọ. Ihe oru ngo a na-etolite kemgbe 2015 ma mee nyocha na nkwenye nke usoro nzuzo eji eme ihe. WireGuard na-eji echiche nke ụzọ nzuzo dabere na igodo, nke gụnyere ijikọ igodo nzuzo na interface netwọk ọ bụla yana iji igodo ọha maka ijikọ.

Mgbanwe nke igodo ọha iji guzobe njikọ yiri SSH. Iji kparịta ụka na ijikọ na-enweghị ịgba ọsọ daemon dị iche na oghere onye ọrụ, a na-eji usoro Noise_IK sitere na Noise Protocol Framework, dị ka mmezi nke igodo ikike na SSH. A na-eme nnyefe data site na encapsulation na ngwugwu UDP. A na-akwado mgbanwe. Adreesị IP Sava VPN (ịgagharị) na-enweghị nkwụsịtụ njikọ yana nhazi ndị ahịa akpaka.

Ihe nzuzo ahụ na-eji cipher iyi iyi ChaCha20 na nyocha nkwenye ozi nke Poly1305 (MAC), nke Daniel J. Bernstein, Tanja Lange, na Peter Schwabe mepụtara. A na-edobe ChaCha20 na Poly1305 dị ka ngwa ngwa na nchekwa nchekwa nke AES-256-CTR na HMAC, mmemme ngwanrọ nke na-enye ohere ịnweta oge igbu oge na-enweghị iji nkwado ngwaike pụrụ iche. Iji mepụta igodo nzuzo nkekọrịta, a na-eji ụkpụrụ Elliptic Curve Diffie-Hellman na mmejuputa Curve25519, nke Daniel Bernstein tụkwara ya. A na-eji BLAKE2s (RFC7693) algọridim maka hashing.

isi: opennet.ru