RDK Documentation (Open Sourced RDK Components)
DTCP (Digital Transmission Content Protection)

Description

Digital Transmission Content Protection ("DTCP") technology protects high-value digital motion pictures, television programs and audio against unauthorized interception and copying in the home and personal environment (e.g., between a digital set top box and digital video recorder, or between a personal computer and a digital TV).

Terminology
Code Description
DTCP Digital Transmission Content Protection
DTCP-IP Digital Transmission Content Protection Internet Protocol
AKE Authentication and Key Exchange
CCI Copy Control Information
SRM System Renewability Messages
DLNA Digital Living Network Alliance
EMI Encryption Mode Indicator
E-EMI Extended Encryption Mode Indicator
PCP Protected Content Packet
SPTS Single Program Transport Stream
How does DTCP work?
A device enabled with DTCP determines whether it is connected to other devices that implement the DTCP protection technology. Content encoded for DTCP protection is encrypted and securely transmitted only to recording and display devices that implement DTCP. The content carries information indicating whether and to what extent the content may be copied.
DTCP overview & FAQ
See also
http://www.dtcp.com/documents/dtcp/dtcp-overview.pdf
http://www.dtcp.com/faq.aspx
Filter elements for content encryption and decryption
There are two gstreamer filter elements are used for content encryption/decryption.
  • DTCP Encrypt: The "dtcpencrypt" is a gstreamer filter element which encrypts incomming MPEG2 SPTS stream and pushes encrypted data to the source pad. DTCP encrypt requires initialization of DTCP libs done in RMF applicaiton (e.g Media Streamer) which includes creating socket and listening for AKE request, authenticate and send exchange key to Sink device upon DTCP request from sink EMO
    It support Authentication and Key Exchange (AKE) from DTCP client. It encrypts the video stream using DTCP Encryption Mode Indicator (EMI).
  • DTCP Decrypt: The "dtcpdecrypt" is a gstreamer filter element is used to decrypt the MPEG2 SPTS video streams. It performs Authentication and Key Exchange (AKE) to DTCP server.
DTCP Protection
All DTCP encryption and dcryption uses common set of provided gstreamer elements, The gstreamer elements uses DTCP manager API. Each SoC provides binary DTCP encryption/decryption library to support the DTCP Manager API.
DTCP Use Case: Live Playback using QAM Source
  • The left side of the figure is considered for gateway device.
  • The right side of the figure is considered for client device.
  • In case of live stream the HTTPReqHandler will receive a request from client box and the MediaStreamer.
  • will sets an pipeline between QAM Source and HN Sink.
  • QAM Src element receives the data from the tuner and sends to the HN Sink.
  • In the client side another pipeline has created between HNSrc and MediaPlayerSink.
  • HNSrc receive the incoming data from HNSink and feeds to the MediaPlayerSink for live playback.
  • DTCP encryption and decryption are used for protecting contents over network.
How to enable/disable DTCP

At first, user need to verify that the current build of the box supports to enable/disable DTCP.
If it's yes, following the next steps
  • Copy rmfconfig.ini under /etc to /opt
    cp /etc/rmfconfig.ini /opt

  • Change the configuration parameter "FEATURE.DTCP.SUPPORT" value to TRUE or FALSE in file /opt/rmfconfig.ini
    vi /opt/rmfconfig.ini

    Save the configuration file and reboot the box
    $ sync
    $ reboot

    Check AV for the box once it's up.

Modules

 DTCP Manager API
 DTCP manager manages source/sink DTCP-IP sessions and performs encryption/decryption.
 
 DTCP Manager Data Structure