Linux: cire kulle pool /dev/random

/dev/random, amintaccen mai samar da lambar bazuwar sirri (CSPRNG), an san yana da matsala guda ɗaya mai ban haushi: toshewa. Wannan labarin ya bayyana yadda za ku iya magance shi.

A cikin 'yan watannin da suka gabata, an sake yin aikin samar da adadin bazuwar a cikin kwaya, amma an warware matsalolin wannan tsarin ƙasa a tsawon lokaci mafi girma. lokaci. Mafi yawan canje-canje na ƙarshe an yi su ne don hana tsarin tsarin tsarin getrandom () toshewa na dogon lokaci lokacin da tsarin ya fara, amma dalilin da ya sa wannan shine yanayin toshewa na tafkin bazuwar. Faci na baya-bayan nan zai cire wannan tafkin kuma da an yi tsammanin zai doshi zuwa babban tushe.

Andy Lutomirski ya buga sigar ta uku na facin a karshen watan Disamba. Yana bayar da gudunmawa "manyan sauye-sauye na ma'ana guda biyu zuwa APIs Linux bazuwar". Faci yana ƙara sabon tutar GRND_INSECURE zuwa tsarin tsarin tsarin getrandom (ko da yake Lutomirsky yana nufin shi a matsayin getentropy (), wanda aka aiwatar a cikin glibc ta amfani da getrandom () tare da tsayayyen tutoci; wannan tuta yana sa kiran koyaushe ya dawo da adadin bayanan da aka nema, amma ba tare da tabbatar da cewa bayanan ba bazuwar ba ne. Kwayar za ta yi iya ƙoƙarinta don samar da mafi kyawun bayanan bazuwar da yake da ita a lokacin da aka ba ta. "Wataƙila mafi kyawun abin da za a yi shine a kira shi 'RASHIN TSARO' (rashin tsaro) don hana amfani da wannan API don abubuwan da ke buƙatar tsaro."

Faci kuma yana cire wurin da ke toshewa. A halin yanzu kernel yana kula da wuraren waha na bayanan bazuwar, ɗayan daidai da /dev/random da ɗayan zuwa /dev/urandom, kamar yadda aka bayyana a cikin wannan. labarin 2015. Wurin toshewa shine tafkin don /dev/random; karanta don waccan na'urar za ta toshe (ma'anar sunanta) har sai an tattara "isa" entropy daga tsarin don biyan bukatar. Ana kuma toshe ƙarin karantawa daga wannan fayil ɗin idan babu isasshen entropy a cikin tafkin.

Cire wurin makullin yana nufin cewa karantawa daga /dev/random yana aiki kamar getrandom() tare da saita tutoci zuwa sifili (kuma yana juya tutar GRND_RANDOM zuwa ƙugiya). Da zarar an ƙaddamar da janareta bazuwar lambar sirri (CRNG), karanta daga /dev/random da kira zuwa getrandom(...,0) ba zai toshe ba kuma zai dawo da adadin da ake buƙata na bayanan bazuwar.

Lutomirsky ya ce: "Na yi imani cewa tafkin Linux na toshewa ya zama wanda ba a daina aiki ba. CRNG Linux yana haifar da fitarwa wanda ya isa har ma a yi amfani da shi don mahimman tsararru. Wurin toshewa bai fi ƙarfi ta kowace ma'ana ta kayan aiki ba kuma yana buƙatar yawancin abubuwan more rayuwa masu ƙima don tallafawa shi. "

An yi canje-canjen tare da manufar tabbatar da cewa shirye-shiryen da ake da su ba za su sami tasiri sosai ba, kuma a zahiri, za a sami ƙarancin matsaloli tare da jira mai tsawo don abubuwa kamar GnuPG key ƙarni.

“Wadannan abubuwan ba dole ba ne su kawo cikas ga duk wani shirye-shiryen da ake da su. /dev/urandom ya kasance baya canzawa. /dev/random har yanzu yana toshewa nan da nan akan taya, amma yana toshe ƙasa da da. getentropy () tare da tutocin da ke akwai za su dawo da sakamakon da ya dace da dalilai masu amfani kamar da. "

Lutomirsky ya lura cewa har yanzu tambaya ce a bayyane ko kernel ya kamata ya samar da abin da ake kira "lambobin bazuwar gaske," wanda shine abin da ya kamata kernel da ke toshewa ya yi. Yana ganin dalili guda ɗaya kawai na wannan: "biyayya da ƙa'idodin gwamnati." Lutomirsky ya ba da shawarar cewa idan kernel ɗin zai samar da wannan, to ya kamata a yi ta hanyar hanyar sadarwa daban-daban, ko kuma a matsar da ita zuwa sararin mai amfani, ba da damar mai amfani ya dawo da ɗanyen samfuran taron da za a iya amfani da su don ƙirƙirar irin wannan tafkin kullewa.

