Бекдор

**Бекдор**, **даромадгоҳи махфӣ** (аз  — "дари пушт", айнан "дари пушт") — нуқсон дар алгоритме, ки аз ҷониби таҳиякунанда қасдан дар он сохта шудааст ва дастрасии беиҷозат ба маълумот ё идоракунии дурдасти системаи оператсионӣ ва дар маҷмӯъ компютерро фароҳам меорад .

Мақсади асосии пушти дарвоза ин аст, ки ба таври пинҳонӣ ва зуд дастрасии маълумот ба маълумот, дар аксари ҳолатҳо рамзгузорӣ ва муҳофизатшуда мебошад. Масалан, дар алгоритми рамзгузорӣ барои гӯш кардани телефони минбаъдаи канали амн аз ҷониби ҳамлагар пушти дарро сохтан мумкин аст.

#### Дар пушти (бекдор) дари комил
* ошкор кардан душвор аст;
* такроран истифода бурдан мумкин аст;
* рад кардан осон аст — он ба хатогӣ монанд аст ва агар ошкор шавад, таҳиякунанда метавонад ишора кунад, ки ӯ ин хаторо тасодуфан содир кардааст ва нияти бад надоштааст;
* мо танҳо дар сурате истифода мебарем, ки сиррро бидонем — танҳо шахсе, ки медонад, ки қафо дар чӣ гуна фаъол карда мешавад, метавонад онро истифода барад;
* аз созиш бо истифодаҳои қаблӣ муҳофизат карда шудааст — ҳатто агар пушти дарвоза ошкор шуда бошад ҳам, муайян кардан ғайриимкон аст, ки он қаблан аз ҷониби кӣ истифода шудааст ва ҳамлагар кадом маълумотро соҳиб шудааст;
* такрор кардан душвор аст — ҳатто агар пушти дарро касе пайдо карда бошад ҳам, онро дар дигар код ё дар дастгоҳи дигар истифода бурдан ғайриимкон аст.

#### Принсипҳои умумӣ барои эҷоди пушти дарҳо-(бекдорҳо) дар алгоритмҳо

* муқовимати сусти алгоритм ба криптотализ ;
* константаҳои махсус интихобшуда — алгоритм метавонад ҳангоми интихоби арзишҳои муайяни константаҳои дар кори худ истифодашаванда барои криптотализ ноустувор гардад;
* мураккабӣ дар татбиқи бехатар — ин маънои онро дорад, ки татбиқи бехатари алгоритм хеле суст аст ва ҳама варианти ноамнро истифода мебаранд, ки барои ҳамла муфид аст.

## Намунаҳои гипотетикии пушти дарҳо-(бекдорҳо) дар алгоритмҳои муосир

### осебпазирии генератори пайдарпаии псевдо-тасодуфӣ DUAL_EC_DRBG
Ин генератор аз ҷониби NSA таҳия шудааст ва ҳамчун генератори рақамҳои псевдо-тасодуфӣ аз ҷиҳати криптографии қавӣ аз ҷониби Институти Миллии Стандартҳо ва Технологияи ИМА NIST дар соли 2006 стандартизатсия шудааст. Аммо, аллакай дар соли 2007, муҳаққиқони мустақил пешниҳод карданд, ки дар ин алгоритми пушти дари қафо сохтан мумкин аст.   

: *Тасвири амали алгоритми мувофиқи мушаххасоти NSA  :*

пайванд=Файл:DUAL_EC_DRBG.jpg|бе_чаҳорчӯба|600x600пкс

Ин алгоритм хатҳои эллиптикиро истифода мебарад.  P  - генератори гурӯҳи нуқтаҳо дар хатти эллиптикӣ,  Q  - нуктаи каљи эллиптикї - константае, ки бо стандарт муайян шудааст, чї тавр интихоб шудааст, маълум нест. Параметрҳои худи каҷ низ аз ҷониби стандарт муқаррар карда мешавад.

: *Принсипи фаъолият:*

Муодилаи каҷ

: 
 y^2 = (x^3+ax+b) \bmod p


дар шакли дубора навиштан мумкин аст  x = \varphi(x, y) \bmod p  ва барои кор кардани алгоритм ифодаҳои зеринро нависед:

