2013-07-01 8 views
5

Ho cercato più risorse online, ma finora non sono stato in grado di trovare una risposta definitiva alla domanda se il meccanismo di generazione GUID di Microsoft è sufficientemente sicuro da giustificarne l'uso come ID univoco in un'applicazione .Il generatore GUID di Microsoft è crittograficamente protetto

Per chiarire, con 'sufficiente sicurezza', intendo chiedere se l'algoritmo utilizzato per generare il GUID presenta eventuali punti deboli o vulnerabilità noti che potrebbero ridurre l'effettiva casualità del GUID , ovvero ottenere un numero non trascurabile di collisioni. Se no, vuol dire che il GUID è completamente inaffidabile, e in caso affermativo, esiste un modo per inizializzare la funzione del generatore GUID per aumentare in modo efficace la casualità del GUID generato.

In base alle informazioni specificate nella guida MSDN qui (http://msdn.microsoft.com/en-us/library/system.guid.aspx) c'è qualche indicazione che il sistema utilizzato per generare il GUID può essere considerato sufficientemente casuale.

Grazie!

risposta

7

No. L'obiettivo del GUID è quello di essere unico, ma crittograficamente sicuro implica che è imprevedibile. Questi obiettivi a volte, ma non sempre, si allineano.

Se volete crittograficamente sicuro, allora si dovrebbe usare qualcosa di simile a RNGCryptoServiceProvider

Vedi anche:

Il punto chiave in entrambi i link di cui sopra è che la guida di Microsoft è un'implementazione di UUID e il UUID spec indicates that they should not be used as security tokens:

Non dare per scontato che gli UUID siano difficili da indovinare; non dovrebbero essere usati come capacità di sicurezza (identificatori il cui semplice possesso concede l'accesso), per esempio. Una fonte di numeri casuali prevedibile aggraverà la situazione.

+0

Grazie a @explunit. Avevo letto i due link che hai postato (si presentavano come duplicati suggeriti quando stavo scrivendo questa domanda). – raTM

+0

Detto questo, succede che alcune implementazioni, incluse in Python, Java e Ruby, generano guidi crittograficamente sicuri. Vedi https://news.ycombinator.com/item?id=10631806 –

Problemi correlati