
Generering av tilfeldige tall
Kryptografiske pseudotilfeldige tallgeneratorer (CPRNG-er) er viktige byggesteiner for sikker programvare. For dette formålet leverer Apple en godkjent programvare-CPRNG som kjører i iOS-, iPadOS-, macOS-, tvOS-, watchOS- og visionOS-kjernene. Den er ansvarlig for å aggregere rå entropi fra systemet og levere sikre, tilfeldige tall til forbrukere i både kjernen og brukerområdet.
Entropikilder
Kjerne-CPRNG-en avledes av flere entropikilder under oppstart og over enhetens levetid. Disse inkluderer (avhengig av tilgjengelighet):
Secure Enclaves maskinvare-TRNG
Tidsbasert jitter innsamlet under oppstart
Entropi innsamlet fra maskinvareavbrudd
En seed-fil som brukes til å opprettholde entropi på tvers av oppstarter
Tilfeldige Intel-instruksjoner – for eksempel RDSEED og RDRAND (kun på Intel-baserte Macer)
Kjerne-CPRNG-en
Kjerne-CPRNG-en er en Fortuna-avledet design som tar sikte på et 256-bit sikkerhetsnivå. Den leverer tilfeldige tall med høy kvalitet til sluttbrukere ved hjelp av følgende API-er:
systemkallet
getentropy
(2)Den tilfeldige enheten (/dev/random)
Kjerne-CPRNG godtar brukerlevert entropi via skriving til den tilfeldige enheten.