Энтропия - это случайность данных, которая используется, когда приложение или операционная система применяют криптографию. Примером может служить SSL-соединение с вашим веб-сервером.
В статье подробно описывается процесс создания энтропии с помощью набора инструкций Intel rdrand, встроенного в некоторые процессоры.
Проверка поддержки процессором инструкции rdrand
В этом разделе мы проверим, поддерживает ли процессор инструкцию rdrand.
Сначала откройте файл /proc/cpuinfo, чтобы убедиться, что процессор поддерживает инструкцию rdrand.
1 | cat /proc/cpuinfo | grep -i rdrand | echo $? |
Результат должен быть равен 0, если ваш процессор поддерживает инструкцию rdrand.
Проверка текущего значения энтропии
В этом разделе мы проверим текущее значение энтропии.
Проверьте текущее значение энтропии с помощью cat для просмотра /proc/sys/kernel/random/entropy_avail
1 | cat /proc/sys/kernel/random/entropy_avail |
Добавление записей ядра в файл sysctl.conf
В этом разделе мы добавим необходимые записи ядра в файл /etc/sysctl.conf.
Сначала с помощью sed мы удалим все предыдущие записи kernel.random.read_wakeup_threshold kernel.random.write_wakeup_threshold в файле /etc/sysctl.conf.
1 | sed -i-$(date '+%Y.%m.%d.%H%M%S') -e '/kernel.random.read_wakeup_threshold/d' -e '/kernel.random.write_wakeup_threshold/d' /etc/sysctl.conf |
Далее создайте резервную копию файла /etc/sysctl.conf.
1 | cp /etc/sysctl.conf /etc/sysctl.conf-$(date '+%Y.%m.%d.%H%M%S') |
Далее добавьте записи kernel.random.read_wakeup_threshold = 2048 kernel.random.write_wakeup_threshold = 3072 в файл /etc/sysctl.conf.
1 2 3 | echo "# Добавьте поддержку intel rdrand для обеспечения аппаратной энтропии." >> /etc/sysctl.conf echo "kernel.random.read_wakeup_threshold = 2048" >> /etc/sysctl.conf echo "kernel.random.write_wakeup_threshold = 3072" >> /etc/sysctl.conf |
Далее мы используем sysctl для загрузки новых параметров ядра.
1 | sysctl -p |
Установка и настройка службы rngd
Сначала установите rng-tools с помощью yum.
1 | yum install rng-tools -y |
Далее мы добавим дополнительные параметры в файл /etc/sysconfig/rngd, чтобы включить поддержку rdrand.
1 2 | echo "# Добавьте здесь дополнительные параметры" > /etc/sysconfig/rngd echo "EXTRAOPTIONS=\"--rng-device=drng --no-tpm=1\"" >> /etc/sysconfig/rngd |
Далее мы запустим службу rngd и настроим службу rngd на запуск при загрузке..
1 | systemctl enable rngd.service --now |
Проверка нового уровня энтропии
1 | cat /proc/sys/kernel/random/entropy_avail |