Rupanya, / dev / random didasarkan pada gangguan perangkat keras atau aspek serupa dari perangkat keras fisik yang tidak dapat diprediksi. Karena mesin virtual tidak memiliki perangkat keras fisik, menjalankan cat /dev/random
dalam mesin virtual tidak menghasilkan apa-apa. Saya menggunakan Ubuntu Server 11.04 sebagai tuan rumah dan tamu, dengan libvirt / KVM.
Saya perlu mengatur Kerberos di dalam VM, tetapi krb5_newrealm
hang selamanya "Memuat data acak", karena sistem tidak menghasilkan apa pun.
Adakah yang tahu cara mengatasi ini? Apakah mungkin untuk melewatkan host / dev / random (yang sangat cerewet) ke dalam vm sehingga vm dapat menggunakan data acaknya?
Saya telah membaca bahwa ada beberapa alternatif perangkat lunak, tetapi mereka tidak baik untuk kriptologi karena mereka tidak cukup acak.
EDIT: Tampaknya cat / dev / random pada vm menghasilkan output, hanya sangat, sangat lambat. Saya mendapatkan pengaturan ranah saya dengan menunggu sekitar dua jam saat itu "Memuat data acak". Akhirnya itu cukup untuk melanjutkan. Saya masih tertarik dengan cara untuk mempercepat ini.
cat /proc/sys/kernel/random/entropy_avail
Apa pun yang meningkat itu berfungsi.python -c 'while True: import time; print str(time.sleep(1))[0:0] + open("/proc/sys/kernel/random/entropy_avail", "rb").read(),'
. Yeh, itu sulit dibaca, tetapi saya tidak melihat cara untuk memasukkan baris baru dalam komentar ...Saya menggunakan hasged pada semua server tanpa kepala saya yang melakukan operasi kriptografi (mis. Jabat tangan TLS, kerberos, dll). Seharusnya di sebagian besar repositori versi Ubuntu: http://packages.ubuntu.com/search?keywords=haveged&searchon=names&suite=all§ion=all
hasged menggunakan algoritma HAVAGE untuk mengekstraksi entropi dari keadaan internal prosesor modern. Berikut ini penjelasan mendalam: http://www.irisa.fr/caps/projects/hipsor/
Anda dapat memeriksa keacakan entropi yang dihasilkan dengan paket ent. Pada sistem saya, entropi yang dihasilkan dari hasged lulus semua tes keacakan oleh ent
sumber
Ya, Anda bisa menaburnya, dari:
http://manpages.ubuntu.com/manpages/jaunty/man4/random.4.html
Anda bisa memasukkannya ke / dev / urandom dan seharusnya seed entropy pool. Saya dapat mengkonfirmasi ini dengan:
Bonus jika Anda membuat perintah ssh melalui router sehingga menghasilkan entropi * :)
sumber
Ini berhasil untuk saya
Menjalankan krb5_newrealm di dalam VM dapat memakan waktu lama untuk diselesaikan (setelah menampilkan pesan "Memuat data acak"). Anda dapat menggunakan retasan berikut untuk mempercepat beberapa hal.
diposting di http://fossies.org/linux/john/doc/Kerberos-Auditing-HOWTO.md
sumber
Jawaban X86 adalah memastikan VM Anda tidak menjebak RdRand atau RdSeed. Anda mempercayai VM Anda untuk banyak hal, ini adalah salah satunya.
Sebuah RNGd yang cukup baru pada postingan Snady Bridge CPU, akan (atau dapat dikatakan) menggunakan RdRand atau RdSeed, dan RdRand atau RdSeed yang tidak terkunci mendapatkan entropi ke dalam VM. / dev / random kemudian bekerja dengan sumber entropi nyata (bukan virtual).
Ini bukan kebetulan. Itu ada di sana di dokumen arsitektur Intel.
Untuk sumber entropi perangkat keras berbasis perangkat (IE menggunakan driver kernel untuk membagikannya), Anda memerlukan VM untuk memvirtualisasi sumber fisik dengan benar. Saya tidak tahu apakah mereka melakukan ini dan jika demikian, untuk perangkat mana.
Jika RNGd Anda tidak memiliki opsi drng di bawah ini, perbarui. Jika perangkat keras Anda tidak memiliki RNG perangkat keras yang cepat, Anda akan hancur dan Anda harus mempertimbangkan untuk menggunakan perangkat keras yang berbeda untuk tujuan keamanan.
sumber
Saya mengalami masalah dengan menggantung krb5_newrealm juga. Ini bekerja dengan baik untuk saya, berdasarkan jawaban di atas:
Anda mungkin ingin membunuhnya setelah Anda selesai dengan kebutuhan Anda akan data acak. / dev / sda mungkin memiliki lebih banyak data daripada yang Anda butuhkan.
Catatan: Saya tidak yakin seberapa acak data acak yang dihasilkan dengan cara ini sebenarnya.
sumber