Entropi di mesin virtual

12

Seperti yang Anda ketahui bahwa tidak mudah menghasilkan entropi pada mesin virtual seperti pada komputer "normal". Membuat kunci gpg pada mesin virtual dapat memakan waktu cukup lama, bahkan dengan alat yang benar.

Ada lebih banyak fungsi crypto di luar sana yang tidak begitu sadar entropi seperti gpg.

Jadi dapatkah seseorang mengatakan bahwa kriptografi kurang aman pada mesin virtual?

dbanck
sumber
1
Angka acak dari mesin "asli" sebenarnya bukan acak (kecuali Anda memiliki generator nomor acak perangkat keras, yang sebagian besar tidak). Mereka semua pseudo acak untuk memulai, dan entropi dihasilkan dengan cara yang sama. Jika lambat pada VM, itu platform virtualisasi memperlambatnya (saya berani menebak Anda tidak menggunakan Hypervisor Tipe 1).
Chris S

Jawaban:

6

Pertama-tama, izinkan saya mengatakan bahwa saya sama sekali bukan pakar keamanan.

Karena pembuatan kunci gpg digunakan /dev/randomsebagai generator angka acak, ia aman pada mesin virtual, seperti pada mesin nyata.
/dev/randomadalah perangkat pemblokiran, dan akan berhenti mengirimkan keacakan apa pun di luar jumlah yang tersedia. Anda dapat memeriksa keacakan yang tersedia dengan
cat /proc/sys/kernel/random/entropy_avail(harus sekitar 2000 )

Pada mesin virtual, keacakan yang tersedia memang lebih rendah daripada pada mesin nyata, karena kurangnya akses ke perangkat keras.
Anda dapat meningkatkan entropi dengan misalnya menerapkan kunci entropi dan / atau beralih ke mesin non-visual.

Ada artikel bagus yang tersedia tentang entropi di mesin virtual. Sayangnya kedua bagian artikel hanya tersedia di cache Google sekarang.

Entropy memiliki efek lebih lanjut pada enkripsi ssl / tls. Jadi, menggunakan /dev/urandomatau sumber tidak benar-benar acak memang berdampak pada keamanan aplikasi Anda.

Dalam hal seberapa dapat diandalkan /dev/urandomdibandingkan dengan keacakan benar adalah;
saya tidak dapat memberikan jawaban yang layak di sana, maaf.

Untuk informasi lebih lanjut tentang topik ini Anda bisa pergi ke http://security.stackexchange.com dan / atau baca misalnya. posting ini

nce
sumber
1
/dev/urandommenggunakan PRNG yang aman secara kriptografis (diunggulkan oleh kelompok yang sama /dev/random), jadi seharusnya tidak ada masalah selama ada cukup entropi awal di kelompok ini. Mungkin ada titik penyemaian dari kolam entropi mesin induk.
Paŭlo Ebermann
3

Ya, dalam sebagian besar keadaan, kriptografi kurang aman di mesin virtual daripada di server "nyata".

Yang terakhir setidaknya dapat mengumpulkan entropi dari beberapa perangkat keras yang sebenarnya. Bahkan, operasi sepotong HW - dalam banyak kasus - terikat pada beberapa fenomena fisik, yang selalu tunduk pada variasi kecil, acak oleh semua akun. Karena server biasanya berjalan untuk waktu yang sangat lama tanpa reset, kumpulan entropi yang dihasilkan pada akhirnya akan memiliki kualitas yang cukup.

Mesin virtual menderita tiga masalah.

  1. Perangkat keras yang mereka lihat tidak nyata, dan karena itu hampir tidak dipengaruhi oleh fenomena fisik apa pun. Mereka akan dapat mengumpulkan entropi dengan cara yang jauh lebih lambat.
  2. VM diatur ulang jauh lebih sering daripada server nyata dan mereka bahkan mungkin tidak punya waktu untuk mengumpulkan cukup entropi (itulah sebabnya mengapa baik untuk menyimpan status entropi saat ini ketika dimatikan, dan menggunakannya untuk memberi makan kumpulan entropi ketika memulai kembali).
  3. Sementara server nyata mungkin memiliki beberapa kesempatan untuk menentukan ketika berhadapan dengan kumpulan entropi yang buruk, mesin virtual akan lebih mudah beroperasi di bawah kesan bahwa kumpulan entropi itu baik (karena dikumpulkan dari HW, tetapi tanpa mengetahui bahwa HW adalah tidak nyata), padahal sebenarnya buruk.

Solusi terbaik adalah memiliki VM untuk menyerah dan menyadari bahwa HW yang dilihatnya adalah sumber entropi yang buruk. Kemudian, atur layanan jaringan lokal untuk mendistribusikan entropi berkualitas tinggi (lihat Entropy Broker ). "Server entropi" dapat mengekstraksi keacakan dari HW generik (dalam hal ini harus beroperasi untuk waktu yang cukup, dan harus memiliki OS yang layak) atau dari HW crypto tertentu (chip TPM, chip Gembok VIA, dll.).

VM yang menggunakan layanan semacam itu bahkan mungkin lebih aman (berdasarkan kriptografi) dari server "nyata" yang baru saja boot.

SquareRootOfTwentyThree
sumber