Potrebbe essere una buona idea dare più contesto. Esistono più casi di utilizzo ed è difficile indovinare a cosa miri.
Per quanto ho capito, dobbiamo distinguere due aspetti:
- copia del chip
- copia del link
Come impedire la copia del chip?
Le smartcard comuni memorizzano una chiave privata. Al chip può essere detto di decrittografare o firmare i dati. Ma il chip non ha alcun comando per leggere la chiave privata.
Le smardcards sono progettate in modo tale da rendere estremamente difficile l'accesso esterno alla memoria interna senza distruggere la scheda. Mentre ci sono attacchi alle smartcard (ad esempio, basate sull'analisi di potenza o sull'usura artificiale), sono fuori dalla portata della maggior parte dei casi d'uso.
La smardcard può firmare le informazioni fornite e il lettore può verificare che la firma sia corretta.
Come impedire la copia del link?
Se si rende disponibile il collegamento a un lettore non attendibile, è possibile copiarlo. Ad esempio c'è un certo numero di exploit che danno permessi completi al proprietario di uno smartphone.
Quindi è necessario assicurarsi che l'utente non conosca il collegamento. Questo può essere fatto sostituendo il link con un token.
Il token è generato dal chip e contiene un identificatore univoco e il collegamento. È crittografato con una chiave pubblica che è nota al chip e lo firma con la sua chiave privata.
L'utente invia questo token a un server. Il server verifica la firma e decrittografa il token per estrarre l'identificatore e il collegamento. Controlla che l'identificatore non sia stato usato prima. Quindi si collega alla destinazione del collegamento e inoltra la risposta all'utente.
L'utente non conosce il collegamento perché riceve la risposta dal server di inoltro. Dopo la richiesta il token è contrassegnato come usato, quindi copiare il token non è utile.