
Satunnaislukujen generointi
Kryptografiset näennäissatunnaislukugeneraattorit (cryptographic pseudo-random number generator, CPRNG) ovat tärkeä osa turvallista ohjelmistoa. Tätä varten Apple tarjoaa ohjelmiston kryptografisen näennäissatunnaislukugeneraattorin, joka toimii iOS:n, iPadOS:n, macOS:n, tvOS:n, visionOS:n ja watchOS:n kerneleissä. Se kerää entropiaa järjestelmästä ja tarjoaa turvalliset satunnaisluvut kuluttajille kernelissä ja käyttäjätilassa.
Entropialähteet
Kernelin kryptografinen näennäissatunnaislukugeneraattori siemennetään useista entropialähteistä käynnistyksen ja laitteen käyttöiän aikana. Näitä ovat (riippuen saatavuudesta):
Secure Enclaven laitteisto-TRNG
Käynnistyksen aikana kerätty ajoitusperusteinen värinä
Laitekeskeytyksistä kerätty entropia
Siementiedosto, jota käytetään entropian säilyttämiseen käynnistyksien välillä
Intelin satunnaiskäskyt, esimerkiksi RDSEED ja RDRAND (vain Intel-pohjainen Mac)
Kernelin kryptografinen näennäissatunnaislukugeneraattori
Kernelin kryptografinen näennäissatunnaislukugeneraattori on Fortunasta johdettu malli, joka tähtää 256-bittiselle suojaustasolle. Se tarjoaa laadukkaita satunnaislukuja käyttäjätilan kuluttajille seuraavien API:en kautta:
getentropy(2)-järjestelmäkutsuNäennäissatunnaislukulaite (
/dev/random)
Kernelin kryptografinen näennäissatunnaislukugeneraattori hyväksyy käyttäjän toimittamaa entropiaa näennäissatunnaislukulaitteeseen kirjoituksen kautta.