Як я можу перевірити наявність ентропії?


14

У системах Linux можна перевірити наявність ентропії (корисно знати, чи ви користуєтесь /dev/randomбудь-якими цілями PRNG) за допомогою

cat /proc/sys/kernel/random/entropy_avail

Однак /procна Mac не існує аналогів (AFAIK). Як я можу перевірити наявність системної ентропії на Mac? У мене працює ОС X 10.7.3 (Лев)


Щоб оновити деякі мої коментарі під відповіддю Кайла - Однією з причин того, що Macs не відображає цю інформацію, є те, що вона не потрібна (у більшості випадків). Системи Linux блокують дзвінки, /dev/randomякщо в пулі недостатньо ентропії. На Маках він періодично продовжує додавати в пул ентропії за допомогою SecurityServerдемон.

Однак він також зазначає, що якщо демон з якоїсь причини вийде з ладу, якість виходу знизиться без будь-яких ознак збою :

Якість її випуску, однак, залежить від регулярного додавання відповідної ентропії. Якщо SecurityServerсистемний демон з будь-якої причини виходить з ладу, якість виходу з часом погіршиться без явних вказівок від самого випадкового пристрою.

Тож хоча кількість ентропії не доступна легко, це не означає, що її немає, і можуть бути випадки, коли її знання можуть бути корисними.


Вам справді потрібно перевірити чи просто переконатися, що там є достатньо речей для використання? Див. Developer.apple.com/library/mac/#documentation/Darwin/Reference/… Цитата: "Параноїдні програмісти можуть дещо протидіяти цьому ризику, збираючи за власним бажанням ентропію (наприклад, від натискання клавіш чи часу миші) та засіваючи її randomбезпосередньо перед отриманням важливі випадкові числа ".
Chris W. Rea

Мені просто потрібно переконатися, що достатньо використовувати.
rm -rf

Відповіді:


6

Це не рішення, а уточнення способу збирання та використання ентропії в Linux.

Linux насправді має два різних пули ентропії:

/dev/randomі /dev/urandom.

Перший - це справжній випадковий пул, що живиться джерелами ентропії системи.
Остання є більшою мірою PRNG, таких як BSD та OS X.

Однак навіть урадон вимагає насіння «реальної» випадкової ентропії для отримання якісних псевдовипадкових даних. На останніх ядрах повна відсутність ентропії в / dev / random все одно не заблокує urandom, але urandom буде повторно використовувати останнє дійсне насіння, поки не стане доступною більше ентропії. Оскільки urandom є неблокувальним, більшість служб, які потребують постійного потоку ентропії, використовують його, а не покладаються на / dev / random.

Однак існують деякі сервіси, наприклад, різні SSL-пакети, які не можуть зробити з псевдовипадковою ентропією, але вимагають справді непередбачуваного джерела ентропії. У цьому випадку не можна використовувати urandom (або будь-який інший PRNG), і / dev / random вступає в гру.


2

Mac OS X просто використовує Yarrow . Навіть FreeBSD пішов далі і перейшов на вдосконалену версію під назвою "Fortuna".

Сила крилатки обмежена розміром ключа. Наприклад, Yarrow-160 має ефективний розмір ключа 160 біт. Якщо для захисту потрібні 256 біт, Yarrow-160 не здатний виконати цю роботу.

Все-у-всьому - це ще одне нагадування, що пріоритети Apple не включають безпеку / надійність чи щось подібне.


1

Mac OS X, як FreeBSD, не покладається на зовнішні джерела ентропії. Замість цього використовується генератор псевдовипадкових чисел на основі алгоритму Ярроу . Оскільки це використовує алгоритм, а не пул ентропії, немає необхідності переконатися, що існує "достатня" ентропія - ви завжди зможете читати з / dev / random без блокування .

Отже, щоб відповісти на ваше запитання, якщо ви не "параноїк" і вам не потрібно базувати свою ентропію на зовнішніх джерелах (натискання клавіш / рухи миші / тощо), в такому випадку вам доведеться зробити це самостійно, кількість доступної ентропії для / dev / випадкове використання завжди нескінченне.


4
Це не зовсім правильно. Використання алгоритму не робить його нескінченною ентропією. Що вони означають, що в Linux він блокує, коли пул ентропії низький, тоді як на mac: "Додаткова ентропія регулярно подається демоном SecurityServer від випадкових джиттерських заходів ядра". Таким чином, він береться за це, а також зберігає деяку ентропію на диску для використання відразу після запуску. Це також говорить про те, що хоча Yarrow стійкий, якість залежить від регулярного додавання ентропії - те, що не знадобиться, якби це була справді нескінченна ентропія
rm -rf

1
Далі йдеться про те, що: "Якщо демон демону системи SecurityServer виходить з ладу з будь-якої причини, якість виходу з часом погіршиться без явних вказівок від самого випадкового пристрою" Я визнаю, що OSX спростив можливість не турбуватися про фактичне значення ентропії, але не означає, що немає жодної ... До речі, я мав на увазі цю чоловічу сторінку в своїх цитатах вище
rm -rf

@RM Правда, я думав більше з точки зору того, чи буде блокування дзвінка до / dev / random, ніж якість ентропії
Кайл Кронін

> якщо ви не "параноїк" - у Mac OS X просто не вистачає будь-якої розумної кількості випадковості, щоб її навіть злегка вважали безпечною
poige
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.