
Pembuatan angka acak
Pembuat angka semu acak kriptografis (CPRNG) merupakan komponen pembangun penting untuk perangkat lunak yang aman. Pada tahap ini, Apple menyediakan CPRNG perangkat lunak tepercaya yang dijalankan di kernel iOS, iPadOS, macOS, tvOS, visionOS, dan watchOS. CPRNG tersebut berfungsi untuk mengagregatkan entropi mentah dari sistem dan menyediakan angka acak aman kepada konsumen di kernel dan ruang pengguna.
Sumber entropi
CPRNG kernel diseeding dari beberapa sumber entropi selama boot dan sepanjang masa pakai perangkat. Ini meliputi (dapat berubah tergantung ketersediaan):
TRNG perangkat keras Secure Enclave
Jitter berbasis waktu yang dikumpulkan selama boot
Entropi yang dikumpulkan dari gangguan perangkat keras
File seed yang digunakan untuk mempertahankan entropi selama boot
Instruksi acak Intel—misalnya, RDSEED dan RDRAND (hanya di Mac berbasis Intel)
CPRNG kernel
CPRNG Kernel adalah desain yang berasal dari Fortuna yang menargetkan level keamanan 256 bit. CPRNG kernel ini menyediakan angka acak berkualitas tinggi bagi konsumen ruang pengguna menggunakan API berikut:
Panggilan sistem
getentropy(2)Perangkat acak (
/dev/random)
CPRNG kernel menerima entropi yang disediakan pengguna melalui penulisan ke perangkat acak.