[go: up one dir, main page]

Jump to content

Protected Streaming: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m Fixing dead link
 
(33 intermediate revisions by 30 users not shown)
Line 1: Line 1:
'''Protected Streaming'''<ref>[https://helpx.adobe.com/primetime/aaxs/protected_streaming/index.html#AAXS_XGEP-concept-Using_the_Adobe_Access_Server_for_Protected_Streaming "Using the Adobe Access Server for Protected Streaming"]</ref> is a [[digital rights management|DRM]] technology by [[Adobe Systems|Adobe]]. The aim of the technology is to protect digital content (video or audio) from unauthorized use.
{{POV|date=January 2010}}


Protected Streaming consists of many different techniques; basically there are two main components: [[encryption]] and [[SWF]] verification.
{{Mergeto|Real Time Messaging Protocol|date=May 2009}}
{{Cleanup|date=January 2010}}


This technique is used by the [[Hulu]] desktop player and the [[RTÉ Player]]. Fifa.com also uses this technique to serve the videos on the official site. Some videos on YouTube also use RTMPE, including those uploaded there by BBC Worldwide.
'''Protected Streaming'''{{Dubious|The name "Protected Streaming"|date=May 2009}} is a [[digital rights management|DRM]] technology by [[Adobe Systems|Adobe]]. It is used to give the impression that digital content (video or audio) is being protected from unauthorized use. No matter how week is the protection used by adobe, almost any video can be recorded from screen using [[Screen Recorder|screen video capture software]].

Protected Streaming consists of many different techniques; basically there are two main components: encryption and SWF verification.

This technique is used by the [[RTE Player]].


== Encryption ==
== Encryption ==
When selected at the server level, all content is encrypted by the Flash Media Server "on the fly". This means there is no [[encryption]] of the source file needed (which is different from [[Microsoft]] DRM, for instance). For data transmission, a special protocol is used: [[RTMPE]] or [[RTMPS]].
Streamed content is encrypted by the [[Flash Media Server]] "on the fly", so that the source file itself does not need to be encrypted (a significant difference from [[Microsoft]]'s DRM). For transmission ("streaming"), a special protocol is required, either [[RTMPE]] or [[RTMPS]].{{citation needed|date=March 2014}}


RTMPS uses [[Transport Layer Security|SSL]]-encryption, RTMPE was designed to be simpler than RTMPS, by removing the need to acquire an SSL Certificate. RTMPE makes use of well-known industry standard cryptographic primitives consisting of [[Diffie-Hellman key exchange]] and HMACSHA256, generating a pair of [[RC4]] keys, one of which is then used to encrypt the data sent by the server (such as the audio or video stream), whilst the other key is used to encrypt any data sent to the server. RTMPE causes less [[CPU]]-load than RTMPS on the [[Adobe Flash Media Server|Flash Media Server]], but with the down-side that there isn't actually any security.
RTMPS uses [[Transport Layer Security|SSL]]-encryption. In contrast, RTMPE is designed to be simpler than RTMPS, by removing the need to acquire a SSL Certificate. RTMPE makes use of well-known industry standard cryptographic primitives, consisting of [[Diffie–Hellman key exchange]] and HMACSHA256, generating a pair of [[RC4]] keys, one of which is then used to encrypt the media data sent by the server (the audio or video stream), while the other key is used to encrypt any data sent to the server. RTMPE caused less [[CPU]]-load than RTMPS on the Flash Media Server.{{citation needed|date=March 2014}}


Adobe fixed the security issue in January 2009, but did not fix the security holes in the design of the RTMPE algorithm itself.<ref>{{cite web|url=http://lkcl.net/rtmp/RTMPE.txt|title=RTMPE Specification and Analysis|date=2009-05-25}}</ref> Analysis of the algorithm shows that it relies on [[security through obscurity]]. For example, this renders RTMPE vulnerable to [[Man-in-the-middle attack|Man in the Middle attacks]].{{citation needed|date=March 2014}}
In the past, some tools were able to capture RTMPE streams by taking advantage of a security hole within the Flash player object. [[Replay Media Catcher]] was the first software capable of downloading RTMPE streams, this feature was introduced by [[Applian Technologies]] in 2008. As of January 28, 2009, any newly installed copy of Replay Media Catcher does not support Adobe Secure [[RTMP]] Measures. Applian Technologies have resolved a dispute with [[Adobe Systems Incorporated|Adobe Systems]], without admitting any wrongdoing or liability, by agreeing not to circumvent any Secure RTMP Measures developed by Adobe.


Tools which have a copy of the well-known constants extracted from the [[Adobe Flash Player]] are able to capture RTMPE streams, a form of the [[trusted client]] problem. Adobe issued [[DMCA takedown]]s on RTMPE recording tools, including [[rtmpdump]], to try to limit their distribution. In the case of [[rtmpdump]], however, this led to a [[Streisand effect]].<ref>{{cite web|url=http://linuxcentre.net/adobe-has-issued-a-dmca-removal-request-for-rtmpdump/|title=Adobe has issued a DMCA removal request for rtmpdump|date=2009-05-21}}</ref>
Adobe fixed the security issue, in January 2009, but has not fixed the security holes in the design of the RTMPE algorithm itself<ref>{{cite web|url=http://lkcl.net/rtmp/RTMPE.txt|title=RTMPE Specification and Analysis|date=2009-05-25}}</ref>. Analysis of the RTMPE algorithm shows that the algorithm relies on [[security through obscurity]]. Amongst other things, this renders RTMPE vulnerable to [[Man-in-the-middle attack|Man in the Middle attacks]].

Tools which have a copy of the well-known constants extracted from the [[Adobe Flash]] player are able to capture RTMPE streams, a form of the [[trusted client]] problem. Adobe issued [[DMCA takedown]]s on RTMPE recording tools including [[rtmpdump]] to try to limit their distribution. However in case of [[rtmpdump]], this lead to a [[Streisand effect]]<ref>{{cite web|url=http://linuxcentre.net/adobe-has-issued-a-dmca-removal-request-for-rtmpdump/|title=Adobe has issued a DMCA removal request for rtmpdump|date=2009-05-21}}</ref>.


==SWF verification==
==SWF verification==
The [[Adobe Flash]] player uses a well-known constant, appended to information derived from the SWF file (a hash of the file and its size), as input to HMACSHA256. The HMACSHA256 key is the last 32 bytes of the server's first handshake packet. Flash Media Server uses this to limit access to those clients which have either had access to the SWF file (or have been given a copy of the hash and the size of the SWF file).
The Adobe Flash Player uses a well-known constant, appended to information derived from the SWF file (a hash of the file and its size), as input to HMACSHA256. The HMACSHA256 key is the last 32 bytes of the server's first handshake packet. The Flash Media Server uses this to limit access to those clients which have access to the SWF file (or have been given a copy of the hash and the size of the SWF file).


All officially allowed clients (which are in fact *.swf Files) need to be placed on the Flash Media Server. Any unknown client requesting a connection will receive a "connection reject".
All officially allowed clients (which are in fact *.swf files) need to be placed on the Flash Media Server streaming the file. Any other client requesting a connection will receive a "connection reject".


The combination of both techniques ensures that streams cannot be sniffed and stored into a local file. SWF verification is intended to prevent manipulated clients from accessing the content, but does not achieve this goal. Third party clients are free to write the unencrypted content to a file simply by knowing the hash of the SWF file and its size. Adobe's own implementation of Flash Player is one client which does not allow saving into local files.
The combination of both techniques is intended to ensure streams cannot be sniffed and stored into a local file, as SWF verification is intended to prevent third party clients from accessing the content. However, it does not achieve this goal. Third party clients are free to write the decrypted content to a local file simply by knowing the hash of the SWF file and its size. In practice, therefore, Adobe's own implementation of the Macromedia Flash Player is the only client which does not allow saving to a local file.


Thus, the only possible way left to restrict connections to the Flash Media Server is to use a list of known hosts, to avoid that the whole player (the Flash client) is placed on a foreign site. Even this has no real benefit for mass-distributed files, as any one of the known hosts could take a copy of the data and re-distribute it at will. Thus, the "known host" security is only useful when the known hosts can in fact be trusted not to re-distribute the data.
The only possible way to restrict connections to a Flash Media Server is to use a list of known hosts, to avoid the whole player (the Flash client) being placed on an unauthorised website. Even this has no real benefit for mass-distributed files, as any one of the known hosts could take a copy of the data and re-distribute it at will. Thus "known host" security is only useful when the known hosts can be trusted not to re-distribute the data.


== Notes ==
== Notes ==
Line 34: Line 27:


== References ==
== References ==
* [http://www.adobe.com/devnet/flashmediaserver/articles/protecting_video_fms.pdf Whitepaper by Adobe]
* [https://web.archive.org/web/20120526183937/http://wwwimages.adobe.com/www.adobe.com/content/dam/Adobe/en/devnet/flashmediaserver/pdfs/protecting_video_fms.pdf Whitepaper by Adobe]
* [http://livedocs.adobe.com/flashmediaserver/3.0/docs/help.html?content=08_xmlref_281.html RTMPE (Adobe LiveDocs)]
* [https://web.archive.org/web/20090611014713/http://livedocs.adobe.com/flashmediaserver/3.0/docs/help.html?content=08_xmlref_281.html RTMPE (Adobe LiveDocs)]
* [http://livedocs.adobe.com/flashmediaserver/3.0/docs/help.html?content=03_configtasks_25.html RTMPS (Adobe LiveDocs)]
* [https://web.archive.org/web/20090611014703/http://livedocs.adobe.com/flashmediaserver/3.0/docs/help.html?content=03_configtasks_25.html RTMPS (Adobe LiveDocs)]
* [http://rtmpdump.mplayerhq.hu/ rtmpdump 2.1+ (Source code and binaries)]
* [http://rtmpdump.mplayerhq.hu/ rtmpdump 2.1+ (Source code and binaries)]
* [http://lkcl.net/rtmp/rtmpdump-v1.6.tar.gz Source code of rtmpdump v1.6 by Andrej Stepanchuk]
* [http://lkcl.net/rtmp/rtmpdump-v1.6.tar.gz Source code of rtmpdump v1.6 by Andrej Stepanchuk]
* [http://lkcl.net/rtmp/RTMPE.txt RTMPE specification], generated from the rtmpdump source code
* [http://lkcl.net/rtmp/RTMPE.txt RTMPE specification], generated from the rtmpdump source code
* [https://web.archive.org/web/20091226042208/http://www.rtmpd.com/wiki/rtmfp RTMFP encryption mechanism (DRAFT)], reverse engineered from scratch
* [http://maison.emdx.org/RTMPE/ RTMPE specification], mirror of the above
* [http://rtmpd.com/wiki/rtmfp/ RTMFP encryption mechanism (DRAFT)], reverse engineered from scratch
{{Adobe Flash}}
{{Adobe Flash}}

[[Category:Multimedia]]
[[Category:Multimedia]]
[[Category:Network protocols]]
[[Category:Network protocols]]

[[de:Protected Streaming]]

Latest revision as of 13:12, 3 July 2023

Protected Streaming[1] is a DRM technology by Adobe. The aim of the technology is to protect digital content (video or audio) from unauthorized use.

Protected Streaming consists of many different techniques; basically there are two main components: encryption and SWF verification.

This technique is used by the Hulu desktop player and the RTÉ Player. Fifa.com also uses this technique to serve the videos on the official site. Some videos on YouTube also use RTMPE, including those uploaded there by BBC Worldwide.

Encryption

[edit]

Streamed content is encrypted by the Flash Media Server "on the fly", so that the source file itself does not need to be encrypted (a significant difference from Microsoft's DRM). For transmission ("streaming"), a special protocol is required, either RTMPE or RTMPS.[citation needed]

RTMPS uses SSL-encryption. In contrast, RTMPE is designed to be simpler than RTMPS, by removing the need to acquire a SSL Certificate. RTMPE makes use of well-known industry standard cryptographic primitives, consisting of Diffie–Hellman key exchange and HMACSHA256, generating a pair of RC4 keys, one of which is then used to encrypt the media data sent by the server (the audio or video stream), while the other key is used to encrypt any data sent to the server. RTMPE caused less CPU-load than RTMPS on the Flash Media Server.[citation needed]

Adobe fixed the security issue in January 2009, but did not fix the security holes in the design of the RTMPE algorithm itself.[2] Analysis of the algorithm shows that it relies on security through obscurity. For example, this renders RTMPE vulnerable to Man in the Middle attacks.[citation needed]

Tools which have a copy of the well-known constants extracted from the Adobe Flash Player are able to capture RTMPE streams, a form of the trusted client problem. Adobe issued DMCA takedowns on RTMPE recording tools, including rtmpdump, to try to limit their distribution. In the case of rtmpdump, however, this led to a Streisand effect.[3]

SWF verification

[edit]

The Adobe Flash Player uses a well-known constant, appended to information derived from the SWF file (a hash of the file and its size), as input to HMACSHA256. The HMACSHA256 key is the last 32 bytes of the server's first handshake packet. The Flash Media Server uses this to limit access to those clients which have access to the SWF file (or have been given a copy of the hash and the size of the SWF file).

All officially allowed clients (which are in fact *.swf files) need to be placed on the Flash Media Server streaming the file. Any other client requesting a connection will receive a "connection reject".

The combination of both techniques is intended to ensure streams cannot be sniffed and stored into a local file, as SWF verification is intended to prevent third party clients from accessing the content. However, it does not achieve this goal. Third party clients are free to write the decrypted content to a local file simply by knowing the hash of the SWF file and its size. In practice, therefore, Adobe's own implementation of the Macromedia Flash Player is the only client which does not allow saving to a local file.

The only possible way to restrict connections to a Flash Media Server is to use a list of known hosts, to avoid the whole player (the Flash client) being placed on an unauthorised website. Even this has no real benefit for mass-distributed files, as any one of the known hosts could take a copy of the data and re-distribute it at will. Thus "known host" security is only useful when the known hosts can be trusted not to re-distribute the data.

Notes

[edit]
  1. ^ "Using the Adobe Access Server for Protected Streaming"
  2. ^ "RTMPE Specification and Analysis". 2009-05-25.
  3. ^ "Adobe has issued a DMCA removal request for rtmpdump". 2009-05-21.

References

[edit]