Appleプラットフォームのセキュリティ

乱数の生成
暗号擬似乱数ジェネレータ(CPRNG)は安全なソフトウェアの重要な構成要素です。安全なソフトウェアを実現するために、AppleはiOS、iPadOS、macOS、tvOS、watchOS、visionOSのカーネルで実行する、信頼性の高いソフトウェアCPRNGを提供しています。CPRNGはシステムから生のエントロピーを集め、カーネルとユーザ空間の両方でコンシューマに安全な乱数を提供するという役割を担います。
エントロピーソース
カーネルのCPRNGは、起動時とデバイスのライフタイム全体を通じて、複数のエントロピーソースからシード値を得ます。エントロピーソースには以下が含まれます(使用できる場合):
- Secure EnclaveのハードウェアTRNG 
- 起動時に収集された、タイミングベースのジッタ 
- ハードウェア割り込みから収集されたエントロピー 
- 起動をまたいでエントロピーを保持するために使用するシードファイル 
- Intelの乱数命令 — RDSEEDやRDRANDなど(Intelプロセッサ搭載Macのみ) 
カーネルCPRNG
カーネルのCPRNGはFortuna由来の設計で、256ビットのセキュリティレベルを対象としています。カーネルのCPRNGは以下のAPIを使用してユーザ空間のコンシューマに高品質な乱数を提供します:
- getentropy(2)システム呼び出し
- ランダムデバイス(/dev/random) 
カーネルのCPRNGは、ランダムデバイスへの書き込みを通じて、ユーザが提供したエントロピーを受け入れます。
        フィードバックありがとうございます。