Introduction au NAGRA

Statut
N'est pas ouverte pour d'autres réponses.

Pharaonde

BANNI
Inscrit
22/10/07
Messages
195
Bonjour
Puisqu'il est dans l'air du temps de parler de nagra, seca, merlin ou autre
voici quelque notion de language utilisé et indispensable quand on aborde les cartes Nagra, et oui le Nagra a été cassé il y a longtemps mais ne vous leurré pas , il y a encore pas mal de chemin à faire avec les nouvelle carte qui vont exploité toute les subtilité du systéme Nagra/Seca
Je vous laisse découvrir
A + pour de nouvelles infos

Code:
[B][SIZE=4]Concepts NAGRA[/SIZE][/B] [/CENTER]

[B]0. - Type de cartes 
[/B]Ils Existent cinq types de cartes, la Rom3, Rom10 et Rom11 pour Nagra-1 et Rom101 et Rom110 pour Nagra-2. Chaque type de carte a une révision (version de l'eeprom) différente. La Rom3 est restée dans sa dernière révision comme rev340, la Rom10 en revA3E et la Rom11 en revB09. 
 

[B]1.- CAM[/B] -> Número de serie de la carte (unique)
Code: [CENTER]

    04 60XX XXXX XX ROM 3.

    04 61XX XXXX XX Majoritairement ROME 10 et certaines ROME 3.
    04 62XX XXXX XX ROM 11. et ROM 110.

    04 64XX XXXX XX ROM 101

    04 65XX XXXX XX ROM 110

[/CENTER]


[B]2 IRD[/B] -> ; Numéro série ou numérotation du décodeur
 
[B]3 BoxKey[/B] -> ; Clé commune entre la carte et qui est aussi dans le deco. Si ne coïncident pas les deux, il ne fonctionne pas. 
 
[B]4 ZIP[/B] -> ; Code postal à auquel appartient l'abonné. 
 
[B]5 BUG CATCHERS[/B] -> ; Les bugcatchers sont écrites dans l'eeprom d'échecs en ROM. En Nagra l'eeprom se divise en deux zones une de données et une autre de code et dans cette dernière le fournisseur peut enregistrer tout les codes possible par la carte, en principe ils servaient à corriger les bugs, mais comme vous avez peut étre pouvez être compris ils lui ont donné d'autres utilisations. Le microprocesseur de controle cherchera le bugcatcher dés qu'il trouvera dans la ROm une interruption de software. 
 
[B]6. - NUMBUGS[/B] - > ; La taille du tableau des bugcatchers augmente au fur et à mesure que le fournisseur ajoute des sous-routines qui corrigent de possibles bugs, ce nombre est augmenté à la révision suivante. En mettant cette valeur  à 00, l'accés resterait ouvert pendant les sauts aux bugcatchers, en laissant l'accés totalement menacé. 
 
[B]7. - Backdoor ****[/B] - > ; On peut accéder à la carte non seulement avec les ins cryptées mais d'une autre manière dans laquelle il n'y a pas d'encryptage, ce sont les instructions appelées backdoor qui permettent de lire et d'écrire dans l'eeprom (théoriquement dans toute zone de la carte) mais pour cela il est nécessaire de connaître la clé de pas, appelés clef backdoor. Étant donné les bugs successifs trouvés dans les différentes versions des cartes nagra 1 on a pu examiner la valeur de ces clés ce qui a ouvert la possibilité de les lire et d'écrire dans ces dernières. 
 
- Les cartes Nagra ont plusieurs commandes de backdoor inclus qui permettent la charge de l'EEPROM et d'autres fonctions utiles. Celles-ci backdoors (portes arrières) ont besoin de deux passwords de 16 bytes avant de pouvoir travailler avec elles. La première clé est stockée en ROM et est la méme pour toutes les cartes de Nagravisión avec le même numéro de version. La seconde clé est stockée dans l'EEPROM et est, probablement, unique pour chaque carte. 
 
[B]8. Commandes Backdoor[/B] -> ; Une fois qu'on connaît les clés de backdoor, il existe plusieurs utilités qui supposent une méthode simple de renverser la carte, de leur introduire un code 3M et autres. 
Exemples : 
- Commande $0E : elle efface l'EEPROM 
- Commande $20 : Login (Utilisé pour la dire à la CAM quelles sont les passwords) 
- Commande # $$B0>: Renverser mémoire 
- Commande # $$D6>: elle exécute le code/elle écrit dans l'EEPROM 
 
[B]9 LoginBackdoor[/B] -> ; Une forme de "Sésame" ; dans la carte, une fois qu'on connaît le password de cette dernière et pouvoir ainsi exécuter des commandes de Backdoor pour modifier des données dans l'Eeprom. Les clés sont vérifiées et sont utilisés avant d'exécuter tout autre commande de backdoor, ce pourquoi il est seulement nécessaire de les envoyer une fois. 
 
Code:





  21 00 25 ; A0 20 00 00                     ;Comande Backdoor: Login
             20                              ;Longueur de commande

             8F AB C2 64 44 9A FE 70         ;Password de la ROM  

             1D E7 62 FA B1 4C 31 06 

             00 11 22 33 44 55 66 77         ;Password de l'EEPROM 

             88 99 AA BB CC DD EE FF 

             DE                              ;Checksum 





[B]10. - CYCLEBYTE[/B] -> ; Dans la zone de code, il y a un byte important situé dans la position C0A0 (en ROM10), il est appelé le CYCLEBYTE, sa valeur change en fonction de chaque révision de la carte. Quand on mettra à jour les visas, ce qu'il faut c'est vérifier ce byte, si a déjà la valeur correcte, et ne rien faire si on ne procède pas à la mise à jour du visa.
 
[B]15. - Tiers[/B] - > ; C'est l'équivalent du PBM de SECA. Ce sont les différents paquets assemblés, avec des informations diverses (date et heure d'activation, de début d'expiration, etc. )
 
[B]16. - WORMS[/B] (Vers) - > ; Code qui est utilisé pour "Entrée" dans la carte. Quand on découvrira un certain bug, on pourra construire ces vers pour ouvrir la carte au lieu d'utiliser les BackDoor (quand celles-ci seront inconnues). On l'utilise généralement quand le fournisseur a mis à jour la carte par une nouvelle révision et il est nécessaire de les réouvrir…. 
 
Un exemple probable pour ouvrir les ROM10
 
"Rendez-vous" : 
Consiste à envoyer au visa une commande chiffré avec une EMMKey, la nôtre, et ensuite un ver au moyen d'une commande $61 qui porte notre EMMKey de sorte qu'il soit capable de desencrypter la premiere commande et de l'exécuter. La premiere commande sera une instruction d'exécuter un code en RAM
 
[B]17. - Datatypes[/B] - > ; Registres de longueur variable et qui ont un entête qui indique le type d'information qu'il contient : clés du fournisseur, droits de vision… et qui sont connus dans le jargon comme les datatypes. Par exemple dans le 01 qui est unique dans chaque carte il est l'UA, le numéro du deco (ird dans la terminologie nagra, bueno et DVB) la boxkey du deco, la date. OU aussi dans le 07 le jeu de clés de desencryptage 
 
Traduit par Pharaonde
 
[CENTER][B]LA EEPROM DE NAGRA[/B]

[B]DATATYPES[/B] 

Entre les datatypes qui appartiennent à chaque fournisseur de la carte il y en a trois obligatoires pour chacun : [/CENTER]
 
[B]D'abord[/B] des 01 ou 02 qu'il s'agisse du fournisseur de gestion ou de ceux de vision. Comme les deux types de fournisseurs sont très différents, le datatype l'est aussi. Le 01 (appelé information du récepteur) contient ce qui concerne le desencryptage, information du nombre d'ird et la boxkey (aussi le code postal mais on ne sait s'il a été utilisé parfois pour limiter des droits de vision) et un byte appelé ird status qui apparaît aussi dans d'autres datatypes, dans le le datatypes 01,.02,.06 et 07 si le bit 7 est à à 1 cela veut dire un abonnement suspendu. Le 02 (appelé filtre de vision) a seulement le ID du système et le byte d'irdSatus. 
 
