Ugrás a tartalomra

AES-NI

Architektúra-hivatkozásFeex

Az AES-NI egy x86-os utasításkészlet-kiterjesztés az AES titkosítási és visszafejtési menetekhez, valamint a kapcsolódó kulcsütemezési feladatokhoz. Egy kriptográfiai implementáció egyes részeit gyorsítja fel ahelyett, hogy egy teljes biztonságos protokollt biztosítana.

Amit tudni érdemes

Az AES-NI egy x86-os utasításkészlet-kiterjesztés az AES titkosítási és visszafejtési menetekhez, valamint a kapcsolódó kulcsütemezési feladatokhoz. Egy kriptográfiai implementáció egyes részeit gyorsítja fel ahelyett, hogy egy teljes biztonságos protokollt biztosítana.

Hogyan működik

Az olyan utasítások, mint az AESENC és az AESDEC, egy 128 bites AES-állapotot alakítanak át, míg külön formák kezelik a záró meneteket és segítik a kulcskiterjesztést. Egy AES-implementáció választja meg a menetek számát és sorrendjét a kulcshossz alapján. Az utasítások önmagukban nem választanak üzemmódot, nem foglalnak nonce-értékeket, nem hitelesítik az üzeneteket, és nem védik a tárolt kulcsokat.

Ahol hasznos

Egy karbantartott kriptográfiai függvénytár képes az AES-NI-re irányítani a vezérlést egy támogatott AES-mód esetén. Az AES-GCM hitelesítési feldolgozást is igényel, amelyet gyakran átvitel nélküli szorzással (carry-less multiplication) gyorsítanak. A protokoll-egyeztetés, a rekordelrendezés és az üzenethossz mind befolyásolják a végpontok közötti teljesítményt.

A támogatás és az engedélyezés ellenőrzése

A CPUID.01H:ECX 25. bitje jelzi a hagyományos AES-NI meglétét. A végrehajtási környezetnek kezelnie kell az XMM-állapotot. Szélesebb VEX vagy EVEX implementációk esetén külön ellenőrizze a VAES és a vektorállapot követelményeit, és használja a kriptográfiai függvénytár támogatott elosztási mechanizmusait.

Használjon olyan karbantartott kriptográfiai implementációt, amely kezeli a funkcióválasztást, a hibakezelést és a teljes algoritmust. A hardveres gyorsítás primitíveket biztosít; a kulcskezelés, a hitelesítés, a nonce-szabályok és a protokollválasztások a szoftver feladatai maradnak.

Amit a funkció nem biztosít

Az AES-NI támogatása nem jelent biztonsági tanúsítványt, kártevő-felderítési ítéletet vagy garanciát a környező kód oldalsó csatornái ellen. Az AES nem SHA. A VAES lekérdezése külön történik, és egy vendégrendszer elrejtheti az AES-NI-t még akkor is, ha a gazdagép rendelkezik vele.

Kompatibilitás és teljesítmény a gyakorlatban

Egy funkciómező nem jelent terméktanúsítványt vagy bizonyítékot arra, hogy egy adott alkalmazás biztonságos. A teljesítmény az üzenetméretektől, az üzemmódtól, a kötegeléstől és a protokoll többi részétől függ. Ellenőrizze a tényleges szolgáltatót, és tartsa naprakészen annak biztonsági frissítéseit.

Gyakorlati ellenőrzőlista

  1. Rögzítse az érintett processzor vagy platform pontos modelljét, valamint az alkalmazás, az operációs rendszer és a futtatókörnyezet verzióját. Őrizze meg a tényleges hiba vagy követelmény pontos szövegezését.
  2. Ellenőrizze az adott modellhez tartozó gyártói referenciát, majd vizsgálja meg a tényleges képességet és az engedélyezett állapotot abban a környezetben, ahol a program fut.
  3. Vesse össze a kiválasztott bináris vagy háttérrendszer minden követelményét. Egy hasonló elnevezésű funkció, álnév vagy tág technológiai címke nem elegendő.
  4. Győződjön meg arról, hogy az alkalmazás a kívánt implementációt választotta ki. Használja annak dokumentált diagnosztikai eszközeit és egy támogatott tartalék megoldást, ha a követelmények nem teljesülnek.
  5. Egyszerre csak egy támogatott módosítást hajtson végre, és ismételje meg ugyanazt a munkaterhelést. Tartsa elérhetően az eredeti konfigurációt és a helyreállítási útvonalat.

Ha a funkció szerepel a listán, de a szoftver nem tudja használni

Kezdje a hibát jelző pontos komponenssel. A hardveradatbázis a rögzített képességet írja le; az operációs rendszer vagy a hipervizor ettől eltérő tényleges környezetet tehet elérhetővé. Az érvénytelen utasítás miatti hiba (illegal-instruction) esetén a ténylegesen hibát okozó utasítást és a bináris összeállítást is vizsgálni kell, mivel az adatsérülés vagy egy nem kapcsolódó, nem támogatott utasítás is hasonló tünetet produkálhat.

Telepítse az adott platformhoz támogatott alkalmazás-, illesztőprogram- vagy futtatókörnyezet-verziót, és szükség esetén használja a gyártó által dokumentált alapértelmezett vagy tartalék változatot. Egy szoftverfrissítés nem hozhat létre olyan utasítást, amellyel a processzor nem rendelkezik. A firmware- és biztonságipolitika-módosítások során a rendszer gyártójának eljárását és egy helyreállítási tervet kell követni egy általános optimalizálási recept helyett.

A magyarázat forrásai és hatóköre

Intel 64 and IA-32 Architectures Software Developer's Manual

Ezek a hivatkozások az architekturális viselkedést és a szoftverkövetelményeket határozzák meg. Nem ellenőrzik függetlenül a hivatkozott hardvermodell oldalán található összes funkcióértéket. A modell támogatásához használja az adott oldal gyártói bizonyítékait, és ellenőrizze a tényleges rendszerkonfigurációt. Ez a cikk nem tartalmaz teljesítménytesztet, tanúsítást vagy független felülvizsgálati dátumot.

Források és ellenőrzés

Szerkesztői jogtulajdonos: Feex. Független felülvizsgálati dátum nincs rögzítve. Hogyan kutatunk.

Hasznos volt ez a cikk?

Egy igen vagy nem is elég. Válasszon egy indokot, ha szeretne, vagy írjon egy rövid megjegyzést.

Hasznos volt ez a cikk?