La posibilidad de colisión de un UUID versión 4 puede ser una preocupación para todo desarrollador. Mientras que los UUID no deberían ser usados en forma que las colisiones pudieran crear una amenaza, lo cierto es que la generación de UUID aún requiere de un cierto nivel de confianza. Así, el aspecto más importante en la seguridad sobre las colisiones es la fuente de entropía.
Considérense dos casos muy comunes: una moderna versión de Linux instalado en un entorno de nube confiable y un dispositivo móvil. Para el primer caso, un generador criptográficamente seguro de números pseudo aleatorios puede ser provisto en la forma de /dev/urandom
. Este sería una fuente de entropía no bloqueable y criptográficamente segura, que mezclaría varias fuentes como el ruido generado por las interrupciones de hardware y metadatos de actividad de E/S a través de una función criptográfica. Un dispositivo móvil no puede ser confiable, no hay manera de certificar la calidad de soluciones como ésta.
Adicionalmente, bugs en la implementación pudieran conducir a colisiones. Un caso es el de OpenSSL, en el que la ramificación de procesos condujo a una elevada tasa de colisiones con una librería UUID de PHP. Así, un problema por un bug de implementación o de mala configuración es de mayor consideración que la posibilidad de colisión de forma natural. Con 122 bits aleatorios, se requeriría una pila de UUID de peta bytes (246) en tamaño para considerar la posibilidad de colisión de 1 en 50 mil millones.

Fuente:
- Rick Branson, «A brief history of the UUID,» segment.com, blog; Published: 2017.06.07; visited: 2020.03.14. URL: https://segment.com/blog/a-brief-history-of-the-uuid/. Traducción de Dr. Eduardo René Rodríguez Ávila.