Utilizzo della chiave pubblica / privata per convalidare più dispositivi

1

Penso sia possibile ma non sono sicuro di come si chiami. Voglio trovare un modo standard per farlo (mai fare il tuo).

Ho una chiave pubblica / privata e un numero di dispositivi su una rete. Usando (per esempio) i numeri di serie dei dispositivi che voglio usare la chiave privata per creare un valore, i dispositivi possono quindi convalidare con i loro numeri di serie e la chiave pubblica.

Quindi il processo sarebbe:

  1. Il cliente fornisce un elenco di numeri di serie del dispositivo.
  2. Utilizza la chiave privata per creare un valore e restituirlo al cliente.
  3. Il cliente inserisce questo valore sui dispositivi.
  4. Ciascun dispositivo può quindi convalidare il proprio numero di serie utilizzando la chiave pubblica.

Come si chiama e ci sono modi standard per farlo?

    
posta parsley72 14.09.2016 - 18:24
fonte

2 risposte

3

Sembra che tu possa semplicemente usare un elenco firmato di numeri seriali.

Ottieni un elenco di numeri seriali, firmalo e invialo indietro con la firma. Ogni dispositivo ha una copia dell'elenco, la firma e la chiave pubblica che è stata utilizzata per firmare.

Il dispositivo verifica la validità dell'elenco chiudendo la firma e, se è valido, controlla l'elenco per la presenza del numero di serie.

Un esempio di RSA con openssl:

  • Sul dispositivo di firma:

    openssl dgst -sha256 -sign private.key -out serials.sha256 serials.txt
    
  • Sul dispositivo che deve convalidare il suo numero di serie:

    openssl dgst -sha256 -verify public.key -signature serials.sha256 serials.txt &&\
    grep "$myserial" serials.txt
    

Questo non è a prova di proiettile. È necessario assicurarsi che la chiave pubblica non possa essere scambiata e che il passaggio di convalida sul dispositivo non possa essere ignorato. Queste non sono attività facili in un sistema complesso.

In altre parole: questo bit sarà ovviamente incorporato in un sistema più grande. Dovrai considerare la sicurezza dell'intero sistema affinché questo sia efficace.

Inoltre, fai attenzione a non cadere per negazionismo di completezza della .

    
risposta data 14.09.2016 - 20:18
fonte
3

Vorrei dare un'occhiata a cosa è un certificato digitale qui .

Il corto:

Quello che stai proponendo è un'infrastruttura a chiave pubblica di base. Nelle organizzazioni di grandi dimensioni, possono avere la propria CA come fonte attendibile, principalmente perché è costato denaro utilizzare una terza parte per firmare un certificato per uso interno.

Se i clienti sono esterni alla tua attività, consiglio vivamente di dare un'occhiata alla soluzione per la firma di terze parti.

Quello che probabilmente stai cercando di ottenere è:

  1. Utilizza il numero di serie del dispositivo come identificativo univoco. (Vedi Wiki sopra).
  2. Crea un certificato digitale firmato da una CA.
  3. Utilizza questo certificato per l'autenticazione del dispositivo.

Questo è più comunemente definito come Autenticazione basata su certificato.

L'infrastruttura per fare ciò è un po 'noiosa per le organizzazioni più piccole, ma entrambe sono commerciali, opensource. Inoltre, ti indirizzo a questo RedHat doc . Non si può usare Linux, ma è un ottimo lavoro nel discutere i frammenti.

    
risposta data 14.09.2016 - 18:55
fonte

Leggi altre domande sui tag