Alde kryptografyske fersnellers ferskine yn de PCI-ynventaris, en der wurdt fan útgien dat it VPN no flugger fersiferje sil. Fjouwer aparte oerdrachten moatte slagje foardat dat wier is: it systeem fynt it apparaat, in ûnderhâlden stjoerder bestjoert it, in ynterface toant de operaasje dy't it VPN nedich hat, en de aktive backend fan it VPN freget derom. As ien fan dy fjouwer mislearret, bliuwt de kaart bûten it echte paad fan de tunnel.

Untdekking is de earste oerdracht, net de lêste

Untdekking bewiist allinnich dat de bus in apparaat sjocht en dat de kernel in bytsje idee hat wat it is. Stipe fan de stjoerder is de folgjende poarte, en dy is ôfhinklik fan de ferzje: in module dy't yn in âlde ferzje siet, kin folslein ûntbrekke yn it hjoeddeiske kernelpakket. Dêrnjonken moat de stjoerder it krekte algoritme en de modus registrearje dy't it datakanaal brûkt. In kaart dy't AES-CBC fersnelt, docht neat foar in konfiguraasje dy't AES-GCM ûnderhannelt.

Neam elke oerdracht apart yn de beoardieling, want in mislearring by de fjirde liket fan bûten itselde as in mislearring by de earste.

Lês de algoritme-ynventaris fan de kernel

Begjin mei it sammeljen fan wat de host al wit oer it apparaat en oer de algoritmen dy't it registrearre hat.

lspci -nn | grep -i -E "crypt|hifn|soekris"
grep -E "^(name|driver|priority)" /proc/crypto | head -40

De PCI-rige jout de fabrikant- en apparaat-identifiers dy't nedich binne foar elk stjoerderûndersyk, en/proc/crypto listet registrearre ymplemintaasjes mei har stjoerders en prioriteiten. In prioriteitswearde oardere de seleksje tusken ymplemintaasjes fan itselde algoritme, wat net itselde is as dat in tapassing ien fan harren kiest. As it algoritme fan de kaart dêr net ferskynt, hat de stjoerder it nea registrearre en gjin feroaring yn 'e brûkersromte sil it oanroppe. Skriuw de identifiers en ymplemintaasjenammen op ynstee fan in skermôfbylding fan de kaart.

It VPN moat dy ymplemintaasje selektearje

Beskikberens yn de kernel is in menu, net in garânsje dat it VPN-proses dêr besteld hat. Kontrolearje wat de backend eins brûkt.

openssl speed -evp aes-256-gcm
openssl engine -t -c

It fluggenskommando beoefenet it eigen paad fan de biblioteek en jout in basisline foar de masine sa't dy konfigurearre is, wylst de motorlist sjen lit oft der hielendal in opsjonele provider foar OpenSSL beskikber is. In VPN yn 'e brûkersromte mei syn eigen kryptobiblioteek giet folslein om 'e kernelymplemintaasjes hinne, sadat in registrearre stjoerder foar him irrelevant wêze kin. It losmeitsjen fan it datakanaal is wer in tredde meganisme, dat pakketferwurking feroaret ynstee fan fersiferingsfersiken nei in útwreidingskaart te stjoeren. Bepaal hokker fan dy trije jo útrôl beskriuwt foardat jo hardware foar de fjirde keapje.

Fergelykje mei it CPU-paad dat jo al hawwe

Moderne prosessors befetsje AES-ynstruksjes dy't in ûnderhâlden biblioteek sûnder ekstra hardware brûkt, en se foarkomme bustransfers en ekstra kopyen. In âlde fersneller kin fan dat paad ferlieze wylst er noch yndrukwekkende rauwe fersiferingssifers rapportearret. Mjitte de echte wurklast: itselde ferkear, deselde beskermingsynstellingen, basisline tsjin kandidaat, mei CPU-last en tapassingsfertroch tegearre registrearre. Nim gedrach by bywurkjen en werstel op yn 'e beslissing, want in net-ûnderhâlden module ferheget it ûnderhâldsrisiko fan 'e poarte foar har hiele libben.

It oankeapgeval is in stipe keatling plus in metten foardiel. In ûntdekte kaart, of in module dy't immen ea kompilearre, is gjin reden om in ûnderhâlden poarte ôfhinklik te meitsjen fan ferâldere hardware.

Relatearre artikelen