Los UUID NCA se convirtieron en la base de los UUID estandarizados de la versión 1. Incluyeron una marca de tiempo de alta precisión y el identificador de host único basado en hardware. No hace falta decir que los relojes del sistema no se pueden usar para generar de manera confiable números de secuencia únicos, ya que la distorsión del reloj u otros factores pueden causar marcas de tiempo repetidas. Apollo abordó esto mediante el uso de un archivo global (literalmente /tmp/last_uuid
) para coordinar los procesos. Era necesario que el archivo fuera accesible y alterable por cualquier usuario.

Si bien no es particularmente seguro este enfoque, Apollo vendió estaciones de trabajo para usuarios finales que se utilizan en redes algo confiables, por lo que fue al menos una decisión razonable. Esta técnica fue llevada adelante en la Especificación IETF para UUID.
Sorprendentemente, el código fuente para una implementación actual del DCE proviene de Apple. Parece que lo usan principalmente para comunicarse con sistemas de Microsoft como Active Directory y servidores de archivos basados en Windows. Esta implementación, que posee los derechos de autor de la Open Software Foundation, coloca al almacenamiento estable actual detrás de un indicador de preprocesador llamado UUID_NONVOLATILE_CLOCK
.
#ifdef UUID_NONVOLATILE_CLOCK
*clkseq = uuid__read_clock(); /* read nonvolatile clock */
if (*clkseq == 0) /* still not init'd ??? */
{
*clkseq = true_random(); /* yes, set random */
}
#else
/*
* with a volatile clock, we always init to a random number
*/
*clkseq = true_random();
#endif
Es difícil encontrar código en Internet que realmente implemente el reloj no volátil para la generación de UUID de DCE RPC. Sin embargo, libuuid
, incluido en los depósitos de paquetes de la mayoría de las distribuciones de Linux, incluye una implementación de reloj UUID no volátil que puede inspeccionarse. Similar a NCS, usa un archivo para la monotonicidad, pero lo ubica en un más sensible /var/lib/libuuid/clock.txt
. La idea intenta administrar los permisos de una manera un poco más sensata, pero aplican las mismas advertencias de seguridad.
Fuente:
Principalmente basado en el artículo:
- 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.