[B]Deuxièmement[/B] un 06 contient outre le byte de l'état de l'ird les deux clés publiques (les 0C, 0D, 0E de SECA) 
 
[B]Troisiémement[/B] deux registres 07 qui contiennent une zone de quatre bytes appelé numéro de key set, parce que nous avons deux jeux de clés et ensuite les clés , chaque jeu de clés contient trois paritykeys de 15 bytes (la 0, la1 et la 2) la 2 est celle qui est utilisée dans les ins qu'envoie le fournisseur , est communne à toutes les cartes et on l'utilise pour produire les 2 nombres premiers du premier module des deux RSA à travers des routines de la Rom de la carte, la 1 paraît etre celle qui est employée pour chiffrer les données quand on fait une demandes par téléphone et le 0 on ne sait à quoi il sert; c'est ensuite la verifykey de 8 bytes qui est employée dans la signature se, on fait un hash avec cette clé et s'il donne la même chose que l'ins envoyée c'est correcte ; et finalement l'emmkey qui est l'autre module de la RSA double 
 
[B]Exemples[/B] : Nous voyons qu'effectivement, le premier byte 07 est toujours bon , le deuxième est la longueur du registre, et le tiers est le type de registre

[B][U]Datatype type 01 avec ROM10: (Provider de Gestion 40 01)[/U][/B] 

