AES-GCM یا ChaCha20-Poly1305: د VPN د معلوماتو د کوډ کولو غوره توب
AES-GCM د هارډویر ګړندي کولو سره سرورونو کې څرګند انتخاب دی، او ChaCha20-Poly1305 هغه دی چې پرته له دې هم ښه کار کوي. کېدای شي ستاسو پروتوکول ستاسو په استازیتوب پریکړه وکړي.
دواړه نومونه AEAD جوړښتونه دي، دواړه معیاري شوي، او په یو اوسني x86 سرور کې به یې هر یو د لیدلو وړ هڅې پرته یوه ګیګابټ لینک ډکه کړي. انتخاب یوازې هغه وخت خپل سري پاتې کیږي چې تاسو له هغه سرور څخه ووځئ: ارزانه روټرونه، زاړه تلیفونونه او مجازي وسایل ډیری وختونه د AES ګړندي کولو نه لري، او هلته توپیر لوی دی. نو ځکه پرتله د دې نه ده چې کوم کوډ ګړندی دی، بلکې دا ده چې کوم کوډ په دې پای ټکو کې ښه کار کوي، او آیا پروتوکول اصلاً انتخاب وړاندې کوي.
یو کار، بېلې زړې
دواړه جوړښتونه په یوه تېرېدو کې محرمیت او بشپړتیا ورکوي او تړلي معلومات تصدیقوي، نو ځکه VPN پروتوکولونه هغوی د معلوماتو چینل لپاره کاروي. توپیر دننه دی: AES-GCM د شمېرونکي حالت کې AES بلاک کوډ دی چې په GF(2^128) باندې پولینومي تصدیقوونکی لري، پداسې حال کې چې ChaCha20-Poly1305 د 256 بټ کیلي سره جریان کوډ دی او جلا یو ځلي تصدیقوونکی لري.
هغه څه چې په عملیاتو کې مهم دي مشترک دي: دواړه د nonce بیا کارولو په صورت کې ناورینناکه ناکام کیږي، دواړو ته د هرې کیلي لپاره د nonce ځای مدیریت ته اړتیا ده، او هیڅ یو یې هغه ملګری نه سمول چې غلط شی تصدیقوي. هغه پروفایل چې AES-256-GCM وایي د هغه څخه چې CHACHA20-POLY1305 وایي خوندي نه دی؛ دواړه پیاوړي دي کله چې پلي کول سم وي.
چېرته AES-GCM ګټي
AES په ډیرو عصري CPUونو کې ځانګړي لارښوونې لري: په x86 باندې AES-NI، په ARMv8 باندې د کریپټو غزونې، او په نویو POWER او RISC-V ډیزاینونو کې ورته شیان. کله چې دا موجود وي GCM په هر دورې طبقه کې څو بلاکونه په موازي ډول چلوي او د سافټویر پلي کول بې مانا کیږي. دا د سرورونو، ډیسکټاپونو او اوسنیو تلیفونونو لپاره عادي حالت دی، او نو ځکه په معلوماتي مرکز کې د AES کارولو سلا مناسبه پیشفرض ده.
ستونزه د دویمې درجې حالت ده. پرته له ځانګړو لارښوونو په سافټویر کې AES ورو دی، او جدول پر بنسټ سافټویر پلي کول هغه دي چې د cache وخت ستونزو اوږد تاریخ لري. هغه VPN مرکز چې په مجازي ماشین کې چلیږي او کوربه یې میلمه ته د AES بیرغونه نه ښیي همدا حالت دی، او ځکه چې د کوربه CPU دا ځانګړتیا لري په اسانۍ سره له پامه غورځیږي.
وګورئ چې بهیر واقعاً څه ویني، نه هغه څه چې CPU یې ملاتړ کوي: په Linux کې grep -o aes /proc/cpuinfo | head -1، یا په هایپروایزر د CPU ماډل کې ورته ځانګړتیا بیرغ.
چېرته ChaCha20-Poly1305 ګټي
ChaCha20 په وړونکي سافټویر کې ګړندی دی ځکه چې یوازې جمع، څرخېدل او XOR کاروي، او د هغې پلي کول د ډیزاین له مخې د راز پورې تړلي جدول لټون څخه ډډه کوي. په هغه وسیله کې چې AES ګړندي کول نلري دا واقعي ګټه ده، او نو ځکه WireGuard هغه وټاکه: د WireGuard پروتوکول تشریح ChaCha20-Poly1305 د خپل معلوماتي کوډ په توګه پرته له بدیل لیست کوي.
هغه یوه ټاکنه ګټوره خبره وایي: په هغه هارډویر چې AES ګړندی شوی وي، WireGuard د AES-GCM په پرتله لږ تیریدونکی ظرفیت پرېږدي، او لیکوالانو یې دا د تلیفونونو، کورنیو روټرونو او کنټینر کوربه وو په وړاندوینې وړ چلند په بدل کې منلې ده. که ستاسو بیړۍ ډیره کوچنۍ ARM صندوقونه وي، هغه تبادله ستاسو په خوا کې ده.
مخالف حالت بوخت x86 مرکز دی، چېرته چې له AES-NI سره AES-GCM ګړندی او ښه ملاتړ شوی لار ده، او چېرته چې ChaCha20 په هر ګیګابټ کې د اندازې وړ CPU لګوي. هیڅ یو جوړښت کمزوری نه دی؛ پوښتنه دا ده چې ستاسو هارډویر کوم یو په ارزانه توګه پلي کوي.
ستاسو پروتوکول واقعاً څه غوره کول تاسو ته پرېږدي
| Protocol | What you get |
|---|---|
| WireGuard | ChaCha20-Poly1305 only; no negotiation |
| OpenVPN 2.5 and later | Data channel negotiated from data-ciphers: AES-256-GCM, AES-128-GCM, CHACHA20-POLY1305 |
| IPsec / IKEv2 | AES-GCM as a combined-mode transform, or ChaCha20-Poly1305 where both peers implement it |
| OpenVPN control channel | TLS decides; TLS 1.3 offers AES-GCM and ChaCha20-Poly1305 suites |
په OpenVPN کې ویش ته پام وکړئ: کنټرول چینل او معلوماتي چینل جلا جلا خبرې اترې کیږي، نو هغه سیټ چې تاسو د TLS لپاره وینئ د هغه کوډ په اړه هیڅ نه وایي چې ستاسو بار ساتي. د غونډې لنډیز دواړه راپور کوي، او له دواړو یوازې یو لوستل د ګډوډۍ عامه سرچینه ده.
په OpenVPN کې د معلوماتي چینل کوډ د دواړو خواوو په data-ciphers لیست کې راځي. که د سرور لیست او د پیرودونکي لیست سره نه قطع شي، اړیکه یا هغه څه ته ورګرځي چې data-ciphers-fallback اجازه ورکوي یا په بشپړه توګه ناکام کیږي، او هغه ناکامي معمولاً په غلط پوړ تورن کیږي. په دواړو خواوو کې ورته لیست کیږدئ، بیا د لیست ترتیب منل شوی ګڼلو پرځای په لاګ کې خبرې اترې شوې پایله تایید کړئ.
د ځای پرځای کولو په اړه د درېو حقایقو پر بنسټ پریکړه وکړئ
لومړی، آیا پای ټکي د AES ګړندي کول لري؟ که هر ملګری یې لري AES-GCM ارزانه انتخاب او په ډیرو ساتل شوو ترتیباتو کې پیشفرض دی. که یوه معنی لرونکې برخه کوچني روټرونه یا زاړه تلیفونونه وي، ChaCha20-Poly1305 د بیړۍ لکۍ د ظرفیت حد کیدو څخه ساتي.
دویم، آیا پروتوکول اصلاً انتخاب وړاندې کوي؟ له WireGuard سره پریکړه ستاسو په استازیتوب شوې ده، او ګټوره کار دا دی چې ډاډ ترلاسه کړئ چې شاوخوا وسایل په خاموشۍ کې بل څه نه ځای پرځای کوي. له OpenVPN او IPsec سره ځواب یو ترتیبي کرښه او یوه ثبتیدونکې خبرې اترې شوې پایله ده.
دریم، آیا دواړه خواوې سره موافقیدای شي؟ هغه کوډ چې یو ملګری یې نه پلي کوي د فعالیت پریکړه نه ده، بلکې وقفه ده. نو ځکه د ملګرو لیست له هر معیار څخه مهم دی: ګډه بیړۍ د وړتیاوو د تقاطع ته اړتیا لري، نه د ترټولو ګړندي ماشین غوره توب.
که تاسو اندازه کوئ، وسیله، پای ټکی او بار یو شان وساتئ او یو شی بدل کړئ. هغه ازموینه چې په بېلو سیمو کې دوه سرورونه پرتله کوي لاره اندازه کوي، نه کوډ، او په لیپ ټاپ باندې اندازه د هغه کنټینر کوربه په اړه هیڅ نه وایي چې د CPU بیرغونه یې پټ دي. پرتله کړئ، بیا ولیکئ چې واقعاً کوم کوډ خبرې اترې شوی و: هغه ثبت له معیار څخه ډیر ارزښت لري.