Вы находитесь на странице: 1из 16

Kryptoanalyse PowerVu TVVerschlsselung

Es wird gezeigt dass der Security-Chip Schwachstellen enthlt die das Ermitteln des Schlssels ermglichen
10.03.2010 (Version 1.0) aktuelle Version auf http://colibri.de.ms/ => o!erVu

"olibri #colibri$d%b&l'cos.com>

Kryptoanalyse PowerVu TV-Verschlsselung

()*+,-.V/01/("*)(.
/inleitun2 .................................................................................................................................................................2 o!erVu3.'stem 4rob5ersicht ................................................................................................................................3 6as bisher 2eschah .................................................................................................................................................7 8er /ntschl5sselun2sal2orithmus im 8etail .............................................................................................................9 .tream cipher .......................................................................................................................................................9 /": /ntschl5sselun2 ...........................................................................................................................................; <ommando 0 (4et =ase "6) ............................................................................................................................; <ommando 1 (4et .eeds) ................................................................................................................................> /:: /ntschl5sselun2 ..........................................................................................................................................? .ch!achstellen ........................................................................................................................................................@ -imin2 +ttack .......................................................................................................................................................@ <e' "han2e (nterruption +ttack .........................................................................................................................10 /mpfehlun2en ........................................................................................................................................................1;

<0A
/(),/(-C)4

-B+)+,A./ B6/0VC -V3V/0."*,D../,C)4

