/dev/random, e kryptographesch séchere pseudo-zoufÀlleg Zuelengenerator (CSPRNG), ass bekannt fir en lÀsteg Problem ze hunn: Blockéieren. Dësen Artikel erklÀert wéi Dir et léise kënnt.
An de leschte Méint sinn déi zoufÀlleg Zuel Generatioun Ariichtungen am Kernel liicht ëmgeschafft ginn, awer Probleemer an dësem Subsystem goufen am Laf vun der méi breeder geléist. . Dat meescht goufen gemaach fir ze verhënneren datt de getrandom () System Uruff fir eng laang ZÀit blockéiert wann de System booten, awer den ënnerierdesche Grond dofir war d'Blockéierungsverhalen vum zoufÀllege Pool. E rezente Patch hÀtt dëse Pool gelÀscht an et wier erwaart ginn an den HaaptkÀr ze goen.
Andy Lutomirski publizĂ©iert dĂ©i drĂ«tt Versioun vum Patch Enn Dezember. Hien bĂ€idrĂ©it "zwee grouss semantesch Ănnerungen an zoufĂ€llegen APIen" Linux». De Patch fĂŒĂŒgt en neie GRND_INSECURE FĂ€ndel un de getrandom () System Opruff (obwuel de Lutomirsky et als Getentropie bezeechent (), dĂ©i am glibc mat getrandom () mat fixe FĂ€ndelen Ă«mgesat gĂ«tt; dĂ«se FĂ€ndel bewierkt datt den Uruff Ă«mmer d'QuantitĂ©it vun den ugefrote Daten zrĂ©ckkĂ«nnt, awer ouni ze garantĂ©ieren datt d'DonnĂ©eĂ«n zoufĂ€lleg sinn. De Kernel wĂ€ert einfach sĂ€i Bescht maachen fir dĂ©i bescht zoufĂ€lleg DonnĂ©eĂ«n ze produzĂ©ieren dĂ©i et zu der bestĂ«mmter ZĂ€it huet. "Wahrscheinlech dĂ©i bescht Saach ze maachen ass et 'ONSECURE' ze nennen (onsĂ©cher) fir ze verhĂ«nneren datt dĂ«s API benotzt gĂ«tt fir Saachen dĂ©i SĂ©cherheet brauchen."
D'Flecken entfernen och de Blockéierungspool. De Kernel hÀlt momentan zwee zoufÀlleg Datepools, een entsprécht /dev/random an deen aneren zu /dev/urandom, wéi an dësem beschriwwen. 2015. De SpÀrpool ass de Pool fir /dev/random; liest fir datt den Apparat blockéiert (dat heescht sÀin Numm) bis "genuch" Entropie vum System gesammelt gouf fir d'Ufro ze erfëllen. Weider Liesungen aus dëser Datei ginn och blockéiert wann et net genuch Entropie am Pool ass.
Ewechzehuelen der SpÀr Pool heescht dass liesen aus /dev/zoufÀlleg behuelen wéi getrandom () mat FÀndelen op null gesat (a verwandelt GRND_RANDOM FÀndel zu engem noop). Wann de cryptographic zoufÀlleg Zuel Generator (CRNG) initialiséiert ass, liesen aus /dev/zoufÀlleg an rifft ze getrandom (...,0) wÀert net blockéieren a gëtt déi ugefrote Quantitéit vun zoufÀlleg Donnéeën zréck.
Lutomirsky seet: "Ech mengen, de Blocking Pool Linux huet sĂ€in Notzen iwwerschratt. Linux generĂ©iert eng Ausgab, dĂ©i gutt genuch ass, fir iwwerhaapt fir d'Generatioun vu SchlĂ«sselen benotzt ze ginn. E Blocking-Pool ass net materiell mĂ©i staark, an d'Ănnerhaltung dovun erfuerdert vill Infrastruktur vu zweifelhaftem WĂ€ert."
D'Ănnerunge goufen mam Zil gemaach fir sĂ©cherzestellen datt existent Programmer net wierklech beaflosst ginn, an tatsĂ€chlech wĂ€erten et manner Probleemer mat laange Waarde fir Saachen wĂ©i GnuPG SchlĂ«sselgeneratioun ginn.
"Dës Episoden dÀerfen keng existéierend Programmer stéieren. /dev/urandom bleift onverÀnnert. /dev/random blockéiert nach ëmmer direkt beim Boot, awer et blockéiert manner wéi virdrun. getentropy() mat de existente FÀndelen wÀert e Resultat zréckginn dat grad sou gëeegent ass fir praktesch Zwecker wéi virdrun."
De Lutomirsky huet bemierkt datt et nach ëmmer eng oppe Fro ass ob de Kernel sougenannte "richteg zoufÀlleg Zuelen" soll ubidden, wat ass wat de Blockéiere Kernel zu engem gewësse Mooss soll maachen. Hie gesÀit nëmmen ee Grond dofir: "Konformitéit mat Regierungsnormen." De Lutomirsky huet virgeschloen datt wann de Kernel dëst géif ubidden, et sollt duerch eng ganz aner Interface gemaach ginn, oder et sollt an de Benotzerraum geplënnert ginn, wat de Benotzer erlaabt raw Event Echantillon ze recuperéieren déi benotzt kënne fir sou e Sperrpool ze kreéieren.
De Stephan MĂŒller huet virgeschloen, datt sĂ€i Set fir e Zoufallszuelgenerator Linux (LRNG) (aktuell an der Versioun 26) kann e Wee sinn, fir richteg Zoufallszuelen fir Uwendungen ze liwweren, dĂ©i se brauchen. LRNG "entsprĂ©cht vollstĂ€nneg den Ufuerderunge vun der Recommandatioun fir Entropiequellen, dĂ©i fir d'Generatioun vun zoufĂ€llegem Bit benotzt ginn SP800-90B", wat et zu enger LĂ©isung fir de Problem vun de Regierungsstandarden mĂ©cht.
De Matthew Garrett huet sech géint de Begrëff "richteg zoufÀlleg Daten" bemierkt, a bemierkt datt d'Apparater, déi gepréift goufen, am Prinzip prÀzis genuch modelléiere kënnen fir se prévisibel ze maachen: "mir probéieren hei keng Quantenevenementer."
De MĂŒller huet geĂ€ntwert datt de BegrĂ«ff aus dem dĂ€itsche Standard AIS 31 kĂ«nnt fir en zoufĂ€lleg Zuelengenerator ze beschreiwen, deen nĂ«mmen e Resultat produzĂ©iert "am selwechten Taux wĂ©i dĂ©i Ă«nnerierdesch GerĂ€ischerquell Entropie produzĂ©iert."
Terminologie Differenzen ofgesinn, e Sperrpool ze hunn wéi vun den LRNG Patches proposéiert gëtt einfach zu verschiddene Probleemer féieren, op d'mannst wann et ouni Privilegien zougÀnglech ass.
Wéi de Lutomirsky gesot huet: "Dëst léist de Problem net. Wann zwee verschidde Benotzer domm Programmer wéi gnupg lafen, wÀerten se just all aner drain. Ech gesinn datt et am Moment zwee Haaptprobleemer mat /dev/random sinn: et ass ufÀlleg fir DoS (dh Ressourceaustausch, béiswëlleg Afloss oder eppes Àhnlechen), a well keng Privilegien erfuerderlech sinn fir se ze benotzen, ass et och ufÀlleg fir Mëssbrauch. Gnupg ass falsch, et ass e komplette Zesummebroch. Wa mir en neien onprivilegéierten Interface addéieren deen gnupg an Àhnlech Programmer benotze wÀerte mir erëm verléieren."
De Mueller bemierkt datt d'Zousatz vun getrandom () elo GnuPG erlaabt dës Interface ze benotzen, well et déi néideg Garantie gëtt datt de Pool initialiséiert gouf. Baséierend op Diskussioune mam GnuPG Entwéckler Werner Koch, mengt Mueller datt d'Garantie deen eenzege Grond ass datt GnuPG de Moment direkt vun /dev/random liest. Awer wann et en onprivilegéierten Interface gëtt, deen empfindlech ass fir Verweigerung vum Service (wéi /dev/random haut ass), argumentéiert Lutomirsky datt et vun e puer Uwendungen mëssbraucht gëtt.
Theodore Ts'o (Theodore Yue Tak Ts'o), EntwĂ©ckler vum Zoufallszuelen-Ănnersystem Linux, huet anscheinend seng Meenung iwwer d'Noutwennegkeet vun engem Blocking Pool geĂ€nnert. Hie sot, datt d'Ewechhuele vun deem effektiv d'Iddi eliminĂ©iere gĂ©if, datt Linux huet e richtege Zoufallszuelengenerator (TRNG): "dĂ«st ass keen Nonsens, well dat ass genau wat *BSD Ă«mmer gemaach huet."
Hie mécht sech och Suergen, datt en TRNG-Mechanismus just als Verlockung fir App-Entwéckler dénge wÀert, a gleeft, datt a Wierklechkeet, wéinst den ënnerschiddlechen Aarte vun Hardware, déi ënnerstëtzt ginn Linux, ass et onméiglech TRNG am Kernel ze garantéieren. Och nëmmen Root-Rechter fir d'Hardware ze bedreiwen léisen, léist de Problem net: "Applikatioun Entwéckler spezifizéieren datt hir Applikatioun als Root fir Sécherheetszwecker installéiert ass, sou datt dëst deen eenzege Wee ass wéi Dir Zougang zu den" wierklech gutt "zoufÀlleg Zuelen kënnt."
De Mueller huet gefrot ob de Cao d'Blockéierungspoolimplementatioun opginn huet, déi hie selwer laang proposéiert huet. De Cao huet geÀntwert datt hie plangt dem Lutomirsky seng Patches ze huelen an aktiv géint eng SpÀr-Interface zréck an de Kernel ze addéieren.
"De Kernel kann keng Garantien maachen ob d'GerÀischquelle richteg charakteriséiert gouf. Dat eenzegt wat e GPG oder OpenSSL Entwéckler kann kréien ass e vague Gefill datt TRUERANDOM "besser" ass, a well se méi Sécherheet wëllen, probéieren se ouni Zweifel et ze benotzen. Irgendwann gëtt et blockéiert, a wann en anere Smart Benotzer (vlÀicht e Verdeelungsspezialist) et an d'Init-Skript setzt an d'Systemer ophalen ze schaffen, mussen d'Benotzer nëmme beim Linus Torvalds selwer beschwéieren.
Cao plÀdéiert och fir Kryptografen ze ginn an déi, déi TRNG tatsÀchlech brauchen, e Wee fir hir eege Entropie am Benotzerraum ze sammelen fir ze benotzen wéi se passend gesinn. Hie seet datt d'Entropie sammelen net e Prozess ass, dee vum Kernel op all déi verschidde Hardware déi se ënnerstëtzt ka gemaach ginn, an och de Kernel selwer kann d'Quantitéit vun der Entropie, déi vu verschiddene Quelle geliwwert gëtt, schÀtzen.
"De Kernel sollt net verschidde GerÀischerquellen zesummen vermëschen, an et sollt sécher net probéieren ze behaapten ze wëssen wéivill Bits vun Entropie et kritt wann et probéiert eng Aart vun "twitchy Entropie-Spill" op enger onheemlech einfacher CPU ze spillen Architektur fir Konsument Benotzer IOT / Embedded FÀll wou alles net synchroniséiert ass mat engem eenzege Master Oszillator, wou et keng CPU Instruktioune gëtt fir e Register nei ze bestellen oder ëmbenennen, etc.
"Dir kënnt iwwer Tools ubidden, déi probéieren dës Berechnungen ze maachen, awer sou Saachen mussen op all Benotzer seng Hardware gemaach ginn, wat fir déi meescht Verdeelungsbenotzer einfach net praktesch ass. Wann dëst nëmme fir Kryptografen geduecht ass, da loosst et an hirem Benotzerraum gemaach ginn. A loosst eis GPG, OpenSSL, asw net vereinfachen, sou datt jidderee seet "mir wëllen "richteg Zoufall" an net mat manner nidderloossen. Mir kënne schwÀtzen iwwer wéi mir Interfaces u Kryptografen ubidden, fir datt se d'Informatioun kréien, déi se brauchen, andeems se Zougang zu de primÀre GerÀischerquellen kréien, getrennt an benannt, a vlÀicht iergendwéi kann d'GerÀischquelle sech op eng Bibliothéik oder Benotzerraumapplikatioun authentifizéieren.
Et gouf e puer Diskussioun iwwer wéi sou en Interface kéint ausgesinn, well et zum Beispill Sécherheetsimplikatioune fir e puer Eventer kéint sinn. Cao bemierkt datt Keyboard Scan Coden (dh Tastekombinatiounen) an e Pool gemëscht ginn als Deel vun der Entropiesammlung: "Dëst an de Benotzerraum ze bréngen, och duerch e privilegiéierte Systemruff, wier net schlau fir d'mannst ze soen." Et ass ganz méiglech datt aner Event Timings eng Aart Informatiounsleckage duerch SÀitekanÀl kreéieren.
Sou schĂ©ngt et, datt dat laangjĂ€regt Problem vum Zoufallszuelen-Ănnersystem Linux ass um Wee zu enger LĂ©isung. D'Ănnerungen, dĂ©i de Subsystem fir Zoufallszuelen an der leschter ZĂ€it erlieft huet, hunn effektiv nĂ«mmen zu DoS-Problemer wĂ€hrend senger Benotzung gefouert. Elo gĂ«tt et awer effizient WeeĂ«r fir dĂ©i bescht Zoufallszuelen ze krĂ©ien, dĂ©i de Kernel liwwere kann. Wann TRNG nach Ă«mmer wĂ«nschenswĂ€ert ass fir Linux, dann muss dĂ«se Mangel an Zukunft adressĂ©iert ginn, awer hĂ©chstwahrscheinlech gĂ«tt dĂ«st net am Kernel selwer gemaach.
Puer Annoncen đ
Merci datt Dir bei eis bleift. Hutt Dir eis Artikelen gĂ€r? WĂ«llt Dir mĂ©i interessant Inhalt gesinn? ĂnnerstĂ«tzt eis andeems Dir eng Bestellung maacht oder FrĂ«nn empfeelt, , en eenzegaartegen Analog vun Entry-Level Serveren, dee vun eis fir Iech erfonnt gouf: (verfĂŒgbar mat RAID1 an RAID10, bis zu 24 KĂ€ren a bis zu 40GB DDR4).
Dell R730xd 2 Mol méi bëlleg an Equinix Tier IV Daten Zentrum zu Amsterdam? Nëmmen hei an Holland! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - vun $99! Liest iwwer
Source: will.com
