Qualunque protocollo noto per stabilire la fiducia tra una fonte intrinsecamente inaffidabile e un server senza una terza parte?

1

Esiste qualche tipo di protocollo, schema o documento teorico là fuori che implementa o esamina il problema di stabilire la fiducia tra due parti (comunicare, ascoltare) dove la parte comunicante avvia il contatto e non ha una chiave / segreto / password conosciuto dalla parte che ascolta ascoltando; ma l'ascoltatore deve in qualche modo verificare che la parte comunicante sia affidabile per restituire alcune informazioni sensibili senza interrogare una terza parte. Personalmente , sembra quasi impossibile, ma ho il compito di indagare sulla fattibilità. Il problema che stiamo tentando di risolvere è il provisioning di dispositivi in un ambiente in cui i dispositivi necessitano di una configurazione iniziale pari a zero rispetto a quando sono indirizzati al corretto endpoint remoto.

Considera una situazione in cui abbiamo un Dispositivo (D) e un Server (S):

  1. D invia il messaggio iniziale M [0] a S contenente la presunta identità di D (nome)
  2. S verifica l'identità D utilizzando (???) e restituisce la chiave da K a D
  3. D usa K per tutti i messaggi successivi M [1..N-1].

La maggior parte di questo problema si trova in < 2 > dove (???) si verifica. Il dispositivo può essere piccolo come un micro 8 bit con opzioni di archiviazione limitate.

    
posta Philip Lombardi 17.04.2014 - 16:12
fonte

1 risposta

3

Come al solito, il problema è uno di definizione . Vale a dire, cosa rende il dispositivo "D" più "genuino" di un PC gestito da un individuo malintenzionato? Se ci si avvicina ad esso, si dirà qualcosa del tipo: il dispositivo D è autentico perché è il vero pezzo di hardware tangibile, l'accumulo di atomi che è uscito dalla fabbrica. Questo va bene per quanto riguarda la definizione, ma non si adatta bene alle configurazioni di rete . Dal punto di vista del server S, ci sono solo pacchetti IP; zeri e uno; il server non ha alcun accesso alla manifestazione del dispositivo nel mondo fisico, ma solo a ciò che invia.

Nel mondo astratto delle reti, sei quello che sai . Ciò che consente a un server S di riconoscere un dispositivo remoto D come un "vero dispositivo D" è che D può fare cose (cioè calcolare cose) che richiedono una conoscenza che solo D possiede.

Questo significa che hai a che fare principalmente con due vie del tuo enigma:

  1. Ad un certo punto del processo di costruzione in cui il dispositivo D è ancora in luoghi sicuri (ad es. in fabbrica), inserisci una chiave segreta nel dispositivo. A quel punto, puoi proceduralmente (con testimoni oculari) assicurarti che solo un dispositivo vero e genuino possa ottenere tale chiave segreta. La chiave può essere successivamente utilizzata da D per dimostrare che si tratta di un dispositivo reale.

  2. Effettua l'accoppiamento iniziale tra D e S sotto il controllo fisico di un agente (giurato) fidato, che si assicura che venga utilizzato il dispositivo vero. In pratica, detto agente collegava il dispositivo al suo computer portatile, utilizzava un meccanismo di autenticazione per parlare con S (come agente autorizzato) e inoltra i dati in entrambe le direzioni.

Ho visto (effettivamente fatto) entrambi i tipi in cui i dispositivi erano terminali di pagamento, con un sacco di soldi in gioco, che giustificano il sovraccarico di agenti giurati. Se il tuo dispositivo è del tipo più economico, questo sovraccarico potrebbe risultare insopportabile per te. D'altra parte, se si iniettano "informazioni sensibili" in un dispositivo a basso costo, allora forse si corre verso il tuo destino: se l'informazione è utile, alcuni proprietari di dispositivi cercheranno di aprirlo e di estrarre le informazioni. Lo fanno solo per musica e file video!

    
risposta data 17.04.2014 - 16:35
fonte

Leggi altre domande sui tag