D000: [B][COLOR=red]07[/COLOR][/B] 27 01 40 01 00 01 00 00 20 1E 04 00 [B]ED 29 44[/B]--> [B]IRD (invertida)[/B] 
D010: [COLOR=darkorange][B]09[/B] 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00[/COLOR] 
D020: [COLOR=darkorange]00 [B]4E E4 9E 9B 99 44 CA AD[/B] [/COLOR]---> [B]Box Key[/B] 

[B][U]Datatype type 02 avec ROM10: (Provider de vision 41 01)[/U][/B] 

D110: E5 83 C7 94 26 E3 AD C7 [B][COLOR=red]07[/COLOR] 05 02 41 01 00 00[/B] 07 

[B][U]Datatype type 06 avec ROM10: 
[/U][/B]
D020: 00 4E E4 9E 9B 99 44 CA AD [B][COLOR=red]07[/COLOR] 38 06 40 00 00 1B[/B] 
D030: [B][COLOR=green]7F 78 55 FF FF FF FF FF FF FF FF FF FF 00 FF FF[/COLOR][/B] 
D040: [B][COLOR=green]00 00 FF FF 00 00 00 00 00 00 00 00 00 00 00 00[/COLOR][/B] 
D050: [B][COLOR=green]00 00 00 [/COLOR][COLOR=yellowgreen]K0 K0 K0 K0 K0 K0 K0 K0 K1 K1 K1 K1 K1 --> Clés publiquesK0 et K1[/B][/COLOR] 
D060: [B][COLOR=yellowgreen]K1 K1 K1[/COLOR][/B] 

[B][U]Datatype type 07 avec ROM10:[/U][/B] 

D060: K1 K1 K1 [B][COLOR=red]07[/COLOR][/B] 79 07 40 3F 00 [B][COLOR=purple]AA AA AA AA AA AA AA ---> Parity Key 0 (AA's)[/COLOR] [/B]
D070: [B][COLOR=purple]AA AA AA AA AA AA AA AA [/COLOR]BB BB BB BB BB BB BB BB ---> Parity Key 1 (BB's)[/B] 
D080: [B]BB BB BB BB BB BB BB[COLOR=olive]19 A1 C2 B8 A2 32 4C 9F DD --> Parity Key 2[/COLOR][/B] 
D090: [B][COLOR=olive]AE 0C 25 00 24 69 [/COLOR][COLOR=darkorange]D7 32 AF 2B B2 30 72 2E[/COLOR][COLOR=navy] F3 51[/COLOR] [COLOR=darkorange]--> Verify Key[/COLOR][/B] 
D0A0: [B][COLOR=navy]CB AD 69 F4 12 CE F6 5B C5 6C CB DD 7A B5 3A 7F ---> EMMK0[/COLOR][/B] 
D0B0: [B][COLOR=navy]D3 87 C6 96 E8 15 32 F5 FC 13 98 0E 93 47 A7 9C[/COLOR][/B] 
D0C0: [B][COLOR=navy]C4 FC A8 36 3F 96 76 4B 0A B0 A9 88 6E A2 E8 D7[/COLOR][/B] 
D0D0: [B][COLOR=navy]4A 3F B6 E3 92 6E 72 68 30 63 77 48 EE 8A[/B][/COLOR] 07 38
Traduit par Pharaonde
[CENTER]
 
Très intéressant , merci pharaonde !
 
Salut pharaonde,

du vrais travail de pro c'est plus qu' intéressante des connaissance en assembleur sa va servire.
Bonne Continuation.
 
pharaonde vraiment tres tres interessant, c est 1 travail de pro avec s a la fin...
 
Salut pharaonde

merci!!
comme dab tu es là pour nous informer, c bien grace à des personnes comme toi que l'on pourra faire ce que l'on veut de ces cartes.
Reste plus qu'a trouver comment.
Je suis en pleine lecture de site espagnol mais malheureusement je ne parle pas cette langue donc j'y vais a coup de google traduction site mais pas précis
Enfin bref je finirai bien pat trouver une info utile sur nos nouvelles carte

Bon courage a tous
 
Statut
N'est pas ouverte pour d'autres réponses.
Retour
Haut