Info sur le seca2

Voir le sujet précédent Voir le sujet suivant Aller en bas

Info sur le seca2

Message  KIFFANSAT le Lun 9 Fév - 0:34

DE soleildemo


--------------------------------------------------------------------------------

Le principe des cartes à puces.
Les cartes à puces ne sont pas simplement des circuits dans lesquelles on stocker des informations, pour cela on a un nom : disque dur ou DVD ou encore CD. Les cartes à puces sont des véritables petits ordinateurs complets qui comprennent, un CPU ou microprocesseur, qui traite les données entre autre le cryptage et le décryptage, une rom qui contient le programme qui fera fonctionner le système et une EEPROM qui contient les données qui seront utilisé pendant le traitement et maintenant des cryptos pour le traitement spécifique de certain type de cryptage (plus tard, plus tard).
C’est un peu comme si vous aviez un boîtier, une carte mère, le processeur, le coprocesseur, le Bios et le disque dur (tout ça sur une carte, impressionnant ?).
Mais pas seulement, il y a aussi des points d’entrées et de sorties qui permettront à la carte de communiquer avec l’extérieur.

Ces cartes dialoguent vers l’extérieur au moyen d’une liaison série, elles on besoin pour fonctionner de 5 signaux :

• Une tension d’alimentation 5V (Vcc)
• Un signal de masse, référence des autres signaux (GND)
• Un signal de donnée série (SDA)
• Un signal « horloge » de cadencement (CLK)
• Un signal de remise à zéro, pour l’initialisation (RESET)

Ces cartes ne font pas n’importe quoi elles respectent une norme qui est la norme ISO 7816 qui régit les cartes à puces (Toutes le cartes à puce) par exemple la norme ISO 7816-3 régit tout ce qui est communication entre la carte et l’extérieure.
Même si la carte est capable d’actions propres (calcul ou envois de données), elle ne les fera pas de sa propre initiative, elle attendra toujours un ordre de l’extérieur.
Donc tous les systèmes utilisant des cartes à puces sont basé sur un dialogue Maître (Par exemple le décodeur), esclave (la carte) ou cette dernière est passive et se contente de renvoyer une réponse à une question posée.

Exemple de dialogue en vulgarisé :
Le décodeur : combien de providers a tu ?
La carte : 4

En SECA2 ça donnerait :
Le décodeur :
C1 16 00 00 08 (nous verrons cette commande plus tard)
La carte : 0F (a transformer en binaire 1111 ce qui donne 4 providers)

Rien de plus simple mais qu’est ce qui se cache sous ce dialogue et bien c’est ce que nous allons voir.

Je vais pas faire un s sur la norme ISO7816, c’est pas le but juste quelques informations pour pouvoir continuer à suivre

ISO-7816
Les normes ISO 7816 décrivent tous les aspects des cartes de plastique incorporant des microcircuits et opérant par contacts. Elles sont les références technologiques utilisées par l'ensemble des fabricants de cartes et de terminaux, des encarteurs, et des développeurs d'applications dans le monde.

ISO 7816-1 : cette première partie de la norme ISO 7816 spécifie les caractéristiques physiques des cartes à microcircuits avec contacts. Elle complète les normes ISO 7810 et ISO 7813 qui définissent les caractéristiques physiques des cartes plastiques équipées de bandes magnétiques (taille des cartes, zone d'embossage, zone des pistes magnétiques, mais aussi résistance physique aux torsions...). La norme ISO 7816-1 complète ces deux normes en ajoutant des contraintes physiques supplémentaires du fait de la présence de microcircuits sur les cartes : critères de résistance aux rayons ultraviolets, aux rayons X, et résistance électrique des contacts du microcircuit.

ISO 7816-2 : la norme ISO 7816-2 définit la dimension et la position des contacts des microprocesseurs qui sont implantés dans les cartes.

ISO 7816-3 : la norme ISO 7816-3 définit le protocole de communication qui doit être utilisé par les cartes afin de dialoguer avec le monde extérieur. Cette partie décrit les signaux électriques et les informations qui sont échangées lors de toute communication.
Les courants, les tensions, les fréquences des signaux sont normalisés ainsi que le format des données échangées lors d'un dialogue entre une carte et un lecteur de carte. C’est cette partie de la norme qui va nous permettre de découvrir progressivement tous les secrets des cartes et particulièrement de notre 7.1

ISO 7816-4 : la norme ISO 7816-4 a pour objectif de définir les commandes inter industries pour les échanges internationaux ainsi que les mécanismes de sécurité qui doivent être implantés pour accéder aux données inscrites dans les fichiers.

Bon ça continue mais on n’en aura pas besoin.

Donc tout est normalisé et rien ne doit ressembler à une carte qu’une autre carte, nous y reviendrons plus tard avec structure des instructions en SECA2 qui découlent directement de cette norme

Nous l‘avons compris la carte à puce est comme une armoire compartimenté, dont certains des compartiments sont fermés à clés et d‘autres sont accessibles.
Parmi ces compartiments accessibles en lecture directe nous avons l‘ensemble des informations nécessaires à la mise en clair des émissions cryptées.

Vous l’aurez compris c’est la norme ISO7816-3 appliqué à S*C* qui va être la base de notre étude.

APPLICATION DE L’ISO 7816-3

A la mise sous tension, la première chose que la carte doit faire, c‘est s‘identifier avec toutes ses caractéristiques.

C‘est ce que nous appelons l‘ATR.

Format général de l'ATR (Anglais: Answer To Reset—, réponse au reset = la carte s‘annonce au système avec ses spécifications) par exemple notre 7.1 va répondre:

3B F7 11 00 01 40 96 70 70 17 0E 6C B6 D6 90 00

Bien sur l‘ATR de la V7.1 est conditionné par la norme ISO 7816 donc elle permet de fixer:

Les conventions de codage des octets
Les temps de transmission d‘un bit
La valeur de tension de programmation
Le protocole de communication
Un historique à la mise sous tension

Le dixième octet « 17 » nous donne la version de la carte (à lire de gauche à droite), nous avons donc bien affaire ici a une carte V7.1 mais voyons plutôt chaque octet en nous basant sur la norme pour commenter chaque octet.

TS : 0x3B Convention directe à une vitesse de transmission de 9600 bauds
T0: 0xF7 Longueur de l‘ATR, F signifie que de TA1 à TD1 sont transmis, 7 signifie que 7 octets après TD1 sont transmis (caractères historiques de T1 à T7)
TA1: 0x11 FI (Facteur de conversion de l‘horloge) = 1 (372‰ min. 1 MHz to Max. 5 MHz ‰ utilise 3,579 MHz); DI (facteur d‘ajustement de débit) = 1
TB1: 0x00 Courant de programmation de 0 à max. 25 ma); Tension de programmation = 0 volt (ne nécessite pas tension de programmation sur VPP, la carte génère une tension interne à partit des +5V, VCC d‘alimentation.
TC1: 0x01 N (extra guard time) = 1 (temps supplémentaire de 1)
TD1: 0x40 protocole de transmission T = 0 (asynchrones half duplex); No TCK (check character) transmission de l‘octet TC2
TC2: 0x96 Octet spécifié dans la norme ISO, est utilisé comme temps supplémentaire de chien de garde.

Les 7 octets suivant (T1-T7) sont les caractères historiques. De ces 7 octets les deux premiers identifies le fabricant

T1 et T2 : 0x70 : identifient le constructeur de la carte.
T3 : 0x17 identifie la version de la carte (à lire de droite à gauche ici 7.1)

Les quatre octets (octets 11 à 14) suivant indiquent le mode de fonctionnement il y a en 3 (en fait 4 mais on peux pas en parler ).

L'ATR est différent dans chaque mode.

1) Le mode utilisateur (Normal mode - NM)
T4 T5 T6 T7 = 0x0E 0x6C 0xB6 0xD6
C’est dans ce mode de fonctionnement que la carte arrive dans vos lecteurs et c’est ces 4 valeurs que la carte vous donnera en réponse à une mise sous tension ou encore un reset.
EFFC-EFFF sont égaux à 7F53-7F56 et L‘ATR se termine par: 0E 6C B6 D6

