Bagaimana saya bisa memeriksa entropi yang tersedia?


14

Pada sistem linux, seseorang dapat memeriksa entropi yang tersedia (berguna untuk mengetahui apakah Anda mengetuk /dev/randomuntuk tujuan PRNG) dengan

cat /proc/sys/kernel/random/entropy_avail

Namun, tidak ada padanan /procpada Mac (AFAIK). Bagaimana saya bisa memeriksa entropi sistem yang tersedia di Mac? Saya menjalankan OS X 10.7.3 (Singa)


Untuk memperbarui dengan beberapa komentar saya di bawah jawaban Kyle - Salah satu alasan Mac tidak menampilkan informasi ini adalah karena tidak diperlukan (dalam kebanyakan kasus). Sistem Linux akan memblokir panggilan ke /dev/randomjika tidak ada cukup entropi di kolam. Di Mac, ia secara berkala terus menambahkan ke kumpulan entropi menggunakan SecurityServerdaemon.

Namun, ia juga mencatat bahwa jika daemon gagal karena suatu alasan, kualitas output akan menurun tanpa ada indikasi kegagalan :

Namun, kualitas outputnya tergantung pada penambahan entropi yang tepat dan teratur. Jika SecurityServerdaemon sistem gagal karena alasan apa pun, kualitas keluaran akan berkurang seiring waktu tanpa ada indikasi eksplisit dari perangkat acak itu sendiri.

Jadi, meskipun jumlah entropi tidak tersedia dengan mudah, itu tidak berarti itu tidak ada dan mungkin ada contoh di mana pengetahuannya mungkin membantu.


Apakah Anda benar-benar perlu memeriksa, atau hanya memastikan ada cukup banyak barang di sana untuk digunakan? Lihat developer.apple.com/library/mac/#documentation/Darwin/Reference/… Quote: "Programmer paranoid dapat menangkal risiko ini dengan mengumpulkan entropi pilihan mereka (mis. Dari penekanan tombol atau timing mouse) dan menyemainya randomlangsung sebelum memperoleh angka acak penting. "
Chris W. Rea

Saya hanya perlu memastikan ada cukup untuk digunakan.
rm -rf

Jawaban:


6

Ini bukan solusi, tetapi klarifikasi tentang bagaimana entropi dikumpulkan dan digunakan di Linux.

Linux sebenarnya memiliki dua kumpulan entropi yang berbeda:

/dev/randomdan /dev/urandom.

Yang pertama adalah kumpulan acak yang benar, diberi makan oleh sumber entropi sistem.
Yang terakhir ini lebih merupakan PRNG seperti yang ditemukan pada BSD dan OS X.

Namun, bahkan urandom membutuhkan benih entropi acak 'nyata' untuk menghasilkan data pseudo-acak berkualitas. Pada kernel baru-baru ini, kurangnya entropi di / dev / random masih tidak akan memblokir urandom, tetapi urandom akan menggunakan kembali seed valid terakhir sampai lebih banyak entropi tersedia. Karena urandom nonblocking, sebagian besar layanan yang membutuhkan aliran entropi yang stabil menggunakannya daripada mengandalkan / dev / acak.

Namun masih ada beberapa layanan, seperti berbagai suite SSL, yang tidak dapat dilakukan dengan entropi pseudo-acak, tetapi membutuhkan sumber entropi yang benar-benar tidak dapat diprediksi. Dalam hal ini, urandom (atau PRNG lainnya) tidak dapat digunakan, dan / dev / random ikut bermain.


2

Mac OS X hanya menggunakan Yarrow . Bahkan FreeBSD melangkah lebih jauh dan beralih ke versi yang ditingkatkan yang disebut "Fortuna".

Kekuatan Yarrow dibatasi oleh ukuran kunci. Misalnya, Yarrow-160 memiliki ukuran kunci efektif 160 bit. Jika keamanan membutuhkan 256 bit, Yarrow-160 tidak mampu melakukan pekerjaan.

Semua-dalam-semua ini adalah pengingat lain prioritas Apple tidak termasuk keamanan / ketahanan atau semacamnya.


1

Mac OS X, seperti FreeBSD, tidak bergantung pada sumber eksternal entropi. Sebaliknya, ia menggunakan generator nomor pseudorandom berdasarkan algoritma Yarrow . Karena menggunakan algoritme dan bukan kumpulan entropi, tidak perlu memastikan ada entropi "cukup" - Anda akan selalu dapat membaca dari / dev / random tanpa memblokir .

Jadi, untuk menjawab pertanyaan Anda, kecuali jika Anda "paranoid" dan perlu mendasarkan entropi Anda pada sumber eksternal (penekanan tombol / gerakan mouse / dll), dalam hal ini Anda harus melakukannya sendiri, jumlah entropi yang tersedia untuk / dev / penggunaan acak selalu tanpa batas.


4
Ini tidak sepenuhnya benar. Menggunakan algoritma tidak membuatnya entropi tanpa batas. Apa yang mereka maksudkan adalah bahwa di Linux, ia memblokir ketika kumpulan entropi rendah, sedangkan pada mac: "Entropi tambahan diumpankan ke generator secara teratur oleh daemon SecurityServer dari pengukuran jitter random mea dari kernel." Jadi pada dasarnya, itu akan mengurusnya dan juga menyimpan beberapa entropi ke disk untuk digunakan segera setelah startup. Ia juga mengatakan bahwa sementara Yarrow tangguh, kualitasnya tergantung pada penambahan entropi secara teratur - sesuatu yang tidak diperlukan jika itu adalah entropi yang benar-benar tak terbatas
rm -rf

1
Lebih lanjut dikatakan bahwa: "Jika daemon sistem SecurityServer gagal karena alasan apa pun, kualitas output akan berkurang seiring waktu tanpa ada indikasi eksplisit dari perangkat acak itu sendiri" Saya akan mengakui bahwa OSX telah membuatnya mudah untuk tidak perlu khawatir tentang yang sebenarnya nilai entropi, tetapi tidak berarti bahwa tidak ada satu ... Btw, saya merujuk ke halaman manual ini dalam kutipan saya di atas
rm -rf

@RM Benar, saya berpikir lebih banyak dalam hal apakah panggilan ke / dev / acak akan memblokir daripada kualitas entropi
Kyle Cronin

> kecuali Anda "paranoid" - Mac OS X tidak memiliki jumlah keacakan yang masuk akal untuk dianggap sedikit pun aman
poige
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.