Linux: ho tlosa letamo la senotlolo /dev/random

/dev/random, jenereithara e sireletsehileng ea pseudo-random (CSPRNG), e tsejoa e na le bothata bo le bong bo tenang: ho thibela. Sengoliloeng sena se hlalosa hore na u ka bo rarolla joang.

Likhoeling tse 'maloa tse fetileng, lits'ebeletso tsa tlhahiso ea linomoro tse sa reroang ka har'a kernel li ile tsa lokisoa hanyane, empa mathata a tsamaiso ena a rarollotsoe ha nako e ntse e feta. bolele ba nako. Ka ho fetisisa liphetoho tsa ho qetela li ile tsa etsoa ho thibela getrandom () mohala oa tsamaiso ho thibela nako e telele ha tsamaiso e qala, empa lebaka le ka sehloohong la sena e ne e le ho thibela boitšoaro ba letamo le sa tloaelehang. Patch ea morao-rao e ka be e tlositse letamo lena 'me ho ne ho ka lebelloa hore e lebe sebakeng se seholo.

Andy Lutomirski o phatlalalitse mofuta oa boraro oa patch qetellong ea December. O kenya letsoho "liphetoho tse peli tse kholo tsa semantic ho li-API tsa Linux tse sa sebetseng". Patch e eketsa folakha e ncha ea GRND_INSECURE ho mohala oa tsamaiso ea getrandom () (le hoja Lutomirsky e bua ka eona getentropy (), e kenngoa ts'ebetsong ka glibc ho sebelisa getrandom () e nang le lifolakha tse tsitsitseng); folakha ena e etsa hore mohala o khutlisetse palo ea data e kopiloeng, empa ntle le ho netefatsa hore data e iketsahaletse feela. Kernel e tla etsa sohle se matleng a eona ho hlahisa data e ntle ka ho fetesisa eo e nang le eona ka nako e fanoeng. "Mohlomong ntho e molemohali eo u ka e etsang ke ho e bitsa 'INSECURE' (ho sa sireletseha) ho thibela API ena ho sebelisoa bakeng sa lintho tse hlokang tšireletso. "

Li-patches li boetse li tlosa letamo le thibelang. Hajoale kernel e boloka matamo a mabeli a data a sa sebetseng, e 'ngoe e tsamaellanang le / dev/random le e 'ngoe ho / dev/urandom, joalo ka ha ho hlalositsoe ho sena. sehlooho 2015. Letamo le thibelang ke letamo la /dev/random; e balang bakeng sa sesebelisoa seo e tla thibela (e bolelang lebitso la eona) ho fihlela "ho lekaneng" entropy e bokelloa ho tloha tsamaisong ho khotsofatsa kopo. Lintlha tse ling tse tsoang faeleng ena li boetse li koetsoe haeba ho se na entropy e lekaneng ka letamong.

Ho tlosa letamo la senotlolo ho bolela hore ho bala ho tloha ho /dev/random ho itšoara joalo ka getrandom() ka lifolakha tse behiloeng ho zero (le ho fetola folakha ea GRND_RANDOM hore e be noop). Hang ha jenereithara ea linomoro tsa "cryptographic random number" (CRNG) e qalisoa, ho bala ho tloha ho / dev/random le mehala ho getrandom(...,0) e ke ke ea thibela mme e tla khutlisa palo e kopiloeng ea data e sa reroang.

Lutomirsky o re: "Ke lumela hore letamo la ho thibela Linux le se le sa sebetse. CRNG Linux e hlahisa tlhahiso e lekaneng hore e ka sebelisoa bakeng sa tlhahiso ea bohlokoa. Letamo le thibelang metsi ha le matla ka kutloisiso efe kapa efe ea lintho tse bonahalang 'me le hloka lisebelisoa tse ngata tsa boleng bo belaetsang ho le tšehetsa. ”

Liphetoho li entsoe ka sepheo sa ho netefatsa hore mananeo a teng a ke ke a ameha, 'me ha e le hantle, ho tla ba le mathata a fokolang ka ho leta nako e telele bakeng sa lintho tse kang GnuPG key generation.

“Likhahlelo tsena ha lia lokela ho sitisa mananeo a seng a ntse a le teng. /dev/urandom e ntse e sa fetohe. /dev/random e ntse e thibela hang hang ha boot, empa e thibela ka tlase ho feta pele. getentropy() le lifolakha tse teng li tla khutlisa sephetho se loketseng merero e sebetsang joalo ka pele."

Lutomirsky o hlokometse hore e ntse e le potso e bulehileng hore na kernel e lokela ho fana ka seo ho thoeng ke "linomoro tsa 'nete tse sa tloaelehang," e leng seo kernel e thibelang e neng e lokela ho se etsa ho isa tekanyong e itseng. O bona lebaka le le leng feela la sena: “ho lumellana le litekanyetso tsa ’muso.” Lutomirsky o ile a etsa tlhahiso ea hore haeba kernel e ne e ka fana ka sena, e lokela ho etsoa ka sebopeho se fapaneng ka ho feletseng, kapa e lokela ho isoa sebakeng sa mosebedisi, ho lumella mosebedisi ho fumana mehlala ea liketsahalo tse tala tse ka sebelisoang ho theha letamo le joalo la senotlolo.

Stephan Müller o ile a etsa tlhahiso ea hore sete ea hae likotopo bakeng sa Linux Random Number Generator (LRNG) (hajoale mofuta oa 26 o lokollotsoe) e ka ba mokhoa oa ho fana ka linomoro tsa 'nete tse sa reroang bakeng sa lits'ebetso tse e hlokang. LRNG "e lumellana ka botlalo le Litaelo tsa SP800-90B mabapi le Mehloli ea Entropy e Sebelisitsoeng ho Hlahisa Li-Bits tse Random," e leng se etsang hore e be tharollo bothateng ba litekanyetso tsa mmuso.
Matthew Garrett o ile a hanana le poleloana "data ea 'nete e sa reroang," a re lisebelisoa tse entsoeng lisampole li ka etsoa mohlala ka mokhoa o nepahetseng ho etsa hore li tsebe esale pele: "ha re etse mohlala oa liketsahalo tse ngata mona."

Müller o ile a araba ka hore lentsoe lena le tsoa ho maemo a Jeremane a AIS 31 ho hlalosa jenereithara ea nomoro e sa reroang e hlahisang sephetho "ka sekhahla se lekanang le ha mohloli oa lerata o ka tlase o hlahisa entropy."

Phapang ea mantsoe ka thoko, ho ba le letamo la linotlolo joalo ka ha ho khothalelitsoe ke lipache tsa LRNG ho tla lebisa mathateng a fapaneng, bonyane haeba e fumaneha ntle le litokelo.

Joalokaha Lutomirsky a boletse: “Sena ha se rarolle bothata. Haeba basebelisi ba babeli ba fapaneng ba tsamaisa mananeo a hlokang kelello joalo ka gnupg, ba tla hulana feela. Kea bona hore hona joale ho na le mathata a mabeli a ka sehloohong le / dev / random: e tloaelehile ho DoS (ke hore ho senyeha ha lisebelisoa, tšusumetso e mpe kapa ntho e 'ngoe e tšoanang),' me kaha ha ho na litokelo tse hlokahalang ho e sebelisa, e boetse e atisa ho sebelisoa hampe. Gnupg e fosahetse, ke ho putlama ho felletseng. Haeba re eketsa sehokelo se secha se se nang tokelo seo gnupg le mananeo a tšoanang a tla se sebelisa, re tla lahleheloa hape. "

Mueller o hlokometse hore tlatsetso ea getrandom() joale e tla lumella GnuPG ho sebelisa sebopeho sena, kaha e tla fana ka tiisetso e hlokahalang ea hore letamo le se le qalisoa. E ipapisitse le lipuisano le moqapi oa GnuPG Werner Koch, Mueller o lumela hore tiisetso ke lona feela lebaka leo GnuPG e balang ka kotloloho ho tsoa ho /dev/random. Empa haeba ho na le sebopeho se se nang tokelo se ka 'nang sa hana tšebeletso (joalokaha / dev/random e le kajeno), Lutomirsky o pheha khang ea hore e tla sebelisoa hampe ke likopo tse ling.

Theodore Yue Tak Ts'o, moqapi oa Linux's random number subsystem, ho bonahala a fetotse maikutlo a hae mabapi le tlhokahalo ea letamo le thibelang. O boletse hore ho tlosa letamo lena ho tla felisa mohopolo oa hore Linux e na le jenereithara ea 'nete ea linomoro (TRNG): "Sena ha se bohlanya, kaha sena ke sona hantle seo *BSD esale e se etsa."

O boetse o amehile ka hore ho fana ka mochine oa TRNG ho tla sebetsa feela e le leraba bakeng sa baetsi ba kopo mme o lumela hore ha e le hantle, ha ho fanoa ka mefuta e sa tšoaneng ea hardware e tšehetsoeng ke Linux, ho ke ke ha khoneha ho tiisa TRNG ka kernel. Esita le bokhoni ba ho sebetsa ka lisebelisoa feela ka litokelo tsa metso bo ke ke ba rarolla bothata: "Basebelisi ba likopo ba hlakisa hore ts'ebeliso ea bona e kenngoe e le motso bakeng sa ts'ireletso, e le hore ke eona feela tsela eo u ka fihlelang linomoro tse "ntle haholo" tse sa reroang."

Mueller o ile a botsa hore na Cao o lahlile ts'ebetsong ea letamo le thibelang leo eena a neng a se a rerile khale. Cao o ile a araba ka hore o rera ho nka li-patches tsa Lutomirsky mme o hanyetsa ka matla ho eketsa sebopeho se thibelang ho khutlela kernel.

"kernel ha e khone ho fana ka tiiso ea hore na mohloli oa lerata o tsebisitsoe hantle. Ntho feela eo moetsi oa GPG kapa OpenSSL a ka e fumanang ke maikutlo a sa hlakang a hore TRUERANDOM e "betere", mme kaha ba batla ts'ireletso e eketsehileng, ntle le pelaelo ba tla leka ho e sebelisa. Ka nako e 'ngoe e tla thibeloa,' me ha mosebelisi e mong ea bohlale (mohlomong setsebi sa kabo) a e kenya ka har'a mongolo oa init mme lits'ebetso li emisa ho sebetsa, basebelisi ba tla tlameha ho tletleba ho Linus Torvalds ka boeena."

Cao e boetse e buella ho fa li-cryptographer le ba hlileng ba hlokang TRNG mokhoa oa ho kotula entropy ea bona sebakeng sa basebelisi ho e sebelisa kamoo ba bonang ho loketse. O re ho bokella entropy ha se ts'ebetso e ka etsoang ke kernel ho lisebelisoa tsohle tse fapaneng tseo e li tšehetsang, leha e le hore kernel ka boeona e ka hakanya palo ea entropy e fanoeng ke mehloli e fapaneng.

"Kernel ha ea lokela ho kopanya mehloli e fapaneng ea lerata hammoho, 'me ka sebele ha ea lokela ho leka ho ipolela hore e tseba hore na e fumana likotoana tse kae tsa entropy ha e leka ho bapala mofuta o itseng oa" papali ea "twitchy entropy" ho CPU e bonolo haholo. IOT/Linyeoe tse kentsoeng moo ntho e 'ngoe le e 'ngoe e sa lumellaneng le oscillator e le' ngoe e kholo, moo ho se nang taelo ea CPU ea ho hlophisa bocha kapa ho reha lebitso bocha, joalo-joalo.

"U ka bua ka ho fana ka lisebelisoa tse lekang ho etsa lipalo tsena, empa lintho tse joalo li tlameha ho etsoa ho lisebelisoa tsa mosebelisi e mong le e mong, tse sa sebetseng ho basebelisi ba bangata ba abang. Haeba sena se reretsoe feela li-cryptographer, joale se ke se etsoe sebakeng sa bona sa basebelisi. 'Me ha re nolofatse GPG, OpenSSL, joalo-joalo e le hore bohle ba re "re batla "ho ba teng ha 'nete"' me re ke ke ra lumellana le hanyenyane. Re ka bua ka hore na re fana ka li-interfaces joang ho li-cryptographer e le hore ba ka fumana boitsebiso boo ba bo hlokang ka ho fumana mehloli e ka sehloohong ea lerata, e arohaneng le e bitsoang ka mabitso, 'me mohlomong ka tsela e itseng mohloli oa lerata o ka ikemela ho laebrari kapa kopo ea sebaka sa mosebedisi. "

Ho bile le lipuisano mabapi le hore na sebopeho se joalo se ka shebahala joang, kaha mohlala ho ka ba le ts'ireletso bakeng sa liketsahalo tse ling. Cao o hlokometse hore likhoutu tsa scan ninete ea keyboard (ke hore li-keystrokes) li tsoakoa ka har'a letamo e le karolo ea pokello ea entropy: "Ho tlisa sena sebakeng sa mosebelisi, leha e le ka mohala o khethehileng oa sistimi, e ka ba booatla ho bua hanyane." Hoa khonahala hore linako tse ling tsa liketsahalo li ka baka mofuta o mong oa tlhahisoleseling ka liteishene tse ka thoko.

Kahoo ho shebahala joalo ka bothata ba nako e telele ka sistimi e tlase ea linomoro tsa Linux e tseleng e eang tharollong. Liphetoho tseo subsystem ea palo e sa sebetseng e bileng teng haufinyane li hlahisitse litaba tsa DoS ha li ntse li e sebelisa. Hona joale ho na le mekhoa e sebetsang ea ho fumana linomoro tse ntle ka ho fetesisa tseo kernel e ka fanang ka tsona. Haeba TRNG e ntse e lakatseha ho Linux, joale phoso ena e tla hloka ho rarolloa nakong e tlang, empa mohlomong sena se ke ke sa etsoa ka har'a kernel ka boeona.

Lipapatso tse ling 🙂

Kea leboha ka ho lula le rona. Na u rata lingoliloeng tsa rona? U batla ho bona litaba tse ling tse khahlisang? Re tšehetse ka ho etsa odara kapa ho khothaletsa metsoalle, cloud VPS bakeng sa batho ba ntlafatsang ho tloha ho $ 4.99, analogue e ikhethang ea li-server tsa boemo ba ho kena, e iqapetsoeng ke rona bakeng sa hau: 'Nete eohle ka VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps ho tloha $19 kapa mokhoa oa ho arolelana seva? (e fumaneha ka RAID1 le RAID10, ho fihla ho li-cores tse 24 le ho fihla ho 40GB DDR4).

Dell R730xd makhetlo a 2 a theko e tlase sebakeng sa data sa Equinix Tier IV se Amsterdam? Ke mona feela 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV ho tloha $199 naheng ea Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - ho tloha $99! Bala ka Mokhoa oa ho haha ​​​​infrastructure Corp. sehlopha ka tšebeliso ea li-server tsa Dell R730xd E5-2650 v4 tse jang li-euro tse 9000 bakeng sa penny?

Source: www.habr.com

Eketsa ka tlhaloso