230 likes | 353 Views
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
E N D
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