US20150235011A1 - Drm protected video streaming on game console with secret-less application - Google Patents
Drm protected video streaming on game console with secret-less application Download PDFInfo
- Publication number
- US20150235011A1 US20150235011A1 US14/183,680 US201414183680A US2015235011A1 US 20150235011 A1 US20150235011 A1 US 20150235011A1 US 201414183680 A US201414183680 A US 201414183680A US 2015235011 A1 US2015235011 A1 US 2015235011A1
- Authority
- US
- United States
- Prior art keywords
- key
- content
- multimedia content
- server
- protected
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Abandoned
Links
- 238000000034 method Methods 0.000 claims abstract description 62
- 238000004891 communication Methods 0.000 claims description 49
- 238000012546 transfer Methods 0.000 claims description 7
- 230000004044 response Effects 0.000 claims description 4
- 238000003860 storage Methods 0.000 description 12
- 238000005516 engineering process Methods 0.000 description 10
- 230000006870 function Effects 0.000 description 9
- 230000015654 memory Effects 0.000 description 7
- 230000008569 process Effects 0.000 description 6
- 230000007246 mechanism Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 3
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000009826 distribution Methods 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 239000004065 semiconductor Substances 0.000 description 2
- 230000001052 transient effect Effects 0.000 description 2
- 238000012795 verification Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000013515 script Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000010200 validation analysis Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
- H04L63/061—Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/30—Authentication, i.e. establishing the identity or authorisation of security principals
- G06F21/31—User authentication
- G06F21/33—User authentication using certificates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
- G06F21/6218—Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0435—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply symmetric encryption, i.e. same key used for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0492—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload by using a location-limited connection, e.g. near-field communication or limited proximity of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/06—Network architectures or network communication protocols for network security for supporting key management in a packet data network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0807—Network architectures or network communication protocols for network security for authentication of entities using tickets, e.g. Kerberos
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0815—Network architectures or network communication protocols for network security for authentication of entities providing single-sign-on or federations
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/60—Network streaming of media packets
- H04L65/65—Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
-
- G06F2221/07—
Definitions
- This disclosure relates to the field of digital media distribution, and more particularly, to secure playback of protected multimedia content using a secret-less application.
- Multimedia content including movies, television shows, and music
- multimedia content is increasingly being distributed over computer networks, such as the Internet, as well as on other types of media, such as digital optical discs and other data storage devices.
- multimedia content is easily portable, and can be accessed using a wide array of network-connected devices.
- some video game consoles can be configured to play back multimedia content received from a content provider, such as Netflix, Hulu, Amazon, and others.
- a content provider such as Netflix, Hulu, Amazon, and others.
- DRM digital rights management
- DRM-protected content can be played back using a non-game software application that is compatible with the DRM technologies employed by the content provider.
- FIG. 1 illustrates an example client-server system for secure playback of protected multimedia content using a secret-less application, in accordance with an embodiment of the present invention.
- FIG. 2 illustrates the client-server system of FIG. 1 in further detail, in accordance with an embodiment of the present invention.
- FIG. 3 shows an example server-side methodology for protected video streaming in accordance with an embodiment of the present invention.
- FIG. 4 shows an example client-side methodology for protected video streaming in accordance with an embodiment of the present invention.
- FIG. 5 shows another example server-side methodology for protected video streaming in accordance with an embodiment of the present invention.
- FIG. 6 is a block diagram representing an example computing device that may be used in accordance with an embodiment of the present invention.
- DRM digital rights management
- game consoles have proprietary security models and media frameworks that do not permit applications to access secret keys and, as such, are incompatible with non-native DRM technologies.
- certain game consoles e.g., Xbox 360®
- SSO single sign on
- an external security service e.g., Xbox Live® services
- non-native DRM content decryption is conducted at the software level, which can expose the secret keys to malicious attacks on the multimedia player.
- an attacker can access operating system-level debuggers at runtime to extract any secret keys stored in a client application.
- a secret-less application is one in which there is no secret or cryptographic key unique to the application that is embedded in the application or in a certificate associated with the application.
- the game console may, for example, be an Xbox 360® or other game console configured to stream protected multimedia content.
- An SSO model e.g., Xbox Live®
- an encrypted content key can be generated by a content packager using a public cryptographic key.
- the encrypted content key can be deployed in the key server uniform resource identifier (URI) of a playlist file and sent to the key server during the client's key request.
- the key server can be configured to decrypt the content key using a corresponding private key upon completing a successful authentication of a SSO token. Further, the content key and unencrypted content are protected in the game console client application from debugging and replay attacks by using additional security checks at both the client and key server.
- secret information e.g., the private key
- DRM policies can be enforced on a secret-less game console client application. Numerous configurations and variations will be apparent in light of this disclosure.
- content and “multimedia content,” in addition to their plain and ordinary meanings, include audio, video, data, graphics, or any other information that can be identified, addressed, referenced or handled in any networked information system, such as the World Wide Web, or any information that can be delivered from a publisher to an end-user via physical media, such as a portable USB drive, CD, DVD or Blu-ray disc.
- content includes any form of information in digital form; however, content may be embodied in non-digital forms (e.g., analog) or a combination of digital and non-digital forms.
- protected content in addition to its plain and ordinary meaning, includes content that is controlled within a secure environment and to which access is restricted to entities (e.g., clients, servers, applications, scripts, components, etc.) authorized by the owner or publisher of the content.
- entities e.g., clients, servers, applications, scripts, components, etc.
- protected content include data, electronic documents, files, web pages, images, objects, services, and collections of resources and/or generally anything that has an identity and can be referenced in some manner.
- Protected content that is secured under an OAuth framework may be accessed by the third party application using Hypertext Transfer Protocol (HTTP) messages, specifically including the HTTP/1.1 standard protocol (currently defined by the Internet Engineering Task Force (IETF) Request for Comments (RFC) 2616), although it will be apparent in light of this disclosure that other application and authentication protocols can be used to access protected resources using the techniques disclosed herein.
- HTTP Hypertext Transfer Protocol
- An access control mechanism may be used to control access to the content.
- the access control mechanism may, for example, include any DRM technology that limits use of the content to devices and applications possessing an appropriate security credential.
- One form of protected content is content that is encrypted using a suitable encryption algorithm. Encrypted content is generally unusable until decrypted using a suitable decryption algorithm, which may depend on a secret cryptographic key.
- a security token in addition to its plain and ordinary meaning, includes data used to authorize use of a service.
- a security token may include data representing a digital credential or other authority that is recognized by a third party.
- a methodology for secure playback of protected multimedia content on a game console using a secret-less application in which no secret information (e.g., cryptographic keys, tokens and the like) is stored, embedded or visible.
- the methodology includes a secure content key delivery protocol, which leverages the SSO model to prevent security attacks in an untrusted client environment.
- a content packager can create and encrypt protected content.
- the content packager can also create and sign a security token.
- the signed security token can be embedded in the key URI of a protected content playlist, which can be used by a game console client application for requesting a content key through a remote service.
- a client-side (e.g., game console) security scheme can be used to protect both the content decryption key and the decrypted content on the client.
- the security scheme includes obfuscation of the client application execution code to prevent reverse engineering and static code analysis. Code obfuscation may include, for example, renaming, metadata removal, flow control obfuscation, string encryption, or any combination thereof.
- the security scheme includes anti-debugging features encoded in the client application to prevent possible debugging attacks at the managed code level.
- an Application Programming Interface that is native to the game console operating system may be invoked by the client application to check for any debugger code and, if so, force the debugger code to fail before security-sensitive portions of the client application are executed.
- the security scheme includes anti-debugging code at the kernel level to prevent lower level debugging attempts (e.g., by using a kernel debugger). This may be accomplished using (i) error-detecting code to detect changes to security sensitive code blocks, which ensures that there is no breakpoint inserted in the code block, and (ii) ensuring that the game console does not have certain security privileges (e.g., developer privilege) by leveraging the separation of game console developer network and production network.
- certain security privileges e.g., developer privilege
- a server-side (e.g., key server) authentication scheme can be implemented to prevent SSO token replay attacks.
- a replay attack is one in which valid data is transmitted or intercepted for malicious or fraudulent purposes, such as for use by an unauthorized party.
- a key server conducts a security check on an SSO token received from a game console client application to ensure that the received token corresponds to the same game console that the token was originally issued to.
- the key server can check whether the IP address of the sender matches with that claimed in the token.
- the key server may, in some cases, examine the time expiry information in the SSO token to determine whether the token has expired.
- the expiration time of a token may be customized via the SSO services to manage the trade-off between security (e.g., the difficulty level for a reply attack) and performance (e.g., the frequency at which the game console client application requests new tokens).
- security e.g., the difficulty level for a reply attack
- performance e.g., the frequency at which the game console client application requests new tokens.
- FIG. 1 illustrates an example client-server system 100 for secure playback of protected multimedia content on a game console using a secret-less application, in accordance with an embodiment.
- the system 100 includes a game console 110 , a content server 120 , a key server 130 , and a security token service 140 , each electronically interconnected via a network 150 .
- the game console 110 can be any type of device, such as an Xbox 360® game console, configured to access and use protected content 122 .
- the protected content 122 may, for example, be distributed by the content server 120 in an encrypted form or in conjunction with other suitable security measures so as to prevent its use by unauthorized recipients.
- the game console 110 includes a client application 112 configured to play back the protected content 122 .
- One or more storage devices for storing the protected content 122 may be operatively connected to the content server 120 .
- the security token service 140 can issue security credentials (e.g., an SSO token) to the client application 112 for use in accessing the protected content 122 .
- the system 100 provides a client-server environment for playing the protected content 122 on the game console 110 without storing any secret information in the client application 112 .
- access to the protected content 122 can be granted to the client application 112 if the game console 110 holds valid security credentials for the protected content.
- the client application 112 cannot hold certain security credentials due to constraints imposed by the game console hardware, media framework, streaming mechanism, DRM security model, or any combination of these, such as discussed above.
- the key server 130 which is trusted by the security token service 140 , can authorize the game console 110 to access the protected content 122 by providing a content decryption key or other digital authority to the game console 110 .
- the content key may then be used by the client application 112 to access the protected content 122 .
- FIG. 2 illustrates the client-server system 100 of FIG. 1 in further detail, in accordance with an embodiment.
- the game console 110 includes a library module 114 and an Application Development Kit (ADK) module 116 .
- the client application 112 may, for example, include an HTTP Live Streaming (HLS) player application for processing (e.g., playing) multimedia content.
- the library module 114 may, for example, provide functionality for accessing a specific type of multimedia content, such as multimedia content provided by a subscription service.
- the ADK module 116 may, for example, provide additional functionality for accessing protected content, such as authentication, decryption, or other security-related functions.
- the content server 120 includes a content packager module 124 .
- the key server 130 may include a token validation module 132 and a key service module 134 .
- the security token service 140 may include, for example, the Xbox Live® service provided by Microsoft Corp.
- Xbox Live® includes online (e.g., Internet accessible) game and media delivery services for the Xbox® game console.
- the game console 110 can be in communication with the media server 120 , the key server 130 , the security token service 140 , or any combination thereof, via one or more communication networks 150 , such as the Internet, a wide area network or a local area network.
- the various components of the system 100 may be provided by one or more entities.
- the game console 110 may be an end-user device, while the media server 120 , the key server 130 and security token service 140 may be provided by one or more third-parties.
- a game console user can register the game console 110 with the security token service 140 so that the user can access certain multimedia content provided by the content server 120 .
- the system 100 can be configured to perform any of the functions described in the following example.
- the security token service 140 can establish a trusted relationship with the key server 130 . This process may be performed once or as often as needed to maintain the trusted relationship.
- the key server 130 may authenticate an access token 210 issued by the security token service 140 when such tokens are received from the game console 110 .
- the game console 110 can utilize the security token service 140 to obtain the access token 210 (e.g., an SSO token) for accessing the protected content 122 .
- the access token 210 e.g., an SSO token
- the ADK 116 can request the access token 210 from the security token service 140 using, for example, a username/password combination or other suitable user-specific credentials. If the security token service 140 validates the credentials supplied in the request, the security token service can return the access token 210 to the ADK 116 , as indicated at reference number 3 . It will be noted that the ADK 116 , rather than the client application 112 , can store and use the access token 210 . In this manner, it is not necessary for the client application 112 to store secret information associated with accessing the protected content 122 , including the access token 210 .
- the content server 120 is configured to send a playlist 214 to the game console 110 , as indicated at reference number 4 .
- the playlist 214 is a file that stores a multimedia playlist.
- the playlist 214 may be an M3U or M3U8 format file that specifies the location of the protected content 122 (e.g., a universal resource locator (URL)).
- the content server 120 is further configured to send the protected content 122 to the game console 110 as encrypted content 212 .
- the content packager 124 is configured to encrypt the protected content 122 using a content key 126 .
- the content packager 124 can encrypt the protected content 122 at any time (e.g., in advance of sending the playlist to the game console 110 or “just in time” as the playlist is being sent to the game console).
- the protected content 122 may be sent, for example, as streaming video or audio, in which the content is delivered to the game console 110 in several segments rather than in a single large data file.
- the content packager 124 is further configured to generate a signed security token, which includes, but is not limited to: (1) the content key encrypted by the content packager using the content key 126 , and (2) relevant policy information, such as expiry and output control information.
- the security token may, in some cases, include additional information.
- the playlist 214 may include a key URI that specifies the location of the key server 130 .
- HTTPS Hypertext Transfer Protocol Secure
- HTTPS Hypertext Transfer Protocol Secure
- the game console 110 is configured to send a content key request to the key server, which includes the signed security token 216 (for the content key and policy) and the access token 210 (for client authentication).
- an SSO model can be used to authenticate the game console 110 for playing back the protected content 122 .
- SSO includes utilizing an authentication server that has a trusted relationship with the content owner.
- the key server 130 may act as the authentication server since the key server and security token service 140 can have a trusted relationship, such as discussed above.
- the key server 130 Upon receiving the content key request, the key server 130 first authenticates the game console 110 by validating the access token 210 following the SSO model.
- the key server 130 then decrypts the encrypted content key encoded in the security token 216 using a private cryptographic key 136 held by the key server, and returns the decrypted content key 218 to the game console 110 , as indicated at reference number 6 .
- the decrypted content key 218 can be used by the game console 110 to decrypt and play the encrypted content 212 .
- no secret information such as a private key or certificate, is stored by the game console client application 112 , and the client authentication is achieved using a SSO model.
- the key server 130 can extract the policy from the security token 216 to examine the expiry information (e.g., a DRM technology that prevents access to content after a specified date or time) and obtain any output control information (e.g., a DRM technology that can be used to disable output of clear content). If the security token 216 is not expired, the key server 130 can send the decrypted content key 218 and output control information, if any, to the game console 110 as an HTTPS response (or a response via another secure protocol), as indicated at reference number 6 . Otherwise, the content key 218 is not sent to the game console 110 .
- the expiry information e.g., a DRM technology that prevents access to content after a specified date or time
- output control information e.g., a DRM technology that can be used to disable output of clear content.
- FIG. 3 shows an example server-side methodology 300 for protected video streaming in accordance with an embodiment.
- the method 300 may be implemented, for example, on the key server 130 of FIGS. 1 and 2 .
- the method 300 begins by receiving ( 310 ) an access control credential and an encrypted content key, such as encoded in the access token 210 and the signed security token 216 described with respect to FIG. 2 , from a client computing device, such as the game console 110 of FIGS. 1 and 2 .
- the access control credential and the encrypted content key can be received via a communication network using a secure communications protocol, such as HTTPS.
- the method 300 continues by determining ( 312 ) that the client is authenticated based on the access control credential. Authentication may be via the SSO model, such as described above.
- the method continues by receiving ( 314 ) policy information from the client.
- the policy information may include expiry information and other output control information associated with the protected content.
- the method continues by obtaining ( 316 ) the output control information from the policy if, for example, the expiration date or time has not elapsed (e.g., if the policy is valid).
- the method continues by decrypting ( 318 ) the encrypted content key using, for example, a private cryptographic key that is associated with a public cryptographic key that was used to encrypt the content key (e.g., by the content server 120 ).
- the encrypted content key may be encoded in the security token 216 .
- the method continues by sending ( 320 ) the decrypted content key to the client using a secure communication protocol, such as HTTPS.
- the decrypted content key is configured for use by the client computing device for accessing encrypted content from a content server, such as the protected content 122 distributed by the content server 120 of FIGS. 1 and 2 .
- a content server such as the protected content 122 distributed by the content server 120 of FIGS. 1 and 2 .
- some or all of the functions variously described in this paragraph can be performed in any order and at any time by one or more different processors.
- FIG. 4 shows an example client-side methodology 400 for protected video streaming in accordance with an embodiment.
- the method 400 may be implemented, for example, on the game console 110 of FIGS. 1 and 2 , (e.g., Xbox 360®).
- the method 400 begins by receiving ( 410 ) an access control credential from a security token service via a communications network.
- the access control credential may include a single sign on token.
- the method 400 continues by receiving ( 412 ), from a multimedia content server via the communications network, a playlist file having encoded therein a uniform resource identifier (URI) associated with a key server and a security token signed by the multimedia content server.
- URI uniform resource identifier
- An encrypted content key associated with protected multimedia content can be encoded in the security token.
- the method 400 continues by sending ( 414 ) the access control credential and the encrypted content key to the key server via the communications network using a secure communications protocol.
- the secure communications protocol includes Hypertext Transfer Protocol Secure (HTTPS).
- HTTPS Hypertext Transfer Protocol Secure
- the method 400 continues by receiving ( 418 ) a decrypted content key from the key server via the communications network using the secure communications protocol.
- the decrypted content key is configured for accessing the protected multimedia content.
- the method 400 continues by receiving ( 418 ) the protected content from the multimedia content server via the communications network, decrypting ( 420 ) the protected content using the decrypted content key, and playing ( 422 ) the decrypted content.
- the protected content can be played back using a HTTP Live Streaming (HLS) player.
- HLS HTTP Live Streaming
- FIG. 5 shows an example server-side methodology 500 for protected video streaming in accordance with an embodiment.
- the method 500 may be implemented, for example, on the content server 120 of FIGS. 1 and 2 .
- the method 500 begins generating ( 510 ) a playlist file associated with protected multimedia content.
- the playlist file has encoded therein a uniform resource identifier (URI) associated with a key server and a security token signed by the content server.
- URI uniform resource identifier
- An encrypted content key associated with the protected multimedia content can be encoded in the security token.
- the method 500 continues by encrypting ( 512 ) the protected multimedia content using a content key.
- the method 500 continues by sending ( 514 ) the playlist file and the protected multimedia content to a client computing system via a communication network using a secure communications protocol.
- the secure communications protocol includes Hypertext Transfer Protocol Secure (HTTPS).
- HTTPS Hypertext Transfer Protocol Secure
- the method 500 includes encoding policy information associated with the protected multimedia content in the playlist file.
- some or all of the functions variously described in this paragraph can be performed in any order and at any time by one or more different processors.
- FIG. 6 is a block diagram representing an example computing device 1000 that may be used to perform any of the techniques as variously described herein.
- the game console 110 the content server 120 , the key server 130 , the security token server 140 , or any combination of these (such as described with respect to FIGS. 1 and 2 ) may be implemented in the computing device 1000 .
- the computing device may be any computer system, such as a workstation, desktop computer, server, laptop, handheld computer, tablet computer (e.g., the iPadTM tablet computer), mobile computing or communication device (e.g., the iPhoneTM mobile communication device, the AndroidTM mobile communication device, and the like), or other form of computing or telecommunications device that is capable of communication and that has sufficient processor power and memory capacity to perform the operations described herein.
- a distributed computational system may be provided comprising a plurality of such computing devices.
- the computing device 1000 includes one or more storage devices 1010 and/or non-transitory computer-readable media 1020 having encoded thereon one or more computer-executable instructions or software for implementing techniques as variously described herein.
- the storage devices 1010 may include a computer system memory or random access memory, such as a durable disk storage (which may include any suitable optical or magnetic durable storage device, e.g., RAM, ROM, Flash, USB drive, or other semiconductor-based storage medium), a hard-drive, CD-ROM, or other computer readable media, for storing data and computer-readable instructions and/or software that implement various embodiments as taught herein.
- the storage device 1010 may include other types of memory as well, or combinations thereof.
- the storage device 1010 may be provided on the computing device or provided separately or remotely from the computing device.
- the non-transitory computer-readable media 1012 may include, but are not limited to, one or more types of hardware memory, non-transitory tangible media (for example, one or more magnetic storage disks, one or more optical disks, one or more USB flash drives), and the like.
- the non-transitory computer-readable media 1012 included in the computing device 1000 may store computer-readable and computer-executable instructions or software for implementing various embodiments.
- the computer-readable media 1012 may be provided on the computing device 1000 or provided separately or remotely from the computing device.
- the computing device 1000 also includes at least one processor 1020 for executing computer-readable and computer-executable instructions or software stored in the storage device and/or non-transitory computer-readable media and other programs for controlling system hardware.
- Virtualization may be employed in the computing device 1000 so that infrastructure and resources in the computing device may be shared dynamically. For example, a virtual machine may be provided to handle a process running on multiple processors so that the process appears to be using only one computing resource rather than multiple computing resources. Multiple virtual machines may also be used with one processor.
- a user may interact with the computing device 1000 through an output device 1030 , such as a screen or monitor, which may display one or more user interfaces provided in accordance with some embodiments.
- the output device 1030 may also display other aspects, elements and/or information or data associated with some embodiments.
- the computing device 1000 may include other I/O devices 1040 for receiving input from a user, for example, a keyboard, a joystick, a game controller, a pointing device (e.g., a mouse, a user's finger interfacing directly with a display device, etc.), or any suitable user interface.
- the computing device 1000 may include other suitable conventional I/O peripherals.
- the computing device 1000 can include and/or be operatively coupled to various suitable devices for performing one or more of the functions as variously described herein.
- the computing device 1000 may include a network interface 1014 for communicating with other devices via a network, such as the Internet.
- the computing device 1000 may run any operating system, such as any of the versions of the Xbox 360® operating system, Microsoft® Windows® operating systems, the different releases of the Unix and Linux operating systems, any version of the MacOS® for Macintosh computers, any embedded operating system, any real-time operating system, any open source operating system, any proprietary operating system, any operating systems for mobile computing devices, or any other operating system capable of running on the computing device and performing the operations described herein.
- the operating system may be run on one or more cloud machine instances.
- the functional components/modules may be implemented with hardware, such as gate level logic (e.g., FPGA) or a purpose-built semiconductor (e.g., ASIC). Still other embodiments may be implemented with a microcontroller having a number of input/output ports for receiving and outputting data, and a number of embedded routines for carrying out the functionality described herein. In a more general sense, any suitable combination of hardware, software, and firmware can be used, as will be apparent.
- gate level logic e.g., FPGA
- ASIC purpose-built semiconductor
- the various modules and components of the system shown in FIGS. 1 and 2 can be implemented in software, such as a set of instructions (e.g., C, C++, object-oriented C, JavaScript, Java, BASIC, etc.) encoded on any computer readable medium or computer program product (e.g., hard drive, server, disc, or other suitable non-transient memory or set of memories), that when executed by one or more processors, cause the various methodologies provided herein to be carried out.
- a set of instructions e.g., C, C++, object-oriented C, JavaScript, Java, BASIC, etc.
- any computer readable medium or computer program product e.g., hard drive, server, disc, or other suitable non-transient memory or set of memories
- various functions performed by the user computing system can be performed by similar processors and/or databases in different configurations and arrangements, and that the depicted embodiments are not intended to be limiting.
- Various components of this example embodiment, including the user computing system can be integrated into, for example, one or more desktop or laptop computers, workstations, tablets, smartphones, game consoles, set-top boxes, or other such computing devices.
- Other componentry and modules typical of a computing system such as processors (e.g., central processing unit and co-processor, graphics processor, etc.), input devices (e.g., keyboard, mouse, touch pad, touch screen, etc.), and operating system, are not shown but will be readily apparent.
- One example embodiment provides a system including a storage having at least one memory, and one or more processors each operatively coupled to the storage.
- the one or more processors are configured to carry out a process including receiving, from a client computing device via a communications network using a secure communications protocol, an access control credential and an encrypted content key associated with protected multimedia content; determining that the client computing device is authenticated based on the access control credential; in response to the determination, decrypting the encrypted content key using a private cryptographic key; and sending the decrypted content key to the client computing device via the communications network using the secure communications protocol, the decrypted content key being configured for use by the client computing device for accessing the protected multimedia content.
- the one or more processors are configured to carry out a process including receiving an access control credential from a security token service via a communications network; receiving, from a multimedia content server via the communications network, a playlist file having encoded therein a uniform resource identifier (URI) associated with a key server and a security token signed by the multimedia content server, the security token having encoded therein an encrypted content key associated with protected multimedia content; sending the access control credential and the encrypted content key to the key server via the communications network using a secure communications protocol; receiving a decrypted content key from the key server via the communications network using the secure communications protocol, the decrypted content key being configured for accessing the protected multimedia content; and playing back the protected multimedia content using the decrypted content key.
- URI uniform resource identifier
- the one or more processors are configured to carry out a process including generating a playlist file associated with protected multimedia content, the playlist file having encoded therein a uniform resource identifier (URI) associated with a key server and a signed security token having encoded therein an encrypted content key associated with the protected multimedia content; encrypting the protected multimedia content using a public cryptographic the content key; and sending the playlist file and the protected multimedia content to a client computing system via a communication network using a secure communications protocol.
- URI uniform resource identifier
- Another embodiment provides a non-transient computer-readable medium or computer program product having instructions encoded thereon that when executed by one or more processors cause the processor to perform one or more of the functions defined in the present disclosure, such as the methodologies variously described in this paragraph. As previously discussed, in some cases, some or all of the functions variously described in this paragraph can be performed in any order and at any time by one or more different processors.
Abstract
Techniques are disclosed for secure playback of protected multimedia content on a game console using a secret-less application. An SSO model can be used for client authentication at a key server, which eliminates the need of storing or using any secret information in the client application. Further, an encrypted content key generated by a content packager using a public key can be deployed in the key URI of a playlist file, which is sent to the key server. The key server can be configured to decrypt the content key using a corresponding private key. Further, the content key and unencrypted samples are protected in the game console client application from debugging and replay attacks by using additional security checks at both the client and key server. By storing secret information remotely from the game console and using the SSO model, DRM policies can be enforced on an untrusted client application.
Description
- This disclosure relates to the field of digital media distribution, and more particularly, to secure playback of protected multimedia content using a secret-less application.
- Multimedia content, including movies, television shows, and music, is increasingly being distributed over computer networks, such as the Internet, as well as on other types of media, such as digital optical discs and other data storage devices. In digital form, multimedia content is easily portable, and can be accessed using a wide array of network-connected devices. For instance, some video game consoles can be configured to play back multimedia content received from a content provider, such as Netflix, Hulu, Amazon, and others. To prevent unauthorized use of certain digital media, such as copyrighted audio and video, some content providers may employ digital rights management (DRM) technologies when distributing such so-called protected content. On some game consoles, DRM-protected content can be played back using a non-game software application that is compatible with the DRM technologies employed by the content provider. However, since many game consoles incorporate unique proprietary features designed by the console manufacturer, the ability of these applications to play back protected content may be contingent upon compliance with certain manufacturer-imposed requirements. As such, some DRM applications designed to run on one type or model of game console may not be compatible with a different game console.
- The accompanying drawings are not intended to be drawn to scale. In the drawings, each identical or nearly identical component that is illustrated in various figures is represented by a like numeral.
-
FIG. 1 illustrates an example client-server system for secure playback of protected multimedia content using a secret-less application, in accordance with an embodiment of the present invention. -
FIG. 2 illustrates the client-server system ofFIG. 1 in further detail, in accordance with an embodiment of the present invention. -
FIG. 3 shows an example server-side methodology for protected video streaming in accordance with an embodiment of the present invention. -
FIG. 4 shows an example client-side methodology for protected video streaming in accordance with an embodiment of the present invention. -
FIG. 5 shows another example server-side methodology for protected video streaming in accordance with an embodiment of the present invention. -
FIG. 6 is a block diagram representing an example computing device that may be used in accordance with an embodiment of the present invention. - As noted above, various DRM technologies have been developed to prevent unauthorized copying and distribution of certain multimedia content. DRM is a broad term encompassing a variety of different technologies and enforcement policies, often established by individual content providers or content owners. Although some standards have been proposed, DRM technologies are continuously evolving and, to date, none of the proposed standards have been universally adopted. As such, and as will be appreciated in light of this disclosure, it is non-trivial to enable secure video streaming on certain game consoles, such as the Xbox 360® game console sold by Microsoft Corporation of Redmond, Wash., due to the fact that such game consoles employ different hardware and different media framework (e.g., Microsoft MMFPP/Silverlight), streaming mechanism (e.g., Microsoft Smooth Streaming), and DRM security models (e.g., Microsoft PlayReady and Xbox Live® single sign on model), compared to other existing consoles that support DRM technologies. For example, some third-party multimedia players utilize private cryptographic keys for accessing encrypted content. These so-called secret keys may be embedded either in the multimedia player or in a certificate accessible by the player. However, some game consoles have proprietary security models and media frameworks that do not permit applications to access secret keys and, as such, are incompatible with non-native DRM technologies. In particular, certain game consoles (e.g., Xbox 360®) require applications to be integrated with a single sign on (SSO) model that utilizes an external security service (e.g., Xbox Live® services) for security token exchange and verification. Furthermore, on certain game console applications (e.g., Xbox 360®), non-native DRM content decryption is conducted at the software level, which can expose the secret keys to malicious attacks on the multimedia player. Also, on certain game consoles (e.g., Xbox 360®), an attacker can access operating system-level debuggers at runtime to extract any secret keys stored in a client application.
- To this end, and in accordance with an embodiment of the present invention, techniques are disclosed for secure playback of protected multimedia content on a game console using a secret-less application. A secret-less application is one in which there is no secret or cryptographic key unique to the application that is embedded in the application or in a certificate associated with the application. The game console may, for example, be an Xbox 360® or other game console configured to stream protected multimedia content. An SSO model (e.g., Xbox Live®) can be used for client authentication at a key server, which eliminates the need of storing or using any secret information in the client application. Further, an encrypted content key can be generated by a content packager using a public cryptographic key. The encrypted content key can be deployed in the key server uniform resource identifier (URI) of a playlist file and sent to the key server during the client's key request. The key server can be configured to decrypt the content key using a corresponding private key upon completing a successful authentication of a SSO token. Further, the content key and unencrypted content are protected in the game console client application from debugging and replay attacks by using additional security checks at both the client and key server. By storing secret information (e.g., the private key) remotely from the game console and using the SSO model, DRM policies can be enforced on a secret-less game console client application. Numerous configurations and variations will be apparent in light of this disclosure.
- As used herein, the terms “content” and “multimedia content,” in addition to their plain and ordinary meanings, include audio, video, data, graphics, or any other information that can be identified, addressed, referenced or handled in any networked information system, such as the World Wide Web, or any information that can be delivered from a publisher to an end-user via physical media, such as a portable USB drive, CD, DVD or Blu-ray disc. In general, content includes any form of information in digital form; however, content may be embodied in non-digital forms (e.g., analog) or a combination of digital and non-digital forms.
- As used herein, the term “protected content,” in addition to its plain and ordinary meaning, includes content that is controlled within a secure environment and to which access is restricted to entities (e.g., clients, servers, applications, scripts, components, etc.) authorized by the owner or publisher of the content. Some specific examples of protected content include data, electronic documents, files, web pages, images, objects, services, and collections of resources and/or generally anything that has an identity and can be referenced in some manner. Protected content that is secured under an OAuth framework, for example, may be accessed by the third party application using Hypertext Transfer Protocol (HTTP) messages, specifically including the HTTP/1.1 standard protocol (currently defined by the Internet Engineering Task Force (IETF) Request for Comments (RFC) 2616), although it will be apparent in light of this disclosure that other application and authentication protocols can be used to access protected resources using the techniques disclosed herein. An access control mechanism may be used to control access to the content. The access control mechanism may, for example, include any DRM technology that limits use of the content to devices and applications possessing an appropriate security credential. One form of protected content is content that is encrypted using a suitable encryption algorithm. Encrypted content is generally unusable until decrypted using a suitable decryption algorithm, which may depend on a secret cryptographic key.
- As used herein, the term “security token,” in addition to its plain and ordinary meaning, includes data used to authorize use of a service. For example, a security token may include data representing a digital credential or other authority that is recognized by a third party.
- In an example embodiment of the present invention, a methodology is provided for secure playback of protected multimedia content on a game console using a secret-less application in which no secret information (e.g., cryptographic keys, tokens and the like) is stored, embedded or visible. The methodology includes a secure content key delivery protocol, which leverages the SSO model to prevent security attacks in an untrusted client environment. A content packager can create and encrypt protected content. The content packager can also create and sign a security token. For delivering the content key to the client, the signed security token can be embedded in the key URI of a protected content playlist, which can be used by a game console client application for requesting a content key through a remote service.
- In some embodiments, a client-side (e.g., game console) security scheme can be used to protect both the content decryption key and the decrypted content on the client. In an example embodiment, the security scheme includes obfuscation of the client application execution code to prevent reverse engineering and static code analysis. Code obfuscation may include, for example, renaming, metadata removal, flow control obfuscation, string encryption, or any combination thereof. In another example embodiment, the security scheme includes anti-debugging features encoded in the client application to prevent possible debugging attacks at the managed code level. In such cases, an Application Programming Interface (API) that is native to the game console operating system may be invoked by the client application to check for any debugger code and, if so, force the debugger code to fail before security-sensitive portions of the client application are executed. In another example embodiment, the security scheme includes anti-debugging code at the kernel level to prevent lower level debugging attempts (e.g., by using a kernel debugger). This may be accomplished using (i) error-detecting code to detect changes to security sensitive code blocks, which ensures that there is no breakpoint inserted in the code block, and (ii) ensuring that the game console does not have certain security privileges (e.g., developer privilege) by leveraging the separation of game console developer network and production network. One or more of the above security schemes may be used in any combination.
- In some embodiments, a server-side (e.g., key server) authentication scheme can be implemented to prevent SSO token replay attacks. A replay attack is one in which valid data is transmitted or intercepted for malicious or fraudulent purposes, such as for use by an unauthorized party. In an example embodiment, a key server conducts a security check on an SSO token received from a game console client application to ensure that the received token corresponds to the same game console that the token was originally issued to. In particular, the key server can check whether the IP address of the sender matches with that claimed in the token. The key server may, in some cases, examine the time expiry information in the SSO token to determine whether the token has expired. In some such cases, the expiration time of a token may be customized via the SSO services to manage the trade-off between security (e.g., the difficulty level for a reply attack) and performance (e.g., the frequency at which the game console client application requests new tokens).
-
FIG. 1 illustrates an example client-server system 100 for secure playback of protected multimedia content on a game console using a secret-less application, in accordance with an embodiment. Thesystem 100 includes agame console 110, acontent server 120, akey server 130, and a securitytoken service 140, each electronically interconnected via anetwork 150. Generally, thegame console 110 can be any type of device, such as an Xbox 360® game console, configured to access and use protectedcontent 122. The protectedcontent 122 may, for example, be distributed by thecontent server 120 in an encrypted form or in conjunction with other suitable security measures so as to prevent its use by unauthorized recipients. Thegame console 110 includes aclient application 112 configured to play back the protectedcontent 122. One or more storage devices for storing the protectedcontent 122 may be operatively connected to thecontent server 120. The securitytoken service 140 can issue security credentials (e.g., an SSO token) to theclient application 112 for use in accessing the protectedcontent 122. - In use, the
system 100 provides a client-server environment for playing the protectedcontent 122 on thegame console 110 without storing any secret information in theclient application 112. Generally, access to the protectedcontent 122 can be granted to theclient application 112 if thegame console 110 holds valid security credentials for the protected content. However, in some cases theclient application 112 cannot hold certain security credentials due to constraints imposed by the game console hardware, media framework, streaming mechanism, DRM security model, or any combination of these, such as discussed above. Thus, thekey server 130, which is trusted by the securitytoken service 140, can authorize thegame console 110 to access the protectedcontent 122 by providing a content decryption key or other digital authority to thegame console 110. The content key may then be used by theclient application 112 to access the protectedcontent 122. -
FIG. 2 illustrates the client-server system 100 ofFIG. 1 in further detail, in accordance with an embodiment. In addition to theclient application 112, thegame console 110 includes alibrary module 114 and an Application Development Kit (ADK)module 116. Theclient application 112 may, for example, include an HTTP Live Streaming (HLS) player application for processing (e.g., playing) multimedia content. Thelibrary module 114 may, for example, provide functionality for accessing a specific type of multimedia content, such as multimedia content provided by a subscription service. TheADK module 116 may, for example, provide additional functionality for accessing protected content, such as authentication, decryption, or other security-related functions. Thecontent server 120 includes acontent packager module 124. Thekey server 130 may include atoken validation module 132 and akey service module 134. The securitytoken service 140 may include, for example, the Xbox Live® service provided by Microsoft Corp. Xbox Live® includes online (e.g., Internet accessible) game and media delivery services for the Xbox® game console. As noted above, thegame console 110 can be in communication with themedia server 120, thekey server 130, the securitytoken service 140, or any combination thereof, via one ormore communication networks 150, such as the Internet, a wide area network or a local area network. The various components of thesystem 100 may be provided by one or more entities. For example, thegame console 110 may be an end-user device, while themedia server 120, thekey server 130 and securitytoken service 140 may be provided by one or more third-parties. - In use, a game console user can register the
game console 110 with the securitytoken service 140 so that the user can access certain multimedia content provided by thecontent server 120. Thesystem 100 can be configured to perform any of the functions described in the following example. As indicated atreference number 1, the securitytoken service 140 can establish a trusted relationship with thekey server 130. This process may be performed once or as often as needed to maintain the trusted relationship. By establishing this trusted relationship, thekey server 130 may authenticate anaccess token 210 issued by the securitytoken service 140 when such tokens are received from thegame console 110. Thegame console 110 can utilize the securitytoken service 140 to obtain the access token 210 (e.g., an SSO token) for accessing the protectedcontent 122. In particular, as indicated atreference number 2, theADK 116 can request the access token 210 from the securitytoken service 140 using, for example, a username/password combination or other suitable user-specific credentials. If the securitytoken service 140 validates the credentials supplied in the request, the security token service can return theaccess token 210 to theADK 116, as indicated atreference number 3. It will be noted that theADK 116, rather than theclient application 112, can store and use theaccess token 210. In this manner, it is not necessary for theclient application 112 to store secret information associated with accessing the protectedcontent 122, including theaccess token 210. - The
content server 120 is configured to send aplaylist 214 to thegame console 110, as indicated atreference number 4. Theplaylist 214 is a file that stores a multimedia playlist. For example, theplaylist 214 may be an M3U or M3U8 format file that specifies the location of the protected content 122 (e.g., a universal resource locator (URL)). Thecontent server 120 is further configured to send the protectedcontent 122 to thegame console 110 asencrypted content 212. In particular, thecontent packager 124 is configured to encrypt the protectedcontent 122 using acontent key 126. Thecontent packager 124 can encrypt the protectedcontent 122 at any time (e.g., in advance of sending the playlist to thegame console 110 or “just in time” as the playlist is being sent to the game console). The protectedcontent 122 may be sent, for example, as streaming video or audio, in which the content is delivered to thegame console 110 in several segments rather than in a single large data file. Thecontent packager 124 is further configured to generate a signed security token, which includes, but is not limited to: (1) the content key encrypted by the content packager using thecontent key 126, and (2) relevant policy information, such as expiry and output control information. The security token may, in some cases, include additional information. Theplaylist 214 may include a key URI that specifies the location of thekey server 130. For example, the key URI may have the following format: “https://remote-keyserver/key?token=XboxSecurityToken”, where “remote-keyserver” is the URL of thekey server 130, and “XboxSecurityToken” is the signed security token. Note that inherently Hypertext Transfer Protocol Secure (HTTPS) is a secure protocol that prevents network traffic attacks, although it will be understood that secure communications protocols other than HTTPS can be used. - As indicated at
reference number 5, after obtaining theplaylist 214, thegame console 110 is configured to send a content key request to the key server, which includes the signed security token 216 (for the content key and policy) and the access token 210 (for client authentication). As mentioned above, an SSO model can be used to authenticate thegame console 110 for playing back the protectedcontent 122. In general, SSO includes utilizing an authentication server that has a trusted relationship with the content owner. In this case, thekey server 130 may act as the authentication server since the key server and securitytoken service 140 can have a trusted relationship, such as discussed above. Upon receiving the content key request, thekey server 130 first authenticates thegame console 110 by validating theaccess token 210 following the SSO model. If the authentication succeeds, thekey server 130 then decrypts the encrypted content key encoded in thesecurity token 216 using a private cryptographic key 136 held by the key server, and returns the decryptedcontent key 218 to thegame console 110, as indicated atreference number 6. The decryptedcontent key 218 can be used by thegame console 110 to decrypt and play theencrypted content 212. In this manner, no secret information, such as a private key or certificate, is stored by the gameconsole client application 112, and the client authentication is achieved using a SSO model. - In some cases, before sending the decrypted
content key 218 to thegame console 110, thekey server 130 can extract the policy from thesecurity token 216 to examine the expiry information (e.g., a DRM technology that prevents access to content after a specified date or time) and obtain any output control information (e.g., a DRM technology that can be used to disable output of clear content). If thesecurity token 216 is not expired, thekey server 130 can send the decryptedcontent key 218 and output control information, if any, to thegame console 110 as an HTTPS response (or a response via another secure protocol), as indicated atreference number 6. Otherwise, thecontent key 218 is not sent to thegame console 110. -
FIG. 3 shows an example server-side methodology 300 for protected video streaming in accordance with an embodiment. Themethod 300 may be implemented, for example, on thekey server 130 ofFIGS. 1 and 2 . Themethod 300 begins by receiving (310) an access control credential and an encrypted content key, such as encoded in theaccess token 210 and the signedsecurity token 216 described with respect toFIG. 2 , from a client computing device, such as thegame console 110 ofFIGS. 1 and 2 . The access control credential and the encrypted content key can be received via a communication network using a secure communications protocol, such as HTTPS. Themethod 300 continues by determining (312) that the client is authenticated based on the access control credential. Authentication may be via the SSO model, such as described above. In some embodiments the method continues by receiving (314) policy information from the client. The policy information may include expiry information and other output control information associated with the protected content. The method continues by obtaining (316) the output control information from the policy if, for example, the expiration date or time has not elapsed (e.g., if the policy is valid). If the client is authenticated, the method continues by decrypting (318) the encrypted content key using, for example, a private cryptographic key that is associated with a public cryptographic key that was used to encrypt the content key (e.g., by the content server 120). As noted above, the encrypted content key may be encoded in thesecurity token 216. The method continues by sending (320) the decrypted content key to the client using a secure communication protocol, such as HTTPS. The decrypted content key is configured for use by the client computing device for accessing encrypted content from a content server, such as the protectedcontent 122 distributed by thecontent server 120 ofFIGS. 1 and 2 . In some cases, some or all of the functions variously described in this paragraph can be performed in any order and at any time by one or more different processors. -
FIG. 4 shows an example client-side methodology 400 for protected video streaming in accordance with an embodiment. Themethod 400 may be implemented, for example, on thegame console 110 ofFIGS. 1 and 2 , (e.g., Xbox 360®). Themethod 400 begins by receiving (410) an access control credential from a security token service via a communications network. The access control credential may include a single sign on token. Themethod 400 continues by receiving (412), from a multimedia content server via the communications network, a playlist file having encoded therein a uniform resource identifier (URI) associated with a key server and a security token signed by the multimedia content server. In some cases, the URI is encoded in a format comprising “https://remote-keyserver/key?token=XboxSecurityToken”, where “remote-keyserver” represents a URL of the key server, and “XboxSecurityToken” represents the security token. An encrypted content key associated with protected multimedia content can be encoded in the security token. Themethod 400 continues by sending (414) the access control credential and the encrypted content key to the key server via the communications network using a secure communications protocol. In some cases, the secure communications protocol includes Hypertext Transfer Protocol Secure (HTTPS). Themethod 400 continues by receiving (418) a decrypted content key from the key server via the communications network using the secure communications protocol. The decrypted content key is configured for accessing the protected multimedia content. In some embodiments, themethod 400 continues by receiving (418) the protected content from the multimedia content server via the communications network, decrypting (420) the protected content using the decrypted content key, and playing (422) the decrypted content. In some cases, the protected content can be played back using a HTTP Live Streaming (HLS) player. In some cases, some or all of the functions variously described in this paragraph can be performed in any order and at any time by one or more different processors. -
FIG. 5 shows an example server-side methodology 500 for protected video streaming in accordance with an embodiment. Themethod 500 may be implemented, for example, on thecontent server 120 ofFIGS. 1 and 2 . Themethod 500 begins generating (510) a playlist file associated with protected multimedia content. The playlist file has encoded therein a uniform resource identifier (URI) associated with a key server and a security token signed by the content server. In some embodiments, themethod 500 includes encoding the URI in a format comprising “https://remote-keyserver/key?token=XboxSecurityToken”, where “remote-keyserver” represents a URL of the key server, and “XboxSecurityToken” represents the security token. An encrypted content key associated with the protected multimedia content can be encoded in the security token. Themethod 500 continues by encrypting (512) the protected multimedia content using a content key. Themethod 500 continues by sending (514) the playlist file and the protected multimedia content to a client computing system via a communication network using a secure communications protocol. In some cases, the secure communications protocol includes Hypertext Transfer Protocol Secure (HTTPS). In some embodiments, themethod 500 includes encoding policy information associated with the protected multimedia content in the playlist file. In some cases, some or all of the functions variously described in this paragraph can be performed in any order and at any time by one or more different processors. -
FIG. 6 is a block diagram representing anexample computing device 1000 that may be used to perform any of the techniques as variously described herein. For example, thegame console 110, thecontent server 120, thekey server 130, the securitytoken server 140, or any combination of these (such as described with respect toFIGS. 1 and 2 ) may be implemented in thecomputing device 1000. The computing device may be any computer system, such as a workstation, desktop computer, server, laptop, handheld computer, tablet computer (e.g., the iPad™ tablet computer), mobile computing or communication device (e.g., the iPhone™ mobile communication device, the Android™ mobile communication device, and the like), or other form of computing or telecommunications device that is capable of communication and that has sufficient processor power and memory capacity to perform the operations described herein. A distributed computational system may be provided comprising a plurality of such computing devices. - The
computing device 1000 includes one ormore storage devices 1010 and/or non-transitory computer-readable media 1020 having encoded thereon one or more computer-executable instructions or software for implementing techniques as variously described herein. Thestorage devices 1010 may include a computer system memory or random access memory, such as a durable disk storage (which may include any suitable optical or magnetic durable storage device, e.g., RAM, ROM, Flash, USB drive, or other semiconductor-based storage medium), a hard-drive, CD-ROM, or other computer readable media, for storing data and computer-readable instructions and/or software that implement various embodiments as taught herein. Thestorage device 1010 may include other types of memory as well, or combinations thereof. Thestorage device 1010 may be provided on the computing device or provided separately or remotely from the computing device. The non-transitory computer-readable media 1012 may include, but are not limited to, one or more types of hardware memory, non-transitory tangible media (for example, one or more magnetic storage disks, one or more optical disks, one or more USB flash drives), and the like. The non-transitory computer-readable media 1012 included in thecomputing device 1000 may store computer-readable and computer-executable instructions or software for implementing various embodiments. The computer-readable media 1012 may be provided on thecomputing device 1000 or provided separately or remotely from the computing device. - The
computing device 1000 also includes at least oneprocessor 1020 for executing computer-readable and computer-executable instructions or software stored in the storage device and/or non-transitory computer-readable media and other programs for controlling system hardware. Virtualization may be employed in thecomputing device 1000 so that infrastructure and resources in the computing device may be shared dynamically. For example, a virtual machine may be provided to handle a process running on multiple processors so that the process appears to be using only one computing resource rather than multiple computing resources. Multiple virtual machines may also be used with one processor. - A user may interact with the
computing device 1000 through anoutput device 1030, such as a screen or monitor, which may display one or more user interfaces provided in accordance with some embodiments. Theoutput device 1030 may also display other aspects, elements and/or information or data associated with some embodiments. Thecomputing device 1000 may include other I/O devices 1040 for receiving input from a user, for example, a keyboard, a joystick, a game controller, a pointing device (e.g., a mouse, a user's finger interfacing directly with a display device, etc.), or any suitable user interface. Thecomputing device 1000 may include other suitable conventional I/O peripherals. Thecomputing device 1000 can include and/or be operatively coupled to various suitable devices for performing one or more of the functions as variously described herein. Thecomputing device 1000 may include anetwork interface 1014 for communicating with other devices via a network, such as the Internet. - The
computing device 1000 may run any operating system, such as any of the versions of the Xbox 360® operating system, Microsoft® Windows® operating systems, the different releases of the Unix and Linux operating systems, any version of the MacOS® for Macintosh computers, any embedded operating system, any real-time operating system, any open source operating system, any proprietary operating system, any operating systems for mobile computing devices, or any other operating system capable of running on the computing device and performing the operations described herein. In an embodiment, the operating system may be run on one or more cloud machine instances. - In other embodiments, the functional components/modules may be implemented with hardware, such as gate level logic (e.g., FPGA) or a purpose-built semiconductor (e.g., ASIC). Still other embodiments may be implemented with a microcontroller having a number of input/output ports for receiving and outputting data, and a number of embedded routines for carrying out the functionality described herein. In a more general sense, any suitable combination of hardware, software, and firmware can be used, as will be apparent.
- As will be appreciated in light of this disclosure, the various modules and components of the system shown in
FIGS. 1 and 2 , such as theclient application 112, thelibrary 114, theADK 116, thecontent packager 124, thetoken verification module 132, and thekey service 134, can be implemented in software, such as a set of instructions (e.g., C, C++, object-oriented C, JavaScript, Java, BASIC, etc.) encoded on any computer readable medium or computer program product (e.g., hard drive, server, disc, or other suitable non-transient memory or set of memories), that when executed by one or more processors, cause the various methodologies provided herein to be carried out. It will be appreciated that, in some embodiments, various functions performed by the user computing system, as described herein, can be performed by similar processors and/or databases in different configurations and arrangements, and that the depicted embodiments are not intended to be limiting. Various components of this example embodiment, including the user computing system, can be integrated into, for example, one or more desktop or laptop computers, workstations, tablets, smartphones, game consoles, set-top boxes, or other such computing devices. Other componentry and modules typical of a computing system, such as processors (e.g., central processing unit and co-processor, graphics processor, etc.), input devices (e.g., keyboard, mouse, touch pad, touch screen, etc.), and operating system, are not shown but will be readily apparent. - Numerous embodiments will be apparent in light of the present disclosure, and features described herein can be combined in any number of configurations. One example embodiment provides a system including a storage having at least one memory, and one or more processors each operatively coupled to the storage. The one or more processors are configured to carry out a process including receiving, from a client computing device via a communications network using a secure communications protocol, an access control credential and an encrypted content key associated with protected multimedia content; determining that the client computing device is authenticated based on the access control credential; in response to the determination, decrypting the encrypted content key using a private cryptographic key; and sending the decrypted content key to the client computing device via the communications network using the secure communications protocol, the decrypted content key being configured for use by the client computing device for accessing the protected multimedia content. In another example embodiment, the one or more processors are configured to carry out a process including receiving an access control credential from a security token service via a communications network; receiving, from a multimedia content server via the communications network, a playlist file having encoded therein a uniform resource identifier (URI) associated with a key server and a security token signed by the multimedia content server, the security token having encoded therein an encrypted content key associated with protected multimedia content; sending the access control credential and the encrypted content key to the key server via the communications network using a secure communications protocol; receiving a decrypted content key from the key server via the communications network using the secure communications protocol, the decrypted content key being configured for accessing the protected multimedia content; and playing back the protected multimedia content using the decrypted content key. In yet another example embodiment, the one or more processors are configured to carry out a process including generating a playlist file associated with protected multimedia content, the playlist file having encoded therein a uniform resource identifier (URI) associated with a key server and a signed security token having encoded therein an encrypted content key associated with the protected multimedia content; encrypting the protected multimedia content using a public cryptographic the content key; and sending the playlist file and the protected multimedia content to a client computing system via a communication network using a secure communications protocol. Another embodiment provides a non-transient computer-readable medium or computer program product having instructions encoded thereon that when executed by one or more processors cause the processor to perform one or more of the functions defined in the present disclosure, such as the methodologies variously described in this paragraph. As previously discussed, in some cases, some or all of the functions variously described in this paragraph can be performed in any order and at any time by one or more different processors.
- The foregoing description and drawings of various embodiments are presented by way of example only. These examples are not intended to be exhaustive or to limit the invention to the precise forms disclosed. Alterations, modifications, and variations will be apparent in light of this disclosure and are intended to be within the scope of the invention as set forth in the claims.
Claims (20)
1. A computer-implemented method comprising:
receiving, from a client computing device via a communications network using a secure communications protocol, an access control credential and an encrypted content key associated with protected multimedia content;
determining that the client computing device is authenticated based on the access control credential;
in response to the determination, decrypting the encrypted content key using a private cryptographic key; and
sending the decrypted content key to the client computing device via the communications network using the secure communications protocol, the decrypted content key being configured for use by the client computing device for accessing the protected multimedia content.
2. The method of claim 1 , wherein the encrypted content key is encoded within a security token signed by a multimedia content server associated with the protected multimedia content.
3. The method of claim 2 , further comprising receiving, from the client computing device via the communications network using the secure communications protocol, policy information associated with the protected multimedia content.
4. The method of claim 3 , further comprising obtaining output control information from the policy information.
5. The method of claim 3 , further comprising determining that the encrypted content key is valid based on expiry information encoded in the policy information.
6. The method of claim 3 , wherein the policy information is encoded with the security token.
7. The method of claim 1 , wherein the access control credential includes a single sign on token, and wherein the determining is performed according to a single sign on authentication model.
8. The method of claim 1 , wherein the secure communications protocol includes Hypertext Transfer Protocol Secure (HTTPS).
9. The method of claim 1 , wherein the client computing device includes a Microsoft Xbox® device.
10. A computer-implemented method comprising:
receiving an access control credential from a security token service via a communications network;
receiving, from a multimedia content server via the communications network, a playlist file having encoded therein a uniform resource identifier (URI) associated with a key server and a security token signed by the multimedia content server, the security token having encoded therein an encrypted content key associated with protected multimedia content;
sending the access control credential and the encrypted content key to the key server via the communications network using a secure communications protocol;
receiving a decrypted content key from the key server via the communications network using the secure communications protocol, the decrypted content key being configured for accessing the protected multimedia content; and
playing back the protected multimedia content using the decrypted content key.
11. The method of claim 10 , further comprising receiving the protected multimedia content from the multimedia content server via the communications network.
12. The method of claim 11 , wherein the protected multimedia content is encrypted, and wherein the method further comprises decrypting the protected multimedia content using the decrypted content key.
13. The method of claim 10 , wherein the URI is encoded in a format comprising “https://remote-keyserver/key?token=XboxSecurityToken”, where “remote-keyserver” represents a uniform resource locator (URL) of the key server, and “XboxSecurityToken” represents the security token.
14. The method of claim 10 , wherein the secure communications protocol includes Hypertext Transfer Protocol Secure (HTTPS).
15. The method of claim 10 , wherein the access control credential includes a single sign on token.
16. The method of claim 10 , wherein the playing is performed using a HTTP Live Streaming (HLS) player.
17. A computer-implemented method comprising:
generating a playlist file associated with protected multimedia content, the playlist file having encoded therein a uniform resource identifier (URI) associated with a key server and a signed security token having encoded therein an encrypted content key associated with the protected multimedia content;
encrypting the protected multimedia content using the content key; and
sending the playlist file and the protected multimedia content to a client computing system via a communication network using a secure communications protocol.
18. The method of claim 17 , further comprising encoding the URI in a format comprising “https://remote-keyserver/key?token=XboxSecurityToken”, where “remote-keyserver” represents a uniform resource locator (URL) of the key server, and “XboxSecurityToken” represents the security token.
19. The method of claim 17 , further comprising encoding policy information associated with the protected multimedia content in the playlist file.
20. The method of claim 17 , wherein the secure communications protocol includes Hypertext Transfer Protocol Secure (HTTPS).
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/183,680 US20150235011A1 (en) | 2014-02-19 | 2014-02-19 | Drm protected video streaming on game console with secret-less application |
US15/246,965 US9853957B2 (en) | 2014-02-19 | 2016-08-25 | DRM protected video streaming on game console with secret-less application |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/183,680 US20150235011A1 (en) | 2014-02-19 | 2014-02-19 | Drm protected video streaming on game console with secret-less application |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/246,965 Division US9853957B2 (en) | 2014-02-19 | 2016-08-25 | DRM protected video streaming on game console with secret-less application |
Publications (1)
Publication Number | Publication Date |
---|---|
US20150235011A1 true US20150235011A1 (en) | 2015-08-20 |
Family
ID=53798351
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US14/183,680 Abandoned US20150235011A1 (en) | 2014-02-19 | 2014-02-19 | Drm protected video streaming on game console with secret-less application |
US15/246,965 Active US9853957B2 (en) | 2014-02-19 | 2016-08-25 | DRM protected video streaming on game console with secret-less application |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
US15/246,965 Active US9853957B2 (en) | 2014-02-19 | 2016-08-25 | DRM protected video streaming on game console with secret-less application |
Country Status (1)
Country | Link |
---|---|
US (2) | US20150235011A1 (en) |
Cited By (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106658076A (en) * | 2016-10-26 | 2017-05-10 | 中国传媒大学 | Digital copyright management system |
US20170171166A1 (en) * | 2015-12-11 | 2017-06-15 | Le Holdings (Beijing) Co., Ltd. | Anti-hotlinking method and electronic device |
US20170187521A1 (en) * | 2011-12-06 | 2017-06-29 | Amazon Technologies, Inc. | Browser security module |
US9819648B1 (en) * | 2014-10-21 | 2017-11-14 | Amazon Technologies, Inc. | Secure content delivery |
US9853957B2 (en) | 2014-02-19 | 2017-12-26 | Adobe Systems Inc. | DRM protected video streaming on game console with secret-less application |
US9946898B2 (en) * | 2011-11-14 | 2018-04-17 | Esw Holdings, Inc. | Security systems and methods for encoding and decoding digital content |
US9977921B2 (en) | 2011-11-14 | 2018-05-22 | Esw Holdings, Inc. | Security systems and methods for encoding and decoding digital content |
US9990516B2 (en) | 2011-11-14 | 2018-06-05 | Esw Holdings, Inc. | Security systems and methods for social networking |
EP3386202A1 (en) * | 2017-04-04 | 2018-10-10 | Nagravision SA | Security of surveillance media |
US10263966B2 (en) | 2016-04-14 | 2019-04-16 | Sophos Limited | Perimeter enforcement of encryption rules |
US10454903B2 (en) | 2016-06-30 | 2019-10-22 | Sophos Limited | Perimeter encryption |
US10587531B2 (en) * | 2014-10-24 | 2020-03-10 | Huawei Technologies Co., Ltd. | Resources access method and apparatus |
US10628597B2 (en) | 2016-04-14 | 2020-04-21 | Sophos Limited | Just-in-time encryption |
US10681078B2 (en) | 2016-06-10 | 2020-06-09 | Sophos Limited | Key throttling to mitigate unauthorized file access |
US10686827B2 (en) | 2016-04-14 | 2020-06-16 | Sophos Limited | Intermediate encryption for exposed content |
US10691824B2 (en) | 2016-02-12 | 2020-06-23 | Sophos Limited | Behavioral-based control of access to encrypted content by a process |
US10791097B2 (en) * | 2016-04-14 | 2020-09-29 | Sophos Limited | Portable encryption format |
US10803451B2 (en) | 2016-04-29 | 2020-10-13 | Digital Asset Holdings, LLC | Digital asset modeling |
CN112040268A (en) * | 2020-08-11 | 2020-12-04 | 福建天泉教育科技有限公司 | Video playing method and storage medium supporting user-defined DRM |
US10924268B2 (en) * | 2016-10-31 | 2021-02-16 | Huawei Technologies Co., Ltd. | Key distribution method, and related device and system |
US11245679B1 (en) * | 2017-11-15 | 2022-02-08 | Veritas Technologies Llc | Securing external access to runtime services in appliances |
US11362824B2 (en) * | 2018-05-25 | 2022-06-14 | Intertrust Technologies Corporation | Content management systems and methods using proxy reencryption |
US11582036B1 (en) * | 2019-10-18 | 2023-02-14 | Splunk Inc. | Scaled authentication of endpoint devices |
WO2023039694A1 (en) * | 2021-09-14 | 2023-03-23 | 果核数位股份有限公司 | Streaming service method and system capable of realizing information security level customization |
US11924350B2 (en) | 2021-07-29 | 2024-03-05 | Digital Asset (Switzerland) GmbH | Cryptographically enforced partial blinding for distributed system |
Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134660A (en) * | 1997-06-30 | 2000-10-17 | Telcordia Technologies, Inc. | Method for revoking computer backup files using cryptographic techniques |
US20030200319A1 (en) * | 2002-04-19 | 2003-10-23 | Bodine Gregory L. | System and method for interfacing with existing system management products or software solutions |
US20050039031A1 (en) * | 2003-01-31 | 2005-02-17 | Mont Marco Casassa | Privacy management of personal data |
US20050273629A1 (en) * | 2004-06-04 | 2005-12-08 | Vitalsource Technologies | System, method and computer program product for providing digital rights management of protected content |
US20060010074A1 (en) * | 2004-07-09 | 2006-01-12 | Zeitsiff Adam M | Delivery and storage system for secured content library |
US20070300080A1 (en) * | 2006-06-22 | 2007-12-27 | Research In Motion Limited | Two-Factor Content Protection |
US20080256592A1 (en) * | 2007-04-12 | 2008-10-16 | Microsoft Corporation | Managing Digital Rights for Multiple Assets in an Envelope |
US7555460B1 (en) * | 2000-06-05 | 2009-06-30 | Diversinet Corp. | Payment system and method using tokens |
US7761465B1 (en) * | 1999-09-17 | 2010-07-20 | Sony Corporation | Data providing system and method therefor |
US20100223471A1 (en) * | 2009-02-27 | 2010-09-02 | Research In Motion Limited | Cookie Verification Methods And Apparatus For Use In Providing Application Services To Communication Devices |
US20110230256A1 (en) * | 2010-03-21 | 2011-09-22 | Digital Interactive Systems Corporation | System and method for delivering electronic media content on a multi-level basis |
US20120131343A1 (en) * | 2010-11-22 | 2012-05-24 | Samsung Electronics Co., Ltd. | Server for single sign on, device accessing server and control method thereof |
US20130326223A1 (en) * | 2012-05-31 | 2013-12-05 | Andrew Supplee WEBB | Methods and systems for increasing the security of private keys |
US20140230007A1 (en) * | 2013-02-12 | 2014-08-14 | Amazon Technologies, Inc. | Policy enforcement with associated data |
US20150149772A1 (en) * | 2013-11-22 | 2015-05-28 | Cisco Technology, Inc. | Secure access for encrypted data |
US20150156191A1 (en) * | 2012-05-14 | 2015-06-04 | Nec Europe Ltd. | Method and system for accessing service/data of a first network from a second network for service/data access via the second network |
US20150278548A1 (en) * | 2014-03-28 | 2015-10-01 | Nxp B.V. | Nfc-based authorization of access to data from a third party device |
Family Cites Families (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6314660B1 (en) | 1998-11-04 | 2001-11-13 | Hewlett-Packard Company | Cascaded tensioning tangential drive for THA handling |
US8631460B2 (en) * | 2011-03-23 | 2014-01-14 | CipherPoint Software, Inc. | Systems and methods for implementing transparent encryption |
US9892239B2 (en) * | 2013-01-29 | 2018-02-13 | Mobitv, Inc. | Digital rights management for HTTP-based media streaming |
US9124430B2 (en) * | 2013-09-23 | 2015-09-01 | Venafi, Inc. | Centralized policy management for security keys |
US20150235011A1 (en) | 2014-02-19 | 2015-08-20 | Adobe Systems Incorporated | Drm protected video streaming on game console with secret-less application |
-
2014
- 2014-02-19 US US14/183,680 patent/US20150235011A1/en not_active Abandoned
-
2016
- 2016-08-25 US US15/246,965 patent/US9853957B2/en active Active
Patent Citations (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6134660A (en) * | 1997-06-30 | 2000-10-17 | Telcordia Technologies, Inc. | Method for revoking computer backup files using cryptographic techniques |
US7761465B1 (en) * | 1999-09-17 | 2010-07-20 | Sony Corporation | Data providing system and method therefor |
US7555460B1 (en) * | 2000-06-05 | 2009-06-30 | Diversinet Corp. | Payment system and method using tokens |
US20030200319A1 (en) * | 2002-04-19 | 2003-10-23 | Bodine Gregory L. | System and method for interfacing with existing system management products or software solutions |
US20050039031A1 (en) * | 2003-01-31 | 2005-02-17 | Mont Marco Casassa | Privacy management of personal data |
US20050273629A1 (en) * | 2004-06-04 | 2005-12-08 | Vitalsource Technologies | System, method and computer program product for providing digital rights management of protected content |
US20060010074A1 (en) * | 2004-07-09 | 2006-01-12 | Zeitsiff Adam M | Delivery and storage system for secured content library |
US20070300080A1 (en) * | 2006-06-22 | 2007-12-27 | Research In Motion Limited | Two-Factor Content Protection |
US20080256592A1 (en) * | 2007-04-12 | 2008-10-16 | Microsoft Corporation | Managing Digital Rights for Multiple Assets in an Envelope |
US20100223471A1 (en) * | 2009-02-27 | 2010-09-02 | Research In Motion Limited | Cookie Verification Methods And Apparatus For Use In Providing Application Services To Communication Devices |
US20110230256A1 (en) * | 2010-03-21 | 2011-09-22 | Digital Interactive Systems Corporation | System and method for delivering electronic media content on a multi-level basis |
US20120131343A1 (en) * | 2010-11-22 | 2012-05-24 | Samsung Electronics Co., Ltd. | Server for single sign on, device accessing server and control method thereof |
US20150156191A1 (en) * | 2012-05-14 | 2015-06-04 | Nec Europe Ltd. | Method and system for accessing service/data of a first network from a second network for service/data access via the second network |
US20130326223A1 (en) * | 2012-05-31 | 2013-12-05 | Andrew Supplee WEBB | Methods and systems for increasing the security of private keys |
US20140230007A1 (en) * | 2013-02-12 | 2014-08-14 | Amazon Technologies, Inc. | Policy enforcement with associated data |
US20150149772A1 (en) * | 2013-11-22 | 2015-05-28 | Cisco Technology, Inc. | Secure access for encrypted data |
US20150278548A1 (en) * | 2014-03-28 | 2015-10-01 | Nxp B.V. | Nfc-based authorization of access to data from a third party device |
Cited By (40)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9977921B2 (en) | 2011-11-14 | 2018-05-22 | Esw Holdings, Inc. | Security systems and methods for encoding and decoding digital content |
US9990516B2 (en) | 2011-11-14 | 2018-06-05 | Esw Holdings, Inc. | Security systems and methods for social networking |
US9946898B2 (en) * | 2011-11-14 | 2018-04-17 | Esw Holdings, Inc. | Security systems and methods for encoding and decoding digital content |
US10313112B2 (en) * | 2011-12-06 | 2019-06-04 | Amazon Technologies, Inc. | Browser security module |
US20170187521A1 (en) * | 2011-12-06 | 2017-06-29 | Amazon Technologies, Inc. | Browser security module |
US9853957B2 (en) | 2014-02-19 | 2017-12-26 | Adobe Systems Inc. | DRM protected video streaming on game console with secret-less application |
US9819648B1 (en) * | 2014-10-21 | 2017-11-14 | Amazon Technologies, Inc. | Secure content delivery |
US10999257B2 (en) | 2014-10-21 | 2021-05-04 | Amazon Technologies, Inc. | Secure delivery and storage of content |
US10362003B2 (en) * | 2014-10-21 | 2019-07-23 | Amazon Technologies, Inc. | Secure delivery and storage of content |
US10587531B2 (en) * | 2014-10-24 | 2020-03-10 | Huawei Technologies Co., Ltd. | Resources access method and apparatus |
US11812264B2 (en) | 2014-10-24 | 2023-11-07 | Huawei Cloud Computing Technologies Co., Ltd. | Resource access method and apparatus |
US11082848B2 (en) | 2014-10-24 | 2021-08-03 | Huawei Technologies Co., Ltd. | Resource access method and apparatus |
US20170171166A1 (en) * | 2015-12-11 | 2017-06-15 | Le Holdings (Beijing) Co., Ltd. | Anti-hotlinking method and electronic device |
US10691824B2 (en) | 2016-02-12 | 2020-06-23 | Sophos Limited | Behavioral-based control of access to encrypted content by a process |
US10791097B2 (en) * | 2016-04-14 | 2020-09-29 | Sophos Limited | Portable encryption format |
US10834061B2 (en) | 2016-04-14 | 2020-11-10 | Sophos Limited | Perimeter enforcement of encryption rules |
US10628597B2 (en) | 2016-04-14 | 2020-04-21 | Sophos Limited | Just-in-time encryption |
US10263966B2 (en) | 2016-04-14 | 2019-04-16 | Sophos Limited | Perimeter enforcement of encryption rules |
US10686827B2 (en) | 2016-04-14 | 2020-06-16 | Sophos Limited | Intermediate encryption for exposed content |
US11531983B2 (en) | 2016-04-29 | 2022-12-20 | Digital Asset (Switzerland) GmbH | Digital asset modeling |
US10803451B2 (en) | 2016-04-29 | 2020-10-13 | Digital Asset Holdings, LLC | Digital asset modeling |
US10810583B2 (en) | 2016-04-29 | 2020-10-20 | Digital Asset Holdings | Digital asset modeling |
US10979449B2 (en) | 2016-06-10 | 2021-04-13 | Sophos Limited | Key throttling to mitigate unauthorized file access |
US10681078B2 (en) | 2016-06-10 | 2020-06-09 | Sophos Limited | Key throttling to mitigate unauthorized file access |
US10454903B2 (en) | 2016-06-30 | 2019-10-22 | Sophos Limited | Perimeter encryption |
US10931648B2 (en) | 2016-06-30 | 2021-02-23 | Sophos Limited | Perimeter encryption |
CN106658076A (en) * | 2016-10-26 | 2017-05-10 | 中国传媒大学 | Digital copyright management system |
US10924268B2 (en) * | 2016-10-31 | 2021-02-16 | Huawei Technologies Co., Ltd. | Key distribution method, and related device and system |
CN110476432A (en) * | 2017-04-04 | 2019-11-19 | 耐瑞唯信有限公司 | Monitor the protection of media |
EP3386202A1 (en) * | 2017-04-04 | 2018-10-10 | Nagravision SA | Security of surveillance media |
WO2018185174A1 (en) * | 2017-04-04 | 2018-10-11 | Nagravision Sa | Security of surveillance media |
US11714883B2 (en) | 2017-04-04 | 2023-08-01 | Nagravision Sàrl | Security of surveillance media |
US11245679B1 (en) * | 2017-11-15 | 2022-02-08 | Veritas Technologies Llc | Securing external access to runtime services in appliances |
US20220311609A1 (en) * | 2018-05-25 | 2022-09-29 | Intertrust Technologies Corporation | Content management systems and methods using proxy reencryption |
US11362824B2 (en) * | 2018-05-25 | 2022-06-14 | Intertrust Technologies Corporation | Content management systems and methods using proxy reencryption |
US11582036B1 (en) * | 2019-10-18 | 2023-02-14 | Splunk Inc. | Scaled authentication of endpoint devices |
US11895237B1 (en) * | 2019-10-18 | 2024-02-06 | Splunk Inc. | Scaled authentication of endpoint devices |
CN112040268A (en) * | 2020-08-11 | 2020-12-04 | 福建天泉教育科技有限公司 | Video playing method and storage medium supporting user-defined DRM |
US11924350B2 (en) | 2021-07-29 | 2024-03-05 | Digital Asset (Switzerland) GmbH | Cryptographically enforced partial blinding for distributed system |
WO2023039694A1 (en) * | 2021-09-14 | 2023-03-23 | 果核数位股份有限公司 | Streaming service method and system capable of realizing information security level customization |
Also Published As
Publication number | Publication date |
---|---|
US9853957B2 (en) | 2017-12-26 |
US20160366116A1 (en) | 2016-12-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9853957B2 (en) | DRM protected video streaming on game console with secret-less application | |
CN109075976B (en) | Certificate issuance dependent on key authentication | |
KR102443857B1 (en) | Addressing technique of trusted execution environment using encryption key | |
CN110214440B (en) | Computing system, method for transmitting protected data and readable storage medium | |
US8838961B2 (en) | Security credential deployment in cloud environment | |
Sandhu et al. | Peer-to-peer access control architecture using trusted computing technology | |
US8850216B1 (en) | Client device and media client authentication mechanism | |
US11329962B2 (en) | Pluggable cipher suite negotiation | |
US9973481B1 (en) | Envelope-based encryption method | |
KR100746030B1 (en) | Method and apparatus for generating rights object with representation by commitment | |
RU2756040C2 (en) | Addressing trusted execution environment using signature key | |
US8863255B2 (en) | Security credential deployment in cloud environment | |
US20090086964A1 (en) | Providing local storage service to applications that run in an application execution environment | |
EP1686504A1 (en) | Flexible licensing architecture in content rights management systems | |
US20060174110A1 (en) | Symmetric key optimizations | |
US20080294894A1 (en) | Binding Content Licenses to Portable Storage Devices | |
US20110179268A1 (en) | Protecting applications with key and usage policy | |
KR102560295B1 (en) | User-protected license | |
US8452982B2 (en) | Methods and systems for migrating content licenses | |
JPWO2015122009A1 (en) | Service providing method, service requesting method, information processing apparatus, and client apparatus | |
JP7319380B2 (en) | Protect browser cookies | |
CN109728912A (en) | Broadcasting content safe transmission method, system and terminal | |
US20230418911A1 (en) | Systems and methods for securely processing content | |
US8706635B2 (en) | Use of licensed content without identification thereof | |
US20230198746A1 (en) | Secure key exchange using key-associated attributes |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AS | Assignment |
Owner name: ADOBE SYSTEMS INCORPORATED, CALIFORNIA Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:SWAMINATHAN, VISWANATHAN;WEI, SHENG;STEELE, JOSEPH DONOVAN;SIGNING DATES FROM 20140214 TO 20140218;REEL/FRAME:032242/0858 |
|
STCB | Information on status: application discontinuation |
Free format text: ABANDONED -- FAILURE TO RESPOND TO AN OFFICE ACTION |