2) Le mode de programmation basse (Low Program fashionœLPM) EFFC-EFFF sont égaux à 7F57-7F5A

3) Le mode de programmation haute (High Program fashionœHPM) EFFC-EFFF sont égaux à 7F4F-7F52 et L‘ATR se termine par: A5 96 58 7C

Voici comment se déroule un échange standard d‘informations entre le maître et la carte :

• A la mise en service, le maître génère un RESET sur la pin MCLR, la carte répond avec 14 d‘octets appelé ATR + deux octets de statut (90 00).
• Le maître envoie la commande Class INS P1 P2 LEN (juste après).
• La carte renvoie l‘instruction comme accusé de réception INS, octet de confirmation (English: ‚Acknowledge bytes)
• Le maître envoie éventuellement les données complémentaires
• La carte envoie la réponse
• La carte envoie le statut (ici 90 00) et repasse en mode d‘attente.

Voilà ça prend forme tout doucement, je vais pas vous inonder de termes techniques supplémentaires lundi nous verrons comment est composé une commande format ISO7816 et plus particulièrement les commandes SECA (la théorie restant valables pour toutes les cartes).

Dans la première partie nous avons vu que toutes les cartes étaient soumises à la norme ISO7816, nous avons aussi vu que la carte n’était qu’un esclave qui exécutait des instructions (ou ordres venant d’un maître).
Maintenant nous allons voir comment donner des ordres à ces cartes et bien sur la norme nous donne les limites.

Pour la compréhension nous diviserons l’instruction en 2 parties
1) L’entête
2) Le corps
N’oublions pas que nous ne sommes pas encore spécifiquement dans la partie instructions SECA mais dans la partie générale qui régit toutes les cartes existantes

1) L’ENTETE
Et bien c’est pas compliquer chaque instruction commence par une entête qui est toujours composé de la façon suivante :
DANS LA NORME ISO8616 LE HEADER UNIVERSEL EST DE 5 OCTETS EN CLAIR OU NON CRYPTES VOICI NOS 5 OCTETS :

CLA INS P1 P2 LEN


NOUS VERRONS PLUS TARD QUE TROIS AUTRES PARAMETRES SE SONT AJOUTES AU SECA2 DANS DES CONDITIONS PARTICULIERES, NOUS LES APPELLERONS P3-P4-P5 MAIS NE FONT PAS PARTIE DE LA NORME.

CLA : LA CLASSE, DETERMINE LE TYPE DE CRYPTAGE CONCERNEES, UN SYSTEME PEUX AVOIR PLUSIEURS CLASSES.
PAR EXEMPLE DANS LE CAS DE MEDIAGUARD (SECA2) IL N’A PAS CHANGE PAR RAPPORT A SECA1, ET EST TOUJOURS C1.
EN VIACESSE1 OU 2 CET OCTET PREND LA VALEUR DE CA ( OU 87 x mais jamais loggué)
EN NDS : Dx (x = 0,1,2,3,4,5,6,7)
INS : C’EST L’INSTRUCTION PROPREMENT DITE, OU ENCORE LA COMMANDE. C’EST CET OCTET QUI DETERMINE L’OPERATION A EFFECTUE PAR LA CARTE PAR EXEMPLE.
Pour SECA pour demander le nombre de providers présents, on utilisera l’instruction 16 on aura donc comme début d’instruction C1 16
P1 ET P2 : SONT 2 PARAMETRES QUE LA CARTE REÇOIT AVEC LA COMMANDE. LEURS SIGNIFICATIONS DEPENDENT DE LA COMMANDE ENVOYEE. ILS PEUVENT ETRE INUTILISES MAIS DOIVENT TOUT DE MEME ETRE PRESENTS, ILS SERONT ALORS A 00.
Par exemple pour la commande précédente P1 sera à 00 et P2 sera à 00
Donc C1 16 00 00
LEN : EST SOIT LE NOMBRE D’OCTETS QUI COMPOSE LE CORPS, DANS CE CAS LA CARTE S’ATTENDRA A RECEVOIR 08 OCTETS SUPPLEMENTAIRES AVANT DE TRAITER LA COMMANDE. SOIT LA LONGUEUR DE LA CHAINE DE REPONSE QUE LE MAITRE S’ATTEND A RECEVOIR EN PROVENANCE DE LA CARTE.
Pour cette instruction ce sera 08 (oublié pas que c’est en Hexadécimal)
Notre header, qui est dans ce cas ci la commande complète, sera donc :

C1 16 00 00 08

(mais nous la verrons bien plus en détail lorsque nous verrons les instructions une à une).
Mais ce n’est pas toujours le cas, parfois l’entête ne suffit pas à faire exécuter à la carte les instructions que nous voulons lui faire exécuter, dans ce cas en plus de l’entête l’instruction aura un corps, qui contiendra les instructions et se présentera donc comme Ca :
CLASS INS P1 P2 LEN + CORPS.

2) LE CORPS
CERTAINES INSTRUCTIONS NECESSITENT L’AJOUT D’UN OCTET, QUE NOUS APPELLONS NANO ET QUI EST AJOUTE APRES LES 5 OCTETS, POUR ETRE COMPRISES.
CES NANO SONT RELIEES A L’INS ET ONT POUR BUT DE FAIRE CERTAINES ACTIONS COMME PAR EXEMPLE UNE MISE A JOUR.

LA NANO VA DONC NOUS DONNER PLUSIEURS INFORMATIONS
1) LE TYPE D’OPERATION A FAIRE
2) LE NOMBRE D’OCTETS QUI LA SUIVENT.
UNE NANO EST CONSTRUITE DE LA FAÇON SUIVANTE: XY = NANO Y DE LONGUEUR X, LA LONGUEUR DES DONNEES QUI SUIT UNE NANO FAIT PARTIE INTEGRANTE DE SA CONSTRUCTION.

