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


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.