Поддержка RDRAND Ivy Bridge в / dev / random OS X 10.9.4


1

Насколько я знаю, есть некоторая библиотека Intel для инструкции RDRAND https://software.intel.com/en-us/blogs/2012/09/14/rdrand-library-now-available-for-apple-os- Икс

Но действительно ли ядро ​​OS X использует его для / dev / random устройства (как Linux, по крайней мере, для / dev / hwrng)?


Почему вы спрашиваете, если бы это было? То, что на самом деле использует OS X, может отличаться. Это только означает, что библиотека теперь будет компилироваться под OS X, и библиотека теперь поддерживает эту инструкцию.
Ramhound

Ответы:


1

Согласно с man 4 random

Случайное устройство реализует алгоритм генератора псевдослучайных чисел Ярроу и поддерживает его пул энтропии. Дополнительная энтропия регулярно подается на генератор демоном SecurityServer из измерений случайного джиттера ядра. SecurityServer также отвечает за периодическое сохранение некоторой энтропии на диск и ее перезагрузку во время запуска, чтобы обеспечить энтропию на ранних этапах работы системы.

В качестве дополнительного примечания / dev / urandom аналогичен / dev / random в OSX. (также в man 4 random)

/dev/urandom is a compatibility nod to Linux.

Генератор псевдослучайных чисел Ярроу использует «сбор энтропии» при обычных действиях, таких как движение мыши или ввод с клавиатуры, для генерации случайных чисел. Во FreeBSD есть реализация, которую вы можете прочитать, чтобы увидеть, как на практике реализован генератор псевдослучайных чисел Ярроу.

Тем не менее, вы спрашиваете, использует ли OSX инструкции RDRAND в своей реализации или нет, но поскольку OSX является закрытым исходным кодом, мы можем полагаться только на то, что нам говорят, и я нигде не могу найти упоминания, какие библиотеки OSX использует для создания своих случайных чисел ,

Кажется, что вы хотите гарантировать (как и большинство из нас), что числа, заданные / dev / random, действительно будут криптографически защищены, поэтому, когда мы создаем ключи DSA или RSA, мы знаем, что никто, кроме целевой аудитории, не сможет получить доступ. К сожалению, независимо от того, что вы можете найти о том, как OSX должен генерировать свои случайные числа, мы никогда не сможем это проверить, поскольку у нас нет источника.

Как это очень приятно положить в исходный код Linux 3.13.0:

Специфичная для арки hw RNG почти наверняка будет быстрее, чем то, что мы можем сделать в программном обеспечении, но невозможно проверить, что она реализована надежно (в отличие, скажем, от AES-шифрования порядкового номера с использованием ключа, известного АНБ). Так что это полезно, если нам нужна скорость, но только если мы готовы доверять производителю оборудования, чтобы он не закрывал заднюю дверь.

Если вы хотите прочитать, как это на самом деле делается в Linux, не полагаясь на аппаратное обеспечение, прочитайте root / drivers / char / random.c в исходном коде. Комментарии удивительно полезны, чтобы увидеть, что происходит, и дать вам полную картину теории, стоящей за всем этим.

В общем, если вы хотите получить лучшую гарантию криптографической защиты ваших случайных чисел, я бы порекомендовал либо получить ваши случайные числа с помощью онлайн-генератора истинных случайных чисел, либо использовать Linux для создания ваших ключей (в которые вы также можете добавить входные данные из истинного случайного числа). генератор).


Спасибо за ответ. Насколько я понимаю, нет способа узнать это без разборки драйверов OSX - на самом деле я надеялся, что кто-то уже сделал это. Я использовал random.org для онлайн-генерации, но есть ограничение на количество сгенерированных номеров на один IP. Может быть, АНУ будет лучше - спасибо за ссылку. Или, может быть, лучшее решение для меня - использовать инструкцию
RDRAND

Квантовый ГСЧ - хороший подвиг, но он становится немного бессмысленным, если вы получаете к нему доступ через Интернет, поскольку он находится в стране с 5 глазами.
Флориан Хейгл

1
И да и нет. Если вы загружаете случайные числа с одного из сайтов генератора квантовых случайных чисел и создаете свой ключ непосредственно из случайных чисел, то кто-то, кто слушает, может сгенерировать ту же пару ключей. Однако, если вы вместо этого используете его для добавления энтропии в dev / random, просто добавляя некоторые в файл, тогда будет гораздо сложнее угадать, какие числа использовались для генерации ключа. Поскольку вы не полностью зависите от какого-либо одного метода.
SkyFold
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.