Content Usage Rules for OTT
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 Profile Id
It can apply to live channels defined in IMS, to Content authorization tokens, or to specific content tracks (e.g., Audio, SD, HD, UHD) defined in the content.
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#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" / “default” ) 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. Please refer to the SSP Console documentation.
For all the parameters highlighted, the DRM is proactively validating the value against the challenge data coming from the request. |
---|
2.1. PRM & SWPRM
Usage rules | Profile "Test" | Profile "SD" | Profile "HD" | Profile "UHD" | Profile "default" | Comments |
---|---|---|---|---|---|---|
PRM (Connect client) SWPRM (OpenTV Player) | ||||||
minLevel | 0 | 1000 | 1000 | 3000 | 1000 | This value can be set to 10000 to prevent acquisition of PRM licenses. |
analogCappingResolution | NO_RESTRICTIONS | NO_RESTRICTIONS | NO_RESTRICTIONS | NO_RESTRICTIONS | NO_RESTRICTIONS | |
digitalOnly | FALSE | FALSE | TRUE | TRUE | TRUE | |
hdcp | TRUE | TRUE | TRUE | TRUE | TRUE | |
hdcpType | TYPE_0 | TYPE_0 | TYPE_0 | TYPE_1 | TYPE_1 | |
imageConstraint | FALSE | FALSE | FALSE | FALSE | FALSE | |
uncompressedDigitalCappingResolution | NO_RESTRICTIONS | NO_RESTRICTIONS | NO_RESTRICTIONS | NO_RESTRICTIONS | NO_RESTRICTIONS | |
deviceCappingResolution | NO_RESTRICTIONS | NO_RESTRICTIONS | NO_RESTRICTIONS | NO_RESTRICTIONS | NO_RESTRICTIONS | |
unprotectedAnalogOutput | TRUE | TRUE | FALSE | FALSE | FALSE | |
unprotectedDigitalOutput | TRUE | TRUE | FALSE | FALSE | FALSE | |
watermarkingEnabled | TRUE | TRUE | TRUE | TRUE | TRUE | |
secureMediaPathActivation | - | - | - | - | - | Optional No default values. If defined, the value overrides the rules based on the minLevel. If not defined, the value is set automatically according to the minLevel. Relation between the Security Level and the Secure Media Path 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. |
digitalAvAdapter | TRUE | TRUE | TRUE | TRUE | TRUE | Determines if digital AV Adapters are allowed. |
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 :
|
2.4. 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.
|
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. |
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. |
2.5. TvKeyCloud
Usage rules | Profile "Test" | Profile "SD" | Profile "HD" | Profile "UHD" | Profile "default" | Comments |
---|---|---|---|---|---|---|
TVKeyCloud | ||||||
exportProtection | FALSE | FALSE | TRUE | TRUE | FALSE | |
redistributionControl | FALSE | FALSE | FALSE | TRUE | FALSE | |
protectedBufferIndicator | FALSE | FALSE | FALSE | TRUE | FALSE | |
hdcpUncompressedToken | TRUE | TRUE | TRUE | FALSE | TRUE | |
hdcpCompressedToken | TRUE | TRUE | TRUE | FALSE | TRUE | |
hdcpType | 0 | 0 | 0 | 0 | 0 | Possible values :
|
uncompressedDigitalCappingResolution | 15 | 15 | 15 | 15 | 15 | Possible values :
|
compressedDigitalCappingResolution | 15 | 15 | 15 | 15 | 15 | Possible values :
|
2.6. WisePlay
Usage rules | Profile "Test" | Profile "SD" | Profile "HD" | Profile "UHD" | Profile "default" | Comments |
---|---|---|---|---|---|---|
WisePlay | ||||||
securityLevel | 1 | 1 | 2 | 3 | 1 | Minimum security level of a device. Possible values :
|
outputControl | 0 | 0 | 1 | 2 | 2 | Output range allowed when the key is used to decrypt the content to be played (that is, control policy during large-screen projection). Possible values :
|
licenseType | PERSISTENT | PERSISTENT | NONPERSISTENT | NONPERSISTENT | PERSISTENT | Indicates whether a license can be cached locally. Possible values :
|
3. URP usages
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 refers 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 contains 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.
3.2. With OTT Live Channels
OTT live channel definitions in IMS shall include a UR Profile identifier.
When using UR profiles with channels, the following rules will apply:
If a channel definition includes a UR profile that does not exist, SSP will reject subsequent license requests for that channel.
If the channel does not include a profile identifier, then default values are applied for each usage rule as defined in the "Default" UR Profile.
If the channel definition includes content tracks (e.g., Audio, SD, HD, etc), a UR Profile ID can be assigned at the track level. Otherwise the profile at the channel level will apply.
A channel definition request including a explicit list of usage rules will be rejected by IMS. Use UR Profile instead.
3.3. Overriding UR Profiles per Device Model
SSP supports overriding OTT UR Profiles per device model. This feature allows tweaking the usage rules applied when consuming content on a specific device model. Combined with the profile minimum security level, the feature also enables preventing a particular device model from acquiring licenses for contents using a specific UR Profile. This feature requires a specific configuration applied by NAGRA operational teams.
3.3.1. HDCP Override for Widevine devices
Certain Android mobile devices do not support HDCP enforcement at DRM level, while they do not have digital output. To avoid blocking license delivery to those devices, a list of Widevine DRM system IDs can be configured in the system to skip the HDCP enforcement rule in the license.
4. Generic Usage Rules Description (Deprecated)
Before introducing "DRM specific usage rules profiles", SSP did support "generic usage rules" letting usage rules being defined once per content and automatically converted into DRM specific usage rules on the fly by SSP.
Generic usage rules | Description | Profile "Test" | Profile "SD" | Profile "HD" | Profile "UHD" | Profile "default" |
---|---|---|---|---|---|---|
minLevel | Device security level. Definition and usage: (23.48) Device Security Level Management. | 0 | 1 | 1 | 3 | 1 |
analogCappingResolution | Specifies how the video is downscaled before being sent to analog output. | NO_RESTRICTIONS | NO_RESTRICTIONS | NO_RESTRICTIONS | NO_RESTRICTIONS | NO_RESTRICTIONS |
digitalOnly | When true, no analog output is authorized. | FALSE | FALSE | TRUE | TRUE | TRUE |
hdcp | When true, digital output protected by HDCP is authorized. | TRUE | TRUE | TRUE | TRUE | TRUE |
hdcpType | Specifies if HDCP version can be downgraded (TYPE_0) during HDCP key negotiation or not (TYPE_1). | TYPE_0 | TYPE_0 | TYPE_0 | TYPE_1 | TYPE_1 |
imageConstraint | When true, video is downscaled before being sent to analog outputs. | FALSE | FALSE | FALSE | FALSE | FALSE |
uncompressedDigitalCappingResolution | Specifies how video is downscaled before being sent to uncompressed digital output. Applies only if hdcpType is TYPE_1 (hdcp 2.2) and the device is only protected for TYPE_0 (hdcp 1.0). | NO_RESTRICTIONS | NO_RESTRICTIONS | NO_RESTRICTIONS | NO_RESTRICTIONS | NO_RESTRICTIONS |
deviceCappingResolution | Specifies how the video is downscaled before being sent to any output. | NO_RESTRICTIONS | NO_RESTRICTIONS | NO_RESTRICTIONS | NO_RESTRICTIONS | NO_RESTRICTIONS |
unprotectedAnalogOutput | When true, video is authorized to be sent unprotected to analog output. | TRUE | TRUE | FALSE | FALSE | FALSE |
unprotectedDigitalOutput | When true, video is authorized to be sent unprotected to digital output. In this case the HDCP flags are ignored. | TRUE | TRUE | FALSE | FALSE | FALSE |
watermarkingEnabled | When true, the device is authorized to apply watermarking on the video. | TRUE | TRUE | TRUE | TRUE | TRUE |
airplayOutput | When true, video is authorized to be played on an external device connected using AirPlay. Applies only to devices using FairPlayStreaming. | TRUE | TRUE | TRUE | FALSE | FALSE |