Content Usage Rules for OTT for MDRM eCommerce
1. Overview
SSP supports declaration and enforcement of content usage rules that define how content shall be used by the client device, for instance regarding output control.
For OTT content, usage rules can be defined in two different ways in SSP:
The preferred method and the most generic is to use Usage Rules Profiles.
It consists in referencing a Usage Rules ProfileId .
It can apply to live channels defined in IMS or to Content authorization tokens.
SSP comes with four default profile values that can be customized and additional profiles can be defined.
If no usage rules profiles are specified in IMS or in the Content authorization tokens or in the authorization callback mode, then SSP will automatically apply the Default profile of the DRM.
The second method (23.48) Content Usage Rules for OTT for MDRM eCommerce#Generic Usage Rules is deprecated but still supported by SSP. It is supported only in Content authorization tokens and consists in declaring the usage rules in a generic format (see details in Content Authorization token definition)
2. Default Usage Rules Profiles per DRM
For OTT contents, SSP supports Usage Rule Profiles (aka UR Profiles). A UR Profile is a set of DRM specific values for the content usage rules defined below and tagged with an identifier. For convenience, a profile identifier can then be used to replace the list of rules in the IMS API as well as in Content authorization tokens.
SSP is delivered with the default set of four content usage rules profiles.
To use one of those profiles, simply use the profile identifier above ("Test" / "SD" / "HD" / "UHD") in the channel definition in IMS or in the Content Authorization token.
Profile "Test" should only be used for integration purposes.
New profiles can be added into the system.
For all the parameters highlighted, the DRM is proactively validating the value against the challenge data coming from the request. |
---|
2.1. Widevine
Usage rules | Profile "Test" | Profile "SD" | Profile "HD" | Profile "UHD" | Profile "default" | Comments |
---|---|---|---|---|---|---|
Widevine | ||||||
minimumSecurityLevel | 5 | 3 | 3 | 1 | 3 | Value compared with the device security level defined by Widevine. In case the security level is not accessible in the license request, SSP will consider the device security level to be 5. This could happen with test devices. This value can be set to 0 to prevent acquisition of Widevine licenses. Possible values :
|
policySecurityLevel | 1 | 1 | 1 | 4 | 1 | Value set in the license and used by the DRM client. EME format (from 1 to 5). Possible values :
When dealing with L1 Browser requests, an automatic conversion takes place to align the security level between the Widevine policy and PlayReady security levels :
|
hdcp | 0 | 0 | 1 | 5 | 5 | Possible values :
|
disableAnalogOutput | FALSE | FALSE | TRUE | TRUE | TRUE | Indicates if the analog output has to be disabled. In case the analog output has to be disabled, if the device doesn’t have the ability to do it then the request will be proactively rejected. For devices with an analog output, the ability to disable it indicates whether the content can be disabled/restricted on the analog interface via the license’s key control block.
Possible values :
|
overrideDeviceRevocation | TRUE | FALSE | FALSE | FALSE | FALSE | If true, a license is generated even if the device is revoked. Permanently revoked devices cannot be overriden. If the device is revoked and the override is disabled then the licence will be rejected. Possible values :
|
allowUnverifiedPlatform | TRUE | FALSE | FALSE | FALSE | FALSE | Indicates if unverified platforms are allowed. A license request will fail if VMP status is unverified or tampered for a desktop browser. The Verified Media Path (VMP) feature is implemented for desktop browser platforms. Set this field to 'true' to allow license request to succeed when VMP status is unverified. Related status : PLATFORM_UNVERIFIED |
requireL3SecureStorage | FALSE | FALSE | FALSE | FALSE | FALSE | Used to require a secure storage on software verified platforms. The device platform status was verified at the software level and the device has secure storage which is required for license storage persistence. Applicable for desktop browsers only. Related status : PLATFORM_SECURE_STORAGE_SOFTWARE_VERIFIED |
maxDeviceVulnerabilityLevel | - | - | - | - | - | Optional Describes how secure a device is, over time. It determines if a device is exposed to vulnerabilities. If unset, the UR is not applied. Default value per profile will be set in future releases. Only applicable to SDK mode. Possible values :
|
allowUnspecifiedDeviceVulnerabilityLevel | - | - | - | - | - | Optional Allow devices which vulnerability level is unspecified. Default for all profiles : TRUE Default value per profile will be set in future releases. Only applicable to SDK mode. Possible values :
|
cgmsFlag | CGMS_NONE | COPY_NEVER | CGMS_NONE | CGMS_NONE | CGMS_NONE | Value set in the license and used by the DRM client. Indicates whether CGMS is required. Possible values :
|
2.2. PlayReady
Usage rules | Profile "Test" | Profile "SD" | Profile "HD" | Profile "UHD" | Profile "default" | Comments |
---|---|---|---|---|---|---|
PlayReady | ||||||
minimumSecurityLevel | 150 | 2000 | 2000 | 3000 | 2000 | This value can be set to 5000 to prevent acquisition of PlayReady licenses. |
hdcpType | - | - | 0 | 1 | 1 | Value set in the license and used by the DRM client. Optional Minimum HDCP protection. To be set in the license, the parameter “uncompressedDigitalVideoOutputProtection” must be higher than 271. Possible values :
|
digitalVideoOnly | FALSE | FALSE | TRUE | TRUE | TRUE | Value set in the license and used by the DRM client. PlayReady products may only pass the video portion of decrypted A/V content to Digital Video Outputs. Possible values :
|
agcAndColorStrip | 0 | 0 | 0 | 0 | 0 | Value set in the license and used by the DRM client. Only applicable if the parameter “digitalVideoOnly” is set to FALSE. Possible values :
|
minimumAnalogTelevision | 100 | 200 | 300 | 300 | 300 | Value set in the license and used by the DRM client. If a PlayReady product asses the video portion of decrypted A/V Content to Analog Television Outputs, the PlayReady product must follow restrictions. Minimum value. Check the PlayReady compliance rules for more details. Possible values :
|
uncompressedDigitalVideoOutputProtection | 100 | 100 | 300 | 300 | 300 | Value set in the license and used by the DRM client. If a PlayReady product passes the video portion of uncompressed decrypted A/V Content, the PlayReady product must follow restrictions. Minimum value. Check the PlayReady compliance rules for more details. Possible values :
|
compressedDigitalVideoOutputProtection | 500 | 500 | 500 | 500 | 500 | If a PlayReady product passes the video portion of compressed decrypted A/V Content, the PlayReady product must follow restrictions. Minimum value. Check the PlayReady compliance rules for more details. Possible values :
|
uncompressedDigitalAudioOutputProtection | 100 | 100 | 300 | 300 | 300 | Value set in the license and used by the DRM client. If a PlayReady product passes the audio portion of uncompressed decrypted A/V Content, the PlayReady product must follow restrictions. Minimum value. Check the PlayReady compliance rules for more details. Possible values :
|
compressedDigitalAudioOutputProtection | 100 | 100 | 300 | 300 | 300 | Value set in the license and used by the DRM client. If a PlayReady product passes the audio portion of compressed decrypted A/V Content, the PlayReady product must follow restrictions as specified. Minimum value. Check the PlayReady compliance rules for more details. Possible values :
|
dtcpExport | FALSE | FALSE | FALSE | FALSE | FALSE | Value set in the license and used by the DRM client. Digital Transmission Content Protection, designed to protect audio and video content as it's transmitted between devices. A PlayReady product may export decrypted PlayReady A/V Content to DTCP. Applicable only for offline licenses. Possible values :
|
2.3. FairPlay
Usage rules | Profile "Test" | Profile "SD" | Profile "HD" | Profile "UHD" | Profile "default" | Comments |
---|---|---|---|---|---|---|
FairPlay | ||||||
airPlayAllowed | TRUE | TRUE | TRUE | FALSE | FALSE | Determines if AirPlay can be activated. Possible values :
|
digitalAvAdapter | TRUE | TRUE | TRUE | TRUE | TRUE | Determines if digital AV Adapter are allowed. Possible values :
|
hdcpStrictEnforcement | FALSE | FALSE | TRUE | TRUE | TRUE | Value compared with the hdcp enforcement flag coming from the SPC message. Mismatches lead to device hdcp protection errors (error code 4044). Possible values :
|
hdcpLevel | 0xEF72894CA7895B78 | 0xEF72894CA7895B78 | 0x40791AC78BD5C571 | 0x285A0863BBA8E1D3 | 0x285A0863BBA8E1D3 | Value set in the license and used by the DRM client. If the hdcp is not sctrictly enforced, the hdcp level cannot be set to Type 0 or 1. Possible values :
|
3. URP usage
3.1. With Content Authorization Tokens
SSP Content Authorization tokens can include a UR profile identifier both at ContentRights level as well as at Track level (field "usageRulesProfileId" in the ContentAuthZ token definition)
When using UR profile with tokens, the following rules will apply:
If an SSP Content authorization token refer to a UR profile that does not exist, the respective license request will be rejected.
Profiles and rules are mutually exclusive: a given Content AuthZ token can contain either a UR profile identifier or an explicit list of usage rules, but not both (otherwise the license request will be rejected).
If the token does not contain neither a profile identifier nor explicit usage rules, then default values are applied for each usage rule. The list of default values is detailed above.