Irdeto

Aus Zebradem WIKI
Zur Navigation springenZur Suche springen


Das Board mit Freiheiten

Irdeto logo-purple-300dpi.jpg


Irdeto / Betacrypt

(CA-ID 0x06nn) Irdeto war ein frühes digitales Codiersystem das seinen ersten Einsatz im niederländischen Pay-TV (MultiChoice NL) fand. Es wird nur noch von wenigen Anbietern verwendet, da die meisten auf Irdeto-2 wechselten oder zu Hybridlösungen wie zum Beispiel getunneltem Nagra (aktuelles sky Deutschland Verfahren Stand 2009) übergingen. Entgegen der weit verbreiteten Meinung wurde Irdeto nie geknackt: es waren immer nur die Karten die Schwächen aufzeigten und so das System immer wieder kompromittierbar machten.

Der Name Irdeto ist von der niederländischen Herstellerfirma Irdeto Access abgeleitet; er stellt eine Kontraktion von Ir. Den Toonder – nach dem Firmengründer Pieter den Toonder – dar, wobei Ir. die niederländische Abkürzung für einen Ingenieur mit Universitätsausbildung ist.

Beispiele der Angreifbarkeit der Karten waren unter Anderem:

  • Rückgabe korrekter Signaturen (zum "Unterschreiben" eines gültigen ECMs)
  • Timing der Signatur

Irdeto bzw. Betacrypt ist wohl für den deutschsprachigen Raum das interessanteste Verschlüsslungsverfahren, da dieses beim Programmanbieter Premiere verwendet wird. Wichtig für das Verständnis ist, dass die Firma Beta Digital, welche auch zur Kirch-Gruppe gehört, für die Übertragungstechnik und damit auch für die Verschlüsselung von Premiere verantwortlich ist. Daher kommt auch der Name Betacrypt.

Da sich Irdeto und Betacrypt kaum von einander unterscheiden, beschreibe ich in diesem Kapitel hauptsächlich Irdeto. Der einzige markante Unterschied zwischen den Systemen besteht im so genannten Ländercode, welcher ein Merkmal einer Irdeto-Smartcard ist. Bei Betacrypt ist dieser GER für Premiere bzw. TEL (Telekom) für Mediavision. Beta Digital hat das Codierungssystem also sozusagen von Irdeto lizenziert und es mit gewissen Änderungen übernommen. Eine Irdeto-Smartcard ist von außen nur durch den Schriftzug Irdeto und/oder der charakteristischen Seriennummer zu erkennen, welche meist seitlich auf der Karte aufgedruckt ist. Die Seriennummer ist auch in der Karte selbst abgespeichert. Nur ein Teil der Seriennummer, die so genannte Hex-Serial ist für den Dekodierprozess von Bedeutung. Die Hex-Serial ist 3 Bytes (=224 verschiedene Möglichkeiten) lang und genügt, um eine Karte eindeutig identifizieren zu können. Dies ist nötig, damit Karten vom Programmanbieter individuell angesprochen werden können. In allen Fernsehverschlüsselungsverfahren wird generell das Hexadezimalsystem verwendet. Im Innern der Karte unterscheidet man grundsätzlich zwei Einheiten: den Prozessor, der die Rechenoperationen durchführt und das EEPROM, das die Daten speichert. Der Prozessor hat zudem spezialisierte Krypto-Einheiten, welche RSA- und DES-Operationen sehr schnell durchführen können. Der zweite Wert, der neben der Seriennummer (inkl. Hex-Serial) schon bei der Produktion auf die Karte geschrieben wird, ist der Hex-Master-Key (kurz HMK). Man könnte ihn als Hauptschlüssel zur Karte bezeichnen. Es ist (ohne Hacker-Techniken) nicht möglich, ihn von der Karte auszulesen. Er ist 10 Bytes lang, was einen großen Schlüsselraum zur Folge hat. Man unterscheidet nun grundsätzlich zwei Arten von Verschlüsselungscodes: die einen Codes, welche vom Programmanbieter über den Satelliten gesendet werden, und jene, die schon auf der Karte gespeichert sind. Für die weitere Funktion der Karte sind nun erst einmal Codes vom Provider über den Satelliten nötig. Die Smartcard enthält bisher nur eine Seriennummer, in welcher auch die Hex-Serial abgelegt ist und einen HMK. Diese Werte genügen aber noch nicht, um ein Fernsehprogramm dekodieren zu können. Zuerst muss die Karte noch vom Programmanbieter aktiviert werden. Dies geschieht über andere Verschlüsselungscodes, die über den Satelliten geschickt werden. Wird die Karte nun in den Decoder gesteckt, so erhält man nach einer gewissen Zeit den für diese Karte gültigen Masterkey (kurz MK, 8 Bytes), welcher nötig ist, um die Karte zu aktivieren. Zur Adressierung der verschiedenen Karten wird dabei die Hex-Serial verwendet. Pro Hex-Serial wird also grundsätzlich ein MK übertragen. Der Masterkey wird anschließend auf der Karte mit der HMK verrechnet. Daraus ergibt sich der Plainmasterkey (kurz PMK, 8Bytes). Auch auf die Karte wandert dabei die so genannte Provider-ID (3 Bytes lang). Diese ermöglicht es dem Programmanbieter, für die nun folgenden Operationen die Karte gezielt anzusprechen. Die ersten zwei Bytes der Provider-ID werden auch Provider- Gruppe genannt.