:  r_i = \varphi(s_i*P),  t_i = \varphi(r_i*Q),  s_{i+1} = \varphi(r_i*P)
:  s_i — ҳолати дохилии генератор дар марҳилаи ҷорӣ
:  s_{i+1} - ҳолати дохилии генератор дар қадами оянда
:  t_i  — баромади генератор дар зинаи ҷорӣ

: *Эҳтимоли пушти дари:*

Зеро  p  рақами аслӣ аст, пас чунин адад вуҷуд дорад  e , чӣ  e*Q=P . Ҷустуҷӯ  e  масъалаи аз чихати хисоббарорй душвори логарифми дискретй дар хатти эллиптики мебошад, ки дар айни замон алгоритмхои самарабахш барои он вучуд надоранд. Аммо фарз кардем, ки ҳамлагар медонад  e , он гоҳ ҳамлаи зерин ба даст меояд: Агар  x=t_i  баромади навбатии генератор аст, ва агар чунин вуҷуд дорад  y , чӣ  y^2 \equiv (x^3+ax+b) \bmod p, пас нукта  A =(x,y), дар каҷ ҷойгир аст ва баробарии зерин барои он амал мекунад:  A=r_i*Q  . Донистани рақам  e  ҳисоб кардан мумкин аст:  s_{i+1}=\varphi(e*A)=\varphi(e*r_i*Q)=\varphi(r_i*P)  . Ҳамин тариқ, ҳамлагар, ки рақамро медонад  e , метавонад на танҳо ҳосили навбатии генераторро ҳисоб кунад, балки инчунин дар тамоми ҳолатҳои дохилии имконпазири генератор зуд такрор карда, ҳолати ибтидоии дохилии онро барқарор кунад. Тибқи таҳқиқоти мустақил  , бо дониш  e  танҳо 30 байт пайдарпаии баромади генератор кифоя аст, ки танҳо номбар кунед  2^{15}  арзишҳо барои барқарор кардани ҳолати ибтидоии дохилии он. Ба гуфтаи муҳаққиқон, чунин осебпазириро метавон ҳамчун пушти дари қафо арзёбӣ кард.

### Хатогӣ дар татбиқи протоколи тасдиқи сертификати TLS -и [[Apple Inc.|Apple]]
Муҳаққиқони Яндекс осебпазириро дар татбиқи протоколи TLS дар яке аз маҳсулоти нармафзори Apple кашф карданд  . Ба ақидаи онҳо, ин хато метавонад як пушти даре бошад, ки аз ҷониби яке аз таҳиягарон дидаву дониста дар алгоритм сохта шудааст.

: *Бахши код бо хатогӣ:*

```c
static DSStatus SSLVerifySignedServerKeyExchnge(....)
{
   DSStatus err;
   ....
   if ((err = SSLHashSHA1.update(&hashCtx, &signedParams)) != 0)
     goto fail;
     goto fail;
   if ((SSHashSHA1.final(&hashCtx, &hashOut)) != 0)
     goto fail;
   ....
   fail:
     ....
     return err;
}
```
Тавре ки шумо мебинед, пас аз изҳороти аввал ду хати **goto fail** **мавҷуд** аст ва сатри дуюм новобаста аз натиҷаи **if**, ҳамеша иҷро мешавад. Ҳамин тариқ, тартиби тасдиқи сертификат нопурра аст. Ҳамлагаре, ки дар бораи ин осебпазирӣ огоҳ аст, метавонад сертификатро қаллобӣ кунад ва тасдиқ карда шавад. Ин ба ӯ имкон медиҳад, ки ҳамлаи одам дар миёнаро ташкил кунад ва ба ин васила ба пайвасти бехатари байни муштарӣ ва сервер халал расонад. Муҳаққиқоне, ки ин хаторо дар татбиқ кашф кардаанд, дақиқ гуфта наметавонанд, ки он қасдан ё тасодуфӣ буд. Ин комилан имконпазир аст, ки ин пушти дари дар алгоритми аз ҷониби яке аз таҳиягарон сохташуда бошад.

## Намунаҳои усулҳои эҷоди пушти дарҳо

#### Константаҳои махсус интихобшуда
Бисёре аз алгоритмҳои криптографии муосир дар кори худ маҷмӯи муайяни доимии дохилиро истифода мебаранд. Одатан, ин константаҳо аз ҷониби стандарт муайян карда мешаванд ва бо сабабҳои муқовимати криптографӣ ба намудҳои ҳозираи маълуми криптотализ интихоб карда мешаванд. Аммо интихоби константаҳо ҳангоми стандартизатсияи алгоритм аз ҷиҳати назариявӣ метавонад аз ҷониби таҳиягарон бо нияти бад истифода шавад: масалан, барои эҷоди баъзе осебпазириҳо ва дарҳои пушти дарҳои алгоритм.