EXEMPLE:
NANO 0X04 = NANO 0X4 DE LONGUEUR 0X0, N’EST SUIVIE D’AUCUNES DONNEES (0).
NANO 0X82 = NANO 0X2 DE LONGUEUR 0X8, SUIVIE DE 8 OCTETS DE DONNEES (.
LES LONGUEURS SUIVANTES SONT ADMISSIBLES:
0 ...C CORRESPONDENT A 0..12 OCTETS,
LES D=16 OCTETS
LES E=24 OCTETS
LES F=32 OCTETS
NANO 0XD1 = NANO 0X1 DE LONGUEUR 0XD, SUIVIE DE 16 OCTETS DE DONNEES.
TOUS LES NOMBRES SERONT DONNES EN HEXADECIMAL.

Par exemple si le cryptage n’existait pas et que toutes les commandes était envoyé en clair et sans signature on aurait pour la mise à jour d’une clé l’instruction suivante :
C1 40 01 P2 Len 90 5x 11 22 33 44 55 66 77 88
C1 = Seca
40 = Mise à jour
P1 = Indice provider à qui on envoi l’instruction
P2 = Clés Utilisé (Pas besoin ici puisqu’on suppose ne pas en avoir besoin)
Len la Longueur du corps ici 10 octets qui donne 0A en hexadécimal
90 = la nano reliée à l’instruction 40 qui veut dire on crée ou on ajoute ou on réécrit une clé primaire donc suivant ce que nous avons dis, 9 octets le suivent (1 octet pour choisir quel clé on crée et 8 octets de la clé)
5x = Création de la Clé x ou x est une des clé allant de 0 à F
Suivent les 8 octets de la valeur de la clé (1122334455667788).

Malheureusement si la théorie est exacte, en pratique les providers ajoutent une série de protections, signature, algorithme divers et autres tracasseries, qui donnerons une instruction quelque peu différente.

Le Système SECA
Tout le système SECA est basé sur une série de manipulations mathématiques qui consistent à masquer une instruction en clair. Cette série de manipulations est un tout, qu’on appelle l’algorithme SECA.
Le nouvel algorithme SECA utilise des clés, des permutations et des Xor, qui vont permettre d’opérer des transformations qui vont masquer l’instruction originale.
Prenons un exemple de masquage simple, nous avons une trame ou une phrase qui est :


Je décide de crypter cette trame avec une clé dont la valeur hexadécimale est :
11 22 33 44 55 66 77 88

et mon algorithme sera un simple XOR.
On commence par transformer ma phrase en valeurs hexadécimales en effaçant les blancs = MOI VOTRE AMI ANDRE = 4D 4F 49 56 4F 54 52 45 41 4D 49 41 4E 44 52 45
Il nous reste à découper cette phrase en autant de bloc de huit octets que possible et à appliquer le xor, le hasard veux que nous ayons deux série , nous utiliserons donc deux fois notre clé (ne vous focalisé par sur ça, ce ne sont que des conventions):
4D 4F 49 56 4F 54 52 45 41 4D 49 41 4E 44 52 45
XOR
11 22 33 44 55 66 77 88 11 22 33 44 55 66 77 88
----------------------------------------------------------
5C 6D 7A 12 1A 32 25 CD 50 6F 7A 05 1B 22 25 CD

Voilà la trame qui va arrive à son destinataire, il est évident que s’il se contente de transformer cette trame hexadécimale en ASCII, ça ne donnera pas grand-chose :

KIFFANSAT
Admin

Messages : 100
Date d'inscription : 01/10/2008

Voir le profil de l'utilisateur http://kiffan.bbactif.com

Revenir en haut Aller en bas

Re: Info sur le seca2

Message  KIFFANSAT le Lun 9 Fév - 0:36

la suite...............
Il faut donc la clé pour pouvoir le décoder.

Cette exemple est forcement simpliste, mais illustre bien tout le système SECA qui fonctionne de cette façon avec des Xor, des Inversions, des Décalages etc……le tout basé sur des clés pour chaque opération, c’est ces clés que nous allons voir maintenant.

Les clés
Les diverses clés des différents décryptages se trouvent dans l’Eeprom de votre carte, elles sont la plupart cryptés, mais pas tous, nous y reviendrons.

Une clé est un enregistrement (record) et tous les records sont sur 12 octets.

Nous devons, pour la compréhension diviser les clés en deux types :

Clés SECA et les clés PROVIDERS

Elles même divisées en deux sous-types :

Clés de décodage et clé de management.

Une clé, pour être utilisée, est composée de 16 octets elle est divisées en :

Une Clé Primaire (PK) de 8 octets, et une Clé Secondaire, (SK) de 8 octets.

La Clé Secondaire et la Clé Primaire PEUVENT être égales. Les PK et SK sont numérotés de 0x00 à 0x0F et nous avons donc 16 clés possibles.

Les Clés 0x0C à 0x0E sont les clés de décodage (CD). Les Clés 0x00 à 0x0B sont les clés de management (MK).
Par la subdivision en clés SECA et clés de provider, une structure hiérarchique a été créée: chaque provider peut changer uniquement ses propres données. Pour les opérations allant au-delà de cela, comme justement l’ajout ou l’effacement de provider, une clé SECA est nécessaire.

La clé SECA 0x00 est nécessaires pour chaque opération importante sur la carte, comme l'effacement ou l’ajout de provider (diffuseurs de programme). Cette clé est différente et unique pour chaque carte et peut aussi être utilisée pour activer/annuler une carte.

Sa structure est :
F0 + 8 OCTETS CLEF + CHKS + 00 + 80
Une petite explication des octets qui sera valable pour toutes les clés en partant de gauche : le premier octet (11) est divisé en deux quartets :
Le quartet fort nous renseigne trois types de clé :
• Fx attribués uniquement à des clés primaires (PK), (F = Fabrique)
•7x attribués uniquement à la clé secondaire SECA (SK)
•5x attribués indifféremment à des clés primaires et secondaires

UNE CHOSE IMPORTANTE A NOTER: UNE CARTE EN MODE DE PROGRAMMATION BASSE (LPM) EXIGE UNE CLE 5X ET EN AUCUN CAS UNE CLE FX. DANS LE LPM, LA CARTE N'ACCEPTE AUCUNE COMMANDE AVEC DES CLEFS DONT LE BIT 7 EST MIS A 1 (STATUT: 90 22).

Le quartet faible nous donne la clé du provider.
Les huit octets suivant (10 à 3) représentent la valeur de la clé notez qu’en SECA2 elles sont cryptées à même la carte.
L’octet 2 est le checksum de la clé (complément à 256)
L’octet 1 est toujours à 00 pour les clés, il prend d’autres significations selon les types d’enregistrements.
Le dernier octet est divisé en deux quartets :

Le quartet fort nous donne la classe de l’enregistrement :
• 8 Record avec clé primaire
• 9 Provider Package bitmap (disparu en tant que record dans les 7.x se trouve dans une autre zone mémoire que nous verrons ensuite).
• C Record avec clé secondaire
• A Provider PPV Preview Record
• B Provider PPV Record
• D Provider PPV Credit Record
• E SECA Record
Le quartet faible nous donne le provider concerné
• 0 pour SECA
• 1 pour le premier provider présent sur la carte
• 2 pour le second provider présent sur la carte etc.

La structure de la MK0 secondaire sera donc :
70 + 8 OCTETS CLEF + CHKS + 00 + C0
La clé SECA 0x01, est identique pour toutes les cartes, indépendamment du fournisseur. Contrairement à la clé SECA 0x00 qui est unique pour chaque carte, on peut transformer presque toutes les cartes avec la clé 0x01 au moyen d'EMM-G, (voir instruction 0x40) !
Sa structure est :
F1 + 8 OCTETS CLEF + CHKS + 00 + 80
La clé provider 0x00 est utilisée entre autre pour les jetons ou les évents PPV.

Sa structure est avec clé primaire:
F0 + 8 OCTETS CLEF + CHKS + 00 + 81
La même pour la clé secondaire donnerait :
50 + 8 OCTETS CLEF + CHKS + 00 + C1

La clé provider 0x01 est extrêmement importante.
Celle-ci est affectée à un groupe de cartes et sert à l'opération de mise à jour des clés de décodage. Avec la bonne clé 0x01 ainsi qu'avec un PPUA valide le provider envoie l'ordre C1 40 XX 81 4E avec lequel les clés sont mises à jour par Super-encryption (nous verrons que c’est un peu plus complexe maintenant).
Les données sont déchiffrées avec la clé 0x01 et on récupère les clés de décodage actives qui sont ensuite écrites sur la carte. Nous appellerons ce processus Auto update.

Si on réussit à modifier une carte, pour qu’elle soit traitée par les provider comme un carte d’abonné régulière elle sera actualisée constamment.

Une possibilité d’avoir une carte auto update serait ainsi le changement de PPUA et de MK1 d’une carte épuisée.
Si celle-ci est écrite correctement à l’endroit souhaité, on reçoit les mises à jour de clés.

Sa structure avec clé primaire est :
F1 + 8 OCTETS CLEF + CHKS + 00 81
N’oubliez pas que le INF PROV peut changer selon l’emplacement du provider dans la carte.

J'ai anticipé quelque peu dans ce chapitre, tous les processus cités sont expliqués plus loin et bien plus en détails plus tard (voir instructions 0x0E, 0x16, 0x12, 0x3C 0x40).
Si les clés sont stockées sur la carte en usine, le cinquième bit (de 0x10) est positionné Les clés primaires sont stockés sur la carte de 0x10 à 0x1F.
Elles sont numérotées ainsi (à partir de 0x10) si le cinquième bit est positionné.

KIFFANSAT
Admin

Messages : 100
Date d'inscription : 01/10/2008

Voir le profil de l'utilisateur http://kiffan.bbactif.com

Revenir en haut Aller en bas

Re: Info sur le seca2

Message  KIFFANSAT le Lun 9 Fév - 0:37

Nous verrons plus loin ce que «bit positionné» signifie.
Seules des clé primaires ainsi numérotées peuvent être utilisées avec la clé secondaire correspondante.
Des bits supérieurs peuvent être aussi positionnées. Ainsi existent par exemple les clés indices F0, 50 et 51.

Bon, voilà pour les clés qui sont je le rappelle des enregistrements,
je vais pas vous saturer, je vais donc attendre deux trois jours, dans le cas ou vous auriez des questions sur cette partie…..

Dans la première partie nous avons vu que la carte était normalisée, dans la seconde partie nous avons vu qu’une instruction était constituée d’une entête normalisée et d’un corps.

Que ce corps était composé de nanos en relation avec l’instruction (second Octet de l’entête) et de leurs arguments (arguments = valeur appartenant a la nano). Continuons sur notre lancée avec la fin de la constitution d’une instruction SECA.

Pour clore la partie constitution d’une instruction, il faut parler de deux octets très importants (en tout cas pour ceux qui étudie) et qui indique la fin d’un traitement. Ce sont les octets de statuts.

OCTETS DE STATUT
Ces octets, les deux derniers d’une réponse, nous donnent une tonne d‘indications. Nous y ferons souvent référence pour expliquer la réaction à une instruction. Nous pouvons les diviser en trois classes.

1) Les octets de statut propre à la carte du type hardware et commençant par 0x01X.
2) Les octets de statut ISO7819 commençant par 0x6X qui sont indépendants du système et valables pour toutes les cartes ISO7816.
3) Les octets de statuts du système d’exploitation SECA.

