Hardware RNG
Definitivamente, deberías usarlo si lo tienes y presionarlo si tienes alguna opción en cuanto a qué hardware se va a usar. Un RNG de hardware no tiene que ser caro: la Raspberry Pi tiene uno, al igual que todas las tarjetas inteligentes.
Tenga en cuenta que la mayoría de los RNG de hardware se basan en osciladores que tardan un tiempo en volverse aleatorios después de aplicar la alimentación. Es posible que deba esperar o dibujar una cierta cantidad de bytes antes de que la entropía sea suficiente.
Inyección de entropía durante la fabricación
Si no tiene un RNG en su plataforma, pero tiene al menos un poco de almacenamiento persistente que no sea ROM, puede inyectar algo de entropía durante la producción.
Si el almacenamiento del dispositivo es interno, esto significa que necesita encenderlo una vez durante el proceso de producción y comunicarle unos pocos cientos de bytes. Prepare la imagen de código en su dispositivo para que esté lista para aceptar la inyección de entropía en el primer arranque. Cualquier PC en la cadena de producción podría producir.
Si el almacenamiento del dispositivo se fabrica por separado, puede inyectar la entropía en el código o la imagen de datos con la que se inicializa el almacenamiento.
Si tiene muy poca capacidad, ya sea debido al ancho de banda de la comunicación o debido a limitaciones de almacenamiento, la fuente de entropía puede duplicarse como una clave privada o secreta. Todo lo que sea exclusivo del dispositivo y que sea secreto lo hará.
Inyección de entropía a través de la red
Si no hay manera de inyectar la entropía durante la fase de fabricación, pero el dispositivo tiene acceso a la red cuando se pone en producción, puede inyectar la entropía en el primer arranque: haga que el dispositivo solicite la entropía de un servidor confiable. Sin embargo, este proceso es vulnerable a un ataque activo o pasivo de hombre en medio. El dispositivo puede autenticar el servidor de entropía (codificar una clave pública), pero no hay manera de proteger la comunicación de las escuchas ilegales, ya que el intruso puede reproducir todos los cálculos en el dispositivo.
Por lo tanto, si no tiene forma de inyectar entropía en la etapa de fabricación, debe involucrar a los usuarios del dispositivo en la inyección de entropía, cuando implementan el dispositivo. Por ejemplo, puede requerir que el dispositivo esté conectado a una PC de confianza donde el usuario ejecutaría el software que proporciona para inyectar entropía (generada desde la PC o obtenida de su servidor, no importaría mucho). Después de ese punto, el dispositivo solo sería tan confiable como la PC donde se generó la entropía.