Zwou Etiketten ginn esou benotzt wéi wann et d’selwecht wier: hardware-beschleunegt an an de Kernel offload. Dat eng beschreift wéi eng Instruktiounen d’AES-Routine vun enger Bibliothéik ausféiert, dat anert beschreift wou d’Paketveraarbechtung geschitt. E VPN kann dat éischt ouni dat zweet hunn, dat zweet ouni dat éischt, oder béides gläichzäiteg. All Entscheedung iwwer Leeschtung muss domat ufänken ze nennen wéi eng vun deenen zwou Dir tatsächlech ännert.

Zwou Achsen, net eng Partie

Déi éischt Achs ass d’Implementatioun: geet de Code deen AES-256-GCM mécht op eng Versioun déi déi speziell Instruktioune vum Prozessor benotzt, oder op eng portabel Routine déi se als gewéinlech Arithmetik ausféiert. Dës Wiel läit an der kryptografescher Bibliothéik a gëtt bei hirer Initialiséierung gemaach.

Déi zweet Achs ass d’Plaz: geet de Paket duerch de Transformatiounswee vum Kernel, oder liest en Daemon am Benotzerraum vun engem Tunnelapparat, verschlësselt a schreift zréck.

Keng Achs begrenzt déi aner. E VPN am Benotzerraum op enger CPU mat AES-Instruktiounen kann se déi ganzen Zäit benotzen, an e Kernelwee op enger CPU ouni se fält op eng Software-Implementatioun zréck. D’Etiketten an de Materialie vun de Fournisseuren maachen deen Ënnerscheed selten, an dofir maachen d’Stellungsrotioune fir Ofstëmmung déi tëschent deenen zwou Situatiounen kopéiert ginn esou dacks näischt.

Achs eng: wéi ee Code mécht d’Verschlësselung

OpenSSL erkennt Prozessor-Eegenschaften bei der Initialiséierung a benotzt d’Resultat fir optimiséiert Codeweeër ze wielen, wéi et d’Dokumentatioun iwwer x86-Fähegkeeten beschreift. AES-NI ass eng vun den dokumentéierte Fähegkeeten hannert dëser Verdeelung. Naischt dovun verlaangt datt d’Bibliothéik e Kernelbestanddeel gëtt.

Bestätegt datt d’Eegenschaft fir de Prozess sichtbar ass ier Dir unhëlt datt de séiere Wee benotzt gëtt. Op Linux ass d’Quell d’Feld flags an /proc/cpuinfo, an an engem Gaascht reflektéiert et wat den Hypervisor ausgëtt an net den Numm vum Modell vum physeschen Host.

grep -m1 '^flags' /proc/cpuinfo | grep -o '\baes\b'
openssl list -providers -verbose

Déi zweet Kommando nennt d’Ubidder déi an deem Build gelueden sinn. Si seet Iech net wéi eng Bibliothéik de VPN-Service gelinkt huet, an en Host kann zwou OpenSSL-Installatiounen droen während de lafende Prozess just eng dovun benotzt.

Achs zwee: wou de Paketwee leeft

Plaz am Kernel heescht datt d’Transformatioun an der IPsec-Maschinn vum Kernel selwer oder an engem Tunneldriver am Kernel geschitt, sou datt d’Pakete fir all Charge keng Hin- an Hierrees duerch e Prozess am Benotzerraum brauchen. Dat kann Kopien a Kontextwiessel spueren an d’Aarbecht iwwer Käre verdeelen wéi en Eenheet-Daemon et net kann. Et verréckelt och d’Zieler an d’Spueren déi Dir liest wann den Duerchfloss fält, well d’Aarbecht elo op der anerer Säit vun enger Grenz geschitt déi Dir net kontrolléiert. Betruecht dat als Debugkosten, net just als Leeschtungsentscheedung.

Et schaaft keng Instruktiounsënnergrëtzung, konfiguréiert keen Chiffrement a mécht keen existéierende Wee funktionnéierend.

Virtualiséierung bäit och eng Fal op dëser Achs. Engem Gaascht kann e maskéierte CPU-Modell ginn dee Fähegkeeten verstoppt déi den Host huet, an e verschachtelte Gaascht kann nach manner gesinn. Liest d’Fähegkeetsvue vun bannen aus dem Ëmfeld wou de VPN wierklech leeft, net vun der Hypervisor-Konsole.

Wat all Wiel keeft, a wat se net kann

D’praktesch Fro ass wou d’Zäit higeet. Wann een beschäftegte Fuedem, widderholl Pufferkopien oder e Systemopruff pro Paket den Duerchfloss begrenzen, kann et hëllefen d’Transformatioun op e Wee ze verréckelen deen déi Käschten ewech hëlt, wann de Kernel déi Transformatioun implementéiert déi Dir braucht.

Wann d’Grenz en iwwerlaaschte Upstream, en Wee mat Verloscht, eng laang Hin- an Hierreeszäit, en satten Zilservice oder een un ee Kär gebonnenen Fuedem ass, ännert d’Plaz naischt Wichteges. Datselwecht gëllt fir d’Wiel vun den Instruktiounen: AES op speziellem Hardware kann ene fehlenden Wee net reparéieren an hëlleft net wann den Tunnel roueg ass well d’Nimm-Opléisung feelt.

Wou béides gëllt, ergänze se sech. E Kernelwee kann déiselwecht Verdeelung op Instruktiounsniveau an der Krypto-API vum Kernel benotzen, an e Benotzerraumwee mat enger gutt gewielter Bibliothéik benotzt se schonn. D’Entscheedung ass net wéi eng am Abstrakten méi séier ass; se ass fir wéi eng Käschten Dir Beweiser hutt.

Schreift déi véier Fakten op ier Dir eppes ännert

Schreift de Service-Binary an d’kryptografesch Bibliothéik op mat där en gelinkt ass, well déi entscheeden d’Achs eng. Duerno notéiert den ausgehandelte Dateschutz, well e Chiffrement ouni spezielle Instruktiounswee sech anescht verhält wéi een domat, an de Set gëtt vun deenen zwou Säiten gewielt.

Duerno d’Fähegkeetsvue vun bannen aus dem lafenden Ëmfeld, an zum Schluss den aktive Paketwee mat Beweiser datt de Modus deen Dir denkt ass aktiv wierklech esou ass. E geluedene Modul ass kee Beweis datt e Profil en benotzt, an eng Konfiguratiounszeil ass kee Beweis datt de Kernel se akzeptéiert huet.

Ännert eng Saach, a vergläicht dann mat enger konsequenter Belaaschtung mat deene selwechten Endpunkten an der selwechter Transferrichtung. Eng Vitessbehaaptung déi Dir net gemooss hutt ass manner wäert wéi eng Notiz déi seet datt de Backend ni a Fro gestallt gouf.

Ähnlech Artikelen