Wie wir wissen, werden bei SkyDE Aktivierungen und Verlängerungen über den verschlüsselten Inhalt der unique EMMs gesteuert. Das sind die sogenannten 90er Nanos.
In diesem Beispiel wurde die 90er Nano abgetrennt.
Die 1F ist die Gesamtlänge. Die 90 steht als Marker (Nano) für die Art des Inhaltes. Die 1D ist die Länge des Inhaltes. An "Länge + 90 + Länge-2" erkennt man sie hervorragend. Dummerweise kann man da nicht rein schauen.
Vielleicht entwickeln wir zusammen eine Idee, wie man das ändern kann. Die Chancen sind gering. Wer aber nichts probiert wird auch nichts erfahren.
Besonders gut zur Untersuchung eignen sich Verlängerer. In die kann man indirekt rein schauen. Man schreibt sie auf die Karte und bewundert anschließend den zurückgegebenen Code (9081 bei Änderung übernommen oder 9080 für keine Änderung) und natürlich die Entitlements.
Da immer der zuletzt geschriebene Verlängerer wirkt, kann man mit ihnen Ping Pong spielen. Man kann sie also abwechselnd im Kreis auf die Karte schreiben. Damit sind sie ideal zum Spielen.
0. Richtige Verschlüsselung
Für alle die da nicht so drin stecken:
1. Nonce - Gegen Rückschlüsse auf den Klartext
Es gilt als Todsünde, mit dem selben Key verschiedene Klartexte zu verschlüsseln. Durch lustige XOR-Operationen bekommt man sonst einen guten Ansatz zur Erforschung des Inhaltes.
Aus diesem Grund wird ein Nonce (number used only once) verwendet. Das ist eine (Pseudo-)Zufallszahl. Die wird i. d. R. vor den Klartext gestellt. Danach wird erst verschlüsselt.
Macht NDS das? Es sieht danach aus.
Bei Kartenaktivierungen und sonstiger Randale mit Hilfe der Hotline bekommt man den gleichen Verlängerer unterschiedlich codiert.
Das sieht z. B. so aus:
Bis zum 4402 sind sie identisch. Danach bleibt kein Bit mehr auf dem anderen. Dass diese Verlängerer intern identisch sind, beweist das abwechselnde Schreiben im Kreis mit einem dritten Abweichenden. Bei Aktivierungen bekommt man z. B. ganz zum Anfang einen "Entilöscher". Das ist ein sehr kurzer Verlängerer mit nur zwei (für uns nutzlosen) Entitlements. Dieser "Entilöscher" ist als Dritter gut geeignet.
Mit dessen Hilfe belegt man, dass beide (hier) 34er ein Verlängerer sind. Sie tragen nach dem "Entilöscher" die Entitlements wieder ein. Wenn man die (hier) 34er nacheinander schreibt, bekommt man die Antwort 9080 aka keine Änderung. Sie tragen also einen identischen Inhalt.
Es muss also ein Nonce drin stecken.
2. Komprimierung
Zu guten alten Zeiten gab es beim Kartenstart die schönen Verlängerertreppen. Das waren Gruppen von Verlängerern, bei denen der Folgende immer exakt ein Entitlement mehr beinhaltete als dessen Vorgänger.
Beispiel (Auszug):
Wie man sieht, werden die Verlängerer systematisch länger. Das passiert aber nicht immer, obwohl nachgewiesen werden konnte, dass die Entitlements mit jedem Schritt zunahmen. Dafür kann nur eine Komprimierung (wie in ZIP-Dateien) verantwortlich sein. Im DVB setzt man üblicherweise auf die ZLIB. Vermutlich ist das auch hier der Fall.
Man darf sich nach dem Decodieren also nicht vom augenscheinlichem Bitmüll abschrecken lassen. Zuerst steht ein Test auf eine ZLIB-Komprimierung an.
3. Replay
Man nimmt eine alte Nachricht und sendet die einfach auf doof nochmal. Man darf sich die Augen reiben, wie oft das funktioniert.
Gegen die "Replay Attack" hilft ein Zähler. Man merkt sich den letzten Stand und akzeptiert nur neuere Nachrichten.
Macht NDS etwas gegen Replay? Nö! Sie verlassen sich scheinbar nur auf die ohnehin vorhandenen Zeitstempel.
4. MAC
Da die MAC bei korrekter Anwendung bereits vor der Verschlüsselung an die Nachricht gehängt wird, wird man dazu erst ganz zum Schluss dazu eine Aussage bekommen können.
Der Einsatz von MACs ist aber seit eh und je üblich. Wer die im PayTV weg lässt, muss nochmal zur Schule gehen und darf solange nicht mehr ohne Aufsicht eines Erwachsenen programmieren. Wir legen fest, dass die selbstverständlich vorhanden ist.
5. Schlüssel
Es wird das Gerücht kolportiert, dass jede Karte für 4401, 4402 bzw. 4403 in der 90er Nano einen eigenen Schlüssel verwendet. Glauben wir das einfach mal.
Außer 4401, 4402 bzw. 4403 gibt es noch 4001, 4002 bzw. 4003 und 6001, 6002 bzw. 6003. Die findet man vorrangig in globalen EMMs. Hier handelt es sich ganz offensichtlich um den gleichen Schlüssel für mehrere bzw. alle Karten.
Die berühmte globale A0 EMM ist so ein Vertreter. Sie kommt mit 600x.
Die Länge des Schlüssels dürfte 128 Bit betragen. Das gilt zzt. als ausreichend. Weniger wäre unverantwortlich oder gar nicht einsetzbar (z. B. bei AES). Mehr ist zzt. nicht nötig. Mehr zieht einen erhöhten Rechenaufwand beim Verschlüsseln/Entschlüsseln nach sich. Ohne Nutzen lässt man das.
Wer eine Idee zur Unterstützung bzw. Widerlegung dieser These hat, immer her damit!
6. Art der Verschlüsselung
Man liest überall, dass die 90er Nano eine AES-Chiffre sei. Wer hat sich das nur ausgedacht? Warum schreibt das jeder ab?
Eine Block-Chiffre arbeitet, wie es der Name bereits sagt, blockweise. Die Blocklänge beträgt für AES mit 128 Bit Schlüssel ebenfalls 128 Bit aka 16 Byte. Weniger gibt es bei AES gar nicht.
Die 90er Nanos gibt es hingegen in allen möglichen Längen. Bei "Verlängerertreppen" wachsen sie in einer Schritten. Also nix AES! Da kann nur eine Stream-Chiffre drin stecken.
Noch was:
Das hier ist alles nur zu Forschungszwecken. Alle hier gezeigten EMMs wurden wahllos vom Transponder gelesen. Die Besitzer der Karten haben hiermit nichts zu tun.
In diesem Beispiel wurde die 90er Nano abgetrennt.
Code:
82702741008CDE810200 1F901D44026FE4C88D1E1B0407D66DBB7CE6A6732063BD60D44FC0EBB76434F4
Die 1F ist die Gesamtlänge. Die 90 steht als Marker (Nano) für die Art des Inhaltes. Die 1D ist die Länge des Inhaltes. An "Länge + 90 + Länge-2" erkennt man sie hervorragend. Dummerweise kann man da nicht rein schauen.
Vielleicht entwickeln wir zusammen eine Idee, wie man das ändern kann. Die Chancen sind gering. Wer aber nichts probiert wird auch nichts erfahren.
Besonders gut zur Untersuchung eignen sich Verlängerer. In die kann man indirekt rein schauen. Man schreibt sie auf die Karte und bewundert anschließend den zurückgegebenen Code (9081 bei Änderung übernommen oder 9080 für keine Änderung) und natürlich die Entitlements.
Da immer der zuletzt geschriebene Verlängerer wirkt, kann man mit ihnen Ping Pong spielen. Man kann sie also abwechselnd im Kreis auf die Karte schreiben. Damit sind sie ideal zum Spielen.
0. Richtige Verschlüsselung
Für alle die da nicht so drin stecken:
- Bei einer Verschlüsselung darf vereinfacht gesagt keine wesentliche Information nach außen dringen. Dazu gehören sämtliche Informationen zum Klartext und zum eingesetzten Schlüssel (Key).
- Sie muss gegen Wiederholung gesichert werden (Replay Attack).
- Sie muss unautorisierte Veränderungen von außen bemerken (MAC bzw. HMAC).
1. Nonce - Gegen Rückschlüsse auf den Klartext
Es gilt als Todsünde, mit dem selben Key verschiedene Klartexte zu verschlüsseln. Durch lustige XOR-Operationen bekommt man sonst einen guten Ansatz zur Erforschung des Inhaltes.
Aus diesem Grund wird ein Nonce (number used only once) verwendet. Das ist eine (Pseudo-)Zufallszahl. Die wird i. d. R. vor den Klartext gestellt. Danach wird erst verschlüsselt.
Macht NDS das? Es sieht danach aus.
Bei Kartenaktivierungen und sonstiger Randale mit Hilfe der Hotline bekommt man den gleichen Verlängerer unterschiedlich codiert.
Das sieht z. B. so aus:
Code:
82703441009046E402002C902A4402A598C36F8407FDAC8FF5A3F44F196827313DD638D01967D8DD19AE3BA45CCF3C32B85E2E3204FC55
82703441009046E402002C902A4402453B39731008AFC06D211D0C16BDBB8D0FE83BC818B819B11F80FDCD1716F3995D9FC4914E47543E
Bis zum 4402 sind sie identisch. Danach bleibt kein Bit mehr auf dem anderen. Dass diese Verlängerer intern identisch sind, beweist das abwechselnde Schreiben im Kreis mit einem dritten Abweichenden. Bei Aktivierungen bekommt man z. B. ganz zum Anfang einen "Entilöscher". Das ist ein sehr kurzer Verlängerer mit nur zwei (für uns nutzlosen) Entitlements. Dieser "Entilöscher" ist als Dritter gut geeignet.
Mit dessen Hilfe belegt man, dass beide (hier) 34er ein Verlängerer sind. Sie tragen nach dem "Entilöscher" die Entitlements wieder ein. Wenn man die (hier) 34er nacheinander schreibt, bekommt man die Antwort 9080 aka keine Änderung. Sie tragen also einen identischen Inhalt.
Es muss also ein Nonce drin stecken.
2. Komprimierung
Zu guten alten Zeiten gab es beim Kartenstart die schönen Verlängerertreppen. Das waren Gruppen von Verlängerern, bei denen der Folgende immer exakt ein Entitlement mehr beinhaltete als dessen Vorgänger.
Beispiel (Auszug):
Code:
82703041009EF2A7020028902644021D6B796B31A9ED3484860682F435A036D09C96656BEA9E67EFFC04BFFEC61577CDE50F71
82703141009EF2A70200299027440260CE2E99BD441D66E326E7F2AB9FDFE856A7AC328D7C2EA6ED582670E3425A4AF8583C494F
82703241009EF2A702002A9028440221D2CF3D1C92C96DA5ADEF0483D4B5BFBAC30420397084C31658E15C889ED6F9537F12928005
82703341009EF2A702002B9029440269BD232BE0FBFE77ED76C59E1ED93DF1F9C0FE607303AD7DDA5D0A4305AE25271FF74CF8195FE9
82703341009EF2A702002B90294402BB753E75F41079409FD4AA2C4A70334784E5A1B91237FCE207782BA81AD23002334FA5A21DE905
82703341009EF2A702002B90294402773633DC9C433C56BE93C05B827761DF7648C7AD5060C9FB4B2FD3537FCE7BDB103CE69536D71A
82703441009EF2A702002C902A440254FE5C90FBEB06A694162BB67542C36BCF8AD683C293F63B61B9143077C5617A8BD3E04CF803B76D
82703441009EF2A702002C902A4402B5E56BF69A5812589A2EB98B053A2DB7DC7E63D6D1722DEA18949CDF256BCD639A97C3160A402850
82703441009EF2A702002C902A4402C69D16F1BD59BD8EB914B4DABA8417416446C53C1FFF2EBC74490CA7174CACBBABF9B42D2E039B16
82703541009EF2A702002D902B4402C728B6C4A8829104F5FDB128B1CD0170B5E97177AF58A1028B116FDC8B05EB7411CC18D7431C88A2BD
Wie man sieht, werden die Verlängerer systematisch länger. Das passiert aber nicht immer, obwohl nachgewiesen werden konnte, dass die Entitlements mit jedem Schritt zunahmen. Dafür kann nur eine Komprimierung (wie in ZIP-Dateien) verantwortlich sein. Im DVB setzt man üblicherweise auf die ZLIB. Vermutlich ist das auch hier der Fall.
Man darf sich nach dem Decodieren also nicht vom augenscheinlichem Bitmüll abschrecken lassen. Zuerst steht ein Test auf eine ZLIB-Komprimierung an.
3. Replay
Man nimmt eine alte Nachricht und sendet die einfach auf doof nochmal. Man darf sich die Augen reiben, wie oft das funktioniert.
Gegen die "Replay Attack" hilft ein Zähler. Man merkt sich den letzten Stand und akzeptiert nur neuere Nachrichten.
Macht NDS etwas gegen Replay? Nö! Sie verlassen sich scheinbar nur auf die ohnehin vorhandenen Zeitstempel.
4. MAC
Da die MAC bei korrekter Anwendung bereits vor der Verschlüsselung an die Nachricht gehängt wird, wird man dazu erst ganz zum Schluss dazu eine Aussage bekommen können.
Der Einsatz von MACs ist aber seit eh und je üblich. Wer die im PayTV weg lässt, muss nochmal zur Schule gehen und darf solange nicht mehr ohne Aufsicht eines Erwachsenen programmieren. Wir legen fest, dass die selbstverständlich vorhanden ist.
5. Schlüssel
Es wird das Gerücht kolportiert, dass jede Karte für 4401, 4402 bzw. 4403 in der 90er Nano einen eigenen Schlüssel verwendet. Glauben wir das einfach mal.
Außer 4401, 4402 bzw. 4403 gibt es noch 4001, 4002 bzw. 4003 und 6001, 6002 bzw. 6003. Die findet man vorrangig in globalen EMMs. Hier handelt es sich ganz offensichtlich um den gleichen Schlüssel für mehrere bzw. alle Karten.
Die berühmte globale A0 EMM ist so ein Vertreter. Sie kommt mit 600x.
Die Länge des Schlüssels dürfte 128 Bit betragen. Das gilt zzt. als ausreichend. Weniger wäre unverantwortlich oder gar nicht einsetzbar (z. B. bei AES). Mehr ist zzt. nicht nötig. Mehr zieht einen erhöhten Rechenaufwand beim Verschlüsseln/Entschlüsseln nach sich. Ohne Nutzen lässt man das.
Wer eine Idee zur Unterstützung bzw. Widerlegung dieser These hat, immer her damit!
6. Art der Verschlüsselung
Man liest überall, dass die 90er Nano eine AES-Chiffre sei. Wer hat sich das nur ausgedacht? Warum schreibt das jeder ab?
Eine Block-Chiffre arbeitet, wie es der Name bereits sagt, blockweise. Die Blocklänge beträgt für AES mit 128 Bit Schlüssel ebenfalls 128 Bit aka 16 Byte. Weniger gibt es bei AES gar nicht.
Die 90er Nanos gibt es hingegen in allen möglichen Längen. Bei "Verlängerertreppen" wachsen sie in einer Schritten. Also nix AES! Da kann nur eine Stream-Chiffre drin stecken.
Noch was:
Das hier ist alles nur zu Forschungszwecken. Alle hier gezeigten EMMs wurden wahllos vom Transponder gelesen. Die Besitzer der Karten haben hiermit nichts zu tun.