Тавре ки маълум аст, /dev/random, генератори рақамҳои псевдортасодуфии аз ҷиҳати криптографӣ эмин (CSPRNG) аз як мушкили дилгиркунанда азият мекашад: басташавӣ. Ин мақола мефаҳмонад, ки чӣ тавр ин мушкилотро ҳал кардан мумкин аст.
Воситаҳои тавлиди рақамҳои тасодуфии ядро дар чанд моҳи охир каме аз нав кор карда шуданд, аммо мушкилот дар ин зерсистема дар тӯли муддати тӯлонӣ ҳал карда шуданд. Аз ҳама Инҳо пешбинӣ шуда буданд, ки занги системаи getrandom() барои муддати тӯлонӣ ҳангоми боркунии система ҷилавгирӣ кунад, аммо сабаби аслӣ рафтори бастани ҳавзи тасодуфӣ буд. Ямоқи ба наздикӣ ин ҳавзро нест мекунад ва интизор мерафт, ки он ба ядрои асосӣ роҳ ёбад.
Энди Лутомирски версияи сеюми патчро дар охири моҳи декабр нашр кард. муаррифӣ мекунад «два основных семантических изменения в случайных API Linux»Пач парчами нави GRND_INSECURE -ро ба занги системаи getrandom() илова мекунад (гарчанде ки Лутомирский онро getentropy(), ки дар glibc бо истифода аз getrandom() бо парчамҳои собит амалӣ мешавад); ин парчам боиси он мегардад, ки занг ҳамеша ҳаҷми маълумоти дархостшударо баргардонад, аммо бидуни кафолати тасодуфӣ будани ин маълумот. Ядро танҳо тамоми кори аз дасташ меомадаро мекунад, то беҳтарин маълумоти тасодуфиро дар он вақт баргардонад. "Эҳтимол беҳтарин коре, ки бояд кард, ин номидани онро" БАМНАВОР " аст" (бехатар) барои пешгирӣ кардани ин API барои чизҳое, ки ба амният ниёз доранд."
Часбҳо инчунин ҳавзи блокро хориҷ мекунанд. Дар айни замон, ядро ду ҳавзи маълумоти тасодуфиро нигоҳ медорад, ки яке ба /dev/random ва дигаре ба /dev/urandom мувофиқ аст, тавре ки дар ин мақола тавсиф шудааст 2015. Ҳавзи басташавӣ ҳавзи барои /dev/random аст; хондани ин дастгоҳ то он даме, ки энтропияи "кофӣ" аз система барои қонеъ кардани дархост ҷамъоварӣ карда нашавад, блок мекунад (чунон ки аз номаш бармеояд). Хониши минбаъдаи ин файл инчунин агар ҳавз энтропия надошта бошад, баста мешавад.
Хориҷ кардани ҳавзи қулф маънои онро дорад, ки хондан аз /dev/random мисли getrandom() бо парчамҳои ба сифр гузошташуда рафтор мекунад (ва парчами GRND_RANDOM-ро ба ҳалқа табдил медиҳад). Пас аз оғоз кардани генератори рақамҳои тасодуфии криптографӣ (CRNG), хондан аз /dev/random ва занг задани getrandom(…,0) масдуд намешавад ва миқдори дархостшудаи маълумоти тасодуфиро бармегардонад.
Лутомирский мегӯяд: «Я считаю, что блокирующий пул Linux изжил себя. CRNG Linux генерирует выходные данные, которые достаточно хороши, чтобы использовать их даже для генерации ключей. Блокирующий пул не является более сильным в любом материальном отношении, и для его поддержания требуется много инфраструктуры сомнительной ценности».
Тағйирот бо нияти он анҷом дода шуд, ки ба барномаҳои мавҷуда зарар нарасонанд ва дар асл, бо интизории тӯлонӣ барои чизҳое ба монанди тавлиди калидҳои GnuPG мушкилот камтар хоҳад буд.
"Ин силсилаҳо набояд ягон барномаи мавҷударо вайрон кунанд. /dev/urandom бетағйир боқӣ мемонад. /dev/random ҳоло ҳам фавран пас аз боркунӣ блок мекунад, аммо он камтар аз пештараро маҳкам мекунад. getentropy() бо парчамҳои мавҷуда натиҷаеро бармегардонад, ки мисли пештара барои мақсадҳои амалӣ мувофиқ аст."
Лутомирский қайд кард, ки саволе, ки оё ядро бояд ба истилоҳ "рақамҳои тасодуфии ҳақиқӣ" -ро таъмин кунад, ки ядрои қуфл бояд то андозае анҷом диҳад, боз боқӣ мемонад. Вай факат як сабаби инро мебинад: «риояй ба стандартхои давлатй». Лутомирский пешниҳод кард, ки агар ядро инро таъмин кунад, он бояд тавассути интерфейси комилан дигар анҷом дода шавад ё ба фазои корбар интиқол дода шавад, то ба он имкон диҳад, ки намунаҳои ҳодисаҳои хомро, ки метавонанд барои сохтани чунин ҳавзи қулфкунӣ истифода шаванд, истихроҷ кунад.
Стефан Мюллер пешниҳод кард, ки маҷмӯи худ для генератора случайных чисел Linux (LRNG) (в настоящее время выпущена 26 версия) может быть способом предоставления истинных случайных чисел для приложений, которые в этом нуждаются. LRNG «полностью соответствует требованиям «Рекомендаций по источникам энтропии, используемым для генерации случайных битов» SP800-90B», что делает его решением проблемы государственных стандартов.
Мэттью Гаррет ба истилоҳи "маълумоти тасодуфии ҳақиқӣ" эътироз кард ва қайд кард, ки дастгоҳҳои интихобшуда метавонанд ба таври кофӣ дақиқ модел карда шаванд, то онҳоро пешгӯӣ кунанд: "мо дар ин ҷо рӯйдодҳои квантиро интихоб намекунем."
Мюллер посух дод, ки ин истилоҳ аз стандарти олмонии AIS 31 барои тавсифи генератори рақамҳои тасодуфӣ гирифта шудааст, ки танҳо "бо ҳамон суръате, ки манбаи садои аслӣ энтропияро тавлид мекунад" натиҷа медиҳад.
Ба ғайр аз фарқиятҳои истилоҳот, доштани ҳавзи қулф, ки аз ҷониби часбҳои LRNG пешниҳод шудааст, танҳо ба мушкилоти гуногун оварда мерасонад, ҳадди аққал агар он бе имтиёз дастрас бошад.
Чунон ки Лутомирский гуфта буд: "Ин мушкилотро ҳал намекунад. Агар ду корбари гуногун барномаҳои аблаҳонае ба мисли gnupg иҷро кунанд, онҳо танҳо якдигарро гурусна мемонанд. Ман дар айни замон ду мушкилоти асосиро бо /dev/random мебинам: он ба DoS моил аст (яъне, тамомшавии захираҳо, таъсири бадхоҳона ва монанди инҳо) ва азбаски он барои истифодаи он имтиёзе низ талаб намекунад, барои истифодаи пурраи он, G'." Агар мо интерфейси нави беимтиёзро илова кунем, ки онро gnupg ва барномаҳои шабеҳ истифода баранд, мо боз аз даст медиҳем."
Мюллер қайд кард, ки иловаи getrandom() ҳоло ба GnuPG имкон медиҳад, ки ин интерфейсро истифода барад, зеро он кафолати зарурии ба кор андохтани ҳавзро медиҳад. Бар асоси баҳсҳо бо таҳиягари GnuPG Вернер Кох, Мюллер чунин мешуморад, ки ин кафолат ягона сабаби мутолиаи GnuPG дар айни замон аз /dev/random аст. Аммо, агар интерфейси беимтиёз мавҷуд бошад, ки ба радди хидмат ҳассос аст (чун /dev/random дар айни замон аст), пас, ба гуфтаи Лутомирский, он аз ҷониби баъзе замимаҳо нодуруст истифода мешавад.
Теодор Цао (Theodore Yue Tak Ts’o), разработчик подсистемы случайных чисел Linux, по-видимому, изменил свое мнение по поводу необходимости блокирующего пула. Он сказал, что удаление этого пула позволит эффективно избавиться от идеи, что Linux имеет настоящий генератор случайных чисел (TRNG): "Ин сафсата нест, зеро маҳз ҳамон чизест, ки *BSD ҳамеша мекард."
Он также обеспокоен тем, что предоставление механизма TRNG будет просто служить в качестве приманки для разработчиков приложений и считает, что на самом деле, учитывая различные типы аппаратного обеспечения, поддерживаемого Linux, невозможно гарантировать TRNG в ядре. Проблему не решит даже возможность работы с оборудование только на основе root-привилегий: "Таҳиягарони барнома талаб мекунанд, ки барномаи онҳо ҳамчун реша насб карда шавад, зеро ин ягона роҳест, ки шумо метавонед ба рақамҳои тасодуфии "воқеан хуб" дастрасӣ пайдо кунед."
Мюллер пурсид, ки оё Cao аз татбиқи ҳавзи бастабандӣ, ки кайҳо пеш пешниҳод карда буд, даст кашидааст. Cao ҷавоб дод, ки ӯ нақша дорад, ки часбҳои Лутомирскийро бигирад ва ба илова кардани интерфейси блоккунанда ба ядро барқарор аст.
"Ядро наметавонад кафолат диҳад, ки оё манбаи садо дуруст тавсиф шудааст. Ягона чизе, ки як таҳиягари GPG ё OpenSSL метавонад ба даст орад, эҳсоси норавшан аст, ки TRUERANDOM "беҳтар" аст ва азбаски онҳо амнияти бештар мехоҳанд, онҳо бешубҳа кӯшиш мекунанд, ки онро истифода баранд. Дар як лаҳза, он баста мешавад ва вақте ки ягон корбари дигари интеллектуалӣ дар системаҳои паҳнкунандаи паҳнкунанда (эҳтимол) онро дар муҳаррик қатъ мекунад ва онро дар муҳаррик қатъ мекунад. кор мекунад, танҳо чизе, ки барои корбарон шикоят мекунанд, худи Линус Торвалдс аст."
Cao инчунин ҳимоят мекунад, ки криптографҳо ва онҳое, ки воқеан ба TRNG ниёз доранд, бо роҳи ҷамъоварии энтропияи худ дар фазои корбар барои истифодаи худ. Вай даъво мекунад, ки ҷамъоварии энтропия раванде нест, ки онро ядро дар ҳама сахтафзорҳои дастгирӣшаванда иҷро карда метавонад ва худи ядро миқдори энтропияро аз манбаъҳои гуногун ҳисоб карда наметавонад.
"Ядро набояд манбаъҳои садои гуногунро бо ҳам омехта кунад ва бешубҳа, набояд даъво кунад, ки ҳангоми кӯшиши бозӣ кардани "бозии энтропии пурқувват" дар меъмории ба таври хандаовар соддаи CPU барои ҳолатҳои корбарони IOT / дохилшуда, вақте ки ҳама чиз бо як осциллятори ягона ҳамоҳанг нест, ҳангоми сабти номи CPU ё аз нав сабти ном нест."
"Мо метавонем дар бораи таъмин кардани абзорҳое сӯҳбат кунем, ки ин ҳисобҳоро иҷро кунанд, аммо ин корҳо бояд дар сахтафзори ҳар як корбар анҷом дода шаванд, ки барои аксари корбарони тақсимот ғайриимкон аст. Агар ин танҳо барои криптографҳо пешбинӣ шуда бошад, бигзор он дар фазои корбарии онҳо анҷом дода шавад. Ва биёед GPG, OpenSSL ва ғайраро содда накунем, то ҳама бигӯянд, ки "мо ҳақиқӣ камтар бихоҳем". Мо метавонем дар бораи он сӯҳбат кунем, ки чӣ тавр мо ба криптографҳо интерфейсҳо пешниҳод мекунем, то онҳо тавонанд маълумоти заруриро тавассути дастрасӣ ба сарчашмаҳои садои ҷудошуда ва номбаршуда ба даст оранд ва эҳтимолан ба манбаи садо имкон диҳанд, ки худро ба китобхона ё замимаи фазои корбар тасдиқ кунанд."
Баъзе баҳсҳо дар бораи он ки чунин интерфейс чӣ гуна буда метавонад, зеро баъзе рӯйдодҳо, масалан, метавонанд ба амният таъсир расонанд. Cao қайд кард, ки рамзҳои сканкунии клавиатура (яъне зарбаҳои клавиатура) ҳамчун як қисми коллексияи энтропия ҷамъ карда мешаванд: "Интиқоли ин ба фазои корбар, ҳатто тавассути занги имтиёзноки система, ҳадди аққал беақлона мебуд." Инчунин мумкин аст, ки дигар вақтҳои рӯйдодҳо метавонанд як навъ ихроҷи иттилооти канориро эҷод кунанд.
Таким образом, возникает ощущение, что давняя проблема подсистемы случайных чисел Linux находится на пути к решению. Изменения, которые подсистема случайных чисел претерпела в последнее время, фактически приводили только к проблемам DoS в процессе ее использования. Теперь же появились эффективные способы получить наилучшие случайные числа, какие только может предоставить ядро. Если же TRNG все еще желателен для Linux, то этот недостаток нужно будет устранить в будущем, но, скорее всего, это не будет делаться внутри самого ядра.
Баъзе рекламаҳо 🙂
Ташаккур ба шумо барои бо мо мондан. Мақолаҳои мо ба шумо маъқуланд? Мехоҳед мундариҷаи ҷолибтарро бубинед? Бо фармоиш додан ё тавсия додан ба дӯстон моро дастгирӣ кунед, , аналоги беназири серверҳои сатҳи ибтидоӣ, ки аз ҷониби мо барои шумо ихтироъ шудааст: (бо RAID1 ва RAID10, то 24 ядро ва то 40 ГБ DDR4 дастрас аст).
Dell R730xd дар маркази додаҳои Equinix Tier IV дар Амстердам 2 маротиба арзонтар аст? Танҳо дар ин ҷо дар Нидерландия! Dell R420 - 2x E5-2430 2.2Ghz 6C 128GB DDR3 2x960GB SSD 1Gbps 100TB - аз $99! Дар бораи хондан
Манбаъ: will.com
