Ügyféloldali titkosítás üzenetsorokhoz

A .NET-hez és Pythonhoz készült Azure Queue Storage-ügyfélkódtárak támogatják az ügyfélalkalmazásokon belüli adatok titkosítását az Azure Storage-ba való feltöltés előtt, valamint az adatok visszafejtését az ügyfélre való letöltés során. Az ügyfélkódtárak az Azure Key Vault-nal való integrációt is támogatják a tárfiókkulcsok kezeléséhez.

Fontos

Az Azure Storage mind a szolgáltatásoldali, mind az ügyféloldali titkosítást támogatja. A legtöbb esetben a Microsoft szolgáltatásoldali titkosítási funkciók használatát javasolja az adatok védelmének megkönnyítése érdekében. A szolgáltatásoldali titkosítással kapcsolatos további információkért lásd: Inaktív adatok Azure Storage-titkosítása.

Tudnivalók az ügyféloldali titkosításról

Az Azure Queue Storage ügyfélkódtára az AES-t használja a felhasználói adatok titkosításához. Az ügyféloldali titkosítás két verziója érhető el az ügyfélkódtárban:

Figyelmeztetés

Az ügyféloldali titkosítás 1. verziójának használata már nem ajánlott az ügyfélkódtár CBC-mód implementációjában jelentkező biztonsági rés miatt. További információ erről a biztonsági résről: Az Azure Storage az ügyféloldali titkosítás frissítése az SDK-ban a biztonsági rés kezelése érdekében. Ha jelenleg az 1-es verziót használja, javasoljuk, hogy frissítse az alkalmazást a 2- es verzió használatára, és migrálja az adatokat. További útmutatást a következő, Az alkalmazások biztonsági résének elhárítása című szakaszában talál.

Az alkalmazások biztonsági résének elhárítása

A Queue Storage ügyfélkódtár CBC-mód implementációjában észlelt biztonsági rés miatt a Microsoft azt javasolja, hogy azonnal hajtsa végre az alábbi műveletek egyikét:

  • Fontolja meg a szolgáltatásoldali titkosítási funkciók használatát az ügyféloldali titkosítás helyett. A szolgáltatásoldali titkosítási funkciókkal kapcsolatos további információkért lásd: Inaktív adatok Azure Storage-titkosítása.

  • Ha ügyféloldali titkosítást kell használnia, akkor migrálja az alkalmazásokat az ügyféloldali titkosítás v1-ről az ügyféloldali titkosítás v2-be.

Az alábbi táblázat összefoglalja azokat a lépéseket, amelyek szükségesek ahhoz, hogy az alkalmazásokat ügyféloldali titkosítási v2-be migrálja:

Ügyféloldali titkosítás állapota Javasolt műveletek
Az alkalmazás ügyféloldali titkosítást használ az ügyfélkódtár olyan verziója, amely csak az 1. ügyféloldali titkosítást támogatja. Frissítse az alkalmazást úgy, hogy az ügyféloldali titkosítást 2-es verziójú ügyféloldali titkosítást támogató ügyfélkódtárat használja. A támogatott verziók listáját az ügyféloldali titkosítás SDK-támogatási mátrixában találja.

Frissítse a kódot az ügyféloldali titkosítás v2 használatára.
Az alkalmazás ügyféloldali titkosítást használ az ügyféloldali titkosítást támogató ügyfélkódtár 2-es verziójával. Frissítse a kódot az ügyféloldali titkosítás v2 használatára.

Emellett a Microsoft azt javasolja, hogy tegye meg a következő lépéseket az adatok védelmének érdekében:

  • Konfigurálja a tárfiókokat úgy, hogy privát végpontok használatával biztosítsa a virtuális hálózat (VNet) és a tárfiók közötti összes forgalmat egy privát kapcsolaton keresztül. További információ: Privát végpontok használata az Azure Storage-hoz.
  • Csak adott hálózatokra korlátozza a hálózati hozzáférést.

SDK támogatási mátrix ügyféloldali titkosításhoz

Az alábbi táblázat azt mutatja be, hogy a .NET-hez és a Pythonhoz készült ügyfélkódtárak mely verziói támogatják az ügyféloldali titkosítást:

.NET Python
Ügyféloldali titkosítás v2 és v1 12.11.0-s és újabb verziók 12.4.0-s és újabb verziók
Csak ügyféloldali titkosítás v1 12.10.0-s és korábbi verziók 12.3.0-s és korábbi verziók

Ha az alkalmazás ügyféloldali titkosítást használ a .NET vagy a Python ügyfélkódtár korábbi verziójával, először frissítenie kell a kódot egy olyan verzióra, amely támogatja az ügyféloldali titkosítás v2-t. Ezután vissza kell fejtenie és újra kell titkosítania az adatokat az ügyféloldali titkosítás v2-vel. Szükség esetén használhatja az ügyfélkódtár olyan verzióját, amely támogatja az ügyféloldali titkosítás v2-t az ügyfélkódtár egy korábbi verziójával, miközben migrálja a kódot.

Az ügyféloldali titkosítás működése

Az Azure Queue Storage ügyfélkódtárai borítéktitkosítással titkosítják és visszafejtik az adatokat az ügyféloldalon. A borítéktitkosítás egy vagy több további kulccsal titkosítja a kulcsot.