Stephan Müller ya ba da shawarar saitin sa faci don Linux Random Number Generator (LRNG) (wanda aka saki a halin yanzu 26) na iya zama hanya don samar da lambobin bazuwar gaskiya don aikace-aikacen da ke buƙatar sa. LRNG yana "cikakken yarda da ka'idodin SP800-90B akan Tushen Entropy da ake Amfani da su don Samar da Rarraba Rarraba," yana mai da shi mafita ga matsalar mizanin gwamnati.
Matthew Garrett ya yi adawa da kalmar "bayanan bazuwar gaskiya," yana mai lura da cewa na'urorin da aka yi samfurin za a iya tsara su daidai da yadda za a iya tsinkayar su: "Ba mu yin samfurin abubuwan da suka faru a nan."

Müller ya amsa cewa kalmar ta fito ne daga ma'auni na Jamusanci AIS 31 don bayyana janareta na lamba bazuwar wanda kawai ke haifar da sakamako "a daidai lokacin da tushen hayaniya ke haifar da entropy."

Bambance-bambancen kalmomi a gefe, samun wurin kulle kamar yadda faci na LRNG ya ba da shawara zai haifar da matsaloli iri-iri, aƙalla idan an sami damar shiga ba tare da gata ba.

Kamar yadda Lutomirsky ya ce: “Wannan ba ya magance matsalar. Idan masu amfani daban-daban guda biyu suna gudanar da shirye-shiryen wauta kamar gnupg, za su zubar da juna kawai. Na ga cewa a halin yanzu akwai manyan matsaloli guda biyu tare da / dev / bazuwar: yana da sauƙi ga DoS (watau raguwar albarkatu, tasirin mugunta ko wani abu makamancin haka), kuma tun da ba a buƙatar gata don amfani da shi, kuma yana da sauƙi don cin zarafi. Gnupg ba daidai ba ne, rugujewa ne gaba daya. Idan muka ƙara sabon haɗin yanar gizo mara gata wanda gnupg da makamantansu za su yi amfani da su, za mu sake yin asara."

Mueller ya lura cewa ƙari na getrandom () yanzu zai ba da damar GnuPG yin amfani da wannan ƙirar, tunda zai ba da garantin da ya dace cewa an fara fara tafkin. Dangane da tattaunawa tare da mai haɓaka GnuPG Werner Koch, Mueller ya yi imanin cewa garantin shine kawai dalilin da GnuPG ke karantawa kai tsaye daga /dev/random. Amma idan akwai wata hanyar sadarwa mara amfani wacce ke da saukin kamuwa da ƙin sabis (kamar yadda / dev/random yake a yau), Lutomirsky yana jayayya cewa wasu aikace-aikacen za su yi amfani da shi ba daidai ba.

Theodore Yue Tak Ts'o, mai haɓaka tsarin tsarin lambar bazuwar Linux, da alama ya canza ra'ayinsa game da buƙatar toshe tafkin. Ya ce cire wannan tafkin zai kawar da ra'ayin cewa Linux yana da janareta na ainihi na bazuwar (TRNG): "Wannan ba shirme bane, tunda wannan shine ainihin abin da *BSD ke yi koyaushe."

Ya kuma damu da cewa samar da tsarin TRNG zai zama kawai a matsayin koto ga masu haɓaka aikace-aikacen kuma ya yi imanin cewa a zahiri, idan aka ba da nau'ikan kayan aikin da Linux ke tallafawa, ba zai yuwu a ba da garantin TRNG a cikin kwaya ba. Ko da ikon yin aiki tare da kayan aiki kawai tare da tushen gata ba zai magance matsalar ba: "Masu haɓaka aikace-aikacen sun ƙididdige cewa an shigar da aikace-aikacen su azaman tushen tushen tsaro, ta haka ne kawai hanyar da za ku iya samun damar lambobin bazuwar 'masu kyau sosai'."

Mueller ya tambaya ko Cao ya yi watsi da aikin toshe tafkin da shi da kansa ya dade yana ba da shawara. Cao ya amsa cewa yana shirin ɗaukar facin Lutomirsky kuma yana adawa da ƙara hanyar toshewa a baya ga kwaya.

"Kwayar ba za ta iya yin wani garanti ba game da ko an siffanta tushen amo yadda ya kamata. Abin da kawai mai haɓaka GPG ko OpenSSL zai iya samu shine rashin fahimtar cewa GASKIYA ta fi "mafi kyau", kuma tunda suna son ƙarin tsaro, babu shakka za su yi ƙoƙarin amfani da shi. A wani lokaci za a toshe shi, kuma lokacin da wasu masu amfani da wayo (wataƙila ƙwararrun masu rarrabawa) sun saka shi a cikin rubutun init kuma tsarin ya daina aiki, masu amfani kawai za su kai ƙara ga Linus Torvalds da kansa. "