SIGNIFICATION DES OCTETS DE STATUT

OCTETS DE STATUTS PROPRE A LA CARTE
0101 ERREUR EN PHASE DE TEST-HARDWARE: RAM INTERNE
0102 ERREUR EN PHASE DE TEST-HARDWARE: EEPROM
0104 ERREUR EN PHASE DE TEST-HARDWARE: RAM EXTERNE
0105 ERREUR DE PHASE DE TEST-HARDWARE: DISPOSITIFS AJOUTES (EX: GENERATEUR DE NUMERO ALEATOIRES)
0110 ERREUR EN PHASE DE TEST-HARDWARE: ROM CHECKSUM ERRONE

OCTETS DE STATUTS PROPRES A L’ISO7816
61XX OK : OCTETS XX RESTANTS
6200 ATTENTION EN TRAITEMENT
6281 DONNEES DE RETOUR PEUVENT ETRE ALTEREES
6282 FIN D'ENREGISTREMENT/FICHIER AVANT LA LECTURE COMPLETE
6283 LES DONNEES RETOURNEES PEUVENT CONTENIR UNE 'INFORMATION STRUCTURALE
6284 FICHIER NON VALIDE
6285 INVALIDE FORMAT FCI
6286 ECRITURE NON REUSSIE
62XX AVERTISSEMENT INCONNU : 62XX
6300 ATTENTION TRAITEMENT
6381 FICHIER COMPLET
6382 CORRECT APRES RELANCE
63CX TRAITEMENT AVERTISSANT : COUNTER=X
63XX AVERTISSEMENT INCONNU : 63XX
64XX ERREUR D'EXECUTION : 64XX
6500 ERREUR D’EXECUTION
6501 ERREURS DE STOCKAGE. PROBLEME DE LECTURE/ECRITURE SUR L’EEPROM OU AUTRE PROBLEME MATERIEL
6591 ERREUR MEMOIRE
65XX ERREUR D’EXECUTION
6700 MAUVAISES LONGUEURS DES DONNEES D’ENTREE
67XX MAUVAISE LONGUEUR DES DONNEES ESSAYER XX
6800 FONCTION NON SUPPORTEE PAR LA CARTE
6881 CANAL LOGIQUE NON SUPPORTE
6882 TRANSMISSION SECURISE DES MESSAGES NON SUPPORTEE
68XX FONCTION NON SUPPORTEE : 68XX
6900 COMMANDE NON PERMISE
6981 COMMANDE INCOMPATIBLE AVEC LA STRUCTURE DU FICHIER
6982 MODE DE SECURITE NON SATISFAISANT
6983 LA METHODE DE VERIFICATION BLOQUEE
6984 LES DONNEES DE REFERENCE INVALIDEES
6985 CONDITIONS D'UTILISATION NON SATISFAITES
6986 AUCUN EF ACTUEL
69XX COMMANDE NON PERMISE : 69XX
6A00 PARAMETRES INCORRECTS DE ZONE DES DONNEES
6A80 PARAMETRE FAUX DANS LA PARTIE DE DONNEES
6A81 FONCTION NON SUPPORTEE
6A82 FICHIER NON TROUVE
6A83 ENREGISTREMENT NON TROUVE
6A84 CELLULES DE MEMOIRE INSUFFISANTES DANS DOSSIER OU ENREGISTREMENT
6A85 LC CONTRADICTOIRE AVEC LA STRUCTURE DE TLV
6A86 P1-P2 INCORRECT
6A87 LC CONTRADICTOIRE AVEC P1-CP2
6A88 DONNEES DE REFERENCE NON TROUVEES
6AXX MAUVAIS PARAMETRES 6AXX
6B00 PARAMETRE/OCTET(S) DE REFERENCE (P1 OU P2) NON CORRECT
6CXX LE DEVRAIT ETRE XX
6D00 INSTRUCTION NON SUPPORTEE / INSTRUCTION INVALIDE OU PROTEGEE / INSTRUCTION NON LIBEREE
6E00 CLASSE D’INSTRUCTION (CLASS) NON SUPPORTEE
6F00 PAS DE DIAGNOSTIC PRECIS POSSIBLE