Ҳамчун мисоли истифодаи константаҳо, мо метавонем мақолаҳои тадқиқотии охиринро дар мавзӯи ба истилоҳ "хэшингҳои зараровар"   оварем, ки дар он муаллифон тавонистанд бархӯрдҳоро барои функсияи хэши криптографии SHA1 бо тағир додани константаҳои даврии он. Аҳамият диҳед, ки ҳамлае, ки муаллифони таҳқиқот пешниҳод кардаанд, ҳамла ба худи функсияи hash SHA1 нест, он танҳо имкон медиҳад, ки бархӯрдҳо дар сурати тағир додани константаҳои мудаввар ва танҳо барои намудҳои муайяни файл имконпазир бошанд.

: *Тавсифи мухтасари SHA1 :*

SHA1 як функсияи муосири хэши мудаввар аст. Алгоритми ҳашинг чунин аст:

* Қиматҳои 32-бит оғоз карда мешаванд  a = h_0, b = h_1, c = h_2, d = h_3, e = h_4 
* Паёми воридотӣ ба блокҳои 512 бит тақсим мешавад
* Ҳар як блоки паёмӣ мувофиқи алгоритми дар стандарт муайяншуда ба таври махсус коркард ва пурра карда мешавад.
* Блоки паёми қабулшуда дар 4 марҳилаи ҳар кадоми 20 давр ҳаш карда мешавад ва ҳар як марҳила константаи худро истифода мебарад K_1, K_2, K_3  ё K_4 
* Натиҷаи функсия барои ҳар як блок арзишҳои нав хоҳад буд a, b, c, d, e , ки ба натиҷа илова карда мешаванд:  h_0 = h_0 + a, h_1 = h_1 + b, h_2 = h_2 + c, h_3 = h_3 + d, h_4 = h_4 + e 
* Натиҷаи ниҳоии хэш арзиши 160-бит хоҳад буд, ки тавассути пайваст кардани панҷ арзиши 32-бит ба даст меояд  h_0, h_1, h_2, h_3, h_4  пас аз коркарди блоки охирини паём.

: *Бархӯрди биноҳо:*

Мақсади ҳамлаи баррасишаванда дарёфти чунин доимӣ мебошад  K_1, K_2, K_3, K_4  ва чунин паёмҳо M_1 ва M_2, чӣ Hash(M_1) = Hash(M_2) . Ин ҳамла танҳо аввалин 512 бит (блоки 1)-и паёмҳоро, ки барои сохтани бархӯрд зарур аст, тағир медиҳад. Алгоритм ба ҳамлаи дифференсиалии аллакай маълум ба SHA1, ки соли 2005 пешниҳод шуда буд, асос ёфтааст   ва мураккабии тартиб  2^{69}  амалиётхоеро, ки дар амал татбик карданро душвор мегардонад. Аз ин рӯ, то ҳол ягон бархӯрди воқеӣ барои SHA1 пайдо нашудааст.

Аммо дар сурати эҷоди як варианти шубҳаноки SHA1, ҳамлакунанда метавонад на танҳо блокҳои паёмиро фарқ кунад M_1 ва M_2, балки доимии мудаввар низ  K_1, K_2, K_3, K_4  . Мувофиқи тадқиқот , ин хеле мураккабии ҳамларо ба тартибот коҳиш медиҳад  2^{48}  амал мекунад ва сохтани чунин бархӯрдҳоро як вазифаи воқеие мегардонад, ки онро дар компютерҳои сершумор иҷро кардан мумкин аст. Ҳамин тариқ, муаллифони тадқиқот тавонистанд бархӯрдҳои як-блокро барои бисёр намудҳои файлҳои маълум созанд.

: *Бархӯрди ягонаи блок:*

пайванд=Файл:Mal_sha1.jpg|бе_чаҳорчӯба|305x305пкс

: M_1 ва M_2 - блокҳои аввалини паёмҳо (512 бит), ки аз ҳамдигар фарқ мекунанд, аммо маблағи якхеларо медиҳанд
:  Content  - қисми боқимондаи мундариҷа, ки барои ҳарду файл яксон аст

