12 votes

MacOS utilise-t-il toujours Yarrow comme générateur de nombres pseudo-aléatoires à sécurité cryptographique ?

J'essaie de comprendre si les fondements XNU de MacOS (BSD) utilisent toujours le générateur de nombres pseudo-aléatoires Yarrow à sécurité cryptographique ?

J'ai regardé la source et il semble qu'ils soient passés à un générateur DRBG NIST ?

https://opensource.apple.com/source/xnu/xnu-4903.221.2/osfmk/corecrypto/ccdbrg/src/ccdrbg_nisthmac.c.auto.html

Il y a très peu de références à Yarrow dans le code XNU de la 10.14 par rapport aux anciennes versions du noyau, mais la 10.14 contient encore cette chaîne dans key.c :

/* Our PRNG is based on Yarrow and doesn't need to be seeded */

Cela dit, si vous regardez les anciens XNU, le millefeuille est partout.

Code source de XNU :

Beaucoup de références à Yarrow dans XNU 2782 - MacOS 10.11

Très peu de références à Yarrow dans XNU 4903 - MacOS 10.14

Alors, est-ce que Apple utilise toujours l'achillée ?

Je demande parce que Yarrow est seulement capable de générer des clés fortes de 160 bits.

7voto

Woodstock Points 1304

Yarrow est parti.

Le noyau CPRNG est une conception dérivée de Fortuna visant un niveau de sécurité de 256 bits.

https://support.apple.com/en-ie/guide/security/seca0c73a75b/1/web/1

Ok ! J'ai récemment envoyé un courrier à Craig Federighi à ce sujet, car je craignais que MacOS ne soit pas capable de générer des clés de qualité >128 bits.

Il a répondu !

La source à laquelle vous vous référiez est périmée. Vous pouvez trouver des informations plus récentes ici : Certification FIPS document section 7 : "Le NDRNG alimente le DRBG en entropie à partir du pool, sur demande. Le NDRNG fournit 256 bits d'entropie."

Quelle légende.

enter image description here

Donc oui, MacOS et iOS sont tous deux capables de générer une entropie de 256 bits et de créer des clés CS de qualité pour la cryptographie ECC et Symmetric Key.

EDIT : Apple a confirmé que le noyau CPRNG est une conception dérivée de Fortuna visant un niveau de sécurité de 256 bits.

1voto

lx07 Points 2680

Il semble qu'à partir de la 10.14 Apple sont J'utilise toujours l'achillée millefeuille.

La source de xnu-4903.221.2/osfmk/prng/random.h dice "...nous gardons Yarrow. " et le code suivant est conditionné par le fait que Yarrow soit codé vrai :

void early_random_cpu_init(int cpu);

/*
 * Wrapper for requesting a CCKPRNG operation.
 * This macro makes the DRBG call with pre-emption disabled to ensure that
 * any attempt to block will cause a panic. And the operation is timed and
 * cannot exceed 10msec (for development kernels).
 * But skip this while we retain Yarrow.
 */
#define YARROW 1
#if YARROW
#define PRNG_CCKPRNG(op) \
    MACRO_BEGIN          \
    op;                  \
    MACRO_END
#else

En supposant qu'il soit à jour, man random sur 10.14.5 le confirme :

 The random device implements the Yarrow pseudo random number generator algorithm and maintains
 its entropy pool.  The kernel automatically seeds the algorithm with additional entropy during
 normal execution.

La question de savoir si l'achillée millefeuille est suffisante ou non semble être couverte par votre autre question .

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X