OCTETS DE STATUTS PROPRES AU SYSTEME SECA
9000 COMMANDE EXECUTEE SANS ERREUR
9001 ERREUR D’ECRITURE SUR L’EEPROM
9002 SIGNATURE ERRONEE (9002_B) OU ABSENTE (9002_A)
9003 PAS ASSEZ D’ESPACE POUR L’ECRITURE D’UN RECORD POUR UN PROVIDER DONNE
9004 FOURNISSEUR NON SUPPORTE
9005 INS 40/44 NANO RESERVEE A SECA (00)
9006 INS 0X3C, NANO 0X15/0X19/0X2C: PAS DE MEMOIRE POUR LES PREVIEW RECORDS
9007 FOURNISSEUR BLOQUE AVEC LA NANO 24 (UTILISER INS 40 NANO 02/01 POUR DEBLOQUER)
9008 INS 0X40, NANO 0X01: PAS AUTORISEE
9009 INS 0X40: PPUA PAS DANS LA BITMAP F0,
9010 INS 0X30: MAUVAIS PIN
9011 LE TESTBIT N’EST PAS A 0 : INSTRUCTION NON SUPPORTEE
9013 INS 0X40/44: MAUVAISE CLE, SEULES LES MK' S SONT AUTORISEES
9014 INSTRUCTION PRECEDENTE 0X02 INCORRECTE SUR UNE INSTRUCTION 0X04
9014 INSTRUCTION PRECEDENTE 0X32/0X36 INCORRECTE SUR UNE INSTRUCTION 0X34/0X38
9014 INSTRUCTION PRECEDENTE 0X3C INCORRECTE SUR UNE INSTRUCTION 0X3A
9014 INSTRUCTION PRECEDENTE 0X06 INCORRECTE SUR UNE INSTRUCTION 0X40 NANO 0X87
9014 INSTRUCTION PRECEDENTE 0X5C INCORRECTE SUR INSTRUCTION 0X56/0X5A
9014 NANO PRECEDENTE 0X1B INCORRECTE SUR INSTRUCTION 0X40/0X44 NANO 0XF6
9014 NANO PRECEDENTE 0X50 INCORRECTE SUR INSTRUCTION 0X44
9015 INS 0X40, NANO 0X80: NON AUTORISEE
9015 INS 0X3C, NANO 0X2C: NON AUTORISEE OU NANO 0X15: NON AUTORISEE
9015 INS 0X32/0X36: DONNEE D’ENTREE NON SUPPORTEE
9016 INS 0X40, NANO 0X87: DECODAGE RATE
9016 INS 0X44: NON AUTORISEE
9017 INS 0X50/0X54/0X56/0XAC/0X5A: NON AUTORISEE
9018 FOURNISSEUR EXISTE DEJA
9019 INS 0X40 NANO 0X23 NOUVEAU PROVIDER CREE
9019 INS 0X40 NANO 0X25 PROVIDER EFFACE
9019 INS 0X40 NANO 0X41 NOUVEAU PPUA AFFECTE
901A INS 0X3C, NANO 0X31/0X15/0X2C: ACHAT VIA JETONS RATE
901B INS 0X40, NANO 0X15: AUCUN JETONS DISPONIBLES OU AUCUN CREDIT RECORD DISPONIBLE
901C INS 0X3C, NANO 0X15/0X2C: ACHAT VIA JETONS OK
901D CLE PRIMAIRE INEXISTANTE
901E PPV CREDIT HORS LIMITE INS 0X40 NANO 0X43
901F CLE SECONDAIRE INEXISTANTE
9020 INS 0X44 NANO 0X90/0X91 ERREUR DE CLES
9021 INS 0X04: LA CLE N'EST PAS 0X0F – REFUS
9022 LE BIT 7 DE L’INDEX DE LA CLE EST SUR 1 (INS 0X40 EN MODE ART 2)
9023 INS 0X44 NANO 71 DOIT ETRE AVANT LA NANO 0XD1
9024 ERREUR DE CHECKSUM, INSTRUCTION PAS PERMISE EN ATR NIVEAU 3
9024 INS 38/3C/40 PARAMETRE REFERENCE OCTET ERRONE (SE/SSE FLAGS)
9025 INS 0X44 NANO 0XD1 LE COMPTEUR DE RECORD EST A ZERO
9026 INS 0X3C, NANO 0X31: PLUS AUCUN PREVIEW
9027 INS 0X3C, NANO 0X19: PHASE DE PREVIEW DÉCRYPTÉE
9028 CHECKSUM DES CLES INCORRECTES
9028 INS B4 CHECKSUM DIFFERENT DE CELUI CALCULE, ERREUR PHASE INITIALISATION DE-ENVELOPPE
9029 INS 0X44, NANO 0XF6 ERREUR DE CHECKSUM
902B INS 0X44 NANO 50/92 ERREUR D’EXECUTION DE LA NANO
902C INS 0X40 NANO 50/92 PARAMETRE 1 EN DEHORS DE LA FOURCHETTE
902D INS 0X40 NANO 50/92 ERREUR DANS LES INDICATEURS 8036-38H
902E INS 0X40 NANO 50/92 ERREUR DES DERNIERS PARAMETRES
902F INS 0X40 NANO F7 NANO PRECEDENTE N’EST PAS 0X50
9030 INS 0X40 NANO 20/92 ERREUR ALGO UTILISE
9031 INS 0X40 NANO 0X1B ERREUR (BIT 5 PAS POSITIONNE)
9031 INS 0X40 NANO 0XE0 ERREUR DE VERIFICATION TABLE HASH
9031 INS 0XAC ERREUR DE P2
9031 INS 0X44 NANO 0X1B (BIT 5 PAS POSITIONNE)
9031 INS 0X44 NANO E0 ERREUR EN PHASE DE VERIFICATION TABLE HASH
9033 INS 0X40 NANO 1B ERREUR (INDEX TABLE D’ALGO PAS A 59H)
9033 INS 0X44 NANO 90/91 ERREUR TABLE D’ALGO
9033 INS 0X44 NANO 1B (INDEX TABLE D’ALGO PAS A DBH)
9033 INS 0X44 NANO E0 ERREUR
9034 ERREUR ENCRYPTION / DECRYPTION ALGO PAS ACTIF
9035 ERREUR SUPERENCRYTION OBLIGATOIRE INS 0X36/0X38, 0X3C, 0X40)
9036 INS 38/3C/40 : PARAMÈTRE /RÉFÉRENCE OCTET ERRONÉ (P4 BIT 0,1)
9037 INS 38/3C/40 ERREUR CONTROLE SUR P5, P5 > QUE LA LONGUEUR MAXIMALE (MAXLENGH)
9038 ERREUR DE CONTROLE SUR P5, P5 = 00
9045 NANO 90 K*E*Y-INDEX PAS ADMISE
9046 NANO 81- HUITIEME OCTET/BIT 03 NON MIS, CLE PAS ABILITEE A L’ECRITURE D’UNE MK
9047 NANO 81- HUITIEME OCTET/BIT 02 NON MIS, CLE PAS ABILITEE A L’ECRITURE D’UNE OP
9049 NANO 81- HUITIEME OCTET/BIT 01 NON MIS, CLE PAS ADMISE POUR EMM
904A INS 3C : CLE ERRONEE, SEUL LES CLES OPERATIVES SONT ADMISES
904A NANO 81- HUITIEME OCTET/BIT 00 NON MIS, INDEX 7C, CLE PAS ADMISE POUR ECM
904B NANO 81 PBM CONTROL NON METTABLE A JOUR
904C NANO 81- SEPTIEME OCTET/BIT 00 NON MIS, CLE NON ACTIVE (INS 40 -38 -3C)
904C NANO 81- OCTET 1 & 2, N’IMPORTE QUEL BIT MIS, NANO LOCKED
9090 EEPROM PAS MISE A JOUR (INS 0X40)
90A0 EEPROM MISE A JOUR INS 0X40)

