Jegyzet
Az oldalhoz való hozzáférés engedélyezést igényel. Próbálhatod be jelentkezni vagy könyvtárat váltani.
Az oldalhoz való hozzáférés engedélyezést igényel. Megpróbálhatod a könyvtár váltását.
Ez a témakör áttekintést nyújt a PlayReady-ökoszisztéma tartalmainak védelmére használt titkosítási algoritmusokról.
Megjegyzés:
A titkosítási kifejezésekről és definíciókról lásd a szószedetet .
A titkosítás alapjai
A szimmetrikus kulcs titkosítása a titkosítás legegyszerűbb típusa. Szimmetrikus kulcsos titkosítás esetén ugyanazt a kulcsot használja a tartalom titkosításához és visszafejtéséhez. A szimmetrikus kulcs algoritmusai általában kicsik és gyorsak. A titkosítási feladatok nagy részét általában valamilyen szimmetrikus kulcstitkosítás kezeli.
A nyilvános kulcs titkosítása ezzel szemben egy közzétett nyilvános kulcsot használ a titkosításhoz, és egy másik titkos titkos titkos kulcsot a visszafejtéshez. Így ha az "A" felhasználó nyilvános kulcsot ad a "B" felhasználónak, a B bármilyen más információ nélkül titkosíthatja az A tartalmát. A tartalom továbbításától függetlenül csak az A fogja tudni elolvasni. A tartalomelfogók nem rendelkeznek a titkos kulcssal (titkos kulcs), és nem tudják visszafejteni az üzenetet. Mivel a nyilvános kulcs nyíltan elérhetővé válik, bárki titkosíthatja az A-t, de csak az A képes visszafejtésére. A nyilvános kulcsok titkosítása számításilag összetett algoritmusokat igényel.
Az elliptikus görbe titkosítása (ECC) egy nyilvános kulcsú titkosítási algoritmus, amely a tartalom titkosítására és visszafejtésére szolgál. Ez egy számítással összetett függvény, amely egy háromliptikus görbét ír le. Az algoritmus összetevői nyilvános kulcsként vannak megosztva. A visszafejtéshez használt egyéb összetevők alkotják a titkos kulcsot.
Az egykulcsos üzenethitelesítési kódok (OMAC) blokk-titkosításból létrehozott üzenethitelesítési kód. Két OMAC algoritmus létezik, az OMAC1 és az OMAC2.
A tanúsítványok a nem megbízható entitások hitelességének biztosítására szolgálnak. A tanúsítvány feladója a titkos kulcsával írja alá a nevét (eszközazonosítóját). A tanúsítvány címzettje ezután ellenőrzi a tanúsítvány aláírását a feladó nyilvános kulcsával, hogy biztosítsa a feladó személyazonosságát. Mivel a feladó az egyetlen tulajdonosa a titkos kulcsnak, nehéz nyilvános kulcsként titkos kulcsot létrehozni, és a tanúsítvány nem lesz megfelelően ellenőrizve, kivéve, ha a titkos kulccsal van aláírva; ebben az esetben az adatforrás helyesnek minősül, és a hitelesített kommunikáció biztonságos.
PlayReady-titkosítási algoritmusok
Szimmetrikus algoritmusok
A következő AES-titkosítási módok támogatottak:
AES 128 CTR mód – A PlayReady-rendszerek olyan fájlokat és streameket védhetnek, ahol a minták teljes mértékben titkosítva vannak, vagy ahol csak a minták egy mintája van titkosítva, CTR működési módban. Ezek közé tartozik a "cenc" (Common Encryption Scheme) és a "cens" (Common Encryption Scheme, amely nem titkosított/titkosított byte-ok mintáját használja), amelyek az ISO/IEC 23001-7 szabványban vannak definiálva.
AES 128 CBC mód – A 4.0-s verziójú PlayReady-rendszerek teljes mértékben vagy részben titkosított fájlok és streamek védelmét biztosítják AES 128 tartalomkulccsal, CBC-módban. Ezek közé tartoznak az ISO/IEC 23001-7 szabványban meghatározott "cbc1" és "cbcs" közös titkosítási módok, valamint az AES 128 tartalomkulccsal CBC módban titkosított egyéb formátumok.
Megjegyzés:
Az 1.X, 2.X és 3.X verziójú PlayReady-rendszerek csak CTR módban titkosított fájlokat tudnak védeni (a common encryption mód "cenc"). A "cens" nem támogatott. A 4.0-s és újabb verziójú PlayReady-rendszerek cTR módban (a "cenc" közös titkosítási mód) és CBC módban (Common Encryption modes 'cbcs' ) képesek megvédeni a titkosított fájlokat. A többi "cens" és "cbc1" mód nem támogatott.
ECC-algoritmusok
A Microsoft PlayReady-rendszerek ECC -t (elliptikus görbe titkosítását) használnak a tartalomkulcsok és az aláíró protokollüzenetek titkosításához.
- ECC ElGamal algoritmus – Titkosított tartalomkulcsokhoz használatos.
- ECDSA (Háromliptikus görbe digitális aláírási algoritmus) – Az üzenetek aláírására szolgál, ahol alkalmazható a PlayReady protokollokban.
- NIST – A Microsoft PlayReady-rendszerek szabványos NIST-algoritmusokat használnak az ECC-titkosításhoz, ahol alkalmazhatók, és jelenleg a P-256-os háromliptikus görbét használják.
Aláíró algoritmusok
Licencek, átmeneti kulcsok vagy adatok aláírásához a PlayReady-rendszerek az AES OMAC1-et használják, amely egyenértékű a CMAC-sel (titkosításalapú üzenethitelesítési kóddal), és 2005 májusában NIST-javaslattá vált. A kulcsok véletlenszerűen jönnek létre, de az adatok kivonatolása SHA256-tal történik, majd a kivonat az ECC256-tal van aláírva.
Futásidejű és teljesítménnyel kapcsolatos szempontok
A tartalomlejátszás indításakor a PlayReady-ügyfélnek végre kell hajtania néhány lépést a kezdeti lejátszás megkezdése előtt. Ez magában foglalja a licenc megkeresését, kötését vagy a licenc értelmezését, a tartalomkulcs visszafejtését, és végül a tartalom visszafejtésére való felkészülést. A PlayReady-ügyfél architektúrának időbe telik a licenc hozzárendelése a tartalomhoz, és ez a művelet szükséges a tartalom visszafejtése és renderelése előtt. Ez azt jelenti, hogy a licenc kötésének ideje befolyásolja a lejátszás indításakor az első képkockáig eltelt időt, vagy a sávok közötti különbséget. Az ügyfélfejlesztő és az alkalmazásfejlesztő gondolkodhat azon, hogy optimalizálják a kódjukat futásidejű és teljesítménybeli problémákra, hogy csökkentsék az első képkocka megjelenési idejét, és lehetővé tegyék a hézagmentes lejátszást.
A védett tárolók szimmetrikus kulcstitkosítással titkosítják a tartalom nagy részét. A nyilvános kulcs titkosítása azonban a licencen belül történik. Ennek az az oka, hogy a licenc tartalmazza a tartalom szimmetrikus kulcsát, a kiszolgáló pedig az ügyfél nyilvános kulcsával titkosítja a tartalom szimmetrikus kulcsát.
Amikor ideje visszafejteni a tartalmat, a rendszer az ügyfél titkos kulcsát használja a szimmetrikus kulcs visszafejtésére a licencből. A szimmetrikus kulcsot csak a licenchez kötött ügyfél tudja kinyerni.
A titkos kulcs visszafejtése nagyobb számítási igényű, mint a szimmetrikus visszafejtés; ezért a licenc értelmezése számításigényes. A licenc megfelelő kezelése után a szimmetrikus kulcs visszafejthető, és a tartalom visszafejthető kis és gyors algoritmusokkal.
Az erőforrás-korlátozott alkalmazások vagy eszközök esetében az indítás jelentős időt és erőforrásokat igényel. Miután ez befejeződött, az erőforrások felszabadulnak, a visszafejtés hatékonyan folytatódhat, és kevés processzorciklusra vagy rendszererőforrásra van szükség.