Advancements in Digital Rights Management for Graphics Processing Systems
This work presents a new approach to Digital Rights Management (DRM) aimed at enhancing the protection of graphics assets in digital environments. By leveraging a DRM-enabled GPU, graphics contents such as meshes and textures are encrypted and securely licensed. This method aims to thwart software attacks and protect against unauthorized access, while balancing flexibility and performance. The paper discusses various DRM design choices, the importance of secure content keys, and the implementation challenges of effective encryption within real-time 3D applications.
Advancements in Digital Rights Management for Graphics Processing Systems
E N D
Presentation Transcript
A Digital Rights Enabled Graphics Processing System Motorola Labs Georgia Tech Georgia Tech Georgia Tech Weidong Shi Hsien-Hsin “Sean” Lee Richard M. Yoo Alexandra Boldyreva
Why Digital Rights Management (DRM) and Content Protection? • id software Kevin Cloud • "this (piracy) is what’s killing PC games" • “… but you may literally have more games being played illegitimately than being played legitimately.” • “… it is a very serious problem. There isn’t any magical solution, or else we’d solve it.”
Graphics As Assets • Protect graphics apps by protecting the graphics assets instead of the sw. • Avatars, in-game graphics assets sale raise steadily • $10M per month in-game assets sale in Korea alone • $880M trading in US (2004)
It is a non-trivial task • If security is easy to add, it is easy to remove. • Never underestimate the hackers (XBOX incidence) • Graphics DRM • Protect against SW attacks • Protect against simple “Radioshack” HW attacks
Software-based DRM 3D apps • Disadvantages • Insecure • Not tamper proof • Advantages • Easy to change • Flexible mesh texture shader OpenGL/ Direct3D DRM SW Frame Buffer
DRM Design Space DRMed Contents • Many design choices for unlocking DRMed contents. • Hackers can always go to the level below to defeat a DRM system. • Typical SW DRM unlocks at App level. Unlock at App level Real time 3D apps Unlock at API level Graphics API(OpenGL/Direct3D) Device Driver Unlock at Driver level Unlock at Device level
Our Idea – DRM Enabled GPU • Protect graphics assets with encryption and rights licenses. • Decrypt graphics assets by a DRM enabled GPU DRM • DRM Enabled GPU • Protected Graphics Assets • (mesh, textures, shaders)
DRM Enabled GPU • Advantages • Strong security protection, contents decrypted right before their consumption • Against SW tampers/attacks • API hijack, graphics file reverse engineering, etc. • High performance • HW decryption vs. SW decryption • Disadvantages • Less flexible
GPU with DRM Block Graphics/Video Memory PCI-Express Host/Memory Interface DRM Block Context Information Vertex Cache Texture Cache Cryptographic Unit License Processing Unit GPU Pipeline
Public(GPU) license license Private-pair(GPU) Content keys Rights License and Content Keys • Graphics contents or assets are licensed • Graphics contents or assets are encrypted with content keys. Encrypted content keys included in graphics content licenses. • Content licenses are certified and distributed • Only targeted GPU can extract/use the content keys from the licenses.
Binding Context • Constraints of binding among vertex data, textures, and shaders • Created based on graphics assets licenses • Security context (protected when stored in exposed storage) • Contains all information for decrypting graphics assets by a GPU
Graphics API Extension • Encrypted Data Array/Texture Types • Encrypted{234}f, Encrypted_R8G8B8A8, … • Encrypt collection of vertex attributes or texture tile as a chunk. • Compute a digest or hashed MAC for each encrypted chunk • Protected Graphics Objects glVertexAttribPointerPrivateARB( 0, Encrypted4f, GL_FALSE, 0, &vertex); glVertexAttribPointerPrivateARB( 8, Encrypted2f, GL_FALSE, 0, &text_coord);
Graphics API Extension • API Extension • GenBindingContext(int size, int* ptr_to_handles) • ConfigBindingContext( int handle, enum type, int graphics_object_handle, unsigned char* license) type = Encrypted_VERTEX_ATTR0..15 type = PRIVATE_TEXTURE0..7 type = VERTEX_SHADER|FRAGMENT_SHADER|… graphics_object_handle = handle to vertex,texture,or shader license = license byte array • EnableBindingContext(int handle) • DisableBindingContext(int handle) • DeleteBindingContext(int handle)
Graphics Data Protection Check Encrypted Vertex Attr/Tex Tiles Digest/ HMAC Encrypted Vertex Attr/Tex Tiles Digest/ HMAC … Encrypted Vertex Attr/Tex Tiles Digest/ HMAC Binding Context Vertex/Tex Cache & Vertex/Tex Fetch Unit Decryption Unit ? HMAC Unit GPU Front-End
Texel Tile Coord Offset Padding Counter Mode Example (Encrypted Texels) … Graphics Memory Graphics Memory Memory Unit Fetch Address Cal/Translation AES Engine Decryption Pad Encrypted Texels Vertex/Tex Cache & Vertex/Tex Fetch Unit XOR Counter value GPU Front-End Binding Context
Unprotected Graphics Data Protected Graphics Data Division of Labor CPU-GPU Level-of-Detail Collision detection Coarse backface culling CPU Transformation Lighting Animation GPU • CPU processes unprotected coarse level graphics data • GPU processes protected fine-grained graphics data
Optional Depth Buffer Protection Depth Buffer • Depth buffer key is applied to an application. Z-tile Z-tile Context Depth Decryption Unit Depth Encryption Unit Frame Buffer Operation Unit
Frame Rate Impact • Frame rate slowdown using protected assets against regular assets • Reasonable impact on frame rate
Conclusions • Time to introduce DRM protection on real time graphics assets. • The trend of GPU advancement enables new ways of protecting graphics assets. • Graphics assets protection advocates joint research from DRM, Graphics, and GPU community. • GPU-based graphics assets protection is more effective. • We studied feasibility of GPU based graphics DRM. • Further research is required.
Thank You! http://arch.ece.gatech.edu