KIFFANSAT
Admin

Messages : 100
Date d'inscription : 01/10/2008

Voir le profil de l'utilisateur http://kiffan.bbactif.com

Revenir en haut Aller en bas

Re: Info sur le seca2

Message  KIFFANSAT le Lun 9 Fév - 0:37

9301 INS 0X40, NANO 0X22/0X27: LA DATE DE LA CARTE EST AU-DELA DE LA DATE DE VALIDITE
9302 INS 0X3C, NANO 0XD1: AUCUN DECODAGE
9304 INS 0X3C, NANO 0X12: CONTROLE PARENTAL, NIVEAU TROP BAS
9305 INS 0X3C, NANO 0XF0: NON VALIDE POUR CETTE ZONE GEOGRAPHIQUE
9401 INS 0X32: VALEUR DE P1 INCORRECTE
9401 INS 0X36: VALEUR DE P1 INCORRECTE
9402 INS 0X0C VALEUR DE P2 INCORRECTE
9402 INS 0X32: VALEUR DE P2 INCORRECTE : SEULE VALEUR ADMISE : P2 = 0
9402 INS 0X30: MAUVAISE VALEUR DE P2.
9402 INS 0X5A PAS ACCEPTE EN MODE ATR NIVEAU 2
9600 INS 0C P2=1 NANO 0X23-0X90 ABSENTE
9600 INS 0X38: CHAINE D’ENTREE INCORRECTE (NANO INCORRECTES, SIGNATURE MANQUANTE)
9600 INS 0X3C NANO 82 PROBLEME
9600 INS 0X3C: NANO 0X15/0X2C: RESULTAT EGAL A 0- NANO TRAITEES AVEC SUCCES – AUCUN DECODAGE
960A INDEX CLES NON SUPPORTES
96XX INS 0X3C: XX NANO TRAITEES, MAIS AUCUNE NANO 0XD1 TROUVEE
96XX INS 0X40: TOUTES LES NANO ONT ETE TRAITEES AVEC SUCCES, MAIS ERREUR DE PARSING
97XX MISE A JOUR DE L'EEPROM PAS NECESSAIRE POUR QUELQUE NANO XX EST LE BITMAP DE CES NANO, PAR EXEMPLE 3C: AUCUN UPDATE POUR NANO 2, 3, 4, 5 (LE COMPTAGE COMMENCE A 0)
98XX INS 0X40 NANO 0X32 EVENEMENT NUL XX NANO COMMANDE RENCONTRE
9A00 INS 56 CLE INCORRECTE
9A00 INS 40/3C NANO NON HABILITEE
9AXX INS 44 NANO FERME (XX NANO COMMANDE RENCONTRE)
9B00 INS PAS ADMISE EN ATR PROTECTION LEVEL (CARTE BLOQUEE).
99XX INS 0X40 NANO 0X42 ET 0X30 DATE ERRONEE: LES CREDITS ONT ETE CHANGES AUJOURD'HUI
99XX DATE ERRONEE
Ne vous inquiétés pas, il faut pas les apprendre par coeur il suffit de les avoir sous le coude pour interpréter le résultat d'un traitement.
De plus certains statuts font référence à des concepts encore abordés, donc contentez-vous, aujourd'hui, de les parcourir, demain vous saurez les utiliser.

Voilà nous avons maintenant un modèle d’instruction complète composé de la façon suivante :


L’ENTETE (normalisé ISO) + LE CORPS (nano + argument) + LE STATUS (fin de traitement)


C1 INS P1 P2 LEN NANO1 ARGUMENTS NANO1 NANO2 ARGUMENTS NANO2……. STATUS


Un petit dessin valant souvent un grand discours faisons un exemple :

C1 3C 01 9D 4D 10 01 71 00 00 70 07 D4 00 09 D2 09 39 A7 9E 24 C5 F4 21 9B 39 B6 90 80 07 9F 47 51 09 91 AD 24 49 0F 1C 10 39 84 B7 59 12 00 27 1D 3B 13 00 13 28 13 32 D1 40 C0 CA 64 89 9F 01 80 40 86 80 EA CF 02 67 64 82 85 2F 86 46 30 B4 F1 C8 90 1D

En vous basant sur ce qui à été décrit dans les trois parties que pouvez vous me dire sur l'instruction qui précéde ?????????

Pas besoin de chercher dans des faqs, j'ai pas besoin de savoir quel type d'instruction c'est puisqu'on en a pas encore parlé, pas plus la signification des nanos puisqu'on y est pas encore, mais plus simplement et uniquement ce qui est dans les trois posts.

Ca fera un trés bon exercice de logique que vous continuerez à utiliser plus tard, j'en suis sur.

On va voir qui ceux qui arrivent a suivre.

Nous ne manquerons d’affiner encore avec les EMM et les ECM avec l’ajout de paramètres particuliers.


Bon on viens de se familiariser avec nos instructions, nous savons qu’elles sont composées d’une entête, d’un corps (si nécessaire, vous verrez que parfois il y a pas de corps ou encore que le corps est sans nano) et d’un statut.

Nous pouvons regrouper les instructions en trois catégories :

1) Les instructions d’interrogations
2) Les instructions de décryptage ECM
3) Les instructions de mise à jour EMM

Sachez déjà maintenant que seul les instructions 2 et 3 ont subis des modifications car elles sont certifiées par une signature et soumises à plusieurs algorithmes.

Un petit avant gout de ce que nous verrons plus tard :
LA DIFFERENCE ENTRE LE SECA1 ET LE SECA2, SE SITUE AU NIVEAU DU CRYPTAGE (SE), MASQUAGE (SSE) ET D’UN SUR-MASQUAGE (PRE-RSA) DES TRAMES SENSIBLES, A SAVOIR LES INSTRUCTIONS DE MISES A JOUR OU DE MODIFICATIONS EMM (C140), LES INSTRUCTIONS DE MISE EN CLAIR DE L’IMAGE ECM (C13C) ET L’AJOUT DE PARAMETRES DE POSITIONNEMENT ET DE CONTROLES P3-P4 ET P5 (NOUS VERRONS ÇA PLUS TARD). EN FAIT ILS ONT AJOUTE AU SUPER-EN CRYPTAGE DU SECA1 (AVEC QUELQUES AMENAGEMENTS) UN MASQUAGE SUPPLEMENTAIRE QUI COUVRE UNE PARTIE DE LA TRAME QUE NOUS APPELLERONS « SE », UNE ENVELOPPE COUVRANT LES DERNIERS 90 OCTETS QUE NOUS APPELLERONS « SSE » OU ENVELOPPE ET EN PRIME UN DOUBLE XOR QUI COUVRE UNE PARTIE DU SSE QUE NOUS APPELERONS « PRE-RSA » (ILS ONT DECIDES DE NOUS GATER CETTE FOIS-CI ).

