Documente Academic
Documente Profesional
Documente Cultură
Dragon Vert
VERSION 1.00
EDITION DU 08-12-00
Page 2 sur 31
Page 3 sur 31
REMERCIEMENTS
Page 4 sur 31
PARTIE N1 : LE MATRIEL
1.1 Le dcodeur
Le dcodeur, est un dmodulateur de signal. Il peut tre satellite ou cble , son
rle est de transformer le signal lectrique en provenance du satellite ou du rseau cbl
pour en extraire les trames vido et les trames de contrle. Les dcodeurs sont
gnralement prvus pour une utilisation avec contrle daccs en intgrant une ou
plusieurs plate-forme permettant lutilisation de systmes de contrles daccs. Par
exemple MEDIAGUARD / SECA ou OpenTV / VIACCESS. On peut aussi trouver des
dcodeurs (ex : nokia) compatibles OpenTV / VIACCESS avec un port PCMCIA
pouvant recevoir un module pour une seconde plate-forme, en achetant le module
PCMCIA pour systme daccs MEDIAGUARD / SECA (on parle de module
CAM ) on obtient un dcodeur compatible avec les deux systmes.
1.2 Le principe des cartes puces de contrle daccs
Quest ce quil y a au juste dans ces cartes ?
Comment dialogue-t-on avec ces cartes ?
Les cartes puces de contrle daccs NE SONT PAS des cartes mmoire dans
lesquelles on stocke des donnes et quon peut lire (a, a sappelle une disquette !). Les
cartes puces de contrle daccs sont des automates, elles reoivent des commandes,
peuvent excuter des calculs (notamment cryptage et dcryptage de mots de 8 octets par
des cls de 16 octets) et peuvent stocker des donnes dans leur mmoire locale. Ces
cartes intgrent un microprocesseur avec un programme rsident et une mmoire
rinscriptibles.
Ces cartes dialoguent vers lextrieur au moyen dune liaison srie, elles on besoin pour
fonctionner de 5 signaux :
Elles respectent la norme ISO 7816 qui rgit les cartes puces (smartcard).
La carte nenvoie jamais de donnes ou de commandes de sa propre initiative
Si on veut tre superficiel, on peut rsumer ce principe :
1 Le deco envoie la carte une commande contenant ou non des donnes
2 La carte rpond avec ou non des donnes
par exemple voici quelques dialogues types
Commande de description du contenu de la carte
Page 5 sur 31
Page 6 sur 31
Jen profite pour donner un conseil de base : a moins dtre un expert, choisissez
toujours les configurations que tout le monde utilise ! ! ! vous trouverez plus facilement
de laide. mme moi, je ne fabrique pas un DragonProg .
Linterface season 1 est une carte mulatrice, elle est trs proche des wafer mais on
remplace le processeur de la carte par un circuit permettant de la relier au port srie de
lordinateur. cest donc un logiciel de lordinateur qui va donc remplacer le PIC (ou
autre).
Linterface season 2 est une carte season 1 a laquelle on a rajout un connecteur de carte
puce avec des connections pin pin. Cest la carte utilise par ceux qui veulent
intercepter et tudier le dialogue entre un dcodeur et la carte puce. On cre laide de
ces cartes un fichier journal des commandes interceptes, en anglais on dit quon fait
un Log , on appelle donc ces cartes des cartes Logger (prononcer Logueur).
Page 8 sur 31
Page 9 sur 31
3.1 Gnralits
Je ne souhaite pas faire ici un rel cour dlectronique. si llectronique est votre
passion apprenez la ! Il existe des livres et des cours trs bien fait. Le but de cette partie
est de pouvoir effectuer les vrifications de base, de pouvoir demander un conseil et de
pouvoir comprendre un tant soit peut la rponse.
Je vais surtout dcrire les composants couramment utiliss dans les montages proposs
sur le net.
3.2 Les composants
3.2.1 Les composants Passifs
Les rsistances sont des cylindres avec des anneaux de couleur qui servent indiquer
leur valeur. Elles opposent une rsistance dfinie par leur valeur au passage du
courant. Leur valeur est exprime en Ohm , not par la lettre greque Omga. On a
toujours la relation V=R*I o V est la tension (volts ou milivolts) aux bornes de la
rsistance, R la valeur de la rsistance en Ohm et I le courant qui traverse la
rsistance. Leur rle est de diminuer le courant dans un lment ou de grignoter
une partie de la tension, pour protger le composant qui est aprs dans le circuit. Trop
faible, on ne protge pas assez, trop fort on grignote trop de tension . Les
rsistances nont pas de polarit (sens de montage).
Les condensateurs (ou capacits) sont des composants qui peuvent avoir plein de
formes : rectangulaire, gros cylindre, forme goutte deau.Elles servent de
rservoir et permettent de lisser une tension ou de la nettoyer de ses parasites. Les
capacits sont exprimes en sous multiples du Farad (symbole F) on a donc
couramment le pico Farad (pF), le nano Farad (nF) le micro Farad (F).
En dessous de 1 micro Farad environ on ralise les capacits avec des matriaux
solides, elles ont la particularit dtre non polarises (pas de sens de montage).
Au dessus de environ 1 micro Farad on est oblig de faire des capacits chimiques,
aluminium (gros cylindres) ou tantale (goutte deau ou rectangle). Les capacits
chimiques sont polarises et on doit respecter le sens de montage (le pole + ou est
alors indiqu sur le botier), en cas de doute, dites que vous ny connaissez rien et
demandez au vendeur de vous montrer le + et le (mieux vaut se taire sur ce quon
sait et passer pour un con, que raconter des conneries et montrer quon est con !).
3.2.2 Les composants Actifs
Les diodes de redressement (ou diodes tout court !) sont des petits cylindre de verre
ou de plastique dont le role est de ne laisser passer le courant que dans un seul sens.
On les reprsente par un triangle avec une barre sur une des pointes un moyen
mnmotechnique de se rappeler le sens de passage : cest le sens donn par le
Page 10 sur 31
Quand on met le plus sur lanode (A) et le moins sur la cathode (K) de la diode, on
dit que la diode est polarise en direct (sens passant) quand on fait linverse on dit
que la diode est polarise en inverse. Un diode normale occasionne une chute de
tension denviron 0.6V quand elle est polarise en direct (tension de seuil).
Les diodes de redressement Shottky (ou diodes Shottky) sont des diodes de
redressement utilisant la technologie Shottky qui permet de rduire la tension de
seuil (0.3 0.4V)
Les diodes Zener (il est partout !) ne sont pas du lexcellent ZENER de la doc du
mme nom, mais un autre. Aussi appeles diodes avalanche, ces diodes ont une
sorte de tension de seuil en fonctionnement inverse, une tension bien prcise. Elles
servent donc fabriquer des tensions prcises en crtant le surplus de tension.
on les emploie pour fixer Vcc 5V par exemple. La rgle veut quon les emploie
toujours en srie avec une rsistance.
LES DIODES ONT TOUTES UN SENS A RESPECTER
Les transistors sont des sortes dinterrupteurs commande lectrique, ils ont trois
pattes : une commande, une patte pour entrer, une patte pour sortir. Respecter le sens
de montage.
Les rgulateurs de tension sont mi chemin entre composant et circuit intgr. Ce
sont des circuits trois pattes une entre, une masse, une sortie tension constante.
Respecter le sens de montage.
3.3 Les circuits intgrs
Les circuits intgr sont des composants volus permettant de raliser des fonctions
complexes, ils se prsentent sous la forme de rectangles de plastique noir avec une
range de pattes de chaque cot. Ils doivent tous tre aliment pour fonctionner. La
tension dalimentation est en gnral de 5V. Il respectent tous la mme rgle de
numrotation pour lidentification des pattes : soit une empreinte en demi cercle dans un
des petits cots, soit un point cot dune des pattes qui se trouvent cot dun des
petits cots (soit les deux). Ces repres servent identifier la patte 1, on numrote
ensuite dans lordre en suivant les flches.
Page 11 sur 31
Page 12 sur 31
Page 13 sur 31
4.1 Gnralits
Lisez la FAQ SECA et la doc de ZENER !
Les commandes SECA sont construites sous la forme
C1 cc p1 p2 ll DATA
C1 entte, vaut toujours C1 (classe dinstruction)
cc commande
p1 paramtre 1
p2 paramtre 2
ll longueur de linstruction
DATA paquet de donnes pouvant contenir des donnes pures et/ou des sous
commandes appeles nano-commandes ou nano.
Une commande peut tre superencrypte pour plus de confidentialit, pour ce faire, on
trononne la partie DATA en paquets de 8 octets et on crypte chaque paquet, si le
dernier paquet fait moins de 8 octets on ne le crypte pas
4.2 Les bugs et failles connues du systme
4.2.1 Le bug C1 40, effet de bord des commandes C1 3C / C1 3A
Ce bug rsulte du fait que dans certaines conditions le buffer de la carte off ne
sefface pas. Etant donn que lalgorithme de cryptage/dcryptage du flux vido est
le mme que celui de superencryption, on va pouvoir dcoder une instruction
superencrypte sans connatre la cl de cryptage ! bon, je reconnais cest pas trs
clair dis comme a.
Voil comment a se passe sur un exemple
1 Tout dabord il faut remplir le buffer de dcryptage. Pour y arriver on va envoyer
une commande bidon la carte en lui faisant croire quelle est superencrypte :
C1 40 00 80 11 22 33 44 55 66 77 88 82 22 33 44 55 66 77 88 82 00
La carte met a dans le buffer, dcrypte pour voir et bloque parce quelle ne trouve
pas de signature valide dans la chaine dcode donc rponds 90 02 : signature
errone.
2 On prpare une dsencryption dECM (flux vido) en lui demandant lapplication
dune cl dont on sait pertinemment quelle nexiste pas ! et ce, sur une donne de
longueur nulle !
C1 3C 00 0F 00
La rponse est 90 1D cl inexistante, la carte na effectu aucun traitement, mais ce
qui est pire, elle na pas vid son buffer : il reste donc dans le buffer le mot 22 33 44
55 66 77 88 82 22 33 44 55 66 77 88 82 que la carte a dcrypt pour voir ce quil
contenait
3 Il ne reste plus qua rcuprer le buffer avec linstruction parfaitement valide :
Page 14 sur 31
Page 15 sur 31
Page 17 sur 31
Page 18 sur 31
Page 19 sur 31
40
p1
r1
t1
v1
x1
01
p2
r2
t2
v2
x2
81
p3
r3
t3
v3
x3
4E
p4
r4
t4
v4
x4
40
p5
r5
t5
v5
x5
p6
r6
t6
v6
x6
p7
r7
t7
v7
x7
q0
s0
u0
w0
y0
q1
s1
u1
w1
y1
q2
s2
u2
w2
y2
q3
s3
u3
w3
y3
q4
s4
u4
w4
y4
q5
s5
u5
w5
y5
q6
s6
u6
w6
q7
s7
u7
w7
Je passe chaque groupe aux instructions avec une phoenix et la carte off logge
C1 40 01 81 11 40 <GROUPE> 00
C1 3C 01 0F 00 (donne une erreur 90 1D)
C1 3A 00 00 10
NB : Les valeurs des cls sont pour info
C1 40 01 81 11 p0 p1 p2 p3 p4 p5 p6 p7 q0 q1 q2 q3 q4 q5 q6 q7 00
90 02
C1 3C 01 0F 0090 1D
C1 3A 00 00 10
Reponse : 3A F0 FF 5F BC BA DD BF F7 DF 7D DF FF CF FE 37 FF 90 00
-----C1 40 01 81 11 r0 r1 r2 r3 r4 r5 r6 r7 s0 s1 s2 s3 s4 s5 s6 s7 00
90 02
C1 3C 01 0F 0090 1D
C1 3A 00 00 10
Reponse : 3A DF 7E 7B EF FF 4E EA BE FF DF 28 B5 BE FF CF DE 90 00
-----C1 40 01 81 11 t0 t1 t2 t3 t4 t5 t6 t7 u0 u1 u2 u3 u4 u5 u6 u7 00
90 02
C1 3C 01 0F 0090 1D
C1 3A 00 00 10
Reponse : 3A BF 22 15 1F 21 15 5F 90 5D j1 j2 j3 j4 j5 j6 j7 90 00
-----C1 40 01 81 11 v0 v1 v2 v3 v4 v5 v6 v7 w0 w1 w2 w3 w4 w5 w6 w7 00 90 02
Page 20 sur 31
90 02
Page 21 sur 31
xx
zz
90
cc
ff
xx
zz
5D
cc
xx
xx
zz
dd
cc
pp
90
zz
dd
cc
pp
51
zz
dd
90
pp
yy
zz
dd
5E
pp
yy
zz
dd
ee
82
yy
80
dd
ee
ss
yy
mm
dd
ee
ss
yy
mm
dd
ee
ss
yy
mm
90
ee
ss
yy
mm
5C
ee
ss
yy
mm
cc
ee
ss
91
mm
cc
ee
ss
51
mm
cc
21
ss
Ou:
xx : on sen fout
yy MK1 primaire du provider pp
zz MK1 secondaire du provider pp
mm le PBM (maque des options achetes)
cc Cle 0C
dd Cle 0D
ee Cle 0E
ff date
pp PPUA
ss signature
dcrypter les cls avec
C1 40 01 80 11 YY YY YY YY YY YY YY YY YY YY YY YY YY YY YY YY 00
Cest dire les 8 yy ecrits une fois puis une autre
C1 3C 01 0F 0090 02
C1 3A 00 00 10
Rponse : 3A P1 P2 P3 P4 P5 P6 P7 P8 P1 P2 P3 P4 P5 P6 P7 P8 00
O P1 P2 P3 P4 P5 P6 P7 P8 est la MK1 primaire
Rpeter la manip avec zz
Rcuprer la MK1 secondaire.
Page 22 sur 31
5.1 Gnralits
Ce qui suit est une compilation des FAQ VIACESS traduites.
une carte VIACCESS est trs semblable une carte SECA, le principe restant le mme.
Les cartes VIACCESS sont des cartes BULL modle PC2 ou PC3. Elle peuvent tre
fabriques sous licence BULL.
Les commandes VIACCESS sont construites sous la forme
CA cc p1 p2 ll DATA ou 87 cc p1 p2 ll DATA
CA entte, vaut toujours CA ou 87 (classe dinstruction) ou BC non publique
cc commande
p1 paramtre 1
p2 paramtre 2
ll longueur de linstruction
DATA paquet de donnes.
Classe 87 : classe FAC : donnes dinformation gnrale (ex : n provider)
Classe BC : classe indtermine, jamais vue dans un log
Classe CA : classe dexcution
Si on en croit la documentation, VIACCESS est le nouveau nom de D2MAC pour les
moyens de transmission numriques. On peut, parat il, lire certaines infos dune carte
VIACCESS dans un terminal D2MAC.
Lanalyse des commandes sera faite en se basant sur EurocryptM, les diffrences seront
signales
5.2 ATR
3F 77 18 25 00 29 14 00 62 68 90 00
Cet ATR est observ, non seulement sur des cartes TPS, mais aussi SRGSSR (Suisse) et
NTV+ (Russie). Il semble totalement indpendant de TPS, et semble tre lATR
standard VIACCESS.
3F
77
18
25
00
29 14 00 62 68
90 00
Page 23 sur 31
Convention inverse
7 octets historiques TA1, TB1, TC1 transmis TD1 non transmis.
TA1
TB1 Vpp = 5 V, 50 mA max
TC1 Temps supplmentaire du chien de garde / 2 bits
TD1 non transmis Protocole T=0 asynchrone en half-duplex 9600 bds
Octets historiques
Fin de transmission - ok
ATR Spcial
On a dj vu un ATR spcial sur les dcodeurs TPS/Thomson :
3F 27 17 C4 01 2C 29 14 00 62 68 90 00
La mme carte dans un autre type de dcodeur (mme TPS) donne lATR classique.
3F
27
17
C4
01
2C
29 14 00 62 68
90 00
Convention inverse
7 octets historiques, TB1 transmis
TB1 Vpp = 23 V, 25 mA
Inconnu
Inconnu
Inconnu
Octets historiques
Fin de transmission - ok
On peut donc conclure que le type dATR est fonction du decodeur utilis dans un cas
(THOMSON). Cela veut donc dire que la carte pourra ragir de faon diffrente suivant
le dcodeur utilis. Ce comportement provient peut tre du logiciel rsident dans le
dcodeur (OpenTV).
5.2 liste des instructions
5.2.1 Instructions de classe 87
Instruction 02 :
Prparation des Donnes dUsage General (DUG)
Direction des donnes : D->-C ( Dcodeur vers Carte )
Example : 87 02 00 00 03
Commentaire : Initialisation de la demande de transmission de DUG. Le
dcodeur indique quil va transmettre un bloc de trois octets contenant lindex de
bloc lire et transmettre par la carte. les 3 octets son appels F, NP1 et NP2
(Numro Prestataire). F peut avoir la valeur 00 (lecture du premier bloc), ou 40
(lecture bloc suivant) indiqu par la DUG NP1 NP2. Si le bit de poids fort de F
est positionn, les 2 bits suivants pointent vers un dbut de bloc associ la DUG
NP1 NP2 et P1 P2 est la rfrence du bloc.
Instruction 04 :
Demande la transmission de la rfrence du bloc DUG
Direction des donnes : C->-D (Carte vers Dcodeur)
Example :
87 04 00 00 07
Commentaire : suis linstruction prcdente. Un mot de 7 octets est attendu par le
dcodeur : rfrence de bloc (2 octets) longueur du bloc (2 octets) 3 octets
"00" pour complter le mot.
Instruction 06 :
Demande la transmission de la DUG
Direction des donnes : C->-D (Carte vers Dcodeur)
Page 24 sur 31
Example :
87 06 00 00 09
Commentaire: Indique que le dcodeur est prt recevoir les donnes du bloc.
Laddresse relative est confirme par les octets P1 P2. 9 octets sont attendus.
Commentaire : Toutes les instructions de classe 87/VIACESS sont les mme que les
instructions de classe 87/EurocryptM.
5.2.2 Instructions de classe BC
Instruction 52 :
Fonction inconnue
Direction des donnes : ?
Example :
BC 52 00 00 00 (rponse : erreur mauvaise rfrence/adresse)
Commentaire : unique instruction de cette classe. Il est maintenant clair que les
cartes VIACESS ne sont pas des modles BULL CP8, qui ont un jeu
dinstruction complet en classe BC. Cette commande na jamais t logge.
5.2.3 Instructions de classe CA
Instruction 18 :
Mise jour de cls / abonnement (EMM).
Slection du destinataire :
Si P1 = 00 : En EurocryptM, ce paramtre est utilis pour spcifier une action
destination de toutes les cartes (EMM-G). Ce cas na jamais t rencontr pour
VIACESS. Il devrais exister sur des cartes programmes pour plusieurs bouquets
(plus dun provider). Toutes les donnes que nous avons pour linstant sont issues
de cartes mono-provider (TPS, SRGSSR, or NTV+). Une carte multi provider
pourrais utiliser les EMM-G.
Une carte TPS rpond 18 quand la commande CA 18 00 01 19 lui est passe, ce
qui prouve quelle accepte la commande.
Si P1 = 01 : Ce cas est le cas gnralement observ en VIACESS (logs de
SRGSSR & NTV+). La forme est la mme que pour EurocyptM. Ceci permet de
spcifier une action destination dun groupe de cartes (EMM-S) (Shared Group
ou groupe de la Shared Address). Une carte TPS rponds 92 00 la commande
CA 18 01 01 19 : on ne connat toujours pas le sens de 92 00.
Si P1 = 02 : En EurocryptM, ceci est utilis pour adresser la mise jour une
seule carte (EMM-U). Le cas na pas t constat dans les log examins , mais la
carte TPS rpond quand la commande CA 18 02 01 19 lui est passe, ce qui
prouve quelle accepte la commande.
Exemple de mise jour de cls : (log SRGSSR)
CA 18 01 04 19
18
A1 03 00 94 0F
EF 08 9C 70 77 97 12 15 ED 6E
F0 08 ED FE 9C 0A 9A 41 F0 23
60 91 00
CA 18 01 04 19
P1=01 > EMM-S
P2=04 > MK04 Cl de Cryptage
A1 03 00 94 0F
03 = longueur, 00 94 > channel ID
Page 25 sur 31
Annonce la carte quelle doit utiliser la cl p2 pour dcrypter les mots qui
suivent EA 10
Example de commande CA 88 : (log TPS)
Page 26 sur 31
CA 88 00 08 26
88
e2 03 28 e2 00 e2 03 28 e2 07
ea 10
66 e6 c1 27 cf fa 3b 82
3d b1 aa d3 c9 3b 3b bc
f0 08
f9 36 f3 b0 3d d6 db fe
90 00
88
e2 03
28 e2
07
66...82
3d...bc
F0 08
F9...fe
90 00
Prt recevoir
Annonce la date ???
Date (2 juillet 2000)
A dfinir, (02 pour SRGSSR et 1E pour NTV+)
Premier mot crypt
Deuxieme mot crypt
Annonce la checksum et sa longueur
Checksum (function hash)
ok
Page 27 sur 31
Page 28 sur 31
0010000
anne
0=1980
0011 10000
mois jour
A faire : tester avec des longueurs diffrentes (90 02 pourrais tre longueur
incorrecte ?)
Page 29 sur 31
Page 31 sur 31