Prestazioni di verifica della catena di certificazione?

1

Sto scrivendo un'applicazione in cui le prestazioni sono importanti. Sto usando una tecnologia chiamata Named Data Networking e il punto da notare è che ogni pacchetto di dati contiene una firma del mittente.

Ora, vorrei verificare il pacchetto di dati che ricevo da Bob. Convalido la catena di certificazione fino all'autorità, ecc. Supponiamo che dopo un po ', ricevo un altro pacchetto di dati da Bob. Se ho memorizzato nella cache il certificato precedente (supponiamo che solo io abbia accesso alla cache), quando ricevo un altro pacchetto da Bob con la stessa firma del certificato memorizzato nella cache, posso essere sicuro che il pacchetto di dati sia autentico? O dovrei verificare nuovamente la catena (questo processo è un po 'costoso per la mia applicazione)?

    
posta Joe Matt 26.08.2016 - 11:05
fonte

1 risposta

2

Sì, puoi fare questa supposizione, almeno per qualche tempo. La cosa migliore sarebbe riconvalidare la firma ogni alcuni secondi / minuti / byte a seconda del caso d'uso.

Se possibile, prova a creare una catena di pacchetti. Per esempio; ogni singolo pacchetto calcola un hash (accetta HMAC (K, m) ) sui dati m nel pacchetto utilizzando la chiave K che può essere il l'hash dal pacchetto precedente. Questo essenzialmente collega una catena di pacchetti in cui un pacchetto può essere valido solo se il pacchetto precedente era troppo. Come ulteriore vantaggio, non solo garantisce l'autenticità ma anche l'integrità dei dati. Tale costruzione è molto più veloce, ma non è sempre possibile. Se i pacchetti vengono ricevuti in parallelo o in ordine casuale, questo non volerà.

    
risposta data 26.08.2016 - 12:03
fonte