Toutes celles appartenant à la première catégorie sont exactement identiques à celle présente dans le SECA1, nous allons commencer par celles-ci question de nous faire la main dans la façon d’adresser la carte avant de nous attaquer aux deux gros poissons que sont les EMM et les ECM

A ce propos je vous signale que mon but étant l’étude et pas la vison gratuit de chaînes cryptées, aucunes clés, modules, exposants, tables, MT ne seront postées, hypothetisant que je puisse éventuellement les avoir, ce qui n’est, bien sur, pas le cas. Cela ne change absolument rien à la théorie.

AVANT DE CONTINUER ET POUR CLARIFIER LE TOUT, NOUS ALLONS DEFINIR LES TERMES LES PLUS COURANTS QUI SERONT UTILISES DANS CES POSTS. J’UTILISERAIS, AUTANT QUE POSSIBLE, UNE NOMENCLATURE INFORMATIQUE ACCEPTEE DE TOUS.

LE BIT.
UN BIT EST TOUT D'ABORD LA PLUS PETITE UNITE INFORMATION UTILISEE EN INFORMATIQUE, IL NE PEUT AVOIR QUE LA VALEUR DE 0 OU DE 1.

LE QUARTET OU NIBBLE
LE QUARTET VAUT 4 BITS DANS UNE ECRITURE EN HEXADECIMAL IL REPRESENTE UNE DES DEUX PARTIES D’UN OCTET. LE QUARTET FORT OU HAUT, D’UN OCTET, SE TROUVE A GAUCHE PAR EXEMPLE ICI F ( FA) LE QUARTET FAIBLE OU BAS SE TROUVE A DROITE ICI A

L’OCTET OU BYTEUN OCTET COMPORTE 8 BITS OU DEUX QUARTETS.

LE MOT OU WORD
UN MOT EST FORME DE DEUX OCTETS, SOIT DE 16 BITS.

LE DOUBLE MOT OU DWORD
LE DOUBLE MOT, REGROUPE 4 OCTETS, OU ENCORE DEUX MOTS, SOIT UN TOTAL DE 32 BITS.

LE TRIPLE MOT OU FWORD
LE TRIPLE MOT, REGROUPE 6 OCTETS, OU ENCORE TROIS MOTS, SOIT UN TOTAL DE 48 BITS.

LE QUADRUPLE MOT OU QWORD OU OTTETTO (POUR LES ITALIENS ET LES ESPAGNOLS)
LE QUADRUPLE MOT, REGROUPE 8 OCTETS, OU ENCORE QUATRE MOTS, SOIT UN TOTAL DE 64 BITS.

ECM (ENTITLEMENT CONTROL MESSAGE)
COMPOSANTE DE CONTROLE D'ACCES PERMETTANT DE DESEMBROUILLER UNE COMPOSANTE CRYPTEE. TRANSPORTE LE MOT DE CONTROLE ET LES CONDITIONS COMMERCIALES DU PROGRAMME

EMM (ENTITLEMENT MANAGEMENT MESSAGE)
INFORMATION D'ACCES CONDITIONNEL DETERMINANT LES NIVEAUX D'AUTORISATION DES SERVICES POUR UN DECODEUR PARTICULIER. ON PEUT ADRESSER UN DECODEUR OU UN GROUPE DE DECODEURS.

NOUS AVONS ASSEZ DE MOTS POUR CONTINUER ET COMPRENDRE, NOUS EXPLIQUERONS LES NOUVEAUX MOTS AU FUR ET A MESURE DE LEURS APPARITIONS.

1) LES INSTRUCTIONS D'INTERROGATIONS.

Ce sont les plus faciles, elles ne nécessitent aucun algorithme, ou signature.
Certaines ne travaillent que par paire, c'est-à-dire que pour avoir une réponse nous devons obligatoirement envoyer la première instruction pour que la seconde nous donne la réponse ce qui est le cas pour la première instruction qui impose l’envoi de la 04 et la lecture par le 02.

(INS 0X02) LIT HUIT OCTETS APRES L’ENVOI DE L’INSTRUCTION 04
ELLE RECUPERE LES 8 OCTETS DE DONNEES RESULTAT DE L’INS 0X04 QUI DOIT AVOIR ETE APPELEE PRECEDEMMENT (VOIR CI-DESSOUS).

C1 02 P1 00 08
P1 SPECIFIE LE FOURNISSEUR
P2 NE JOUE AUCUN ROLE ET RESTE DONC A 00

EXEMPLE AVEC LE PROVIDER 1 : C1 02 01 00 08

(INS 0X04) CRYPTE HUIT OCTETS DE DONNEES AVEC LA CLE XF
ELLE CRYPTE 8 OCTETS DE DONNEES AVEC LA CLE FOURNISSEUR 0X0F, QUI DOIT ETRE SUR LA CARTE. CES DONNEES PEUVENT ETRE RECUPEREES AVEC L’INS 0X02 (VOIR CI-DESSUS).

C1 04 P1 0F 08 XX XX XX XX XX XX XX XX

P1 SPECIFIE LE FOURNISSEUR
P2 DOIT SPECIFIER LA CLE 0F. 8 * XX = OCTETS DE DONNEES A CRYPTER.
LEN (LA LONGUER DU CORPS) DE 8 OCTETS
XX = LES 8 OCTETS EN CLAIRS QUE NOUS VOULONS CRYPTER

EXEMPLE :
ON ENVOI UNE TRAME EN CLAIR EQUIVALENTE A 1111111111111111 ET ON DEMANDE DE LA CRYPTER AVEC LA CLE 0F DU FOURNISSEUR D’ACCES 00 SECA.
NOUS SAVONS QUE CETTE CLE N’EXISTE PAS, MAIS CELA IMPORTE PEU CE QUI NOUS INTERESSE C’EST SI CETTE INSTRUCTION EST ENCORE ACCEPTEE.

ENVOI DE C104000F08:
C104000F0804

ENVOI DE 1111111111111111:
1111111111111111 - 901D (CLE 0F PRIMAIRE INEXISTANTE)

CELA PROUVE QUE CETTE COMMANDE EXISTE ENCORE PUISQU’ELLE EST ACCEPTEE ET QUE SEUL L’ABSENCE DE LA CLE F NOUS EMPECHE DE RECUPERER LA VALEUR CRYPTEE.

ENVOI DE C102000008:
C102000008 -> 02- FFFFFFFFFFFFFFFF – 9014 (VOIR STATUS)

NOUS POUVONS SANS CRAINTE DIRE QUE, D’APRES LES TESTS SUR UNE CARTE ITALIENNE QUE LE FONCTIONNEMENT DE CETTE INSTRUCTION EST RESTE IDENTIQUE A CELLE QU’ELLE AVAIT ETE EN SECA1