Cao kuma yana ba da shawarar baiwa masu rubutun ra'ayin yanar gizo da waɗanda a zahiri suke buƙatar TRNG hanyar da za su girbi nasu entropy a cikin sararin mai amfani don amfani da su yadda suka ga dama. Ya ce tattara entropy ba tsari ba ne da kernel ke iya aiwatar da shi a kan dukkan na’urori daban-daban da suke tallafa wa, haka ma ita kanta kwaya ba za ta iya tantance yawan adadin da ake samu daga tushe daban-daban ba.

"Kada kernel ya kasance yana haɗa hanyoyin hayaniya daban-daban tare, kuma tabbas bai kamata ya kasance yana ƙoƙarin yin iƙirarin sanin adadin adadin entropy da yake samu ba lokacin da yake ƙoƙarin yin wani nau'i na "wasan entropy" akan CPU mai sauƙi. Gine-gine don masu amfani da IOT/ Abubuwan da aka haɗa inda komai ya ƙare tare da babban oscillator guda ɗaya, inda babu umarnin CPU don sake yin oda ko sake suna rajista, da sauransu."

"Kuna iya magana game da samar da kayan aikin da ke ƙoƙarin yin waɗannan ƙididdiga, amma irin waɗannan abubuwa dole ne a yi su akan kayan aikin kowane mai amfani, wanda ba shi da amfani ga yawancin masu amfani da rarraba. Idan an yi niyya ne kawai don masu rubutun ra'ayin yanar gizo, to bari a yi shi a cikin sararin mai amfani. Kuma kada mu sauƙaƙa GPG, OpenSSL, da sauransu don kowa ya ce "muna son "bazuwar gaskiya" kuma ba za mu daidaita ba. Za mu iya magana game da yadda muke samar da musaya ga masu rubutun ra'ayin yanar gizo ta yadda za su iya samun bayanan da suke buƙata ta hanyar samun dama ga tushen amo na farko, rabuwa da suna, kuma watakila ko ta yaya tushen amo na iya tantance kanta zuwa ɗakin karatu ko aikace-aikacen sararin samaniya. "

An yi tattaunawa game da yadda irin wannan keɓancewar za ta yi kama, tun da alal misali akwai yuwuwar samun tasirin tsaro ga wasu abubuwan. Cao ya lura cewa lambobin sikanin madannai (watau maɓallan maɓalli) suna gauraye a cikin tafki a matsayin wani ɓangare na tarin entropy: "Kawo wannan cikin sararin mai amfani, ko da ta hanyar tsarin kira mai gata, zai zama rashin hikima a faɗi kaɗan." Yana yiwuwa wasu lokutan taron na iya haifar da wasu nau'ikan yabo ta hanyar tashoshi na gefe.

Don haka yana kama da matsala mai tsayi tare da tsarin tsarin lambar bazuwar Linux yana kan hanyar samun mafita. Canje-canjen da tsarin tsarin lambar bazuwar ya yi kwanan nan sun haifar da batutuwan DoS kawai yayin amfani da shi. Yanzu akwai ingantattun hanyoyi don samun mafi kyawun bazuwar lambobi da kernel zai iya bayarwa. Idan har yanzu TRNG yana da kyawawa akan Linux, to wannan aibi za a buƙaci a magance shi nan gaba, amma da alama ba za a yi hakan a cikin kwaya da kanta ba.

Wasu tallace-tallace 🙂

Na gode da kasancewa tare da mu. Kuna son labaran mu? Kuna son ganin ƙarin abun ciki mai ban sha'awa? Goyon bayan mu ta hanyar ba da oda ko ba da shawara ga abokai, girgije VPS don masu haɓakawa daga $ 4.99, analog na musamman na sabar matakin shigarwa, wanda mu muka ƙirƙira muku: Duk gaskiyar game da VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps daga $19 ko yadda ake raba sabar? (akwai tare da RAID1 da RAID10, har zuwa 24 cores kuma har zuwa 40GB DDR4).

Dell R730xd 2x mai rahusa a cibiyar bayanan Equinix Tier IV a Amsterdam? Nan kawai 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV daga $199 a cikin Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - daga $99! Karanta game da Yadda ake gina Infrastructure Corp. aji tare da amfani da sabar Dell R730xd E5-2650 v4 masu darajan Yuro 9000 akan dinari?

source: www.habr.com

Add a comment