A Queue Storage ügyfélkódtárai az Azure Key Vault függenek az ügyféloldali titkosításhoz használt kulcsok védelméhez. Az Azure Key Vault kapcsolatos további információkért lásd: Mi az az Azure Key Vault?.

Titkosítás és visszafejtés a boríték technikával

A boríték technikán keresztüli titkosítás a következőképpen működik:

  1. Az Azure Storage-ügyfélkódtár létrehoz egy tartalomtitkosítási kulcsot (CEK), amely egyszeri használatú szimmetrikus kulcs.

  2. A felhasználói adatok titkosítása a CEK használatával történik.

  3. A CEK ezután a kulcstitkosítási kulccsal (KEK) burkolódik (titkosítva). A KEK-et egy kulcsazonosító azonosítja, és lehet aszimmetrikus kulcspár vagy szimmetrikus kulcs. A KEK-et helyileg kezelheti, vagy egy Azure-Key Vault tárolhatja.

    Maga az Azure Storage-ügyfélkódtár soha nem fér hozzá a KEK-hez. A kódtár meghívja a Key Vault által biztosított kulcsburkoló algoritmust. A felhasználók dönthetnek úgy, hogy egyéni szolgáltatókat használnak a kulcsburkoláshoz/kicsomagoláshoz, ha szükséges.

  4. A titkosított adatok ezután feltöltődnek az Azure Queue Storage-ba. A burkolt kulcs és néhány további titkosítási metaadat interpolációja történik a titkosított adatokkal.

A boríték technikával történő visszafejtés a következőképpen működik:

  1. Az Azure Storage-ügyfélkódtár feltételezi, hogy a felhasználó helyileg vagy egy Azure-Key Vault kezeli a KEK-t. A felhasználónak nem kell tudnia a titkosításhoz használt kulcsot. Ehelyett beállíthat és használhat egy kulcsfeloldót, amely feloldja a kulcsok különböző kulcsazonosítóit.
  2. Az ügyfélkódtár letölti a titkosított adatokat az Azure Storage-ban tárolt bármely titkosítási anyaggal együtt.
  3. A becsomagolt CEK ezután le van bontva (visszafejtve) a KEK használatával. Az ügyfélkódtár nem fér hozzá a KEK-hez a folyamat során, de csak az Azure Key Vault vagy más kulcstároló kibontási algoritmusát hívja meg.
  4. Az ügyfélkódtár a CEK használatával fejti vissza a titkosított felhasználói adatokat.

Üzenettitkosítás/visszafejtés

Mivel az üzenetsor-üzenetek bármilyen formátumúak lehetnek, az ügyfélkódtár egy egyéni formátumot határoz meg, amely tartalmazza az inicializálási vektort (IV) és a titkosított tartalomtitkosítási kulcsot (CEK) az üzenet szövegében.

A titkosítás során az ügyfélkódtár 16 bájtból álló véletlenszerű IV-et hoz létre, valamint egy 32 bájtos véletlenszerű CEK-et, és ezzel az információval végrehajtja az üzenetsor szövegének borítékos titkosítását. Ezután a rendszer hozzáadja a burkolt CEK-et és néhány további titkosítási metaadatot a titkosított üzenetsorhoz. Ez a módosított üzenet (alább látható) a szolgáltatásban van tárolva.

<MessageText>{"EncryptedMessageContents":"6kOu8Rq1C3+M1QO4alKLmWthWXSmHV3mEfxBAgP9QGTU++MKn2uPq3t2UjF1DO6w","EncryptionData":{…}}</MessageText>

A visszafejtés során a rendszer kinyeri a burkolt kulcsot az üzenetsorból, és le van bontva. A IV is ki lesz nyerve az üzenetsor-üzenetből, és a fel nem írt kulccsal együtt használja az üzenetsor-üzenet adatainak visszafejtéséhez. A titkosítási metaadatok kicsik (500 bájt alatt), így bár az üzenetsor üzeneteinek 64 KB-os korlátja felé számít, a hatásnak kezelhetőnek kell lennie. A titkosított üzenet Base64 kódolású, ahogy a fenti kódrészlet is mutatja, amely az elküldött üzenet méretét is kiterjeszti.

Az üzenetsorban lévő üzenetek rövid élettartamú jellege miatt nem szükséges az üzenetsor-üzenetek visszafejtése és újbóli visszafejtése az ügyféloldali titkosítás v2-re való frissítés után. A kevésbé biztonságos üzeneteket a rendszer a normál üzenetsor-használat során elforgatja.

Ügyféloldali titkosítás és teljesítmény

Ne feledje, hogy a tárolási adatok titkosítása további teljesítményterhelést eredményez. Amikor ügyféloldali titkosítást használ az alkalmazásban, az ügyfélkódtárnak biztonságosan létre kell hoznia a CEK-et és a IV-et, titkosítania kell magát a tartalmat, kommunikálnia kell a kiválasztott kulcstárolóval a kulcsok beágyazásához, valamint további metaadatok formázásához és feltöltéséhez. Ez a többletterhelés a titkosítandó adatok mennyiségétől függ. Javasoljuk, hogy az ügyfelek mindig teszteljék az alkalmazásaikat a fejlesztés során.

Következő lépések