/ini2e -V und 0adio ro2ramme !erden mit dem <r'ptos'stem o!erVu %erschl5sselt 5ber .atellit aus2esendet. Dber *ot =ird 13.0E/ sendet beispiels!eise F+merican Gorces )et!orkH (+G)) 5ber GreIuenJ 10>>9 * K 110@; * und =undes!ehr -V (=6 -V) 5ber GreIuenJ 11097 *. +ber auch 5ber andere .atelliten (2?.2E/L 1;.0E/L 7.?E/L 0.?E6L 7.0E6L 19.0E6L 22.0E6L 2>.9E6L 30.0E6L 3>.9E6L 70.9E6L ...) !erden ro2ramme 5ber o!erVu %erschl5sselt ab2estrahlt. *ier !urde der o!erVu 0ecei%er 8@237 (bJ!. der inte2rierte .ecurit'3"hip) der Jum /ntschl5sseln der F+merican Gorces )et!orkH (+G)) ro2ramme %er!endet !erden kann auf .ch!achstellen untersucht. Bb bei den anderen ro%idern die auch o!erVu %er!enden der 2leiche .ecurit'3"hip (mit den 2leichen .ch!achstellen) Jum /insatJ kommt konnte ich nicht pr5fen. /s !urde heraus2efunden dass der .ecurit'3"hip 2leich mehrere .ch!achstellen enthMltL die kombiniert aus2enutJt das /rmitteln des /ntschl5sselun2sschl5ssels ermN2licht. 8ie .ch!achstellen !erden hier beschriebenL !ie der ermittelte .chl5ssel lautet aber nicht. (m Gol2enden !ird beschrieben !as bereits in der Ver2an2enheit 5ber das o!erVu .'stem heraus2efunden !urde. 8ann !ird 2eJei2t !ie der /ntschl5sselun2sal2orithmus funktioniert. +nschlieOend !ird auf die .ch!achstellen ein2e2an2en. 1um .chluss !erden noch :N2lichkeiten auf2eJei2t !ie sich die .ch!achstellen beheben lassen.

Kryptoanalyse PowerVu TV-Verschlsselung

B6/0VC3.A.-/: 40B=D/0.("*1uerst mal 2rob die (nfo !ie die o!erVu /ntschl5sselun2 funktioniert.

/ncr'pted Video/+udio

/ncr'pted /":

/ncr'pted /::

o!erVu +l2o

..) / /::3<e'

o!erVu +l2o 8/. +l2o

:.< / /":3<e'

.ecurit'3"hip

0ecei%er

8ecr'pted Video/+udio
ABBILDUNG 1: SCHLSSELHIRARCHIE

8as ro2ramm (u.a. Video und +udio) !ird %or dem +ussenden 5ber .atellit mit dem 8/.3+l2orithmus (/"=3 :odus) %erschl5sselt. 8er 8/.3.chl5ssel !ird ca. alle 10 .ekunden 2eMndert. 8er %erschl5sselte 8/.3.chl5ssel !ird 5ber einen separaten .tream F/ntitlement "ontrol :essa2eH (/":) mit 5bertra2en. 8er 0ecei%er empfMn2t die %erschl5sselten /": akete und leitet .ie an den .ecurit'3"hip !eiter. 8ieser entschl5sselt mit dem F:ulti .ession <e'H (:.<) (also ein /":3<e') dann das /": aket und 2ibt den entschl5sselten 8/.3 .chl5ssel an den 0ecei%er Jur5ck (falls JusMtJlich eine Greischaltun2 f5r das ro2ramm %orlie2t) der damit das ro2ramm entschl5sselt. 8er :.< ist dabei lan2lebi2er. /r !ird %ermutlich nur alle paar :onate (oder Pahre) 2e!echselt. Cm dem .ecurit'3"hip einen neuen :.< Jukommen Ju lassen !ird 5ber einen separaten .tream F/ntitlement :ana2ement :essa2eH (/::) akete 5bertra2en. 8ie /:: akete enthalten %erschl5sselte (nfos f5r den .ecurit'3"hip der diese nach der /ntschl5sselun2 in seinen nichtfl5chti2en .peicher (// 0B:) schreibt. (m Cnterschied Ju den /":s die f5r alle bestimmt sindL enthalten die /::s immer als +dresse die un%erschl5sselte .eriennummer des .ecurit'3"hips f5r den sie bestimmt sind. /ntschl5sselt !ird ein /:: mit dem /::3<e'. Peder .ecurit'3"hip besitJt bei der +uslieferun2 einen anderen /::3<e' und er kann anschlieOend nicht mehr 2eMndert !erden. :it einem /:: kann auch die Greischaltun2 (-iers) der ro2ramme 2eMndert !erden. /s kNnnen also 2eJielt einJelne ro2ramme 2esperrt und andere frei2eschaltet !erden.

"

Kryptoanalyse PowerVu TV-Verschlsselung

6+. =(.*/0 4/."*+*


=ereits 2009 habe ich unter http://colibri.de.ms in der o!erVu .ektion meine /rkenntnisse %erNffentlicht. .peJiell das <apitel ; F o!erVu "onditional +ccess s'stemH im o!erVu.ecrets. 8G sollte %or dem 6eiterlesen durch2elesen !erden. *ier !urde speJiell die Girm!are des 0ecei%ers und die ph'sikalische .chnittstelle %om .ecurit'3"hipL der bei o!erVu auch als F(nternal .ecurit' /lementH ((./) beJeichnet !irdL anal'siert. 8er (./3 "hip ist kein simples // 0B:L sondern er hat die 2leichen +nschl5sse !ie der "hip einer .martcard (V""L 4)8L 0esetL -akt und 8aten). /s !urden die (./3<ommandos auf2elistet die in der Girm!are 2efunden !urden. /s !urde 2eJei2t !ie ein /": in J!ei (./3<ommandos 2esplittet !erden muss (4et=ase"6 und 4et.eeds) und !ie die +nt!orten Ju einem 8/.3<e' Jusammen2esetJt !erden m5ssen. /s !urde auch ein .chaltplan f5r ein F " to (./ "hip interfaceH und das passende -ool F o!erVu3(./3-ool.eQeH Jur Verf52un2 2estellt mit der man %erschiedenen <ommandos Jum (./ schicken und die +nt!orten beobachten kann. 8as (./ unterst5tJt mehr <ommandos (die aber im normalen 4ebrauch nicht benNti2t !erden) als in der 0ecei%er3Girm!are %orhanden sind. :it all den (nfos konnte man bereits J.=. bei einem defekten 0ecei%er aber intakten und frei2eschaltenen (./ das (./ an einen " anschlieOen und ein mit einer 8V=3s .atellitenempfan2skarte auf2eJeichnetes Video offline entschl5sseln. 8as ist Redoch kein .icherheitsproblem da immer noch ein frei2eschaltetes (./ benNti2t !ird. +m 2?.02.200; hat dann der =enutJer "inosana in einem Gorum die 8atei Fp%ufull.JipH 2epostet. .ie enthMlt die (./3Girm!are f5r die ;?09 " C und 8aten also das interne // 0B: und 0B:. 8ie /:: und /": .chl5ssel hat er entfernt. +n2eblich kam der an diese internen 8aten in dem der ein kleines ro2ramm das den kompletten .peicher auslieOt und 5ber die serielle (./3.chnittstelle aus2ibt als <ommando dem (./ 5ber2eben hat. (m (./3 0+: lie2t hinter dem .peicher in dem ein empfan2enes <ommando Jur spMteren +us!ertun2 ab2ele2t !ird der .tack. 8as (./ pr5ft im )ormalfall das erste <ommandob'te das die ,Mn2e der fol2enden 8aten enthMlt. (st die ,Mn2enb'te 2rNsser als 23h dann bricht das (./ mit einem Gehler abL damit ein =uffer o%erflo! der den .tack 5berschreibt %erhindert !ird. cmp S023h bhi mot77>? T 7737 +1 23 (2) (f ,/) > 0Q23L error T 773; 22 70 (3) #error>

Cm diesen o%erflo! .chutJ Ju um2ehen hat er einen modifiJierten -@11 4litcher %er!endet und direkt nach dem .endes des ,Mn2enb'tes einen 4litch aus2elNst. 8as (./ 5bersprin2t bei einem 4lich einen =efehl in diesem Gall den obi2en bhi3=efehl (branch if hi2her) der einen Gehler aus2ibtL statt !eitere 8aten Ju empfan2en. /in 4litch ist hier eine kurJJeiti2e Underun2 in der (./3.pannun2s%ersor2un2 bei 2leichJeiti2er Underun2 der -aktfreIuenJL dadurch kommt es Jum Dbersprin2en des =efehls. 6ie er den 4litcher modifiJiert hat hat er aber nicht %erraten. 8ie .ch!achstellen um die es in diesem 8okument 2eht sind aber +ndere. 8er /":3<e' lMsst sich nMmlich auch ermitteln ohne ein /Qploit in das (./ Ju laden. 8urch den /insatJ eines 8isassemblers (J.=. unterst5tJt (8+ V -he (nteracti%e 8isassembler die ;?09 " C) konnten !eitere /rkenntnisse 2e!onnen !erden.

Kryptoanalyse PowerVu TV-Verschlsselung

8/0 /)-."*,D../,C)4.+,4B0(-*:C. (: 8/-+(,


(m Gol2enden !erden der .tream cipherL die /": und die /:: /ntschl5sselun2 beschrieben.

.-0/+: "(

*/0

8er o!erVu +l2orithmus %er!endet als <ern fol2enden .tream cipher.

7 .hift re2ister 0 2> 9; =its

99

.3=oQ

"r'pted bits in 1 2

lain bits out

ABBILDUNG 2: STREAM CIPHER

1ur (nitialisierun2 !ird der .chl5ssel (also /": oder /::3<e') in das 9; =it lan2e .chiebere2ister 2eladen. G5r Redes Ju entschl5sselndes =it !ird fol2endes 2emacht: 8ie 9; =its des .chiebere2isters !erden durch die .3=oQ auf 1 =it reduJiert. 8ieses =it !ird dann mit dem nMchsten %erschl5sselten =it WB0 ()r.1) %erkn5pft. 8as /r2ebnis !ird dann mit dem =it 0 des .chiebere2isters WB0 ()r.2) %erkn5pft. 8as 0esultat ist das entschl5sselte =it. 8ieses =it !ird dann mit dem =it 99 des .chiebere2isters WB0 ()r.3) %erkn5pft. 8as /r2ebnis !ird dann mit =it 2> des .chiebere2isters WB0 ()r.7) %erkn5pft und das 0esultat !ieder an die 2leiche .telle ins .chiebere2ister Jur5ck2eschrieben. 1uletJt !ird dann noch das .chiebere2ister um eine .telle nach rechts 2eschoben. 8er alte (nhalt %on =it 99 2eht dabei %erloren und ins =it 0 !ird das 0esultat der WB0 ()r.3) Verkn5pfun2 2eschrieben. 6ie fol2endes =ild Jei2t ist die 2roOe .3=oQ die 9; =its in 1 =it um!andelt aus .peicherplatJ2r5nden aus kleineren .3=oQen (mit unterschiedlichen (nhalten) auf2ebaut.

Kryptoanalyse PowerVu TV-Verschlsselung

9; =its :iQ bit order > =its .3=oQ 1 =it > =its .3=oQ 1 =it > =its .3=oQ 1 =it > =its .3=oQ 1 =it 1 =it > =its .3=oQ 1 =it > =its .3=oQ 1 =it > =its .3=oQ 1 =it > =its .3=oQ

.3=oQ

1 =it
ABBILDUNG 3: AUFBAU DER GROSSEN S-BOX

8ie .3=oQen die > =its in 1 =it um!andeln benNti2en nur Re!eils 1; ='tes. 7 /in2an2sbits bestimmen den (ndeQ des 1; ='te +rra's und die %erbleibenden 3 /in2an2sbits bestimmen das =it des /r2ebnisb'tes das %er!endet !erden soll. 8ie eine .3=oQ die ? =its in 1 =it um!andelt benNti2t 32 ='tes. 9 /in2an2sbits bestimmen den (ndeQ des 32 ='te +rra's und die %erbleibenden 3 /in2an2sbits bestimmen das =it des /r2ebnisb'tes das %er!endet !erden soll.

/": /)-."*,D../,C)4
8ie fol2ende =eschreibun2 setJt <enntnisse des oben er!Mhnten o!erVu.ecrets. 8G %oraus. 8er 0ecei%er teilt das /": in J!ei -eile auf. 8en ersten -eil sendet er 5ber das (./ <ommando 0 an das (./. 8as (./ 2ibt darauf das =ase "6 Jur5ck. 8ann sendet der 0ecei%er den J!eiten -eil 5ber das <ommando 1 an das (./. 8as 2ibt darauf hin die %om aktuellen -V3 ro2ramm benutJten .eed 6erte Jur5ck. :N2lich sind dabei .eeds f5r VideoL +udio1L *.8L +udio2L Ctilit' und V=(. =enNti2t der 0ecei%er noch .eeds f5r +udio 3 und +udio 7 kann er sie %om (./ mit einem leeren <ommando ? anfordern. 8er 0ecei%er %erkn5pft dann das =ase "6 mit dem Video .eed um den 8/.3.chl5ssel f5r die Video3 /ntschl5sselun2 (oder =ase "6 mit +udio 1 .eed um den 8/.3.chl5ssel f5r die +udio 13/ntschl5sselun2) Ju bekommen.

<B::+)8B 0 (4/- =+./ "6)


8er /": -eil im <ommando 0 ist 10h ='tes lan2. 8ie ersten beiden ='tes /":X0..1Y sind un%erschl5sselt. 8er 0est /":X2..0QGY ist %erschl5sselt. 8ie un%erschl5sselten ='tes enthalten (nfos mit !elchem .chl5ssel das /": entschl5sselt !erden muss.

Kryptoanalyse PowerVu TV-Verschlsselung

8as kann ent!eder ein statischer (nicht 5ber ein /:: updatebarer) 0B:/// 0B: .chl5ssel oder ein /V/)/B88 .chl5ssel sein der 5ber ein /:: 2eMndert !erden kann. 6ird aktuell der /V/)3<e' %er!endet und es soll auf einen neuen .chl5ssel 2e!echselt !erden dann !ird 5ber ein /:: der B883<e' 2eMndert. )ach ein paar 6ochen sollte dann Redes (./ den neuen .chl5ssel bekommen haben. 8ann !erden die /":s statt mit dem /V/)3<e' mit dem B883<e' %erschl5sselt. =ei +G) !ird %on den 7 %om (./ unterst5tJen F=ouIuet (8sH (=(8s) anscheinend nur =(8 0 %er!endet. =ei +G) habe ich nur die beiden 6erte +0 00 (/V/)3<e' =(8 0) und =0 00 (B883<e' =(8 0) 2esehen. /":X0Y =it 7 3 2 0 1 0 0 0 0 1 1 1 1 /":X1Y =it 7 3 2 /":3.chl5ssel 1 0 -'p 0B:3<e' // 0B:3<e' EVEN-Key BID 0! /V/)3<e' (=(8 1) /V/)3<e' (=(8 2) /V/)3<e' (=(8 3) ODD-Key BID 0! B883<e' (=(8 1) B883<e' (=(8 2) B883<e' (=(8 3) /":X?../Y =ase "6 +dresse 0B::70@7 //:10+7 EE:0"#C //:09/? //:0;97 //:0;"0 EE:0"$% //:09G0 //:0;9" //:0;"?

>

9 0 0 1 1 1 1 1 1 1 1

>

0 0 1 1 0 0 1 1

0 1 0 1 0 1 0 1

TABELLE 1: &ELCHER SCHLSSELT'P VER&ENDET &ERDEN SOLL KANN DAS ISE AN EINIGEN BITS VOM ECM(0))1* ERKENNEN

/":X2..9Y .eed=ase

/":X;Y ='te muss mit dem nMchsten <ommando 0 /":X9Y identisch sein

/":X>Y .i2naturb'te muss mit /":X0Y identisch sein

/":XGY .i2naturb'te muss mit /":X?Y identisch sein

TABELLE 2: NACH DER ENTSCHLSSELUNG

)ach der /ntschl5sselun2 pr5ft das (./ ob die .i2natur passt. /":X>Y und /":X0Y m5ssen identisch sein. /":XGY und /":X?Y m5ssen identisch sein. asst die .i2natur nichtL dann !ird kein =ase "6 Jur5ck2e2eben. +uOerdem merkt sich das (./ das /":X;Y ='te. <ommt eine neues <ommando 0 !ird das aktuelle /":X9Y ='te mit dem %orheri2en /":X;Y ='te %er2lichen. .ind sie identisch dann !urde die 0eihenfol2e der /":s nicht %erMndert und es !urde auch kein /": aus2elassen. /":X2..9Y !ird f5r die .eed3=erechnun2 im <ommando 1 benNti2t. 8er 1ustand (die 9; =its) des .chiebere2isters +,-. dem /ntschl5sseln des /":s !ird 2esichert und spMter %or dem /ntschl5sselun2s%or2an2 im <ommando 1 und ? Re!eils !iederher2estellt.

<B::+)8B 1 (4/- .//8.)


8er /": -eil im <ommando 1 ist 1Gh ='tes lan2. 8ie ersten beiden ='tes /":X0..1Y die die "hannel3(8 enthalten sind un%erschl5sselt. 8er 0est /":X2..1GY ist %erschl5sselt. G5r die /ntschl5sselun2 des <ommando 1 /":s !ird der 1ustand des .chiebere2isters +/-.0 mit dem /":3<e' initialisiertL sondern der 1ustand %er!endet !ie er nach der /ntschl5sselun2 des /":s beim <ommando 0 !ar. )ach der /ntschl5sselun2 pr5ft das (./ ob die .i2natur passt. /":X18hY und /":X0Y m5ssen identisch sein. /":X1/hY und /":X1Y m5ssen identisch sein. Galls die .i2natur nicht passt !erden keine .eeds Jur5ck2e2eben.

&

Kryptoanalyse PowerVu TV-Verschlsselung

1ur =erechnun2 eines .eeds das f52t das (./ J!ei -eile Jusammen. 8er linke -eil ist der (V 6ert. /r hat immer eine feste ,Mn2e %on +h =its (22f. links mit 0 auff5llen) und er lMsst sich !ie in der fol2enden -abelle dar2estellt berechnen. IV Ty1 V/6e7 A86/7 1 HSD A86/7 2 U0/4 VBI A86/7 3 A86/7 % IV &e20 A. B/03 4,+5! ( (ECM[10h] & 1Fh) <<3) ( (ECM[11h] & 3Fh) <<3) ( (ECM[12h] & 1Fh) <<3) ( (ECM[13h] & 3Fh) <<3) ( (ECM[14h] & 0Fh) <<3) (((ECM[15h] & F8h)>>3)<<3) ( (ECM[19h] & 3Fh) <<3) ( (ECM[1Ah] & 3Fh) <<3)

| | | | | | | |

0 1 2 1 4 5 1 1

TABELLE 3: BERECHNUNG DER IV &ERTE

8er rechte -eil ist die .eed=ase %om <ommando 0 (7 ='tes bJ!. 32 =its lan2). Gol2ende +bbildun2 Jei2t !ie die %erschiedenen .eeds berechnet !erden.

(V (+h =its)

.eed=ase (7 ='tes)

/ntschl5sselun2

Video .eed (7 ='tes) *.8 .eed (7 ='tes) +udio 1L2L3 und 7 .eed (3 ='tes) Ctil .eed (2 ='tes) V=( .eed (2 ='tes)

ABBILDUNG %: ENTSCHLSSELUNG DER SEEDS

/:: /)-."*,D../,C)4
8er /:: -eil im <ommando 3 ist 1=h ='tes lan2. 8as erste ='te /::X0Y ist un%erschl5sselt. 8er 0est /::X1..1+hY ist %erschl5sselt. 8ie =(8 berechnet sich aus (/::X0Y K 0Q0G). 8ie =(8 2ibt an !elcher der 7 /:: .chl5ssel f5r die /ntschl5sselun2 %er!endet !erden soll. =ei +G) !ird anscheinend immer nur =(8 0 %er!endet. BID N2) 0 EMM-S-.4933e4,62e33e /: ISE //:0977

'

Kryptoanalyse PowerVu TV-Verschlsselung

1 2 3

//:0992 //:09;0 //:09;/

)ach der /ntschl5sselun2 !ird die .i2natur 2epr5ft. /::X1?h..1+hY muss identisch mit den letJten 3 ='tes der (./3.eriennummer (siehe <ommando 20h) sein. asst die .i2natur nicht !ird das /:: i2noriert. 8er /::3-'p entspricht (/::X2Y K >Gh). /r 2ibt an !elche (nformationen im /:: enthalten sind. EMM-Ty1 0 1 2 3 < E+0.;40 /%en -iers und /%en /":3<e' Bdd -iers und Bdd /":3<e' /%en /Qtended -iers und /%en =lackout codes Bdd /Qtended -iers und Bdd =lackout codes =lackout codesL ,ocation und ,at"omp

<ommando 3 schreibt nur einen -eil sofort ins // 0B:. 8er andere -eil !ird im 0+: J!ischen2espeichert. :it dem anschlieOenden <ommando 7 !ird dann der J!ischen2espeicherte -eil ebenfalls ins // 0B: 2eschrieben. Vermutlich darf ein <ommando nicht beliebi2 lan2e dauernL sondern das (./ muss innerhalb einer kurJen 1eit +nt!orten. :aQ. ein 7 ='te =lock kann 2leichJeiti2 2elNscht (alle =its auf 0 setJen) oder pro2rammiert (eini2e =its auf 1 setJen) !erden. )ach dem ,Nschen oder ro2rammieren muss laut 8atasheet Re!eils 10 ms 2e!artet !erden. 8urch das +ufteilen der // 0B: Cpdates auf J!ei <ommandos 3 K 7 kann ein <ommando schneller ab2eschlossen !erden.

."*6+"*.-/,,/)
(m Gol2enden sind J!ei +n2riffe beschrieben die Reder f5r sich 2enommen J!ar kein .icherheitsproblem darstelltL Redoch kombiniert das /rmitteln des /":3.chl5ssel ermN2lichen.

-(:()4 +--+"<
/ine .ch!achstelle beim (./ ist dass die 1eit die es benNti2t um ein /": Ju entschl5sseln nicht konstant istL sondern neben dem %erschl5sselten /": auch %om /":3.chl5ssel abhMn2t. Cm die .ch!achstelle ausJunutJen benNti2t man J.=. eine elektronische .chaltun2 die die +nJahl der -aktimpulse J!ischen dem letJen ='te des <ommandos und dem .tartbit des ersten ='tes der +nt!ort ermitteln kann. (m .tream cipher !ird J.=. fol2ende =efehlsfol2e %er!endet den 1ustand %on =it 0 %on ='te 91h auf =it 2 %on ='te 9"h Ju kopieren. //:0>/G brclr 0L b'te$91L loc$>G7 //:0>G2 ora S7 T benNti2t 2 -akte JusMtJlich //:0>G7 loc$>G7: //:0>G7 sta b'te$9" )ur !enn das =it 2esetJt ist !ird JusMtJlich der =efehl Hora S7Z aus2ef5hrt und die Verarbeitun2 benNti2t somit 2 -akte lMn2er als !enn das =it 2elNscht ist. Gol2ende -abelle Jei2t !elches 2esetJte =it im .tream cipher !elche VerJN2erun2 um Q -akte %erursacht.

Kryptoanalyse PowerVu TV-Verschlsselung

&e4-.e3 B/0 E25eB+/3 6e2 XOR N2)3 Ve2=+91C8+5 De6e3 6e2 "< B/03 /: S-./eBe2e5/30e2 De6e3 E/+5,+53B/0 6e2 $?81 S-B7E A835,+53B/0 6e2 $?81 S-B7E C2y10e6 E/+5,+53B/0

T,=0>e2?@5e28+5 Ae++ B/0 5e3e0?0 /30 11 2 9 2 ;

</A "*+)4/ ()-/00C

-(B) +--+"<

8er +l2orithmus ist bekannt. =ei einem frei2eschaltenen (./ kann man sich auch ein /": 5ber <ommando 0 Ju einem =ase"6 entschl5sseln lassen. )ur theoretisch kann man RetJt am "omputer alle mN2lichen /":3<e's durchprobieren bis das 2leiche =ase"6 Jur5ck2e2eben !ird. +n2enommen ein "omputer kann ;993; <e's (also 1; =its) pro 1? .ekunden durchprobieren. 8ann !5rde er f5r 9; =its in der raQis Ju lan2e brauchen (siehe -abelle)L da Redes =it mehr die benNti2te 1eit %erdoppelt. S-.4933e44;+5e /+ B/03 1< 1# 1$ 2% 32 %0 %$ "% "" "< Be+@0/50e Fe/0 1? .ekunden 3; .ekunden >2 .ekunden >; :inuten 17 -a2e 10 Pahre 2.791 Pahre 19;.?@7 Pahre 313.>?> Pahre ;2>.9>9 Pahre

8ie <e' "han2e (nterruption +ttack ermN2licht es statt einen lan2en 9; =it <e' (=;2>.9>9 Pahre) durchprobieren Ju m5ssen das paktisch nicht mN2lich istL nur Re!eils einen 32 =it <e' (=17 -a2e) und einen 27 =it <e' (=>; :inuten) durchprobieren Ju m5ssen. 6enn ein neuer /":3<e' der > ='te (9; =its) lan2 ist in das // 0B: 2eschrieben !irdL dann !erden die > ='tes nicht 2leichJeiti2 pro2rammiert. (ns (./3// 0B: kann man maQ. 7 ='te 2leichJeiti2 schreiben. /s !erden also statt > ='tesL erst 7 ='tes und dann nochmal 3 ='tes 2eschrieben. 8ie =its im // 0B: lassen sich auOerdem nur setJenL sind also nur %on 0 auf 1 pro2rammierbar. *at ein // 0B: ='te J.=. den 6ert 30h kann man es direkt auf 39h MndernL aber nicht auf 09h. 8as (./ %er2leicht also erst mal ob auch =its 2elNscht !erden m5ssenL falls Ra dann lNscht das (./ erst einen // 0B: =lock und pro2rammiert dann den neuen 6ertL falls nein dann entfMllt der ,Nschbefehl und der neue 6ert !ird direkt pro2rammiert. (n der raQis sind alter und neuer .chl5ssel total unterschiedlichL es !ird also immer auch ein ,Nschbefehl %er!endet !erden.

)*

Kryptoanalyse PowerVu TV-Verschlsselung

Gol2endes =ild Jei2t !ie sich intern der .chl5ssel stufen!eise Mndert.

,inker .chl5ssel (7 ='te) <ommando empfan2en [ ,inken <e' lNschen und 10 ms !arten ,inken <e' schreiben und 10 ms !arten 0echten <e' lNschen und 10 ms !arten 0echten <e' schreiben und 10 ms !arten [ +nt!ort senden 00 00 00 00 +lter .chl5ssel

0echter .chl5ssel (3 ='te) +lter .chl5ssel

+lter .chl5ssel

Ne8e2 S-.4933e4 Ne8e2 S-.4933e4

+lter .chl5ssel 00 00 00

o!er off

Ne8e2 S-.4933e4

Ne8e2 S-.4933e4

ABBILDUNG ": MGGLICHER FEITPUNKT FR DIE HKE' CHANGE INTERRUPTION ATTACKI UM DEN LINKEN TEIL DES NEUEN SCHLSSELS FU ERMITTELN

,inker .chl5ssel (7 ='te) <ommando empfan2en [ ,inken <e' lNschen und 10 ms !arten ,inken <e' schreiben und 10 ms !arten 0echten <e' lNschen und 10 ms !arten 0echten <e' schreiben und 10 ms !arten [ +nt!ort senden 00 00 00 00 Ne8e2 S-.4933e4

0echter .chl5ssel (3 ='te) Ne8e2 S-.4933e4

Ne8e2 S-.4933e4

o!er off

+lter .chl5ssel +lter .chl5ssel

Ne8e2 S-.4933e4 00 00 00

+lter .chl5ssel

+lter .chl5ssel

ABBILDUNG <: MGGLICHER FEITPUNKT FR DIE HKE' CHANGE INTERRUPTION ATTACKI UM DEN RECHTEN TEIL DES NEUEN SCHLSSELS FU ERMITTELN DAFU &IRD DER KE' VON NEU NACH ALT GE&ECHSELT!

Cnterbricht man die Versor2un2sspannun2 an der in +bbildun2 9 2eJei2ten .telleL besteht der .chl5ssel nicht mehr aus 9; unbekannten =its (!as das /rmitteln in der raQis unmN2lich macht)L sondern nur noch aus 32 unbekannten =its (die rechten 27 =its sind 2eJielt auf 0 2eMndert !orden).

))

Kryptoanalyse PowerVu TV-Verschlsselung

G5r diesen +n2riff muss man 2 /:: auf2eJeichnet haben. :an kann daJu ent!eder direkt am (./ mit einem "3 ro2ramm die 5bertra2enen <ommandos 5ber die serielle .chnittstelle aufJeichnen oder man kann die /::s mit einer .atellitenempfan2skarte (8V=s3<arte) am " aufJeichnen. 8irekt am (./ !ird man nur die /::s ab2reifen kNnnen die auch f5r diese (./ .eriennummer bestimmt sind. =ei einer 8V=s3<arte !ird man da2e2en Cpdates f5r alle (./ sehen. 8iese !erden in einer /ndlosscheife aus2estrahlt. (ch habe daJu immer !ieder mal J.=. 1 .tunde die /::s auf2eJeichnet und 2leich anschieOend auch 1 :inute den kompletten -ransponder (also die Video und +udio .treams der o!erVu ro2ramme und auch die Ju2ehNri2en /":s pro ro2ramm) um -estdaten Jur Verf52un2 Ju haben. :an benNti2t also ein /:: das den Ju ermittelnden .chl5ssel enthMlt (hier als neuer .chl5ssel beJeichnet) und ein !eiteres /:: das einen andern .chl5ssel enthMlt (hier als alter .chl5ssel beJeichnet)L das kann tatsMchlich ein alter .chl5ssel seinL aber auch ein 2anJ neuer un25lti2er .chl5ssel sein der bei o!erVu aus2esendet !ird !enn ein +bo aus2elaufen ist. (ch hatte mit dem /:: lo22en per 8V=s3<arte an2efan2en be%or ich mir einen ab2elaufenen nicht mehr frei2eschaltenen o!erVu 0ecei%er 2ebraucht 2ekauft habe. (ch habe also ein altes /:: (incl. -estdaten mit /":L Video und +udio) und ein aktuelles /:: das einen un25lti2en .chl5ssel enthMlt. (ch kann mit dem ermittelten ehemali2en /:: .chl5ssel nur den damali2en kurJen mit auf2eJeichneten Videostream entschl5sselnL aber keine aktuellen ro2ramme. 6ichti2 ist dass diese beiden unterschiedlichen /::s %om 2leichen .chl5sselt'p sind (also beide /V/)3<e' oder beide B883<e') und somit im 2leichen // 0B: =ereich 2espeichert !erden. :an kann also RetJt beliebi2 J!ischen alten und neuen .chl5ssel !echseln und !ie fol2t einen .chl5sselteil des neuen .chl5ssels auf 0 Mndern. 1um +bschalten braucht man eine /lektronik die in der ,a2e ist nach Q -akten oder nach Q ms nach dem letJten <ommando den V"" in %om (./ auf 0 setJt. 0echten .chl5sselteil auf 0 setJen (linker -eil enthMlt neuen .chl5ssel): altes /:: schicken neues /:: schicken und nach dem ,Nschen der rechten .eite die .pannun2 ausschalten

,inken .chl5sselteil auf 0 setJen (rechter -eil enthMlt neuen .chl5ssel): neues /:: schicken altes /:: schicken und nach dem ,Nschen der linken .eite die .pannun2 ausschalten hasen der

8och !ie ermittelt man den richti2en +bschaltJeitpunkt\ :an kann Ra %on auOen einJelnen schritt!eisen .chl5sselMnderun2 nicht sehen.

PetJt kommt die Ju%or beschriebene -imin2 +ttack ins .piel. :it ihr lMsst sich feststellen ob sich der .chl5ssel nach dem Cnterbrechen der .pannun2 !Mhrend der .chl5sselMnderun2 2eMndert hat. :it unterschiedlichen /": .chl5sseln dauert Ra die /":3/ntschl5sselun2 (<ommando 0) unterschiedlich lan2e. :an kann also f5r das =estimmen des linken .chl5sselteils in einer .chleife ein altes /:: schicken und dann das neue /::1 (Jum /rmitteln des rechten .chl5sselteils erst neues /:: dann +ltes) nach Q ms abbrechen (Q erhNht man bei Redem .chleifendurch2an2 um 1 ms. =ei Q = 1000 ms beendet man die .chleife). )ach Redem +bbruch des /::s schickt man ein /": mit immer 2leichen (nhalts und bestimmt 5ber die -imin2 +ttack die =earbeitun2sJeit. )ur auf die beiden /": *eader ='tes muss man achten (+000 f5r /V/)3<e' bJ!. =000 f5r B883<e')L als fol2ende %erschl5sselte /": 8aten kann man J.=. lauter )ullen %er!enden.

/in /:: !ird 5ber <ommando 3 Jum (./ 2eschickt dabei !ird ein -eil der 8aten !ie -iers bereits ins // 0B: 2eschrieben. 8as <ommando 7 muss immer anschlieOend fol2en dabei !ird der /": .ch5ssel ins // 0B: 2eschrieben. 8ie er!Mhnte Cnterbrechun2 erfol2t immer im <ommando 7.

)!

Kryptoanalyse PowerVu TV-Verschlsselung

=eim 1ms 0aster braucht man 1000 Versuche. Cm die // 0B: Cmpro2rammierun2en mN2lichst 2erin2 Ju halten kann man Juerst mit einem 100 ms 0aster probieren. 8ie (3 ] 10 ms) 1!ischenJustMnde lie2en en2 beieinanderL da2e2en %er2eht %orne und %or allem hinten raus %iel mehr 1eit ohne das sich der .chl5ssel Mndert. 8ie 1eit die %or der .chl5sselMnderun2 %er2eht ist bei Redem (./ andersL da Redes (./ indi%iduelle /:: .chl5ssel hat und die 1eit die die /:: /ntschl5sselun2 benNti2t %om .chl5ssel abhMn2t. 8ie fol2ende -abelle enthMlt fikti%e =eispiel!erte. 8ie /": -aktanJahl 6ert bei 0 ms entspricht immer dem alten .chl5ssel (da bei 0 ms noch keine .chl5sselMnderun2 statt2efunden haben kann). :an sieht das bei 100 ms und auch bei 200 ms die 2leiche -aktanJahl ermittelt !urdeL somit ist bei 200 ms immer noch der alte .chl5ssel akti%. 8ie /": -aktanJahl bei 1000 ms entspricht immer dem neuen .chl5ssel (da es ausreichend 1eit !ar die .chl5sselMnderun2 komplett durchJuf5hren). :an sieht das bei @00 msL ?00 msL [L 300 ms die 2leiche -aktanJahl ermittelt !urdeL somit ist bei 300 ms bereits erstmals der neue .chl5ssel akti%. 8ie .chl5sselMnderun2 hat also J!ischen 200 ms und 300 ms statt2efunden. )ur diesen =ereich braucht man RetJt noch mit 1 ms .chritten feinabtasten um die 3 et!a 10 ms 2rossen 1!ischenblNcke Ju finden. :an notiert sich dann die :itte %on 1!ischenblock 1 bJ!. 3 f5r das spMtere 2eJielte auf 0 setJen eines .chl5sselteils. Fe/0 /: :3 >72 6e2 EMM U+0e2B2e-.8+5 0 100 200 300 %00 "00 <00 #00 $00 K00 1000 T,=0,+?,.4 6/e 6/e ,+3-.4/eJe+6e ECM E+03-.4933e48+5 Be+@0/50 199+>h 199+>h 199+>h 19;0Gh 19;0Gh 19;0Gh 19;0Gh 19;0Gh 19;0Gh 19;0Gh 19;0Gh S-.4933e4 +lter <e' +lter <e' +lter <e' )euer <e' )euer <e' )euer <e' )euer <e' )euer <e' )euer <e' )euer <e' )euer <e'

ABBILDUNG #: FIKTIVE BEISPIEL&ERTE MS UND TAKTANFAHL!

8ie 1eit f5r die /:: /ntschl5sselun2 ist nicht nur %om (./ indi%iduellen /:: .chl5sselL sondern auch %om %erschl5sselten /:: selbst abhMn2i2. :an muss die -abellen also J!eimal ermitteln. /inmal f5r den 6echsel %om alten /:: aufs )eue und einmal f5r den 6echsel %om neuen /:: aufs +lte um spMter beide .chl5sselteile ermitteln Ju kNnnen. 6ir sind RetJt so!eit %om neuen .chl5ssel den linken 7 ='te .chl5sselteil oder den rechten 3 ='te .chl5sselteil 2eJielt auf )ull setJten Ju kNnnen. PetJt portiert man den o!erVu +l2orithmus auf den ". :an schreibt sich eine Gunktion die die /": /ntschl5sselun2 %on <ommando 0 (4et =ase"6) beherrscht. 8ie Gunktion soll als (nput fol2ende 8aten 5bernehmen: einen > ='te lan2en /":3<e' das %erschl5sselte /":

8ie Gunktion soll als Butput fol2ende 8aten Jur Verf52un2 stellen: das entschl5sselte /": eine relati%e -akt%erJN2erun2

)"

Kryptoanalyse PowerVu TV-Verschlsselung

6ie unter -imin2 +ttack beschrieben ist die +nJahl der -akte die die /": /ntschl5sselun2 benNti2t abhMn2i2 %om %erschl5sselten /": und dem /": <e'. 8iese -akt%erJN2erun2 lMsst sich auch in einer Variable in unserer Gunktion emulieren. ro Ju entschl5sselnden =it !erden die JusMtJlichen -akte die ein 2esetJtes =it an bestimmten .tellen %erursacht aufsummiert. 8ie .tellen und die JusMtJlichen -akte sind unter -imin2 +ttack in der -abelle dar2estellt. PetJt erJeu2t man ein /": mit dem 2e!5nschten /V/) oder B88 *eader und JufMlli2en (nicht nur )ullen) (nhalt J.=. +0 00 7@ 8" 9; 98 81 2" G0 /9 @; 77 "+ 9? >+ ?+ 8ann lMsst man sich man sich %on der Gunktion die relati%e -akt%erJN2erun2 f5r dieses /": und den .chl5ssel F00 00 00 00 00 00 00H berechnen. PetJt benNti2en !ir noch die -aktanJahl die das (./ f5r dasselbe /": und ebenfalls den .chl5ssel F00 00 00 00 00 00 00H braucht. 8aJu m5ssen !ir beide .chl5sselteile auf 0 setJen. 1uerst die rechte .eite auf 0 setJen: +ltes /:: senden )eues /:: senden und unterbrechen !enn die linke .eite den neuen .chl5ssel hat und die rechte .eite F00 00 00F ist

8ann die linke .eite auf 0 setJen: +ltes /:: senden und unterbrechen !enn die linke .eite F00 00 00 00F ist

PetJt ist der .chl5ssel komplett 0 und die -aktanJahl die das (./ f5r dasselbe /": benNti2t kann ermittelt !erden. PetJt kann die 8ifferenJ J!ischen der absoluten -aktanJahl die das (./ 2ebraucht hat und der relati%en -aktanJahl die unsere Gunktion ermittelt hat berechnet !erden. 8ie 8ifferenJ Jieht man ab RetJt immer automatisch %on der %om (./ ermittelten -aktanJahl ab. 8en Vor2an2 !iederholt man mit ein paar anderen JufMlli2en 6erten f5r das /:: und lMsst es !ieder %om (./ und der Gunktion mit den .chl5ssel F00 00 00 00 00 00 00H entschl5sseln. 8ie -aktanJahl %om (./ und der Gunktion muss identisch sein. PetJt 2eht^s ans =estimmen der beiden .chl5sselteile. 8aJu Mndert man den .chl5ssel im (./ so das der linke .chl5ssel F00 00 00 00H ist und der rechte .chl5sselteil dem neuen .chl5ssel entspricht. 6ir schicken dann ein JufMlli2es /": ans (./ und merken uns die -aktanJahl. 8ann entschl5sseln !ir mit unserer Gunktion das 2leiche /": mit allen in Gra2e kommenden .chl5sseln: 00 00 00 00 00 00 00 00 00 00 00 00 00 01 00 00 00 00 00 00 02 00 00 00 00 00 00 03 [ 00 00 00 00 GG GG G" 00 00 00 00 GG GG G8

)#

Kryptoanalyse PowerVu TV-Verschlsselung

00 00 00 00 GG GG G/ 00 00 00 00 GG GG GG

8ie linke 7 ='te lan2e .eite ist dabei immer 0. )ur die 0echte %ariieren !ir. (mmer !enn die -aktanJahl unser Gunktion mit der Ju%or ermittelten (./ -aktanJahl 5bereinstimmt schreiben !ir den mN2lichen .chl5sselkandidaten in eine 8atei. 8ann !Mhlen !ir eines neues JufMlli2es /": schicken es Jum (./ und notieren uns !ieder die 0eferenJtaktanJahl. 8ann probieren !ir nicht mehr alle mN2lichen (29; ] 29; ] 29;) .chl5sselL sondern nur die .chl5sselkandidaten die !ir Ju%or in eine 8atei 2eschrieben haben. )ur bei den .chl5sseln die die 2leiche -aktanJahl !ie das (./ habenL landen in einer !eiteren .chl5sselkandidatendatei. =ei Redem 8urch2an2 nimmt die +nJahl der %erbleibenden .chl5ssel rapide ab. )ach ein paar 8urch2Mn2en bleibt nur noch ein .chl5ssel 5bri2. 8as ist der rechte -eil %on dem 2esuchten .chl5ssel. G5r den linken -eil %erfMhrt man entsprechend. 8a der linke -eil aus (29; ] 29; ] 29; ] 29;) mN2lichen .chl5sseln besteht !ird es lMn2er als beim rechten -eil dauern. .etJt man die beiden ermittelten -eile Jusammen hat man den 2esuchten .chl5ssel.
2

+ls +bschlusstest kann man ein neues /:: ohne Cnterbrechun2 ans (./ schicken und sich %om einem echten /": 5ber <ommando 0 das =ase"6 2eben lassen. +nschlieOend lMsst man sich das /": mit dem ermittelten .chl5ssel auch %on der Gunktion entschl5sseln. 8ie beiden =ase"6s m5ssen identisch sein. -heoretisch kann man anschlieOend so2ar ein auf2eJeichnetes Video einem " ro2ramm und dem ermittelten .chl5ssel ohne dem .ecurit' "hip entschl5sseln.

4enerell ist Ra die -imin2 +ttack bereits seit 2eraumer 1eit bekannt. Cralte a'-V .martcards brauchten f5r den Ver2leich der .i2natur im <ommando und der berechneten .i2natur unterschiedlich lan2e. /s !urde ='te f5r ='te %er2lichen und bei dem ersten Cnterschied das <ommando ab2ebrochen. .o konnte man .t5ck f5r .t5ck die richti2en .i2naturb'tes bestimmen und das <ommando !urde letJtendlich %on der .martcard an2enommen und aus2ef5hrt. =ei der <e' "han2e (nterruption +ttack !as es andersL die kannte ich noch nicht und musste sie erst selbst ent!ickeln. Galls Remand sie bereits aus dem (nternet kannte (22f. auch unter einem anderen )amen) !5rde ich mich 5ber einen ,ink freuen.

)$

Kryptoanalyse PowerVu TV-Verschlsselung

/: G/*,C)4/)
Cm das /rmitteln des .ch5ssels 5ber den hier beschriebenen 6e2 Ju %erhindern 2en52t es ei2entlich nur eine der beiden .ch!achstellen Ju behebenL trotJdem sollte man nat5rlich beide beheben. Cm die -imin2 +ttack ins ,eere laufen Ju lassen muss der /ntschl5sselun2sal2orithmus immer die 2leiche 1eit benNti2en. =enNti2t man aber if +n!eisun2en !ie fol2ende if(%ariable1 == 0) _ %ariable2 = 9T ` 8ann sollte man einen else 1!ei2 %er!enden der eQakt die 2leiche Verarbeitun2sJeit benNti2t !ie der if 1!ei2. if(%ariable1 == 0) _ %ariable2 = 9T ` else _ dumm'$%ariable = 0T ` Cm die <e' "han2e (nterruption +ttack ins leere ,aufen Ju lassen kNnnte man J.=. fol2endes tun: (m // 0B: ein Gla2 F<e'(sValidH mitf5hren. Vor .chl5sselupdates !ird es auf false 2esetJt. )ach dem .chl5sselupdate !ieder auf true. <e'(sValidL false .chl5ssel lNschen und schreiben <e'(sValidL true Vor Reder =enutJun2 des .chl5ssels !ird dann das Gla2 J.=. !ie fol2t aus2e!ertet: (f(<e'(sValid) _ ///ntschl5sselun2 durchf5hren ` else _ //<ommando mit Gehler abbrechen ` Galls "inosana das (./ !irklich mit *ilfe %on einem 4litch aus2elesen hatL sollte man das (./ nat5rlich auch resistent da2e2en machen. +lso !enn Versor2un2sspannun2 oder -akt auOerhalb des erlaubten =ereichs sindL dann intern einen 0eset auslNsen.

)%

Вам также может понравиться