.\" -*- coding: UTF-8 -*- .\" Copyright (c) 1997 John S. Kallal (kallal@voicenet.com) .\" .\" SPDX-License-Identifier: GPL-2.0-or-later .\" .\" Some changes by tytso and aeb. .\" .\" 2004-12-16, John V. Belmonte/mtk, Updated init and quit scripts .\" 2004-04-08, AEB, Improved description of read from /dev/urandom .\" 2008-06-20, George Spelvin , .\" Matt Mackall .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH random 4 "18 aprilie 2023" "Pagini de manual de Linux 6.05.01" .SH NUME random, urandom \- dispozitive sursă de numere aleatoare în nucleu .SH REZUMAT .nf #include .PP \fBint ioctl(\fP\fIfd\fP\fB, RND\fP\fIrequest\fP\fB, \fP\fIparam\fP\fB);\fP .fi .SH DESCRIERE Fișierele de caractere speciale \fI/dev/random\fP și \fI/dev/urandom\fP (prezente începând cu Linux 1.3.30) oferă o interfață cu generatorul de numere aleatoare al nucleului. Fișierul \fI/dev/random\fP are numărul de dispozitiv major 1 și numărul de dispozitiv minor 8. Fișierul \fI/dev/urandom\fP are numărul de dispozitiv major 1 și numărul de dispozitiv minor 9. .PP Generatorul de numere aleatoare adună zgomotul din mediul înconjurător de la controlorii de dispozitiv și alte surse într\-un fond de entropie. Generatorul păstrează, de asemenea, o estimare a numărului de biți de zgomot din fondul de entropie. Din acest fond de entropie sunt create numere aleatoare. .PP Linux 3.17 și versiunile ulterioare oferă interfața \fBgetrandom\fP(2), mai simplă și mai sigură, care nu necesită fișiere speciale; consultați pagina de manual \fBgetrandom\fP(2) pentru detalii. .PP Atunci când este citit, dispozitivul \fI/dev/urandom\fP returnează octeți aleatori folosind un generator de numere pseudo\-aleatoare alimentat din fondul de entropie. Citirile de pe acest dispozitiv nu se blochează (adică nu se cedează procesorul), dar pot suferi o întârziere apreciabilă atunci când se solicită cantități mari de date. .PP .\" This is a real problem; see .\" commit 9b4d008787f864f17d008c9c15bbe8a0f7e2fc24 Atunci când este citit în timpul pornirii inițiale, \fI/dev/urandom\fP poate returna date înainte ca fondul de entropie să fie inițializat. Dacă acest lucru reprezintă un motiv de îngrijorare în aplicația dumneavoastră, utilizați în schimb \fBgetrandom\fP(2) sau \fI/dev/random\fP. .PP Dispozitivul \fI/dev/random\fP este o interfață moștenită care datează dintr\-o perioadă în care primitivele criptografice utilizate în implementarea \fI/dev/urandom\fP nu erau de încredere pe scară largă. Acesta va returna octeți aleatori numai în limita numărului estimat de biți de zgomot proaspăt din fondul de entropie, blocându\-se dacă este necesar. \fI/dev/random\fP este potrivit pentru aplicațiile care au nevoie de aleatorism de înaltă calitate și care își pot permite întârzieri nedeterminate. .PP Atunci când fondul de entropie este gol, citirile de pe \fI/dev/random\fP se vor bloca până când se adună zgomotul ambiental suplimentar. Începând cu Linux 5.6, indicatorul \fBO_NONBLOCK\fP este ignorat, deoarece \fI/dev/random\fP nu se va mai bloca decât în timpul procesului de pornire inițială. În versiunile anterioare, dacă \fBopen\fP(2) este apelat pentru \fI/dev/random\fP cu indicatorul \fBO_NONBLOCK\fP, un \fBread\fP(2) ulterior nu se va bloca dacă numărul de octeți solicitat nu este disponibil. În schimb, sunt returnați octeții disponibili. Dacă nu este disponibil niciun octet, \fBread\fP(2) va returna \-1, iar \fIerrno\fP va fi stabilită la \fBEAGAIN\fP. .PP Fanionul \fBO_NONBLOCK\fP nu are niciun efect la deschiderea \fI/dev/urandom\fP. Atunci când se apelează \fBread\fP(2) pentru dispozitivul \fI/dev/urandom\fP, citirile de până la 256 de octeți vor returna atâția octeți câți sunt solicitați și nu vor fi întrerupte de un gestionar de semnal. Citirile cu o memorie tampon peste această limită pot returna un număr de octeți mai mic decât cel solicitat sau pot eșua cu eroarea \fBEINTR\fP, dacă sunt întrerupte de un gestionar de semnal. .PP .\" commit 79a8468747c5f95ed3d5ce8376a3e82e0c5857fc .\" SEC_XFER_SIZE in drivers/char/random.c Începând cu Linux 3.16, un \fBread\fP(2) din \fI/dev/urandom\fP va returna cel mult 32\ Mo. Un \fBread\fP(2) de la \fI/dev/random\fP va returna cel mult 512 octeți (340 de octeți înainte de Linux 2.6.12). .PP Scrierea în \fI/dev/random\fP sau \fI/dev/urandom\fP va actualiza fondul de entropie cu datele scrise, dar acest lucru nu va duce la un număr mai mare de entropie. Acest lucru înseamnă că va avea un impact asupra conținutului citit din ambele fișiere, dar nu va face ca citirile din \fI/dev/random\fP să fie mai rapide. .SS Utilizare Interfața \fI/dev/random\fP este considerată o interfață moștenită, iar \fI/dev/urandom\fP este preferată și suficientă în toate cazurile de utilizare, cu excepția aplicațiilor care necesită caracter aleatoriu în timpul pornirii inițiale; pentru aceste aplicații, trebuie să se utilizeze în schimb \fBgetrandom\fP(2), deoarece se va bloca până când fondul de entropie este inițializat. .PP .\" În cazul în care un fișier de semințe este salvat în timpul repornirii, așa cum se recomandă mai jos, fișierul de ieșire este securizat criptografic împotriva atacatorilor fără acces root local, imediat ce este reîncărcat în secvența de pornire și este perfect adecvat pentru cheile de sesiune de criptare a rețelei; (toate distribuțiile majore de Linux au salvat fișierul de semințe în timpul repornirii cel puțin din anul 2000). Deoarece citirile din \fI/dev/random\fP se pot bloca, utilizatorii vor dori, de obicei, să îl deschidă în mod neblocat (sau să efectueze o citire cu temporarizare) și să ofere un fel de notificare utilizatorului dacă entropia dorită nu este disponibilă imediat. .SS Configurare Dacă sistemul dumneavoastră nu are deja create \fI/dev/random\fP și \fI/dev/urandom\fP, acestea pot fi create cu următoarele comenzi: .PP .in +4n .EX mknod \-m 666 /dev/random c 1 8 mknod \-m 666 /dev/urandom c 1 9 chown root:root /dev/random /dev/urandom .EE .in .PP Atunci când un sistem Linux pornește fără prea multă interacțiune cu operatorul, fondul de entropie poate fi într\-o stare destul de previzibilă. Acest lucru reduce cantitatea reală de zgomot din fondul de entropie sub valoarea estimată. Pentru a contracara acest efect, este utilă transmiterea informațiilor privind fondul de entropie pe parcursul opririlor și pornirilor. Pentru a face acest lucru, adăugați liniile la un script corespunzător care este executat în timpul secvenței de pornire a sistemului Linux: .PP .in +4n .EX echo "Se inițializează generatorul de numere aleatorii..." random_seed=/var/run/random\-seed # Transmite o sămânță aleatorie de la o pornire la alta # Încarcă și apoi salvează întregul fond entropic if [ \-f $random_seed ]; then cat $random_seed >/dev/urandom else touch $random_seed fi chmod 600 $random_seed poolfile=/proc/sys/kernel/random/poolsize [ \-r $poolfile ] && bits=$(cat $poolfile) || bits=4096 bytes=$(expr $bits / 8) dd if=/dev/urandom of=$random_seed count=1 bs=$bytes .EE .in .PP De asemenea, adăugați următoarele linii într\-un script corespunzător care se execută în timpul închiderii sistemului Linux: .PP .in +4n .EX # Transmite o sămânță aleatorie de la oprire la pornire # Salvează întregul fond de entropie echo "Se salvează semințele aleatorii..." random_seed=/var/run/random\-seed touch $random_seed chmod 600 $random_seed poolfile=/proc/sys/kernel/random/poolsize [ \-r $poolfile ] && bits=$(cat $poolfile) || bits=4096 bytes=$(expr $bits / 8) dd if=/dev/urandom of=$random_seed count=1 bs=$bytes .EE .in .PP .\" În exemplele de mai sus, presupunem Linux 2.6.0 sau o versiune ulterioară, unde \fI/proc/sys/kernel/random/poolsize\fP returnează dimensiunea fondului de entropie în biți (a se vedea mai jos). .SS "Interfețe „/proc”" Fișierele din directorul \fI/proc/sys/kernel/random\fP (prezent din Linux 2.3.16) oferă informații suplimentare despre dispozitivul \fI/dev/random\fP: .TP \fIentropy_avail\fP Acest fișier doar pentru citire oferă entropia disponibilă, în biți. Acesta va fi un număr cuprins între 0 și 4096. .TP \fIpoolsize\fP Acest fișier indică dimensiunea fondului de entropie. Semantica acestui fișier variază în funcție de versiunile nucleului: .RS .TP Linux 2.4: Acest fișier indică dimensiunea fondului de entropie în \fIocteți\fP. În mod normal, acest fișier va avea valoarea 512, dar poate fi inscripționat și poate fi modificat la orice valoare pentru care este disponibil un algoritm. Alegerile sunt 32, 64, 128, 256, 512, 1024 sau 2048. .TP Linux 2.6 și versiunile ulterioare: Acest fișier este numai pentru citire și oferă dimensiunea fondului de entropie în \fIbiți\fP. Acesta conține valoarea 4096. .RE .TP \fIread_wakeup_threshold\fP Acest fișier conține numărul de biți de entropie necesar pentru trezirea proceselor care așteaptă entropie de la \fI/dev/random\fP. Valoarea implicită este de 64. .TP \fIwrite_wakeup_threshold\fP Acest fișier conține numărul de biți de entropie sub care sunt trezite procesele care fac un \fBselect\fP(2) sau \fBpoll\fP(2) pentru acces în scris la \fI/dev/random\fP. Aceste valori pot fi modificate prin scrierea în fișiere. .TP \fIuuid\fP and \fIboot_id\fP .\" Aceste fișiere doar pentru citire conțin șiruri aleatorii precum 6fd5a44b\-35f4\-4ad4\-a9b9\-6b9be13e1fe9. Primul este generat din nou la fiecare citire, iar cel de\-al doilea a fost generat o singură dată. .SS "interfața ioctl(2)" Următoarele cereri \fBioctl\fP(2) sunt definite în descriptorii de fișiere conectați fie la \fI/dev/random\fP, fie la \fI/dev/urandom\fP. Toate cererile efectuate vor interacționa cu fondul de entropie de intrare, având un impact atât asupra \fI/dev/random\fP, cât și asupra \fI/dev/urandom\fP. Capacitatea \fBCAP_SYS_ADMIN\fP este necesară pentru toate cererile, cu excepția \fBRNDGETENTCNT\fP. .TP \fBRNDGETENTCNT\fP Obține numărul de entropie al fondului de intrare; conținutul va fi același cu cel al fișierului \fIentropy_avail\fP din cadrul proc. Rezultatul va fi stocat în numărul întreg indicat de argument. .TP \fBRNDADDTOENTCNT\fP Mărește sau descrește numărul de entropie al fondului de intrare cu valoarea indicată de argument. .TP \fBRNDGETPOOL\fP Eliminată în Linux 2.6.9. .TP \fBRNDADDENTROPY\fP Adaugă o cantitate suplimentară de entropie la fondul de intrare, crescând numărul de entropie. Acest lucru diferă de scrierea în \fI/dev/random\fP sau \fI/dev/urandom\fP, care adaugă doar câteva date, dar nu mărește numărul de entropie. Se utilizează următoarea structură: .IP .in +4n .EX struct rand_pool_info { int entropy_count; int buf_size; __u32 buf[0]; }; .EE .in .IP Aici \fIentropy_count\fP este valoarea adăugată la (sau scăzută din) numărul de entropie, iar \fIbuf\fP este memoria tampon de dimensiunea \fIbuf_size\fP care se adaugă la fondul de entropie. .TP \fBRNDZAPENTCNT\fP, \fBRNDCLEARPOOL\fP Anulează numărul de entropie al tuturor unităților și adaugă unele date de sistem (cum ar fi timpul real) la aceste unități. .SH FIȘIERE \fI/dev/random\fP .br \fI/dev/urandom\fP .SH NOTE Pentru o prezentare generală și o comparație a diverselor interfețe care pot fi utilizate pentru a obține caracterul aleatoriu, a se vedea \fBrandom\fP(7). .SH ERORI .\" .SH AUTHOR .\" The kernel's random number generator was written by .\" Theodore Ts'o (tytso@athena.mit.edu). În timpul pornirii inițiale, citirile din \fI/dev/urandom\fP pot returna date înainte ca fondul de entropie să fie inițializat. .SH "CONSULTAȚI ȘI" \fBmknod\fP(1), \fBgetrandom\fP(2), \fBrandom\fP(7) .PP RFC\ 1750, "Randomness Recommendations for Security" .PP .SH TRADUCERE Traducerea în limba română a acestui manual a fost făcută de Remus-Gabriel Chelu . .PP Această traducere este documentație gratuită; citiți .UR https://www.gnu.org/licenses/gpl-3.0.html Licența publică generală GNU Versiunea 3 .UE sau o versiune ulterioară cu privire la condiții privind drepturile de autor. NU se asumă NICIO RESPONSABILITATE. .PP Dacă găsiți erori în traducerea acestui manual, vă rugăm să trimiteți un e-mail la .MT translation-team-ro@lists.sourceforge.net .ME .