O consumo de entropia no início do programa pode ser evitado?


13

Eu uso o Knoppix (ou outros Live CDs / DVDs) como um ambiente seguro para criar chaves criptográficas valiosas. Infelizmente, a entropia é um recurso limitado nesses ambientes. Acabei de notar que cada programa iniciado consome bastante entropia. Isso parece dever-se a algum recurso de proteção de pilha que precisa de randomização de endereço.

Bom recurso, mas completamente inútil e - pior - destrutivo no meu cenário. Existe alguma possibilidade de desativar esse recurso? Eu preferiria um que me permita continuar usando a imagem original do Knoppix (ou o que seja) e só precise de algumas configurações em tempo de execução.

Eu li que isso foi causado pela glibc. Estou surpreso que um strace -p $PID -f -e trace=opencontra o bash não mostre nenhum acesso ao / dev / random quando inicio programas. Mas não estou familiarizado com a interação de execve () e o vinculador.


Você sempre pode investir em um cartão de criptografia de hardware.
Jordanm #

2
"completamente inútil" = na verdade, um recurso de segurança universal para os sistemas operacionais modernos ... Ps. o kernel faz isso, portanto não há espaço no usuário -> chamada do sistema para rastrear.
Goldilocks

Chamadas ASLRget_random_int . get_random_inttem mudado várias vezes , mas eu não vejo isso esgotar a entropia . Em qual versão do kernel você percebeu isso? Que arquitetura? O kernel é compilado CONFIG_ARCH_RANDOM?
Gilles 'SO- stop be evil' '

A propósito, o /dev/randomfetichismo da entropia do Linux é equivocado . Se houver entropia suficiente no sistema, /dev/urandomé bom para a geração de chaves e não consome entropia.
Gilles 'SO- stop be evil' '' -

5
@goldilocks Seja honesto quando citar: "[...] completamente inútil [...] no meu cenário"
Hauke ​​Laging

Respostas:


18

Se isso realmente ocorre devido à randomização de endereço (o ASLR tem a ver com o local onde o programa é carregado, consulte aqui: http://en.wikipedia.org/wiki/Address_space_layout_randomization ), você pode desativá-lo passando norandmapspara o kernel na inicialização opções (veja aqui: http://www.linuxtopia.org/online_books/linux_kernel/kernel_configuration/re30.html ).


Este parâmetro do kernel realmente resolve o problema.
precisa saber é o seguinte
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.