Mit der Unterstützung aktueller Grafikchips rücken die benötigten Zeiten um das Control Word für ein CSA scrambled MPEG TS Paket zufinden weiter in “Echtzeit”-Nähe.
Dieses Szenario ist auch bekannt als Streamhack.
Hintergrund ist das bei allen im DVB-Norm sendenden PayTV Providern genutzte Common Scrambling Algorithm Verfahren mit dem die Audio- und Videodaten verschlüsselt werden.
Der zur Entschlüsselung notwendige Schlüssel, auch Control Word (CW) genannt, besteht aus 8 Byte, von denen 2 Byte eine Art Prüfsumme darstellen. Diese 2 Byte können also aus den übrigen 6 Byte errechnet werden. Daher ergeben sich 2 hoch 48 mögliche CWs (6 Byte = 48 Bit).
Diese CWs werden bei den meisten PayTV Providern in Zyklen von unter 10 Sekunden erneuert, und verschlüsselt über einen vom Audio- und Videostrom unabhängigen Datenstrom an die Endgeräte gesendet.
Ein sich im Endgerät (Receiver) befindliches Entschlüsselungsmodul (häufig in Form einer Smartcard) entschlüsselt dieses verschlüsselte CW und gibt es zurück an die CSA Descrambler Einheit, die dann den Audio- bzw. Videostrom entschlüsseln kann.
Diese Verfahren werden als Conditional Access Systems (CAS) bezeichnet und sind unter Namen wie Nagravision, Videoguard, Viaccess etc. bekannt.
Bisherige Hacks setzten immer bei diesen CA-Systemen an, und basierten auf Schwachstellen in der verwendeten Hard- oder Software, durch die man die verschlüsselten Datenströme die die CWs übertragen, auch ohne gültige Smartcard entschlüsseln konnte.
Die Idee des Streamhacks setzt eine Stufe tiefer an, und somit alle CA-Systeme außer Kraft.
Die Sicherheit der CSA/CAS Kombination besteht darin, einen Schlüssel aus einem relativ großen Raum von möglichen Schlüsseln für nur eine sehr kurze Zeit zu nutzen (1:281474976710656). Es ist also nahezu unmöglich den Schlüssel (CW) in Echtzeit zu finden.
Selbst wenn man nur eine Sekunde benötigen würde, würde das Video bei jedem CW-Wechsel für eben diese Sekunde stehen bleiben, bis das aktuelle CW ermittelt wurde. Um einen flüssigen Ablauf zu garantieren müsste man den Videostream einige Zeit puffern (ähnlich Timeshift).
Berechnet man diese CWs im Vorraus, und speichert sie für eine schnelle Suche optimiert in einer Tabelle (sogenannte Rainbow-Table) ist es mit CUDA Unterstützung möglich in weniger als drei Minuten durch probieren (Bruteforce) das passende CW zu finden.
Da in den verschlüsselten TS Paketen immer wieder identische Bytevektoren auftreten (sogenannter Known-Plaintext, z.B. im Header der verschlüsselten Nutzlast), kann man daran einen “CW-Match” identifizieren, und das gefundene CW zum Entschlüsseln für die komplette Zyklusdauer verwenden.
Da das CSA Verfahren in den 90er Jahren entwickelt wurde, könnte durch immer günstigere und schnellere Speicher sowie immer leistungsstärkere Grafikchips langsam die Zeit des CSA ablaufen.
Noch ist die CUDA-Rainbowtable Methode nicht massentauglich, da hierfür sehr teure Hardware (Grafikkarte, Plattenspeicher zum Speichern der mehrere TB großen Rainbowtables) notwendig ist.
Auch besitzt der CSA bisher keine bekannten mathematischen Sicherheitslücken, durch die es große Abkürzungen beim Durchprobieren sämtlicher CWs geben könnte.
Aber durch steigende Rechenleistung und höhere Speicherdichten könnte es in ferner Zukunft für die PayTV Provider zu Probleme kommen.
Da der CSA Descrambler in vielen Receivern als Hardware-Element verbaut ist, ist ein einfacher Umstieg auf CSA-2 (bereits entwickelt) nicht möglich. Sämtliche Receiver und CA-Module müssten beim Kuden ausgetauscht werden.