TROISIEME PARTIE :
CARTE A PUCE
Rédigé et présenté par : Keuambou
Fouolap Yannick Page 32
RAPPORT DE STAGE
CHAPITRE 6 : LA CARTE A PUCE
I) Présentation
Encore appelé carte smart, la carte à puce est
le dernier élément de la chaine de codage en
télévision. Le CAM s'occupe du décryptage mais a besoin
d'informations supplémentaires pour décoder les signaux. Ces
informations supplémentaires lui sont données par la carte
à puce. Ces informations varient selon les fournisseurs, qui les
modifient périodiquement. Certains fournisseurs ne changent leurs
clés que rarement ou jamais et d'autres changent leurs clés
toutes les heures.
Sur une carte à puce on trouve un petit processeur ou
microcontrôleur et de la mémoire. Le microcontrôleur
contient un logiciel qui est exécuté à la demande. Toutes
les données dont il a besoin sont dans la mémoire. Le logiciel ne
change pas contrairement au contenu de la mémoire qui doit être
mise à jour régulièrement, soit par une mise à jour
automatique, procédure du logiciel qui est déclenchée par
un signal du satellite, soit manuellement. Certaines cartes font ce qu'on
appelle l'Auto Update c'est-à-dire que leur microcontrôleur
calcule lui-même les nouvelles clés.
Les cartes sont émises par le dispositif de gestion des
abonnés2 (SGA), qui les valide en les programmant pour qu'elles puissent
décoder les clés électroniques nécessaires pour
commander la séquence de désembrouillage permettant ainsi
l'accès à certaines catégories de programmes et de service
de données.
Ce processus d'émission et de validation permet de
personnaliser la carte afin qu'elle ne puisse fonctionner qu'avec un seul
décodeur.
Voici quelques exemples de cartes à puce.
Rédigé et présenté par : Keuambou
Fouolap Yannick Page 33
RAPPORT DE STAGE
II) Fonctionnement de la carte à puce
La carte à puce fonctionne grâce à un jeu
de fichiers qui contient toujours une combinaison de logiciel et de variables
d'accompagnement. Le logiciel est chargé dans le processeur de la carte
et les variables dans l'Eeprom de la carte.
Le logiciel est statique mais quelque fois une mise à
jour est nécessaire pour une raison ou une autre. La cause la plus
courante est quand le logiciel ne répond pas correctement à une
instruction. Et c'est ainsi qu'une carte devient vulnérable et peut
être désactivée par le fournisseur. Le fournisseur envoie
des ECM (Entitlement Control Messages) pour mettre à jour la carte.
Code dans le fichier processeur:
;*************************************************
; function : 0E C1 CLASS instruction *
; request smartcard serial number *
; command : C1 0E 00 00 08 * ; answer : 0E 00 03 00 00 00 CA
13 66 90 00 * ; i.e. region is 03, UA is 00 00 00 CA 13 66 *
; It corresponds to serial number 013.243.238 *
;*************************************************
; Instr. 0E: send the byte sequence stored from offset 0x00 in
the external EEPROM ; The number of bytes to be sent was stored in file
register 0x0F (it should be 8)
Instr_0E MOVLW 0x00 ; Offset in the external EEPROM
- Lire dans l'eeprom, à la position
hexadécimale 00.
COMM_EEPR CALL EEPROM_send ; Transmit data from external
EEPROM
Rédigé et présenté par : Keuambou
Fouolap Yannick Page 34
RAPPORT DE STAGE
- Lire le contenu des x octets consécutifs de
l'Eeprom, à partir de la position mentionnée. (Ceci est le
contenu de la procédure "EEPROM_send")
GOTO TX9000 ; Transmit status bytes
- Si tout est OK, exécuter la procédure
"TX9000".
(La procédure TX9000 renvoie la réponse
standard Seca pour "Commande exécutée: pas d'erreur", soit "90
00").
L'Eeprom est comme une base de données contenant toutes
les informations nécessaire au décodage d'un canal. Ce sont ces
informations qu'utilise le logiciel pour fonctionner et vous attribuer les
droits pour regarder un canal. C'est-à-dire que si l'Eeprom ne contient
pas les données demandées, ou si ces données sont mal
disposées, le logiciel ne fonctionnera pas et votre écran restera
noir ou affichera un message comme quoi vous n'avez pas les droits pour
regarder ce canal. Mais ces données de l'Eeprom doivent être
rangées selon une spécification imposée par le
logiciel.
Code dans le fichier Eeprom:
ORG 0x000
Adresse Hexa 00
; 0000-0007
; Answer to 0e (smartcard serial number)
DATA 0x00,0x03,0x00,0x00,0x00,0xCA,0x13,0x66
Le numéro de série en hexadécimal (8
octets)
; 0008-000E
; Answer to 16 (number of providers):
; 00 00 nn nn 00 00 FF
; nn nn: 1 bit per provider
DATA 0x00,0x00,0xFF,0xFF,0x00,0x00,0xFF ; <=== UPDATE
Le nombre de fournisseurs supportés par la carte (7
octets)
Rédigé et présenté par : Keuambou
Fouolap Yannick Page 35
RAPPORT DE STAGE
ORG 0x010
Adresse Hexa 10
; 0010-0189
; Answers to 12 (ident):
; ii ii bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb bb
; 00 xx xx xx zz zz
; ii ii: provider channel
; bb..bb: provider name
; xx..xx: smartcard address
; zz zz: termination date (7 bits year since 1990 + 4 bits
month + 5 bits day)
DATA 0x00,0x00,'S','E','C','A',' ',' ',' ',' ',' ',' ',' ','
',' ',' ',' ',' '
DATA 0x00,0x00,0x00,0x00,0xFF,0xFF ; Id: 00 00, PPUA: 00 00
00, Date: FF FF
Ensuite ce sont les clés de tous les fournisseurs
présents sur la carte Vous pouvez voir dans cet exemple que les
données commencent par celles du fournisseur 00 00, le fournisseur
SECA
|