Selama musim panas Jason Donenfeld dari WireGuard ketenaran mengusulkan menambahkan getrandom() ke vDSO untuk kinerja yang lebih baik untuk dinikmati oleh pengembang ruang pengguna. Minggu terakhir ini dia mengirimkan versi terbaru dari patch kernel yang diusulkan ini di mana dia melihat peningkatan sekitar ~15x dengan perubahan ini.
Mendukung getrandom() di vDSO dirancang dua mengatasi dua masalah yang dihadapi oleh pengembang ruang pengguna:
1) Userspace menginginkan angka acak yang lebih cepat aman secara kriptografis dengan ukuran sewenang-wenang, besar atau kecil.
2) Userspace saat ini tidak dapat meluncurkan RNG-nya sendiri dengan aman dengan profil keamanan yang sama seperti getrandom(). Setelah diskusi seputar penerapan getrandom() di vDSO, Donenfeld merevisi patch untuk memasukkan umpan balik guna menghindari perubahan perilaku dan menjadikan vgetrandom_alloc sebagai panggilan sistem . Plus ada beberapa perbaikan/perubahan kecil lainnya.
Jason mengakhiri posting v3 dengan:
Sejauh ini dalam hasil pengujian saya, kinerjanya cukup luar biasa (sekitar 15x untuk generasi uint32_t), dan tampaknya berfungsi. Ada beberapa bit TODO dengan integrasi seumur hidup random.c yang sebenarnya, tetapi sebagai patchset awal, ini setidaknya memperkenalkan antarmuka yang dimaksud. Pembaca mungkin juga tertarik dengan ceramah Jason di LPC 2022 seputar pekerjaan yang telah dia lakukan pada generator nomor acak Linux. Videonya ada di bawah dan ada juga slide decknya.
Itulah berita seputar Linux getrandom() vDSO Patch Diperbarui Untuk ~15x Speedup, semoga bermanfaat. Disadur dari Phoronix.com.