Linux: te tango i te puna maukati /dev/random

/dev/random, he kaihanga tau pseudo-tupurangi (CSPRNG), e mohiotia ana he raruraru hoha tetahi: te aukati. Ka whakamarama tenei tuhinga me pehea e taea ai e koe te whakaoti.

I roto i nga marama kua pahure ake nei, ko nga whakaurunga whakangao tau matapōkere i roto i te kernel kua paku te mahi ano, engari kua whakatauhia nga raru o tenei punaha iti i runga i te whanuitanga. anga wa. Ko te nuinga huringa whakamutunga i mahia hei aukati i te waea punaha getrandom() mai i te aukati mo te wa roa i te wa e putu ana te punaha, engari ko te take o tenei ko te aukati o te poka wai matapōkere. Ko te papaki tata nei kua tangohia tenei puna wai me te whakaaro ka ahu atu ki te matua matua.

I whakaputaina e Andy Lutomirski te putanga tuatoru o te papaki i te mutunga o Hakihea. Ka takoha ia "e rua nga huringa kupu nui ki nga API Linux tupurangi". Ka taapirihia e te papaki he haki GRND_INSECURE hou ki te waea punaha getrandom() (ahakoa e kii ana a Lutomirsky ko te getentropy(), ka whakatinanahia i roto i te glibc ma te whakamahi i te getrandom() me nga haki pumau); na tenei haki ka whakahoki te waea i nga wa katoa i te nui o nga raraunga i tonoa, engari me te kore e kii he matapōkeretia te raraunga. Ka whakapau kaha te kernel ki te whakaputa i nga raraunga matapōkere pai kei a ia i te waa kua tohua. "Tena pea ko te mea pai ka kiia ko 'INSECURE' (he haumaru) kia kore e whakamahia tenei API mo nga mea e hiahia ana kia haumaru."

Ka tangohia ano e nga papanga te poka wai aukati. E rua nga puna raraunga matapōkere e pupuri ana te kernel i tenei wa, kotahi e rite ana ki / dev / tupurangi me tetahi ki / dev / urandom, pera i whakaahuatia i tenei Tuhinga 2015. Ko te poka wai aukati ko te puna mo /dev/random; panui mo taua taputapu ka aukati (te tikanga ko tona ingoa) tae noa ki te kohi "entropy" mai i te punaha hei whakatutuki i te tono. Ko etahi atu panui mai i tenei konae ka aukatihia mena kaore i te nui te entropy i roto i te puna.

Ko te tango i te puna maukati ko te ahua o te panui mai i /dev/random he rite ki te getrandom() me nga haki kua tautuhia ki te kore (ka huri te haki GRND_RANDOM ki te noop). Kia arawhitia te kaihanga taurangi matapōkere (CRNG), ko te panui mai i /dev/tupurangi me nga waea ki te tikiturangi(...,0) e kore e aukati ka whakahokia mai te nui o nga raraunga matapōkere i tonoa.

Ka kii a Lutomirsky: "E whakapono ana ahau kua tawhito te puna aukati Linux. Ko te CRNG Linux te whakaputa putanga e pai ana ki te whakamahi mo te whakatipuranga matua. Ko te poka wai aukati kaore i te kaha ake i roto i nga tikanga rawa me te hiahia kia maha nga hanganga o te uara ruarua hei tautoko.

I mahia nga huringa me te whainga kia kore rawa e pa ki nga kaupapa o naianei, me te pono, ka iti ake nga raruraru me te tatari roa mo nga mea penei i te whakatipuranga matua o GnuPG.

"Ko enei waahanga me kaua e whakararu i nga kaupapa o mua. /dev/urandom kare tonu e rereke. /dev/random ka paraka tonu i te wa e whawhai ana, engari he iti ake te poraka i mua. getentropy() me nga haki o naianei ka whakahoki mai he hua e tika ana mo nga kaupapa mahi pera i mua."

I kii a Lutomirsky he patai tuwhera tonu mena me homai e te kernel te mea e kiia nei he "tau matapōkere pono," koinei te mea i mahia e te kaaka aukati ki tetahi waahanga. Kotahi noa te take e kitea ana e ia mo tenei: "te u ki nga tikanga a te kawanatanga." I kii a Lutomirsky, mena ka tukuna mai e te kernel tenei, me mahi ma te atanga tino rereke, me neke atu ranei ki te waahi kaiwhakamahi, ka taea e te kaiwhakamahi te tiki mai i nga tauira huihuinga ka taea te whakamahi hei hanga i taua puna raka.

