
난수 발생
CPRNG(의사 난수 발생기)는 보안 소프트웨어의 중요한 구성 요소입니다. 이를 위해 Apple은 iOS, iPadOS, macOS, tvOS, watchOS 및 visionOS 커널에서 실행되는 신뢰하는 소프트웨어 CPRNG를 지원합니다. 이는 시스템에서 raw 엔트로피를 집계하고 커널과 사용자 공간 모두에서 안전한 무작위 번호를 소비자에게 제공하는 것을 담당합니다.
엔트로피 소스
커널 CPRNG는 기기를 시동하는 동안과 기기의 수명 주기에 걸쳐 여러 엔트로피 소스에서 시드됩니다. 이는 다음을 포함합니다(가능 여부에 따라).
Secure Enclave 하드웨어 TRNG
시동 중에 수집된 타이밍 기반 지터
하드웨어 인터럽트에서 수집된 엔트로피
시동 과정에 걸쳐 엔트로피를 유지하는 데 사용되는 시드 파일
Intel 임의 명령(예 : RDSEED 및 RDRAND(Intel 기반 Mac에만 해당))
커널 CPRNG
커널 CPRNG는 256비트 보안 수준을 대상으로 하는 Fortuna 파생 설계입니다. 다음과 같은 API를 통해 사용자 공간 소비자에게 고품질의 무작위 번호를 제공합니다.
getentropy
(2) 시스템 호출임의의 기기(/dev/random)
커널 CPRNG는 임의의 기기에 쓰기를 통해 사용자 제공 엔트로피를 수용합니다.
피드백을 보내 주셔서 감사합니다.