Можно ли предотвратить потребление энтропии при запуске программы?

13

Я использую Knoppix (или другие Live CD / DVD) в качестве безопасной среды для создания ценных крипто-ключей. К сожалению, энтропия является ограниченным ресурсом в таких средах. Я только заметил, что каждый запуск программы потребляет определенную энтропию. Похоже, это связано с некоторой функцией защиты стека, которая требует рандомизации адресов.

Хорошая особенность, но совершенно бесполезная и - что еще хуже - разрушительная в моем сценарии. Есть ли возможность отключить эту функцию? Я бы предпочел тот, который позволяет мне продолжать использовать исходный образ Knoppix (или любой другой), и просто нужна некоторая конфигурация во время выполнения.

Я читал, что это было вызвано glibc. Я удивлен, что strace -p $PID -f -e trace=openпротив bash не отображается доступ к / dev / random при запуске программ. Но я не знаком с взаимодействием execve () и компоновщика.

Хауке Лагинг
источник
Вы всегда можете купить аппаратную карту шифрования.
Иордания
2
"совершенно бесполезный" = фактически функция безопасности, универсальная для современных операционных систем ... Ps. ядро делает это, поэтому нет пользовательского пространства -> системный вызов для трассировки.
Златовласка
ASLR звонкиget_random_int . get_random_intуже несколько раз менялись , но я не вижу его истощением энтропии . На какой версии ядра вы это заметили? Какая архитектура? Скомпилировано ли ядро CONFIG_ARCH_RANDOM?
Жиль "ТАК - перестань быть злым"
Кстати, энтропийный фетишизм в Linux /dev/randomнеуместен . Если в системе достаточно энтропии, /dev/urandomэто нормально для генерации ключей и не потребляет энтропию.
Жиль "ТАК - перестань быть злым"
5
@goldilocks Будьте честны, когда вы цитируете: «[...] совершенно бесполезный [...] в моем сценарии»
Hauke ​​Laging

Ответы:

18

Если это действительно связано с рандомизацией адреса (ASLR имеет отношение к месту загрузки программы, см. Здесь: http://en.wikipedia.org/wiki/Address_space_layout_randomization ), то вы можете отключить его, передав norandmapsядру в загрузочный варианты (см. здесь: http://www.linuxtopia.org/online_books/linux_kernel/kernel_configuration/re30.html ).

Фредерик Дьюердт
источник
Этот параметр ядра действительно решает проблему.
Хауке Лагинг