I kii a Stephan Müller ko tana huinga papaki mo Linux Random Number Generator (LRNG) (kua tukuna te putanga 26 i tenei wa) he huarahi ki te whakarato i nga tau matapōkere pono mo nga tono e hiahia ana. Ko te LRNG "e tino rite ana ki nga Aratohu SP800-90B mo nga Puna Entropy i Whakamahia ki te Hanga Moka Matapōkere," ka waiho hei otinga ki te raruraru paerewa a te kawanatanga.
I whakahē a Matthew Garrett ki te kupu "raraunga matapōkere pono," me te kii ko nga taputapu kua whakatauirahia ka taea te whakatauira tika kia taea ai te matapae: "Kaore matou e whakatauira i nga huihuinga i konei."

I whakautu a Müller ko te kupu i ahu mai i te paerewa Tiamana AIS 31 hei whakaahua i tetahi kaihanga tau matapōkere ka puta he hua "i te reiti rite ki te puna haruru o raro ka whakaputa entropy."

I tua atu i nga rereketanga o nga kupu, ko te whai puna raka e kiia ana e nga papanga LRNG ka raru noa nga raru, ahakoa ka uru atu kaore he painga.

Ka rite ki ta Lutomirsky i kii: "Kaore tenei e whakaoti i te raru. Mena e rua nga kaiwhakamahi rereke e whakahaere ana i nga kaupapa poauau penei i te gnupg, ka whakaheke noa tetahi ki tetahi. Ka kite ahau e rua nga raru nui o te /dev/random i tenei wa: he ngawari ki te DoS (arā, te whakahekenga rawa, te awe kino, te ahua rite ranei), a, i te mea kaore e hiahiatia he mana ki te whakamahi, ka tupono hoki ki te tukino. Kei te he a Gnupg, kua hinga katoa. Mena ka taapirihia e matou he atanga hou kaore e pai ana ka whakamahia e te gnupg me nga kaupapa rite, ka ngaro ano tatou."

I kii a Mueller ko te taapiri o te getrandom() ka taea e GnuPG te whakamahi i tenei atanga, na te mea ka puta te taurangi e tika ana kua arawhitihia te puna. I runga i nga korerorero me te kaiwhakawhanake GnuPG a Werner Koch, e whakapono ana a Mueller ko te taurangi anake te take ka panui tika a GnuPG mai i te /dev/random. Engari ki te mea he atanga karekau e pai ana ki te whakakore i te ratonga (penei i te /dev/random i tenei ra), ka kii a Lutomirsky ka whakamahia hetia e etahi tono.

Ko Theodore Yue Tak Ts'o, kaiwhakawhanake i te punaha nama matapōkere o Linux, kua huri tona whakaaro mo te hiahia mo te poka wai aukati. I kii ia ko te tango i tenei puna wai ka whakakorea te whakaaro kei a Linux he kaihanga tau matapōkere pono (TRNG): "Ehara tenei i te mea poauau, na te mea ko tenei tonu te mahi a *BSD."

Kei te awangawanga ano ia ko te whakarato i tetahi tikanga TRNG ka waiho noa hei maunu mo nga kaiwhakawhanake tono me te whakapono ko te mea pono, na nga momo taputapu e tautokohia ana e Linux, kaore e taea te kii i te TRNG i roto i te kernel. Ahakoa ko te kaha ki te mahi me nga taputapu me nga painga pakiaka kaore e whakaoti i te raru: "Ka whakatauhia e nga kaiwhakawhanake tono kia whakauruhia ta raatau tono hei putake mo nga kaupapa haumaru, na koinei anake te huarahi e uru atu ai koe ki nga nama matapōkere 'tino pai'."

I patai a Mueller mena kua whakarerea e Cao te whakatinanatanga o te poka wai aukati kua roa kee ia i tono. Ka whakautu a Cao e whakaaro ana ia ki te tango i nga papaa a Lutomirsky me te whakahē kaha ki te taapiri i tetahi atanga aukati ki te kakano.

"Kaore e taea e te kakano te whakapumau mehemea kua tika te tohu o te puna haruru. Ko te mea anake ka taea e te kaiwhakawhanake GPG, OpenSSL ranei, ko te whakaaro pohehe he "pai ake" a TRUERANDOM, na te mea kei te pirangi ratou ki te haumaru ake, kare e kore ka ngana ratou ki te whakamahi. I tetahi wa ka aukatihia, a ka whakauruhia e etahi atu kaiwhakamahi mohio (he tohunga toha pea) ki roto i te tuhinga init ka mutu te mahi a nga punaha, me amuamu nga kaiwhakamahi ki a Linus Torvalds ake.

