Supponiamo di possedere una smart card e voglio fare un attacco di canale sul lato di potenza differenziale sul suo meccanismo di autenticazione reciproca.
Questo è il meccanismo di autenticazione reciproca utilizzato dalla mia carta (Supponiamo che la chiave di autenticazione sia AuthKey e sia già condivisa tra la carta e l'utente):
- L'utente invia un comando alla carta per richiedere un numero casuale + un numero casuale chiamato sfida 1
- La carta restituisce il suo numero casuale chiamato Sfida 2 +
Card_enc1 = encrypt(AuthKey , Challenge 1)all'utente. - Utente riceve
Card_enc1e lo confronta con l'output diUser_enc1 = encrypt(AuthKey , Challenge 1). Se erano uguali, restituisceUser_enc2 = encrypt (AuthKey, Challenge 2)alla carta. - La scheda riceve
User_enc2e la confronta conCard_enc2 = encrypt (AuthKey, Challenge 2). Se erano uguali, la carta e il lettore sono stati autenticati con successo.
Come vedi sopra, l'utente non ha inviato AutheKey mentre nei documenti che ho letto sul canale laterale attacca l'attaccante deve impostare valori diversi per la chiave di crittografia e crittografare dati diversi con quella chiave.
Ora, la domanda è: come posso fare un attacco di canale laterale su questa procedura di autenticazione?
Una risposta passo passo è più utile.