GNU/Linux >> Belajar Linux >  >> Linux

Menambahkan entropi nomor acak untuk kunci GPG?

Ada sedikit kebenaran dalam hal ini, sebenarnya lebih banyak kebenaran daripada mitos, tetapi tetap saja pernyataan tersebut mencerminkan kesalahpahaman mendasar tentang apa yang sedang terjadi. Ya, menggerakkan mouse sambil membuat kunci dengan GPG bisa menjadi ide yang bagus. Ya, menggerakkan mouse menyumbangkan beberapa entropi yang membuat angka acak menjadi acak. Tidak, menggerakkan mouse tidak membuat kunci lebih aman.

Semua generator acak yang bagus cocok untuk kriptografi, dan Linux termasuk dalam kategori tersebut, memiliki dua komponen:

  • Sumber entropi, yang non-deterministik. Tujuan dari entropi adalah untuk mem-bootstrap generator angka acak dengan data yang tidak dapat diprediksi. Sumber entropi harus non-deterministik:jika tidak, musuh dapat mereproduksi perhitungan yang sama.
  • Penghasil angka acak semu, yang menghasilkan angka acak yang tidak dapat diprediksi secara deterministik dari keadaan internal yang berubah.

Entropi harus berasal dari sumber yang berada di luar komputer. Pengguna adalah salah satu sumber entropi. Apa yang dilakukan pengguna sebagian besar tidak acak, tetapi pengaturan waktu yang tepat untuk penekanan tombol dan gerakan mouse sangat tidak dapat diprediksi sehingga sedikit acak - tidak terlalu acak, tetapi sedikit demi sedikit, itu terakumulasi. Sumber entropi potensial lainnya termasuk waktu paket jaringan dan derau putih kamera atau mikrofon. Versi dan konfigurasi kernel yang berbeda mungkin menggunakan kumpulan sumber yang berbeda. Beberapa komputer memiliki sirkuit RNG perangkat keras khusus berdasarkan peluruhan radioaktif atau, yang kurang mengesankan, sirkuit elektronik yang tidak stabil. Sumber khusus ini sangat berguna di perangkat tersemat dan server yang dapat memiliki perilaku yang cukup dapat diprediksi pada boot pertama mereka, tanpa pengguna melakukan hal-hal aneh.

Linux menyediakan nomor acak untuk program melalui dua perangkat:/dev/random dan /dev/urandom . Membaca dari salah satu perangkat mengembalikan kualitas kriptografi. Kedua perangkat menggunakan status RNG internal yang sama dan algoritme yang sama untuk mengubah status dan menghasilkan byte acak. Mereka memiliki batasan khusus yang menjadikan keduanya bukan hal yang benar:

  • /dev/urandom dapat mengembalikan data yang dapat diprediksi jika sistem belum mengumpulkan entropi yang memadai.
  • /dev/random menghitung jumlah entropi dan blok yang tersedia jika tidak cukup. Kedengarannya bagus, kecuali bahwa perhitungan didasarkan pada pertimbangan teoretis yang membuat jumlah entropi yang tersedia berkurang secara linier dengan setiap bit keluaran. Jadi /dev/random cenderung memblokir dengan sangat cepat.

Sistem Linux menyimpan status RNG internal ke disk dan memulihkannya saat boot. Oleh karena itu entropi terbawa dari satu boot ke boot berikutnya. Satu-satunya saat ketika sistem Linux mungkin kekurangan entropi adalah ketika baru diinstal. Begitu ada cukup entropi dalam sistem, entropi tidak berkurang; hanya perhitungan cacat Linux yang berkurang. Untuk penjelasan lebih lanjut tentang pertimbangan ini, baca /dev/urandom cocok untuk menghasilkan kunci kriptografi, oleh kriptografer profesional. Lihat juga Bisakah Anda menjelaskan estimasi entropi yang digunakan di random.c.

Memindahkan mouse menambahkan lebih banyak entropi ke sistem. Tapi gpg hanya bisa membaca dari /dev/random , bukan /dev/urandom (cara untuk mengatasi masalah ini adalah dengan membuat /dev/random perangkat 1:9 yang sama dengan /dev/urandom ), jadi tidak pernah berisiko menerima nomor acak yang tidak cukup acak. Jika Anda tidak menggerakkan mouse, kuncinya acak; tetapi yang bisa terjadi adalah gpg mungkin diblokir dalam pembacaan dari /dev/random , menunggu penghitung entropi kernel naik.


GPG menggunakan generator nomor acak Linux (kernel). Kernel generator mendapatkan entropy (keacakan) dari berbagai macam tempat, diantaranya adalah waktu interupsi, untuk interupsi tertentu. Memindahkan mouse (dan mengetik, aktivitas disk, dll.) semuanya akan menghasilkan interupsi.

Jadi, menggerakkan mouse memang berpotensi masuk ke generator angka acak. Tapi apakah itu tergantung pada versi kernel yang digunakan; versi yang lebih baru tidak (setidaknya dalam pengujian saya) menggunakan interupsi keyboard atau mouse untuk entropi. Akan tetapi, aktivitas disk juga demikian (jadi, misalnya, menjalankan sync akan menambah jumlah entropi yang berpotensi besar, bergantung pada seberapa banyak yang disiram).

Singkatnya:ini tidak benar pada versi Linux saat ini. Itu pada yang lebih tua.

Namun, jika generator kehabisan entropi, itu seharusnya berhenti begitu saja—sehingga pembuatan kunci Anda akan hang sampai beberapa entropi dihasilkan. Jadi ini akan menjadi masalah selamanya, bukan masalah keamanan.

Anda dapat melihat berapa banyak entropi yang tersedia dengan cat /proc/sys/kernel/random/entropy_avail .


Linux
  1. Linux – Alat Untuk Mengukur Kualitas Entropi?

  2. Cara Mengeksekusi Perintah Ping Hanya Untuk N jumlah Paket

  3. Angka acak antara rentang di shell

  1. Bagaimana cara memilih nomor port statis untuk aplikasi khusus?

  2. Alat untuk mengukur kualitas entropi?

  3. Mencari sejumlah file untuk sebuah string di LInux

  1. Cara menginstal pandom:generator angka acak yang benar untuk Linux

  2. Kesalahan Dalam Script Hitung Untuk Jumlah Kejadian?

  3. Menambahkan penundaan acak untuk perintah Linux