AES-GCM oder ChaCha20-Poly1305: d Datencifre fir eng VPN auswielen
AES-GCM ass déi offensichtlech Wiel op Serveren mat Hardwarebeschleunegung, an ChaCha20-Poly1305 ass déi, déi gutt ouni et leeft. Vläicht entscheet däi Protokoll fir dech.
Béid Nimm sinn AEAD-Konstruktiounen, béid sinn standardiséiert, an op engem aktuellen x86-Server sättigt jidderee vun hinne eng Gigabit-Verbindung ouni siichtbar Ustrengung. D Wiel hält op willkürlech ze sinn, wanns de dee Server verléiss: bëlleg Routere, méi al Telefonen an virtuell Apparater hunn dacks keng AES-Beschleunegung, an do ass den Ënnerscheed grouss. D'Verglach ass also net wéi eng Cifre méi séier ass, mä wéi eng Cifre op dësem Set vun Endpunkte gutt leeft, an ob de Protokoll iwwerhaapt eng Wiel ubitt.
Déi selwecht Aarbecht, aner Kären
Béid Konstruktiounen ginn Vertraulechkeet an Integritéit an engem Passage a authentifizéieren assoziéiert Daten, dofir benotze VPN-Protokollen se fir den Datenkanal. Den Ënnerscheed ass dobannen: AES-GCM ass d'AES-Blockcifre am Zählermodus mat engem polynomeschen Authentifizéierer iwwer GF(2^128), wärend ChaCha20-Poly1305 eng Stroumcifre mat engem 256-Bit-Schlëssel an engem getrennten Eenmol-Authentifizéierer ass.
Wat operationell zielt, ass gemeinsam: béid falen katastrophal aus bei Nonce-Wiederbenotzung, béid brauchen d'Gestioun vum Nonce-Raum pro Schlëssel, an keen repareiert e Partner, deen dat Falscht authentifizéiert. E Profil mat AES-256-GCM ass net méi sécher wéi een mat CHACHA20-POLY1305; béid si staark, wann d'Implementatioun richteg ass.
Wou AES-GCM gewënnt
AES huet op de meeschte modernen CPUs speziell Instruktiounen: AES-NI op x86, d'Krypto-Erweiderungen op ARMv8 an Äquivalenter op neie POWER- a RISC-V-Designen. Wa se do sinn, leeft GCM e puer Blocken parallel pro Zyklusklass an d'Software-Implementatioun gëtt irrelevant. Dat ass de normale Fall fir Serveren, Desktops an aktuell Telefonen, an dofir ass de Rot, AES ze benotzen, eng vernünfteg Virstellung am Rechenzentrum.
De Problem ass de Fall vun zweeter Uerdnung. Ouni speziell Instruktiounen ass AES a Software lues, an tabellgesteiert Software-Implementatioune sinn déi mat enger laanger Geschicht vu Cache-Timing-Problemer. E VPN-Konzentrator an enger virtueller Maschinn, där hire Host dem Gaascht keng AES-Flags weist, ass genau dëse Fall, an et ass liicht ze iwwersinn, well d'CPU vum Host d'Funktioun huet.
Préift, wat de Prozess tatsächlech gesäit, net wat d'CPU ënnerstëtzt: grep -o aes /proc/cpuinfo | head -1 op Linux, oder de passenden Funktiounsflag am CPU-Modell vum Hypervisor.
Wou ChaCha20-Poly1305 gewënnt
ChaCha20 ass séier a portable Software, well et nëmmen Additioun, Rotatioun an XOR benotzt, an seng Implementatioune vermeiden aus Design geheimofhängeg Tabellsich. Op engem Apparat ouni AES-Beschleunegung ass dat e materiellen Avantage, an dofir huet WireGuard et gewielt: d'Beschreiwung vum WireGuard-Protokoll listet ChaCha20-Poly1305 als seng Datencifre ouni Alternativ.
Déi eenzel Wiel seet eppes Nëtzleches: op Hardware wou AES beschleunegt ass, gëtt WireGuard e bësse Durchsatz am Verglach zu AES-GCM op, an d'Auteuren hunn dat akzeptéiert am Austausch fir viraussiichtlecht Verhalen op Telefonen, Heemrouteren an Container-Hosten. Wann deng Flott gréisstendeels kleng ARM-Këschte sinn, ass deen Austausch zu dengem Virdeel.
De Géigefall ass e beschäftegte x86-Konzentrator, wou AES-GCM mat AES-NI de méi séiere a besser ënnerstëtzten Wee ass, an wou ChaCha20 moossbar CPU pro Gigabit kascht. Keng vun deenen zwou Konstruktiounen ass eng Schwächt; d'Fro ass, wéi eng deng Hardware bëlleg ausféiert.
Wat däi Protokoll dech tatsächlech wielen léisst
| 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 |
Maach op d'Deelung an OpenVPN Opmierksamkeet: de Kontrollkanal an den Datenkanal ginn getrennt verhandelt, also seet d'Suite, déi s de fir TLS gesäis, näischt iwwer d'Cifre, déi deng Notzlaascht schützt. D'Sessiounszesummefaassung mellt béid, an nëmmen eng vun den zwou ze liesen ass eng heefeg Quell vu Verwirrung.
An OpenVPN kënnt d'Cifre vum Datenkanal aus der Lëscht data-ciphers op béide Säiten. Wa sech d'Lëscht vum Server an déi vum Client net schneiden, fält d'Verbindung buedem op dat zeréck, wat data-ciphers-fallback erlaabt, oder se feelt komplett, an dee Feeler gëtt meeschtens der falscher Schicht ugeschriwwen. Setz déi selwecht Lëscht op béide Säiten, a bestätegt duerno dat verhandelt Resultat am Log, amplaz unzehuelen, d'Reiefolleg vun der Lëscht wier respektéiert ginn.
Entscheet op Basis vun dräi Fakten iwwer d'Deployement
Éischtens, hunn d'Endpunkten AES-Beschleunegung? Wa jiddwereen et huet, ass AES-GCM déi bëlleg Wiel an d'Standardastellung an de meeschte gepflegte Konfiguratiounen. Wa en bedeitenden Deel kleng Routere oder méi al Telefone sinn, hält ChaCha20-Poly1305 de Schwanz vun der Flott dovun of, d'Kapazitéitslimit ze ginn.
Zweetens, bitt de Protokoll iwwerhaapt eng Wiel? Bei WireGuard gouf d'Entscheedung fir dech geholl, an déi nëtzlech Aarbecht ass ze préiwen, datt d'Tools ronderëm net stëll eppes anescht ersetzen. Bei OpenVPN an IPsec ass d'Äntwert eng Konfiguratiounslinn an e verhandelt Resultat, dat ze notéieren ass.
Drëttens, kënnen sech déi zwou Säiten eenegen? Eng Cifre, déi ee Partner net implementéiert, ass keng Leeschtungsentscheedung, et ass en Ausfall. Dofir zielt d'Partnerlëscht méi wéi jiddwer Benchmark: eng gemëschte Flott brauch de Schnëtt vun de Fäegkeeten, net d'Virléift vun der séierster Maschinn.
Wanns de mooss, hal d'Apparat, den Endpunkt an d'Laascht identesch an ännere just eng Saach. En Test, deen zwee Serveren a verschiddene Regiounen vergläicht, mooss d'Route, net d'Cifre, an e Laptop-Benchmark seet näischt iwwer en Container-Host, deem seng CPU-Flags maskéiert sinn. Vergläich, a schreif duerno op, wéi eng Cifre tatsächlech verhandelt gouf: déi Notiz ass méi wäert wéi de Benchmark.