Я планирую настроить периодические проверки работоспособности системы на нескольких удаленных системах. Для этого я настроил аутентификацию на основе ключей для выполнения сценариев на удаленной стороне без взаимодействия.
то есть:
ssh -i /path/to/id_rsa -o "StrictHostKeyChecking=no" user@remote "/path/to/script.sh"
Коллега выразил обеспокоенность по поводу использования SSH из-за слишком быстрого истощения энтропии. План состоит в том, чтобы выдавать от 15 до 25 чеков, как указано выше, каждые 1-2 минуты. Удаленные системы в основном виртуализированы на хосте KVM. Будет ли этот метод безопасным? Для понимания; как энтропия используется в сеансе SSH?
«Любой, кто рассматривает арифметические методы получения случайных чисел, конечно, находится в состоянии греха. Ведь, как уже неоднократно отмечалось, не существует такой вещи, как случайное число - есть только методы для получения случайных чисел. , и строгая арифметическая процедура, конечно, не такой метод ". ~Джон фон Нейман
Добиться случайности труднее, чем можно подумать; на самом деле сложно даже определить случайность (или выбрать правильное определение для данной ситуации). Например, «случайные» числа, которые идеально подходят для статистического моделирования, могут быть ужасными для криптографии. Каждое из этих приложений требует определенных свойств его случайного ввода, таких как равномерное распределение. Криптография, в частности, требует непредсказуемости, поэтому злоумышленник, читающий наши данные, не может угадать наши ключи. Настоящая случайность - в смысле полной непредсказуемости - не может быть произведена компьютерной программой. Любая последовательность битов, полученная на выходе программы, в конечном итоге повторяется.
Для истинной случайности вам нужно обратиться к физическим процессам, таким как турбулентность жидкости или квантовые кости радиоактивного распада. Даже здесь вы должны быть очень осторожны, чтобы артефакты измерения не привносили нежелательную структуру.
Реализации SSH используют случайность (= энтропию в данном случае), но этот процесс полностью невидим для пользователя.
Вот что происходит под капотом
SSH1 и SSH2 используют источник случайности на основе ядра, если он доступен, вместе с их собственной выборкой (можно надеяться) колеблющихся параметров системы, собранных при запуске различных процессов. Он использует эти источники для заполнения своего ГПСЧ, а также для того, чтобы время от времени «вносить» больше случайности. Поскольку сбор случайных значений таким способом обходится дорого, SSH сохраняет свой пул случайных битов в файле между вызовами программы (/ etc / ssh2 / random_seed). Этот файл защищен и используется во время генерация ключей, а не после обмена ключами, не в рамках соединения.
Короче говоря: энтропия такой пары ключей соединения равна на основе системы не на основе подключения (или даже на основе команд).