Un petit mot de ces deux instructions, elles ont étés beaucoup utilisés avec les 7.0 IT et ESP pour comparer des trames en claires et le résultat crypté. Grâce à un bug qui a complètement disparu chez nous (Bug 38/36), ils ont put créer une clé 0F avec la technique dite des clés gémelles (nous expliquerons tout ça un fois arrivé aux instruction 38/36).

Mais où est l’intérêt ?
Simplement à avoir un point de comparaison entre deux chaînes et donc savoir si une théorie est juste ou pas. Elle entre aussi en jeu pour la déduction de la MASKING TABLE qui est une table qui entre en jeux dans le processus de cryptage/décryptage d’une trame.

(INS 0X06) UTILITE INCONNUE
L’UTILITE DE CETTE INSTRUCTION EST INCONNUE.

L’ORDRE DES INS DOIT ETRE :

INS 0X06> INS 0X40 NANO 0X87> INS 0X44> INS 0X42 OU INS 0X8A.

Cette instruction utilise 8 octets différents et initialise le hash buffer (mF0E) avec. D’où la nécessité d’appeler d’abord l’INS 0x40 Nano 0x87.

CETTE INSTRUCTION N’EST DISPONIBLE QU’EN MODE DE PROGRAMMATION BASSE (VOIR PAGE POST 1)

C1 06 00 00 08
P1 NE JOUENT AUCUN ROLE
P2 NE JOUENT AUCUN ROLE.

UN HASH BUFFER EST LA VALEUR DE DEPART ATTRIBUEE A UNE PROCEDURE COMME PAR EXEMPLE UN ALGORITHME ET QUI EST MIS EN MEMOIRE POUR UNE UTILISATION ULTERIEURE, CETTE VALEUR PEUX ETRE NULLE, FIXE OU CALCULEE

Par exemple pour un HASH BUFFER de type calculer, on peut décider que ce sera la valeur niée des huit premiers octets à mettre dans une mémoire d’attente et qui seront utilisés le moment voulu.

Quand je dis valeur niée ou NOT de lui même c'est simplement une inversion de ses Bits (la négation de tous ses bits) en tenant compte qu'on travaille sur un octet ou alors un XOR avec FF donne le même résultat:

Exemple :
Pour la valeur 05 ou CD hexadécimal on transforme en bits et on inverse tous les bits 1 devenant 0 et 0 devenant 1

05h = 00000101, inversion des Bits 11111010 = FA
05 xor FF = FA

CD = 11001101, inversion des bits 00110010 = 32
CD xor FF = 32

(INS 0X0A) RECUPERE LA VERSION DU LOGICIEL/BIOS
CETTE INSTRUCTION RECUPERE LA VERSION DU SYSTEME UTILISE PAR LA CARTE (VERSION DE LOGICIEL/BIOS).

C1 0A 00 00 LEN

P1 ET P2 SONT TOUJOURS 00. AVEC CERTAINS LOGICIELS DE LOG, UN RESET (voir post 1) DE LA CARTE DOIT ETRE EXECUTE (APRES L'ATTENTE) POUR OBTENIR LA CHAINE DE REPONSE.

EXEMPLE V 7.1:

ENVOI DE C10A000044:

C10A000044 ->
REPONSE DE LA CARTE :
0A000000000000000300000000000000000000000000000000 000
00000000000000000000000000000000000000000000000000 000
00000000000000000000000000000000 – 9000

COMME NOUS POUVONS LE VOIR, ALORS QUE CETTE INSTRUCTION DONNAIT DIVERSES INFORMATIONS SUR LES VERSIONS PRECEDENTES, IL SEMBLERAIT QUE CES INFORMATIONS SOIENT MAINTENANT MASQUEES.

VOYONS COMMENT REAGISSAIENT LES CARTES PRECEDENTES :
V 2.0 „ Num20 “
V 3.0 „ Num30 “ (Les premières cartes SECA utilisent cette version)
V 3.1 „ Num31 “
V 4.0 „ Num40 “
V 4.1 „ Num41 “
V 4.1beta „ Num41beta “
V 6.0 „ Num60 “
V 6.2 „ Num62 “

La longueur de la chaîne de réponse est dépendante de la version du logiciel de la carte: avec V 3.0 (Num30) par exemple 62 (3E) octets, avec V 4.0 / V 4.1 (Num40/Num41) 68 (0x44) octets. La carte exige du temps pour exécuter cet ordre, car des checksums du code sont calculés.

Avec certains Logiciels de log, un reset de la carte doit être exécuté (après l'attente) pour obtenir la chaîne de réponse.

Exemple V 3.0:
Instruction à la carte: C1 0A 00 00 3E
Attendez, et peut-être réinitialisez

Réponse de la carte:
0A 01 16 81 BA 00 00 00 00 00 00 27 CB BB 13 59 F7 2D 02 C9 15 5E C1 A7 05 60 05 8C 73 87 F5 6B 8E 46 C8 DB 11 8A 95 F9 86 AC B7 28 43 29 43 41 4E 41 4C 2B 31 39 39 34 20 4E 75 6D 33 30 00 90 00

Exemple V 4.0:

Instruction à la carte: C1 0A 00 00 44
Attendez et peut-être réinitialisez

Réponse de la carte:
0A A3 01 06 01 37 17 1A 00 00 00 24 35 80 76 BC D2 59 59 C2 85 06 73 BC B1 F0 0C 85 34 7E 86 61 25 96 46 5E 49 7B 04 D8 0F 53 EF 28 43 29 43 41 4E 41 4C 2B 31 39 39 34 2F 39 35 2F 39 36 20 4E 75 6D 34 30 00 90 00

Les octets en s contiennent la version du logiciel. Pour le lire plus simplement il suffit de convertir l’hexadécimal en décimal (dans l'exemple pour V 3.0: 40 67 41 67 65 78 65 76 43 49 57 57 52 32 78 117 109 51 48 puis convertir le tout en ASCII.

Par conséquent, nous obtenons la chaîne suivante correspondant aux octets en .

Exemple V 3.0 -> (C)CANAL+1994 Num30

Exemple V 4.0 -> (C)CANAL+1994/95/96 Num40

Le logiciel est celui de Canal+, de 1994 pour la version 3.0, de 1996 pour la version 4.0.

La signification des huit octets soulignés (EEPROM, E000-E007) n'est pas connue. La carte vérifie simplement que tous les octets ne soient pas à zéro. Les deux octets suivants, en italique gras à 00 00 sont un checksum de l'EEPROM, les 32 octets suivants, jusqu’à la version de la carte sont probablement un checksum de la ROM

Si vous avez obtenu cette chaîne après un reset après les octets de statut, vous trouvez l’ATR standard de la carte (...90 00 3B F7 11 00 01 40 96 52 84 03 0E 6C B6 D6 90 00).

Si LEN=08 on obtient le contenu de l'EEPROM E000-E007, signification inconnue.


ps: merci
dede60

KIFFANSAT
Admin

Messages : 100
Date d'inscription : 01/10/2008

Voir le profil de l'utilisateur http://kiffan.bbactif.com

Revenir en haut Aller en bas

Re: Info sur le seca2

Message  Contenu sponsorisé Aujourd'hui à 22:19


Contenu sponsorisé


Revenir en haut Aller en bas

Voir le sujet précédent Voir le sujet suivant Revenir en haut

- Sujets similaires

 
Permission de ce forum:
Vous ne pouvez pas répondre aux sujets dans ce forum