Üzenetsorok ügyféloldali titkosítása
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 Vaulttal való integrációt is támogatják a tárfiók kulcskezeléséhez.
Fontos
Az Azure Storage mind a szolgáltatásoldali, mind az ügyféloldali titkosítást támogatja. A legtöbb forgatókönyv esetében a Microsoft szolgáltatásoldali titkosítási funkciók használatát javasolja az adatok védelme érdekében. A szolgáltatásoldali titkosítással kapcsolatos további információkért tekintse meg az Inaktív adatok Azure Storage-titkosítását.
Tudnivalók az ügyféloldali titkosításról
Az Azure Queue Storage ügyféloldali kódtára az AES használatával titkosítja a felhasználói adatokat. Az ügyféloldali titkosításnak két verziója érhető el az ügyféloldali kódtárban:
- A 2. verzió Galois/Counter Mode (GCM) módot használ az AES-sel.
- Az 1. verzió titkosítási blokkláncolást (CBC) használ az AES használatával.
Figyelmeztetés
Az ügyféloldali titkosítás 1. verziójának használata már nem ajánlott az ügyféloldali titkosítás biztonsági rése miatt az ügyféloldali kódtár CBC mód implementációjában. A biztonsági résről további információt az Azure Storage ügyféloldali titkosításának frissítése az SDK-ban a biztonsági rés kezelése érdekében című témakörben talál. Ha jelenleg az 1-es verziót használja, javasoljuk, hogy frissítse az alkalmazást a 2. verzió használatára, és migrálja az adatokat. További útmutatásért tekintse meg az alkalmazások biztonsági résének elhárítása című szakaszt.
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 felfedezett 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ókról további információt az inaktív adatok Azure Storage-titkosításával kapcsolatban talál.
Ha ügyféloldali titkosítást kell használnia, akkor migrálja az alkalmazásokat az ügyféloldali titkosítás v1-ből az ügyféloldali titkosítás v2-be.
Az alábbi táblázat összefoglalja azokat a lépéseket, amelyekre szükség van, ha az alkalmazásokat ügyféloldali titkosítási v2-be szeretné migrálni:
Ügyféloldali titkosítás állapota | Javasolt műveletek |
---|---|
Az alkalmazás ügyféloldali titkosítást használ az ügyféloldali titkosítás egy olyan verziója, amely csak az ügyféloldali titkosítás 1-es verzióját támogatja. | Frissítse az alkalmazást az ügyféloldali titkosítás v2-t támogató ügyféloldali titkosítási verzió használatára. A támogatott verziók listájához tekintse meg az ügyféloldali titkosítás SDK-támogatási mátrixát. 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éloldali titkosítás 2-es verziójával. | Frissítse a kódot az ügyféloldali titkosítás v2 használatára. |
A Microsoft emellett a következő lépéseket javasolja az adatok védelme érdekében:
- Konfigurálja a tárfiókokat úgy, hogy privát végpontok használatával biztonságossá tegye 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 bizonyos hálózatokhoz való hálózati hozzáférés korlátozása.
SDK támogatási mátrix ügyféloldali titkosításhoz
Az alábbi táblázat azt mutatja be, hogy a .NET- és Python-ü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 egy 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 2-es verziójá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éloldali titkosítást támogató ügyféloldali titkosítás v2-t az ügyféloldali kódtár egy korábbi verziójával, a kód áttelepítése során.
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 kulcsot egy vagy több további kulcssal titkosít.
A Queue Storage ügyfélkódtárai az Azure Key Vaultra támaszkodnak az ügyféloldali titkosításhoz használt kulcsok védelméhez. További információ az Azure Key Vaultról: Mi az Az Azure Key Vault?.
Titkosítás és visszafejtés a borítéktechnikával
A borítéktechnikán keresztüli titkosítás a következőképpen működik:
Az Azure Storage-ügyfélkódtár létrehoz egy tartalomtitkosítási kulcsot (CEK), amely egy egyszeri használatú szimmetrikus kulcs.
A felhasználói adatok titkosítása a CEK használatával történik.
A CEK ezután be van csomagolva (titkosítva) a kulcstitkosítási kulccsal (KEK). A KEK-t kulcsazonosító azonosítja, és lehet aszimmetrikus kulcspár vagy szimmetrikus kulcs. A KEK-t helyileg kezelheti, vagy egy Azure Key Vaultban 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 vagy a törléshez, ha szükséges.
A titkosított adatok ezután fel lesznek töltve az Azure Queue Storage-ba. A burkolt kulcs és néhány további titkosítási metaadat együtt interpolálva lesz a titkosított adatokkal.
A borítéktechnikán keresztüli visszafejtés a következőképpen működik:
- Az Azure Storage-ügyfélkódtár feltételezi, hogy a felhasználó helyileg vagy egy Azure Key Vaultban kezeli a KEK-t. A felhasználónak nem kell tudnia a titkosításhoz használt konkrét kulcsot. Ehelyett beállítható és használható egy kulcsfeloldó, amely a kulcsok különböző kulcsazonosítóit oldja fel.
- Az ügyfélkódtár letölti a titkosított adatokat az Azure Storage-ban tárolt titkosítási anyagokkal együtt.
- A becsomagolt CEK ezután a KEK használatával bontja le (visszafejtve). 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ó le nem bontott algoritmusát hívja meg.
- 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 véletlenszerű 16 bájtos IV-t hoz létre, valamint egy 32 bájtos véletlenszerű CEK-et, és az üzenetsor-üzenet szövegének borítéktitkosítását hajtja végre ezen információk használatával. A becsomagolt CEK és néhány további titkosítási metaadat hozzáadódik a titkosított üzenetsor üzenetéhez. Ez a módosított üzenet a szolgáltatásban lesz tárolva.
<MessageText>{"EncryptedMessageContents":"6kOu8Rq1C3+M1QO4alKLmWthWXSmHV3mEfxBAgP9QGTU++MKn2uPq3t2UjF1DO6w","EncryptionData":{…}}</MessageText>
A visszafejtés során a rendszer kinyeri a becsomagolt kulcsot az üzenetsorból, és feloldja a feloldást. A IV is ki lesz nyerve az üzenetsor-üzenetből, és a le 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 kibővíti az elküldött üzenet méretét.
Az üzenetsor üzeneteinek 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énybeli többletterhelést eredményez. Amikor ügyféloldali titkosítást használ az alkalmazásban, az ügyféloldali kó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 kulcsbetöltéshez, valamint további metaadatokat kell formáznia és feltöltenie. Ez a többletterhelés a titkosítandó adatok mennyiségétől függ. Azt javasoljuk, hogy az ügyfelek mindig teszteljék az alkalmazásaikat a fejlesztés során.