.\" -*- coding: UTF-8 -*- .\" Copyright (C) 2008, George Spelvin , .\" and Copyright (C) 2008, Matt Mackall .\" and Copyright (C) 2016, Laurent Georget .\" and Copyright (C) 2016, Nikos Mavrogiannopoulos .\" .\" %%%LICENSE_START(VERBATIM) .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of .\" this manual under the conditions for verbatim copying, provided that .\" the entire resulting derived work is distributed under the terms of .\" a permission notice identical to this one. .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume. .\" no responsibility for errors or omissions, or for damages resulting. .\" from the use of the information contained herein. The author(s) may. .\" not have taken the same level of care in the production of this. .\" manual, which is licensed free of charge, as they might when working. .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" %%%LICENSE_END .\" .\" The following web page is quite informative: .\" http://www.2uo.de/myths-about-urandom/ .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH RANDOM 7 "13 mars 2017" Linux "Manuel du programmeur Linux" .SH NOM random – aperçu d’interfaces pour obtenir un caractère aléatoire .SH DESCRIPTION Le générateur de nombres aléatoires du noyau repose sur l’entropie recueillie à partir de pilotes de périphérique et d’autres sources de bruit environnemental pour ensemencer un générateur de nombres pseudo\-aléatoires (CSPRNG) sûr du point de vue cryptographie. Il est conçu pour la sécurité plutôt que pour la rapidité. .PP Les interfaces suivantes fournissent un accès pour obtenir un résultat d’un générateur de nombres pseudo\-aléatoires du noyau\ : .IP * 3 Les périphériques \fI/dev/urandom\fP et \fI/dev/random\fP, tous deux décrits dans \fBrandom\fP(4). Ces périphériques sont présents dans Linux depuis les premiers temps et sont aussi disponibles dans beaucoup d’autres systèmes. .IP * .\" L’appel système \fBgetrandom\fP(2) spécifique à Linux, disponible depuis Linux\ 3.17. Cet appel système fournit un accès soit à la même source que \fI/dev/urandom\fP (appelée la source \fIurandom\fP dans cette page) ou à la même source que \fI/dev/random\fP (appelée la source \fIrandom\fP dans cette page). Celle par défaut est la source \fIurandom\fP. La source \fIrandom\fP est sélectionnée avec l’indicateur \fBGRND_RANDOM\fP dans l’appel système. La fonction \fBgetentropy\fP(3) avec \fBgetrandom\fP(2) fournit une interface légèrement plus portable. .SS "Initialisation de la réserve d’entropie" Le noyau collecte les bits d’entropie à partir de l’environnement. Lorsque un nombre suffisant de bits a été collecté, la réserve d’entropie est considérée comme initialisée. .SS "Choix de la source random" À moins de vouloir générer une clef pérenne (et très vraisemblablement même pas dans ce cas), la lecture ne sera probablement pas faite à partir du périphérique \fI/dev/random\fP ou en employant \fBgetrandom\fP(2) avec l’indicateur \fBGRND_RANDOM\fP. À la place, la lecture sera faite soit à partir du périphérique \fI/dev/urandom\fP ou en utilisant \fBgetrandom\fP(2) sans l’indicateur \fBGRND_RANDOM\fP. Les cryptosystèmes pour la source \fIurandom\fP sont plutôt conservatifs et par conséquent devraient être suffisants pour toutes les utilisations. .PP .\" L’inconvénient de \fBGRND_RANDOM\fP et des lectures à partir de \fI/dev/random\fP est que l’opération peut bloquer pendant une période indéfinie. De plus, gérer des requêtes partiellement remplies pouvant se produire lors de l’utilisation de \fBGRND_RANDOM\fP ou de la lecture à partir de \fI/dev/random\fP augmente la complexité du code. .SS "Monte\-Carlo et autres applications d’échantillonnage probabiliste" .\" L’utilisation de ces interfaces pour fournir de grandes quantités de données pour les simulations de Monte\-Carlo et d’autres programmes ou algorithmes réalisant un échantillonnage probabiliste, sera peu rapide. De plus, c’est inutile parce que de telles applications n’ont pas besoin de nombres aléatoires sûrs du point de vue chiffrement. À la place, les interfaces décrites dans cette page sont à utiliser pour obtenir une petite quantité de données pour ensemencer un générateur de nombres pseudo\-aléatoires pour ce type d’applications. .SS "Comparaison entre getrandom, /dev/urandom et /dev/random" Le tableau suivant résume le comportement des diverses interfaces qui peuvent être utilisées pour obtenir un caractère aléatoire. \fBGRND_NONBLOCK\fP est un indicateur qui peut être utilisé pour contrôler le comportement bloquant de \fBgetrandom\fP(2). La dernière colonne du tableau tient compte du cas pouvant se produire au tout début du démarrage quand la réserve d’entropie n’est pas encore initialisée. .ad l .TS allbox; lbw13 lbw12 lbw14 lbw18 l l l l. Interface Réserve T{ Comportement \%de blocage T} T{ Comportement si réserve pas encore prête T} T{ \fI/dev/random\fP T} T{ Réserve bloquante T} T{ Si entropie trop faible, blocage jusqu’à assez d’entropie T} T{ Blocage jusqu’à suffisamment d’entropie accumulée T} T{ \fI/dev/urandom\fP T} T{ Sortie CSPRNG T} T{ Aucun blocage T} T{ CSPRNG non initialisé (entropie faible et inadaptée au chiffrement ?) T} T{ \fBgetrandom\fP() T} T{ Identique à \fI/dev/urandom\fP T} T{ Aucun blocage si réserve prête T} T{ Blocage jusqu’à réserve prête T} T{ \fBgetrandom\fP() \fBGRND_RANDOM\fP T} T{ Identique à \fI/dev/random\fP T} T{ Si entropie trop faible, blocage jusqu’à assez d’entropie T} T{ Blocage jusqu’à réserve prête T} T{ \fBgetrandom\fP() \fBGRND_NONBLOCK\fP T} T{ Identique à \fI/dev/urandom\fP T} T{ Aucun blocage si réserve prête T} T{ \fBEAGAIN\fP T} T{ \fBgetrandom\fP() \fBGRND_RANDOM\fP + \fBGRND_NONBLOCK\fP T} T{ Identique à \fI/dev/random\fP T} T{ \fBEAGAIN\fP si manque d’entropie disponible T} T{ \fBEAGAIN\fP T} .TE .ad .\" .SS "Génération des clés de chiffrement" Le montant de matériel d’ensemencement nécessite de générer une clé de chiffrement égale à la taille effective de la clé. Par exemple, une clé privée ou Diffie\-Hellman de 3072\ bits a une taille effective de 128\ bits (2^128\ opérations sont nécessaires pour la casser), aussi un générateur de clé a besoin de seulement 128\ bits (16\ octets) de matériel d’ensemencement à partir de \fI/dev/random\fP. .PP .\" Bien qu’une marge de sécurité au\-dessus de ce minimum soit raisonnable comme protection contre des défauts d’algorithme de CSPRNG, aucune primitive cryptographique disponible actuellement ne peut espérer promettre plus de 256\ bits de sécurité, aussi, si un programme lit plus de 256\ bits (32\ octets) de la réserve de caractère aléatoire du noyau par invocation, ou par intervalle raisonnable de réensemencement (pas moins d’une minute), cela doit être pris comme un signe que son chiffrement n’a \fIpas\fP été implémenté savamment. .SH "VOIR AUSSI" \fBgetrandom\fP(2), \fBgetauxval\fP(3), \fBgetentropy\fP(3), \fBrandom\fP(4), \fBurandom\fP(4), \fBsignal\fP(7) .SH COLOPHON Cette page fait partie de la publication\ 5.10 du projet \fIman\-pages\fP Linux. Une description du projet et des instructions pour signaler des anomalies et la dernière version de cette page peuvent être trouvées à l'adresse \%https://www.kernel.org/doc/man\-pages/. .PP .SH TRADUCTION La traduction française de cette page de manuel a été créée par Christophe Blaess , Stéphan Rafin , Thierry Vignaud , François Micaux, Alain Portal , Jean-Philippe Guérard , Jean-Luc Coulon (f5ibh) , Julien Cristau , Thomas Huriaux , Nicolas François , Florentin Duneau , Simon Paillard , Denis Barbier , David Prévot et Jean-Paul Guillonneau . .PP Cette traduction est une documentation libre ; veuillez vous reporter à la .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License version 3 .UE concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. .PP Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à .MT debian-l10n-french@lists.debian.org .ME .