Atualmente, estou fazendo uma aula de SO usando XINU, onde posso controlar todos os processos em execução no SO e, por causa disso, posso prever completamente a saída de seu gerador de números aleatórios. Aqui está o código.
Está claro para mim que mesmo essa abordagem simples, quando usada em um sistema operacional de desktop, seria capaz de criar números verdadeiramente aleatórios porque há muitos processos se comportando de maneira diferente com base no usuário, local ou hora. No entanto, e na inicialização, antes que haja qualquer entrada do usuário?
O gerador de números aleatórios criptográficos do Linux é muito mais complexo, mas ainda parece depender da entrada do usuário. O OpenSSH é executado na inicialização em muitos sistemas Linux. Tenho certeza de que existem muitas empresas que executam configurações muito próximas do estoque, e se você pode simular o mesmo hardware, software e definir o mesmo horário e local do servidor que está atacando, você não poderia explorar isso?
Há também implantações pré-fabricadas em muitos serviços de hospedagem onde os desenvolvedores podem fazer upload de seu código (dockerfile, projeto ruby on rails, etc), e o servidor apenas o configura. Esses servidores têm software pré-fabricado, hardware conhecido, localização e hora. Estou assumindo que eles têm aleatoriedade de hardware no mundo real, mas e se eles não tivessem?