Reznex Background
Lecția 04Criptografie & Exploatare
8 min lectură

Mifare Classic & Atacul Nested/DarkSide

"Un seif cu un cifru vechi unde poți ghici combinația ascultând ticăitul mecanismului."

Ce înveți din asta:

Descoperi cum se sparg cheile Crypto1 utilizând vulnerabilitățile din RNG și autentificarea Mifare Classic.

  • Arhitectura memoriei Mifare Classic (Sectoare, Blocuri, Key A / Key B).
  • Criptoanaliza cifrului proprietar Crypto1.
  • Atacul DarkSide când nu cunoști nicio cheie de acces.
  • Atacul Nested când cunoști deja o cheie dintr-un sector.

Spre deosebire de cartelele ieftine de 125kHz care își strigă codul în gura mare, cardurile Mifare Classic (13.56MHz) au fost concepute ca un seif digital. Memoria lor este divizată în sectoare protejate prin chei secrete.

Cu toate acestea, din cauza unei cryptografii slabe create în anii '90 și menținute secretă de producători, astăzi aceste carduri pot fi sparte în câteva secunde folosind atacuri matematice avansate precum DarkSide și Nested.


1. Structura Memoriei: Cum arată un card Mifare Classic 1K

Un card Mifare Classic 1K are o capacitate de stocare de 1024 octeți, împărțită în 16 sectoare. Fiecare sector conține 4 blocuri de date, iar ultimul bloc din fiecare sector este numit Sector Trailer.

Anatomia unui Sector Trailer

Fiecare Sector Trailer conține două chei de acces de 48 de biți și permisiunile de citire/scriere:

Key A (6 bytes)
Access Bits (4 bytes)
Key B (6 bytes)

Pentru a citi sau scrie date într-un sector, cititorul trebuie mai întâi să se autentifice cu Key A sau Key B folosind algoritmul criptografic Crypto1.

2. Călcâiul lui Ahile: Algoritmul Crypto1 și Pseudo-RNG Slăbit

Algoritmul Crypto1 este un cifru pe flux de 48 de biți. Securitatea lui s-a prăbușit din două motive majore:

  • Generatoare de numere aleatorii previzibile (PRNG): Când cipul trimite un număr "aleatoriu" (nonce) în timpul autentificării, valoarea acestuia depinde strict de timpul trecut de la pornirea cipului.
  • Scurgeri de informație prin erori: Dacă cititorul trimite un cod incorect, cipul răspunde cu mesaje de eroare specifice (NACK) care trădează starea internă a cifrului.

3. Atacul DarkSide: Când nu cunoști nicio cheie

Atacul DarkSide se folosește atunci când nu cunoști nicio cheie de acces pentru niciun sector din card.

Dispozitivul de atac (ex: Proxmark3 sau Flipper Zero) trimite încercări repetate de autentificare către un sector, exploatând răspunsurile rapide NACK emise de cip când ghicește parțial starea cifrului.

Cum funcționează DarkSide pe înțelesul tuturor

Este ca și cum ai încerca să deschizi un seif, iar la fiecare cifră rotită greșit, broasca scoate un sunet diferit dacă te-ai apropiat de combinația corectă. Ascultând aceste "sunete" (răspunsuri NACK), un algoritm deduce prima cheie validă în doar câteva minute.

4. Atacul Nested (Cuibărit): Eficiență în câteva secunde

Dacă ai obținut deja cel puțin o cheie validă (de exemplu prin atacul DarkSide, dintr-un dicționar de chei implicite precum FFFFFFFFFFFF sau prin citirea unui sector neprotejat), poți executa atacul Nested.

  1. 01
    Autentificarea Cunoscută:Atacatorul se autentifică mai întâi în sectorul cu cheia cunoscută. Cifrul Crypto1 este acum activat și sincronizat.
  2. 02
    Tranziția la Sectorul Țintă (Nested Auth):Fără a închide sesiunea, atacatorul cere o nouă autentificare către un sector necunoscut. Pentru că PRNG-ul este previzibil, se poate calcula exact ce număr va genera cipul.
  3. 03
    Deducerea Cheii:Matematica din spatele cifrului redus la o stivă restrânsă de posibilități permite aflarea cheii sectorului țintă în mai puțin de 2 secunde.
Atenție / Legal

Analiza criptografică și testarea sistemelor de acces proprii au scop strict educațional și de audit de securitate. Spargerea neautorizată a cheilor de acces pentru carduri de terți încalcă legislația privind securitatea cibernetică și drepturile de proprietate.

Recapitulare rapidă (Ce ai reținut):

  • Mifare Classic 1K stochează datele în 16 sectoare protejate prin cheile Crypto1.
  • Atacul DarkSide sparge prima cheie atunci când nu se cunoaște nicio cheie din card, exploatând erorile NACK și un PRNG slab.
  • Atacul Nested folosește o cheie deja cunoscută pentru a afla instantaneu toate celelalte chei din memoria cardului.
  • Din cauza acestor vulnerabilități criptografice, tehnologia Mifare Classic este considerată complet nesigură astăzi.