Apakah salah menghubungkan / dev / acak ke / dev / urandom di Linux?

13

Saat ini saya sedang menguji gpg --genkeypada VM Linux. Sayangnya, perangkat lunak ini tampaknya mengandalkan /dev/randomuntuk mengumpulkan entropi dan dengan sopan meminta pengguna untuk secara manual mengetik layar setelah layar input acak kriptografis sehingga akhirnya dapat menghasilkan kunci, dan saya tidak menemukan parameter baris perintah untuk memberi tahu untuk menggunakan file lain sebagai sumber entropi (orang di video ini mengalami masalah yang sama ...).

Namun, pengguna harus bebas memilih untuk menggunakannya /dev/urandomkarena tidak ada yang salah dengan itu . Itu ada terutama sebagai pengingat algoritma PRNG yang lebih tua yang lebih lemah dari sudut pandang kriptografi. Sebagai contoh, sementara manual NetBSD memberikan bahwa perbedaan itu mungkin masih berguna pada tahap booting awal, itu menggambarkan perbedaan seperti "cerita rakyat" dan "teori imajiner yang membela hanya terhadap model ancaman fantasi" . Tidak ada orang yang setuju dengan jumlah entropi yang diperlukan oleh perintah ini atau fakta bahwa entropi adalah sesuatu yang sebenarnya dikonsumsi seperti yang dinyatakan dalam manual GPG ("TOLONG, jangan gunakan perintah ini kecuali kamu tahu apa yang kamu lakukan, itu bisa menghilangkan entropi berharga dari sistem!" ).

Saya telah membaca tentang orangrngd - orang yang menginstal daemon dan mengkonfigurasinya untuk digunakan /dev/urandomsebagai sumber entropi untuk diumpankan /dev/random, tetapi saya menemukan praktik seperti itu sangat kotor.

Saya mencoba untuk menyelesaikan masalah dengan cara FreeBSD dengan menghapus /dev/randomdan menautkannya sebagai /dev/urandomgantinya:

rm /dev/random
ln -s /dev/urandom /dev/random

Saya melihat ini sebagai pengaturan yang mengatakan "Saya percaya /dev/urandomsebagai sumber entropi" .

Saya khawatir saya akan menemukan beberapa kesalahan, tetapi ini tampaknya memberikan hasil yang diharapkan karena perintah sekarang kembali dengan sukses segera.

Pertanyaan saya adalah: adakah efek samping yang diketahui, praktis, dan salah menghubungkan /dev/randomke /dev/urandomsistem Linux sebagaimana dilakukan secara default pada sistem FreeBSD? Atau bisakah seseorang membayangkan untuk mengatur ini secara permanen (dalam skrip di akhir proses booting misalnya) jika terjadi masalah berulang karena /dev/randommengunci beberapa layanan?

WhiteWinterWolf
sumber

Jawaban:

2

Lihat Mitos tentang urandom , tidak ada serangan yang diketahui pada / dev / urandom yang juga tidak akan menjadi serangan pada / dev / acak. Masalah utama yang dimiliki sistem Linux adalah ketika sistem itu diklon dan dijalankan sebagai beberapa VM tanpa mengatur ulang kumpulan entropi yang disimpan setelah kloning. Itu adalah kasus sudut yang bersinggungan dengan apa yang Anda inginkan.

Walter
sumber
0

Nah satu hal yang berbeda tentang itu /dev/randomadalah menghentikan output setelah pool entropi digunakan. coba ini:

$ cat /dev/random
(a few short lines of gibberish)^C
$ 

/dev/urandomnamun akan menggunakan kembali kumpulan yang sama untuk melanjutkan keluaran. seperti yang ditunjukkan di sini:

$ cat /dev/urandom
(tons of gibberish fills the screen)^C
$

(Ketika Anda mencoba untuk menggunakan perangkat khusus ini, prompt Anda mungkin kacau. Cukup ketik resetdan masukkan, terminal Anda akan kembali normal)

Gunakan /dev/urandomketika Anda hanya perlu mengisi sesuatu dengan aliran konstan "acak" bit. Gunakan /dev/randomuntuk kunci yang harus benar-benar acak.

Daniel
sumber
3
Pertanyaan OP adalah: adakah efek samping yang diketahui, praktis dan salah dari menghubungkan / dev / acak ke / dev / urandom pada sistem Linux sebagaimana dilakukan secara default pada sistem FreeBSD?
countermode
Menarik, jika perbedaannya diucapkan maka mereka tidak boleh dihubungkan. Sebagian besar diskusi lain akhirnya mencapai konsensus tidak ada perbedaan setelah boot tetapi perilaku ini mungkin menunjukkan perbedaan yang lebih lama.
KalleMP
-2

Di Linux, /dev/randommemberikan bit acak berkualitas tinggi. Mereka berasal dari sumber yang tidak dapat diprediksi dan tidak dapat diulang, eksternal ke mesin. Sebaliknya, /dev/urandommenggunakan data acak yang sama dengan /dev/random(jika tersedia), jika tidak ada, itu menggunakan generator nomor pseudo-acak, yang bersifat deterministik . Untuk sebagian besar tujuan, ini cukup tidak terduga, tetapi tidak untuk aplikasi yang sangat menuntut seperti kriptografi, dan apalagi untuk membuat kunci berumur panjang seperti untuk GPG.

vonbrand
sumber
6
Ini salah. /dev/urandombaik untuk kriptografi .
Gilles 'SO- stop being evil'
@Gilles itu tergantung pada tingkat paranoia Anda. Untuk GPG, semua orang dipengaruhi oleh kunci Anda (secara tidak langsung).
vonbrand
5
Jika Anda tidak percaya /dev/urandom, Anda juga tidak punya alasan untuk memercayai GPG.
Gilles 'SANGAT berhenti menjadi jahat'
3
@vonbrand: Tergantung pada tingkat paranoia saya, jika saya harus memilih antara PRNG yang diperiksa secara matematis untuk menghasilkan keacakan atau pengguna yang dipaksa untuk mengetik layar penuh sampah "asdfghasdfghasdfgh", saya sejauh ini akan memilih perangkat lunak PRNG. Saya mengerti maksud Anda bahwa komputer tidak bagus dalam menghasilkan keacakan, tetapi manusia lebih buruk dalam hal itu. Namun demikian, untuk kembali ke pertanyaan saya, kecuali dari debat urandomvs. random, apakah Anda mengonfirmasi bahwa mengganti /dev/randomfile dengan tautan tidak boleh memiliki efek samping dan menjadi alternatif untuk rngdtrik yang saya sebutkan?
WhiteWinterWolf
2
Ini salah. Mereka menggunakan RNG SAMA, tetapi blok acak jika menebak bahwa tidak ada cukup entropi.
Duncan X Simpson