Ka tautoko ano hoki a Cao ki te tuku i nga kaitahurihuri me te hunga e tino hiahia ana ki te TRNG ki te hauhake i a raatau ake entropy ki te waahi kaiwhakamahi hei whakamahi i a raatau e pai ana. E ai ki a ia, ko te kohi entropy ehara i te mahi ka taea e te kernel te mahi i runga i nga taputapu rereke katoa e tautokohia ana e ia, kaore hoki e taea e te kernel ake te whakatau i te nui o te entropy e whakaratohia ana e nga punaa rereke.

"Kaua e whakakotahihia e te kernel nga puna haruru rereke, me te kore e ngana ki te kii kia mohio koe ki te maha o nga moka o te entropy e whiwhi ana i a ia e ngana ana ki te takaro i etahi momo" keemu entropy twitchy "i runga i te PTM ngawari noa. hoahoanga mo nga kaiwhakamahi kaihoko. Ko nga keehi IOT/Taumau karekau nga mea katoa i te tukutahi me te oscillator matua kotahi, kaore he tohutohu PTM ki te whakariterite, whakaingoa ano ranei i tetahi rehita, aha atu.

"Ka taea e koe te korero mo te whakarato taputapu e ngana ana ki te mahi i enei tatauranga, engari me mahi enei mahi i runga i nga taputapu o ia kaiwhakamahi, he kore noa mo te nuinga o nga kaiwhakamahi tohatoha. Mēnā ko te tikanga mo te hunga cryptographers anake, katahi ka mahia ki o raatau waahi kaiwhakamahi. A kaua tatou e whakangawari ake i te GPG, OpenSSL, me etahi atu kia kii ai te katoa "e hiahia ana matou ki te "tupono kore" ka kore e noho mo te iti ake. Ka taea e tatou te korero me pehea e hoatu ai he atanga ki nga kaitahurihuri kia whiwhi ai ratou i nga korero e hiahiatia ana ma te uru atu ki nga puna haruru tuatahi, ka wehea, ka whakaingoatia, a tera pea ka taea e te puna haruru te whakamotuhēhē i a ia ki te whare pukapuka, ki te tono mokowā kaiwhakamahi ranei."

I puta etahi korero mo te ahua o taua atanga, na te mea ka puta he paanga haumarutanga mo etahi huihuinga. I kii a Cao ko nga waehere matawai papapātuhi (arā, ko nga patene) ka whakauruhia ki roto i te puna hei waahanga o te kohinga entropy: "Ko te kawe mai i tenei ki te waahi kaiwhakamahi, ahakoa na roto i te waea punaha whaimana, kaore he whakaaro nui ki te kii." Ka taea pea e etahi atu wa huihuinga te hanga i etahi momo rerenga korero ma nga hongere taha.

Na ko te ahua he raru kua roa e pa ana ki te punaha nama matapōkere a Linux kei te huarahi ki te otinga. Ko nga huringa i mahia e te punaha tau matapōkere i mua tata nei i puta mai nga take DoS i te wa e whakamahi ana. Inaianei he huarahi pai ki te tiki i nga tau matapōkere pai ka taea e te kernel te whakarato. Mena kei te pirangi tonu a TRNG i runga i te Linux, me whakatika tenei hapa a muri ake nei, engari tera pea ka kore e mahia i roto i te kernel ake.

Ko etahi panui 🙂

Mauruuru koe mo te noho ki a matou. He pai ki a koe a maatau tuhinga? Kei te hiahia koe ki te kite i etahi atu mea whakamere? Tautokohia matou ma te tuku ota me te tuku korero ki o hoa, kapua VPS mo nga kaihanga mai i te $4.99, he tairitenga ahurei o nga kaitoro taumata-urunga, na matou i hanga mo koe: Ko te pono katoa mo VPS (KVM) E5-2697 v3 (6 Cores) 10GB DDR4 480GB SSD 1Gbps mai i te $19 me pehea ranei te tiri i tetahi tūmau? (e waatea ana me te RAID1 me te RAID10, tae atu ki te 24 matua me te 40GB DDR4).

Dell R730xd 2x iti ake i te pokapū raraunga Equinix Tier IV i Amsterdam? Anei i konei 2 x Intel TetraDeca-Core Xeon 2x E5-2697v3 2.6GHz 14C 64GB DDR4 4x960GB SSD 1Gbps 100 TV mai i te $199 i roto i te Netherlands! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - mai i te $99! Pānuihia mo Me pehea te hanga hanganga corp. akomanga ki te whakamahi o Dell R730xd E5-2650 v4 tūmau utu 9000 euros mo te pene?

Source: will.com

Tāpiri i te kōrero