Auswertung eines Irdeto EMM-Streams erzeugt von Master-LOG V3.83
====================================================================
Pay-TV Provider: Prem World Sat C-Cards
PID: 1000
---------------------------------------------------------------------------
Bereich: Master-Keys <12>
HEX-Sr PR Pro-ID MasterKey
Date
7EEBE8 10 21EBFE 00D723537F74FDCB1B 0772
7EEBEA 10 21EBFC 00CFDFA1245B69762E 0772
7EEBEC 10 21EBFA 001614DABC6DF5E81B 0772
7EEBF4 10 21EBF3 0029262F60166C3E1A 0772
7EEBF7 10 21EBF0 0047D328B7F1B8615E 0772
7EEBFB 10 21EBEC 001A3557B0ADF4C826 0772
7EEC06 10 21EBE1 00184749C2280AE56B 0772
7EEC08 10 21EBDF 00D259168D3171371D 0772
7EEC0B 10 21EBDC 005A57C214E822B697 0772
7EEC10 10 21EBD7 00C94824DB08863863 0772
7EEC11 10 21EBD6 0074AA10C82FDE9DC9 0772
7EEC12 10 21EBD5 0083B85CDA8B456702 0772

Abbildung : Beispiel: geloggte Master-Keys aus dem Satellitensignal bei der IRDETO Verschlüsselung11


Interessant ist hierbei, dass ein PMK nicht nur für eine Provider-ID sondern für eine ganze Provider-Gruppe gültig ist. Das entspricht immerhin 256 Karten (=1 Byte in Hex). Dieses ist eine der größten Schwächen des Irdeto-Systems. Da aber der Programmanbieter jede Karte einzeln ansprechen möchte, muss er auf das so genannte CB20-Nano zurückgreifen. Das CB20-Nano ist im Prinzip eine einfache binäre Maske, die die individuelle Adressierung ermöglicht. Dieses ändert jedoch nichts daran, dass ein PMK für die gesamte Provider-Gruppe gültig ist. Die einzelnen Signale an die Karte werden mit dem CB20-Nano bloß unterdrückt.

Es gibt noch diverse andere Nanos, die hauptsächlich für die Kartenverwaltung verantwortlich sind. Sie spielen jedoch eher eine nebensächliche Rolle für die Dekodierung. Nun sind auf der Karte also HMK, HS, PMK und Provider-ID gespeichert. Die zur konkreten Entschlüsselung des Fernsehprogramms benötigten Schlüssel befinden sich aber immer noch nicht auf der Karte. Dazu müssen erst noch (crypted) Keys vom Programmanbieter auf die Karte gelangen. Die Keys sind nur mit der Provider-Gruppe adressiert. Im Folgenden geloggten Datenstrom ist dies gut zu erkennen (2D58xx). Für xx lässt sich ein beliebiger Wert einsetzen. Wenn man den nun empfangenen Key und sein Empfangsdatum (Date) mit dem PMK verrechnet so erhält man einen Plainkey (PK, 8 Bytes + 1 Byte für Keynummer). Pro Provider (also pro PMK) hat es für 18 PKs Platz. Meist werden aber nur die geraden Keynummern verwendet. (In unserem Fall handelt es sich um Key Nr. 08) Die Plainkeys sind die eigentlichen Dechiffrierschlüssel der Fernsehprogramme. Im Prinzip reicht es für einen Hacker aus, gültige Plainkeys auf seine Karte zu schreiben, um das Programm zu dekodieren. Dem wird aber mit Keyupdates entgegengewirkt. Die Plainkeys verfallen nach einer vom Programmanbieter bestimmten Zeit. Auch im Datenstrom mitgeloggt wurde hier die zum Key passende Channel-ID (ChID, 2 Bytes). Die Channel-ID wird zwar nicht zur Decodierung benötigt, verwaltet aber die Berechtigungen der einzelnen Kanäle.

Auswertung eines Irdeto EMM-Streams erzeugt von Master-LOG V3.83
====================================================================
Pay-TV Provider: Prem World Sat C-Cards
PID: 1000
---------------------------------------------------------------------------
Bereich: Keys der eigenen CardGroup <1>
Pr CGroup Key
Date D-ID Type ChID
10 2D58xx 08=>083EDFF8CF9E7C52F1 0772 0771 1009 7D27
à Plainkey: B252018806244CFD (PMK:BEA7C566DC6C8AB2)

Jetzt sind alle Daten auf der Karte vorhanden, um das gewünschte Fernsehprogramm dekodieren zu können. 5.2.1 Nano Codes Nanos sind 2 Bytes lange Befehle die im EMM Datenstrom mit übertragen werden. Das 1. Byte steht für die Instruktion und das 2.Byte für die Länge des folgenden String. z.B.:

  • Datum
  • Neue ProviderID
  • Set Key (1. Byte ist die key-number, gefolgt von 8 Bytes des aktuellen key)
  • Set Multikey – 2 keys im selben Kommando



Irdeto-2

Irdeto-2 unterscheidet sich grundlegend von Irdeto-1. Werden bei Irdeto-1 lediglich die zur Berechnung der Controlwörter notwendigen Schlüssel verschlüsselt übertragen, erfolgt bei Irdeto-2 die gesamte Kommunikation vom Programmanbieter zur Smartcard verschlüsselt. Lediglich die Kopfdaten, die sogenannten Header, und die Prüfsumme am Ende eines jeden Datenblockes sind mit denen von Irdeto-1 weitestgehend identisch. Dadurch funktionieren Irdeto-2 Smartcards auch in alten einst für Irdeto-1 gebauten CA-Modulen. Die von einer Irdeto-2 Smartcard zurück gegebenen Controlwörter sind ebenfalls verschlüsselt. Diese Form der Verschlüsselung der Controlwörter ist identisch mit dem von Betacrypt-1 bekannten sogenannten CAM-Crypt.


Betacrypt