#### Намунаи истифодаи ҳашингҳои зараровар барои эҷоди пушти дарҳо
Бо ёрии ҳамлаи тавсифшуда, ду sh-скрипт сохта шуд, ки ҳангоми интихобшуда  K_1=5a827999~,~K_2=88e8ea68~,~K_3=578059de~,~K_4=54324a39 якхела маблаги SHA1 дихад, вале дигар хел кор кунад.

пайванд=Файл:Malicious_sh.jpg|бе_чаҳорчӯба|600x600пкс

Тавре ки шумо мебинед, фарқияти байни ин ду скрипт танҳо дар блокҳои аввали 512 бит аст, ки партовҳоро шарҳ медиҳанд. Аммо мундариҷаи ин блокҳо баъдан дар ҳолати **if** истифода мешаванд, аз ин рӯ скриптҳо ҳангоми иҷро дигар хел рафтор мекунанд. Чунин файлҳоро эҷодкунанда бо нияти бад истифода бурда метавонад.

## Дарҳои пушти сахтафзор
Дарҳои қафоро на танҳо дар нармафзор, балки дар сахтафзор низ ҷойгир кардан мумкин аст. Чунин пушти дарҳоро истеҳсолкунандагони сахтафзор метавонанд барои ворид кардани функсияҳои зараровар дар марҳилаи истеҳсол истифода баранд.

Дарҳои паси сахтафзор нисбат ба нармафзор як қатор бартариҳо доранд:

* Бо антивирусҳо, сканерҳои код ва дигар нармафзори амниятӣ ошкор карда намешавад.
* Бо навсозӣ ё иваз кардани нармафзор ислоҳ карда намешавад.

Намунаи пушти дари сахтафзор як нармафзори зараровари BIOS хоҳад буд. Мувофиқи тадқиқотҳо , чунин нармафзорро метавон дар асоси нармафзори ройгони Coreboot  ва SeaBIOS сохтан мумкин аст. Coreboot як BIOS-и мукаммал нест: он танҳо барои муайян кардани сахтафзори дар мошин мавҷудбуда ва интиқоли назорат ба худи "BIOS пур" масъул аст, ки онро ҳамчун SeaBIOS истифода бурдан мумкин аст, ки аз ҷониби ҳамлагар мувофиқи эҳтиёҷоти ӯ тағир дода шудааст.

Принсипи кори нармафзори зарароварро ба таври мухтасар чунин тавсиф кардан мумкин аст: дарҳол пас аз фурӯзон шудани компютери сироятшуда, ҳатто пеш аз бор кардани системаи амалиётӣ, он кӯшиш мекунад, ки бо сервери ҳамлакунанда тавассути Интернет пайваст шавад. Агар чунин кӯшиш бомуваффақият анҷом дода шавад, пас баъзе bootkit ба таври фосилавӣ зеркашӣ карда мешавад, ки дар навбати худ ба ҳамлагар имкон медиҳад, ки амалҳои зарароварро бо компютери сироятшуда анҷом диҳад: дуздии маълумот ё идоракунии дурдаст . Агар кӯшиши пайвастшавӣ ба Интернет ноком шавад, он гоҳ системаи оператсионӣ ба таври муқаррарӣ бор мешавад. Бартарии бешубҳа барои ҳамлакунанда дар он аст, ки худи нармафзори таҳриршуда ягон рамзи зарароварро дар бар намегирад ва ошкор кардани bootkits душвор аст.

## Инчунин нигаред

* Истисмор кардан
* Ҳамла "Одам-дар-миёна"
* DoublePulsar
* Кабуди абадӣ
* WannaCry
* Петя (Рansomware кирми)
* EternalRocks
* Агентии амнияти миллии ИМА

## Эзоҳ



## Пайвандҳо
* Dan Shumow, Niels Ferguson. On the Possibility of a Back Door in the NIST SP800-90 Dual Ec Prng. — 2007.
* Евгений Сидоров. Криптографические баги и бэкдоры. — 2015.
* John Bryson, Patrick Gallagher. Recommendation for Random Number Generation Using Deterministic Random Bit Generators. — U.S. Department of Commerce, 2012.

Гурӯҳ:Бехатарии иттилоотӣ
Гурӯҳ:Саҳифаҳое, ки бо тарҷумаҳои ношинос оварда шудаанд