Поиск по сайту:

Как установить pandom: настоящий генератор случайных чисел для Linux


На этой странице

  1. Введение
  2. 1 Установка пандома
    1. 1.1 Получение корневого доступа
    2. 1.2 Установка зависимостей сборки
    3. Системы на базе Arch
    4. Системы на базе Debian
    5. Системы на базе Red Hat
    6. Системы на базе SUSE
    7. 1.3 Загрузка и извлечение исходного кода
    8. 1.4 Проверка перед установкой (рекомендуется)
    9. 1.5 Определение системы инициализации
    10. 1.6 Установить пандом
    11. Система инициализации на основе init.d (например, upstart, sysvinit)
    12. systemd как система инициализации

    1. 2.1 Получение корневого доступа
    2. 2.2 Установка зависимостей сборки
    3. Системы на базе Arch
    4. Системы на базе Debian
    5. Системы на базе Red Hat
    6. Системы на базе SUSE
    7. 2.3 Загрузка и извлечение исходного кода
    8. 2.4. Установка массива энтропий
    9. 2.5 Анализ файла проверки
    10. 2.6. Удаление entropyarray (необязательно)

    1. 3.1 Получение корневого доступа
    2. 3.2 Установка брелока
    3. 3.3 Список источников установки
    4. Уизи
    5. Джесси
    6. Растянуть
    7. 3.4 Список источников обновлений
    8. 3.5 Тестовый пандом
    9. 3.6. Установка пандома

    1. 4.1 Тест производительности
    2. 4.2 Проверка энтропии и последовательной корреляции
    3. 4.3 Системная служба
    4. Система инициализации на основе init.d (например, upstart, sysvinit)
    5. systemd как система инициализации

    1. 5.1 Редактирование исходных файлов
    2. 5.2 Проверка непредсказуемости
    3. 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-linux

    1.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.gz

    2.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:67

    2.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.deb

    3.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.deb

    3.4 Список источников обновлений

    После установки набора ключей и списка источников.

    apt-get update

    3.5 Тестовый пандом

    После проверки вы можете удалить указанный ниже пакет по своему желанию.

    Примечание: если вы уже протестировали pandom в своей реализации Linux, вы можете пропустить этот шаг.

    apt-get install pandom-test
    pandom-test
    generating 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:57

    3.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/s

    4.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 restart

    systemd как система инициализации

    systemctl status random
    systemctl start random
    systemctl stop random
    systemctl restart random

    5 Повышение непредсказуемости или производительности

    Если вы хотите повысить непредсказуемость или производительность вашей реализации 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

Статьи по данной тематике: