Как установить pandom: настоящий генератор случайных чисел для Linux
На этой странице
- Введение
- 1 Установка пандома
- 1.1 Получение корневого доступа
- 1.2 Установка зависимостей сборки
- Системы на базе Arch
- Системы на базе Debian
- Системы на базе Red Hat
- Системы на базе SUSE
- 1.3 Загрузка и извлечение исходного кода
- 1.4 Проверка перед установкой (рекомендуется)
- 1.5 Определение системы инициализации
- 1.6 Установить пандом
- Система инициализации на основе init.d (например, upstart, sysvinit)
- systemd как система инициализации
- 2.1 Получение корневого доступа
- 2.2 Установка зависимостей сборки
- Системы на базе Arch
- Системы на базе Debian
- Системы на базе Red Hat
- Системы на базе SUSE
- 2.3 Загрузка и извлечение исходного кода
- 2.4. Установка массива энтропий
- 2.5 Анализ файла проверки
- 2.6. Удаление entropyarray (необязательно)
- 3.1 Получение корневого доступа
- 3.2 Установка брелока
- 3.3 Список источников установки
- Уизи
- Джесси
- Растянуть
- 3.4 Список источников обновлений
- 3.5 Тестовый пандом
- 3.6. Установка пандома
- 4.1 Тест производительности
- 4.2 Проверка энтропии и последовательной корреляции
- 4.3 Системная служба
- Система инициализации на основе init.d (например, upstart, sysvinit)
- systemd как система инициализации
- 5.1 Редактирование исходных файлов
- 5.2 Проверка непредсказуемости
- 5.3. Установка персонального пандома
Это руководство предназначено для версий ядра Linux amd64/x86_64 выше и равно 2.6.9. В нем объясняется, как установить pandom: генератор истинных случайных чисел временного джиттера, поддерживаемый ncomputers.org
Вступление
Встроенный в ядро Linux генератор истинных случайных чисел обеспечивает низкую пропускную способность в современных условиях, как, например: персональные компьютеры с твердотельными накопителями (SSD) и виртуальные частные серверы (VPS).
Эта проблема становится популярной в реализациях Linux из-за постоянно растущей потребности в истинных случайных числах, в основном для различных криптографических целей.
Pandom выдает около 8 КиБ/с энтропии из 64 байтов/64 бит, совместим с физическими и виртуальными средами и предполагает, что ни один другой процесс, работающий от имени пользователя root, не записывает данные в /dev/random.
1 Установка пандома
1.1 Получить root-доступ
Pandom должен быть установлен как root, при необходимости запустите эту команду.
su -
1.2 Установка зависимостей сборки
Чтобы скачать и установить pandom, вам понадобятся: GNU assembler, GNU make, GNU tar и GNU wget (последние два обычно уже установлены). Вы можете удалить их позже по желанию.
Арочные системы
pacman -S binutils make
Системы на основе Debian
apt-get install binutils make
Системы на базе Red Hat
dnf install binutils make
yum install binutils make
Системы на базе SUSE
zypper install binutils make
1.3 Загрузка и извлечение исходников
Эти команды загружают и извлекают исходники pandom с ncomputers.org, используя wget и tar.
wget http://ncomputers.org/pandom.tar.gz
tar xf pandom.tar.gz
cd pandom/amd64-linux1.4 Тест перед установкой (рекомендуется)
Этот рекомендуемый тест занимает около 8 минут. Он проверяет поддержку ядра и генерирует файл с именем checkme (анализируется в следующем разделе).
make check
1.5 Определить систему инициализации
Перед установкой pandom вам нужно знать, какое программное обеспечение для инициализации использует ваша система. Если следующая команда выводит слово running, это означает, что ваша система использует systemd, в противном случае вполне вероятно, что ваша система использует реализацию init.d (например, upstart, sysvinit). Могут быть некоторые исключения, больше информации в этих ответах unix.stackexchange.com.
systemctl is-system-running
running
1.6 Установить пандом
Как только вы узнаете, какую систему использует ваша реализация Linux, вы можете соответствующим образом установить pandom.
Система инициализации на основе init.d (например, upstart, sysvinit)
Установите pandom, выполнив эту команду, если ваша система использует реализацию init.d (например, upstart, sysvinit).
make install-init.d
systemd как система инициализации
Установите pandom, выполнив эту команду, если ваша система использует systemd.
make install-systemd
2 Анализ файла checkme
Прежде чем использовать pandom в криптографических целях, настоятельно рекомендуется проанализировать файл checkme, созданный в процессе установки в предыдущем разделе этого руководства. Эта задача полезна для того, чтобы узнать, действительно ли числа случайны или нет. В этом разделе объясняется, как анализировать файл checkme с помощью ncomputers.org/entropyarray: сценария оболочки, который проверяет энтропию и последовательную корреляцию своих входных данных.
Примечание: этот анализ может выполняться на другом компьютере, например на ноутбуке или настольном компьютере. Например: если вы устанавливаете pandom на виртуальный частный сервер (VPS) с ограниченными ресурсами, вы можете скопировать файл checkme на свой персональный компьютер, чтобы проанализировать его там.
Вы также можете использовать Entropy Online Tester.2.1 Получите root-доступ
Entropyarray должен быть установлен как root, при необходимости запустите эту команду.
su -
2.2 Установка зависимостей сборки
Чтобы скачать и установить entropyarray, вам потребуются: компилятор GNU g++, GNU make, GNU tar и GNU wget (последние два обычно уже установлены). Вы можете удалить их позже по желанию.
Арочные системы
pacman -S gcc make
Системы на основе Debian
apt-get install g++ make
Системы на базе Red Hat
dnf install gcc-c++ make
yum install gcc-c++ make
Системы на базе SUSE
zypper install gcc-c++ make
2.3 Загрузка и извлечение исходников
Эти команды загружают и извлекают исходники entropyarray с ncomputers.org, используя wget и tar.
wget http://ncomputers.org/entropyarray.tar.gz
tar xf entropy.tar.gz
tar xf rearray.tar.gz
tar xf entropyarray.tar.gz2.4 Установите энтропийный массив
Примечание: ошибки относительно -std=c++11 означают, что версия компилятора GNU g++ не поддерживает стандарт ISO C++ 2011. Вы можете попытаться скомпилировать ncomputers.org/entropy и ncomputers.org/rearray в другой системе, которая их поддерживает (например, GNU g++ в более новой версии вашего любимого дистрибутива Linux), а затем установить скомпилированные двоичные файлы с помощью make install в системе, которую вы используете. хотел бы запустить entropyarray или пропустить этот шаг, несмотря на то, что настоятельно рекомендуется проанализировать файл checkme, прежде чем использовать pandom для любых криптографических целей.
cd rearray; make install; cd ..
cd entropy; make install; cd ..
cd entropyarray; make install; cd ..2.5 Анализ контрольного файла
Примечание. Тест последовательности 64 псевдослучайных чисел.
entropyarray checkme
entropyarray in /tmp/tmp.mbCopmzqsg
15.977339
min:12
med:32
max:56
15.977368
min:11
med:32
max:58
15.977489
min:11
med:32
max:59
15.977077
min:12
med:32
max:60
15.977439
min:8
med:32
max:59
15.977374
min:13
med:32
max:60
15.977312
min:12
med:32
max:672.6 Удаление entropyarray (необязательно)
Если вы планируете больше не использовать entropyarray, вы можете удалить его по своему желанию.
cd entropyarray; make uninstall; cd ..
cd entropy; make uninstall; cd ..
cd rearray; make uninstall; cd ..3 Установка с использованием репозитория debian
Если вы хотите, чтобы pandom обновлялся в вашей системе на основе Debian, вы можете установить/переустановить его, используя репозиторий Debian ncomputers.org.
3.1 Получите root-доступ
Следующие пакеты Debian должны быть установлены как root, при необходимости выполните эту команду.
su -
3.2 Установите брелок
Этот пакет Debian включает открытый ключ репозитория Debian ncomputers.org.
wget http://ncomputers.org/debian/keyring.deb
dpkg -i keyring.deb
rm keyring.deb3.3 Список источников установки
Эти пакеты Debian включают список источников репозитория Debian ncomputers.org в соответствии с последними дистрибутивами Debian (2017 год).
Примечание. Также можно написать приведенные ниже строки с комментариями в /etc/apt/sources.list вместо установки соответствующего пакета debian для вашего дистрибутива Debian, но если эти исходные коды изменятся в будущем, вам потребуется их обновить. вручную.
хриплый
#deb http://ncomputers.org/debian/wheezy.deb
dpkg -i wheezy.deb
rm wheezy.debДжесси
#deb http://ncomputers.org/debian/jessie.deb
dpkg -i jessie.deb
rm jessie.debПотягиваться
#deb http://ncomputers.org/debian/stretch.deb
dpkg -i stretch.deb
rm stretch.deb3.4 Список источников обновлений
После установки набора ключей и списка источников.
apt-get update
3.5 Тестовый пандом
После проверки вы можете удалить указанный ниже пакет по своему желанию.
Примечание: если вы уже протестировали pandom в своей реализации Linux, вы можете пропустить этот шаг.
apt-get install pandom-test
pandom-testgenerating checkme file, please wait around 8 minutes ...
entropyarray in /tmp/tmp.5SkiYsYG3h
15.977366
min:12
med:32
max:57
15.977367
min:13
med:32
max:57
15.977328
min:12
med:32
max:61
15.977431
min:12
med:32
max:59
15.977437
min:11
med:32
max:57
15.977298
min:11
med:32
max:59
15.977196
min:10
med:32
max:573.6 Установить пандом
apt-get install pandom
4 Управление пандом
После того, как pandom был установлен, вы можете захотеть управлять им.
4.1 Тест производительности
Pandom предлагает около 8 килобайт в секунду, но его производительность может варьироваться в зависимости от среды.
dd if=/dev/random of=/dev/null bs=8 count=512
512+0 records in
512+0 records out
4096 bytes (4.1 kB, 4.0 KiB) copied, 0.451253 s, 9.1 kB/s4.2 Проверка энтропии и последовательной корреляции
Помимо ncomputers.org/entropyarray, есть еще тесты, например набор тестов NIST от Ильи Герхардта.
entropyarray /dev/random 1M
4.3 Системное обслуживание
Pandom работает как системная служба.
Система инициализации на основе init.d (например, upstart, sysvinit)
/etc/init.d/random status
/etc/init.d/random start
/etc/init.d/random stop
/etc/init.d/random restartsystemd как система инициализации
systemctl status random
systemctl start random
systemctl stop random
systemctl restart random5 Повышение непредсказуемости или производительности
Если вы хотите повысить непредсказуемость или производительность вашей реализации pandom, вы можете попробовать добавить или удалить измерения процессорного времени.
5.1 Редактировать исходные файлы
В исходных файлах test.s и tRNG.s добавляйте или удаляйте блоки измерения по желанию.
#measurement block
mov $35,%rax
syscall
rdtsc
[...]
#measurement block
mov $35,%rax
syscall
rdtsc
[...]5.2 Проверка непредсказуемости
Мы рекомендуем всегда тестировать любую персонализированную реализацию пандома, прежде чем использовать ее в криптографических целях.
make check
5.3 Установить персонализированный пандом
Если вы довольны результатами, вы можете установить свою персонализированную реализацию пандома.
make install
Дополнительная информация и обновления: http://ncomputers.org/pandom