Conosco molto poco sull'autenticazione delle smart card in generale quindi ti preghiamo di segnalarmi o correggermi se qualcosa di seguito non ha senso.
Diciamo che ho:
- Una smart card "X" dell'autorità di certificazione (chiave privata non esportabile)
- Driver per quella smart card scritta in C
- Un lettore di smart card
- Autenticazione del servizio Web OCSP di CA-s
- Un requisito per implementare l'autenticazione utente in un'applicazione Fat Client .NET tramite una smart card, fornita dalla CA "X".
Ho provato a cercare informazioni sul Web ma non a prevalere. Quali sarebbero i passaggi? Il mio primo pensiero fu:
Imposta un servizio web, che consentirebbe di salvare (per esempio) i punteggi di un gioco di ping pong per ogni utente. Ogni volta che qualcuno tenta di inviare un punteggio tramite l'applicazione client, può farlo solo inserendo la smart card nel lettore.
Quindi la chiave pubblica viene letta dalla smart card tramite chiamate native c tramite .NET e inviata al mio servizio web personalizzato, che in cambio utilizza il servizio Web di autenticazione OCSP di CA per dimostrare la validità della chiave pubblica / pubblica certificato (?). Se la chiave pubblica è valida e valida, crittografare una sequenza casuale di byte con la chiave pubblica e inviarla all'applicazione client. Se l'applicazione client restituisce la sequenza casuale di byte correttamente decrittografata insieme al punteggio del gioco del ping pong, il punteggio viene salvato nel database per l'utente specificato.
La mia domanda è, è questo il modo corretto per farlo? Che altro dovrei sapere sull'autenticazione delle smart card?