26.11.2014 Views

Январь - Xakep Online

Январь - Xakep Online

Январь - Xakep Online

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Ñòîèò ðàçëè÷àòü ïðîöåññ ñîïðÿæåíèÿ óñòðîéñòâ (pairing) è àóòåíòèôèêàöèè<br />

(authentication). Ïàðèíã íóæåí òîëüêî äëÿ ñîçäàíèÿ<br />

êëþ÷à ñâÿçè, êîòîðûì óñòðîéñòâà áóäóò ïîëüçîâàòüñÿ â äàëüíåéøåì,<br />

êàæäûé ðàç ïåðåäàâàÿ êàêèå-ëèáî äàííûå.<br />

ïàðèíãà ïåðåõâàòèë è ñîõðàíèë âñå ñîîáùåíèÿ. Òåïåðü ìû ïîäîøëè<br />

âïëîòíóþ ê ãëàâíîìó âîïðîñó. Ñîáñòâåííî, ñàì âçëîì ïèíà<br />

îñóùåñòâëÿåòñÿ ïîäáîðîì.<br />

Äëÿ íà÷àëà íóæíî ñîñòàâèòü ïðîäâèíóòûé àëãîðèòì ïåðåáîðà,<br />

÷òîáû ïîëó÷èòü õîòü êàêîé-òî ðåçóëüòàò. Âîò ñìîòðè, ìû ïåðåõâàòèëè<br />

IN_RAND (îí íåøèôðîâàííûé) è BD_ADDR (ïðè÷åì ó îáîèõ<br />

óñòðîéñòâ àäðåñà âèäíû â ýôèðå) è çàïóñêàåì àëãîðèòì E22; åìó<br />

ïåðåäàþòñÿ âûøåïåðå÷èñëåííûå äàííûå è íàø «ïîòåíöèàëüíûé»<br />

PIN. Ìû íàõîäèì ïðåäïîëàãàåìîå çíà÷åíèå K init , ýòî âûãëÿäèò<br />

ïðèìåðíî òàê:<br />

K init = E22[IN_RAND, BD_ADDR(B), PIN'] //PIN' — ïðåäïîëàãàåìûé<br />

íàìè ïèí-êîä<br />

Èäåì äàëüøå, ñìîòðè íà òàáëèöó âûøå: ñîîáùåíèÿ 2 è 3 ïîêñîðåíû<br />

K init 'îì, êîòîðûé ìû òîëüêî ÷òî ñãåíåðèðîâàëè. Çíà÷èò, ñåé-<br />

÷àñ ìû ïîëó÷èì LK_RAND(A) è LK_RAND(B) â ÷èñòîì âèäå.<br />

Ñîáñòâåííî ãîâîðÿ, íàì íèêòî íå ìåøàåò âûñ÷èòàòü ãèïîòåòè÷åñêîå<br />

çíà÷åíèå K ab . Ïðîäåëûâàåì ñëåäóþùóþ îïåðàöèþ:<br />

LK_K(A) = E21[BD_ADDR(A), LK_RAND(A)] //LK_K(A|B) —<br />

ýòî ïðîìåæóòî÷íûå âåëè÷èíû<br />

LK_K(B) = E21[BD_ADDR(B), LK_RAND(B)] // XOR'èì èõ ìåæäó<br />

ñîáîé è ïîëó÷àåì êëþ÷ ñâÿçè<br />

K ab = LK_K(A) XOR LK_K(B)<br />

Òåïåðü ñàìîå âðåìÿ ïðîâåðèòü íàø «ïîòåíöèàëüíûé» ïèí. ×òîáû<br />

óçíàòü, äåéñòâèòåëüíî ëè îí íàñòîÿùèé, ìû áåðåì ñâåæåèñïå÷åííûé<br />

Kab è ïåðåõâà÷åííûé AU_RAND(A) è âû÷èñëÿåì çíà÷åíèå<br />

SRES(A). Ïîñëå ýòîãî ñðàâíèâàåì ïîëó÷åííûé ðåçóëüòàò ñ<br />

SRES(A)', êîòîðûé õðàíèòñÿ â ñîîáùåíèè íîìåð 5:<br />

SRES(A) = E1[AU_RAND(A), K ab , BD_ADDR(B)]<br />

Åñëè SRES(A) == SRES(A)' — ìû óñïåøíî óãàäàëè ïèí! Åñëè æå âûøåë<br />

îáëîì, òî íà÷èíàåì ïðîèçâîäèòü âñþ ïîñëåäîâàòåëüíîñòü<br />

äåéñòâèé çàíîâî, òîëüêî òåïåðü áåðåì äðóãîé PIN'. Âîò òàêàÿ âîò<br />

õèòðàÿ ìåòîäèêà ïîëó÷èëàñü. Âñå âûøåîïèñàííîå, â ïðèíöèïå, íå<br />

íîâîñòü. Ïåðâûì ÷åëîâåêîì, êîòîðûé çàìåòèë<br />

ýòó áðåøü, åñëè åå ìîæíî òàê íàçâàòü,<br />

áûë àíãëè÷àíèí Îëëè Âàéòõàóç (Ollie<br />

Whitehouse) åùå â àïðåëå 2004 ãîäà. Èìåííî<br />

îí äîãàäàëñÿ ïåðåõâàòèòü ñîîáùåíèÿ<br />

âî âðåìÿ ïàðèíãà è ïîïûòàòüñÿ âû÷èñëèòü<br />

PIN ìåòîäîì ïåðåáîðà ñ ïîìîùüþ ïîëó-<br />

÷åííîé èäåíòèôèêàöèîííîé èíôîðìàöèè.<br />

Òåì íå ìåíåå ìåòîä, ïðåäñòàâëåííûé<br />

Âàéòõàóçîì, èìåë îäèí äîñòàòî÷íî âåñîìûé<br />

èçúÿí: àòàêó ìîæíî áûëî ïðîâåñòè<br />

òîëüêî â òîì ñëó÷àå, åñëè õàêåð ñìîã âûëîâèòü<br />

âñå àóòåíòèôèêàöèîííûå äàííûå. Òî<br />

åñòü, åñëè âçëîìùèê íàõîäèëñÿ âíå ýôèðà<br />

âî âðåìÿ íà÷àëà ïàðèíãà, òî îí ïðîëåòàåò<br />

êàê ôàíåðà íàä Ïàðèæåì — ïåðâûå ïàêåòû<br />

ñ äàííûìè óæå îòïðàâëåíû è îòëîâèòü<br />

èõ íå ïðåäñòàâëÿåòñÿ âîçìîæíûì.<br />

Ó íåêîòîðûõ óñòðîéñòâ, íàïðèìåð BT-ãàðíèòóð, áûâàåò æåñòêî<br />

ïðîïèñàí ôèêñèðîâàííûé PIN — îáû÷íî ñòðîêà «0000».<br />

ñêîðîñòè. Íàøè èçðàèëüñêèå äðóçüÿ ñîâåðøèëè íàñòîÿùèé<br />

ïðîðûâ, íàéäÿ íåñêîëüêî ñïîñîáîâ ñîêðàòèòü â ðàçû âðåìÿ ïåðåáîðà<br />

PIN-êîäà. Ïîäðîáíî îïèñûâàòü ïðåäëîæåííûå èìè<br />

óëó÷øåíèÿ ó ìåíÿ íåò âîçìîæíîñòè, ïîÿñíþ ëèøü, ÷òî ðå÷ü<br />

èäåò îá àäàïòàöèè áàçîâûõ àëãîðèòìîâ BT-ñòåêà, ÷òî è ïîçâîëèëî<br />

óìåíüøèòü âðåìÿ, íåîáõîäèìîå äëÿ âçëîìà PIN-êîäà.<br />

Íî ñòàðàÿ ïðîáëåìà íèêóäà íå äåëàñü: åñëè âçëîìùèê îïîçäàë<br />

è íå óñïåë çàõâàòèòü âñå ïàêåòû ñ ñàìîãî íà÷àëà «ñïàðèâàíèÿ»<br />

óñòðîéñòâ, òî ó íåãî íè÷åãî íå ïîëó÷èòñÿ. È ýòó ïðîáëåìó óäà÷ëèâûå<br />

èçðàèëüòÿíå áëàãîïîëó÷íî ðåøèëè.<br />

RE-PAIRING ATTACK<br />

Íàøèì äðóçüÿì Âóëó è Øàêåäó óäàëîñü èñïðàâèòü íåäîñòàòîê òåõíîëîãèè<br />

âçëîìà, êîòîðóþ ïðåäëîæèë â ñâîå âðåìÿ Âàéòõàóç, è ðàçðàáîòàòü<br />

âòîðîé òèï àòàêè. Åñëè óñòðîéñòâà íà÷àëè ïðîöåññ îáìåíà<br />

àóòåíòèôèêàöèîííûìè äàííûìè, òî ìû óæå íå ìîæåì ïåðåõâàòèò<br />

âñå ñîîáùåíèÿ è ñîñòàâèòü àëãîðèòì ïåðåáîðà ïèíà, ïðàâèëüíî?<br />

Íàøè èçðàèëüñêèå äðóçüÿ ñìîãëè âðó÷íóþ «çàñòàâèòü» óñòðîéñòâà<br />

çàíîâî ïåðåèíèöèàëèçèðîâàòü âåñü ïðîöåññ ïàðèíãà.<br />

Ñìîòðè, êàê òîëüêî Kab-êëþ÷ ñîçäàí, êàæäàÿ BT-äåâàéñèíà ñîõðàíÿåò<br />

åãî äëÿ áóäóùåé ñâÿçè ñî ñîïðÿæåííûì óñòðîéñòâîì. Åñëè<br />

âäðóã â äàëüíåéøåì îäíî èç óñòðîéñòâ çàõî÷åò ñâÿçàòüñÿ ñ ñîñåäíèì,<br />

òî èì íå ïðèäåòñÿ çàíîâî ïðîõîäèòü ïðîöåññ ïàðèíãà. Âòîðàÿ<br />

àòàêà, íàçâàííàÿ Re-Pairing attack (ïåðåâîäèòñÿ, êàê àòàêà íà ïåðåñîïðÿæåíèå),<br />

ýêñïëóàòèðóåò ïðîòîêîë óñòàíîâëåíèÿ ñâÿçè è çàñòàâëÿåò<br />

ñîïðÿæåííûå óñòðîéñòâà íà÷àòü âåñü ïðîöåññ ïàðèíãà çàíîâî<br />

— îòñþäà è íàçâàíèå. Ýòî ïîçâîëÿåò âçëîìùèêó ïåðåõâàòèòü<br />

âñå íåîáõîäèìûå ñîîáùåíèÿ â ýôèðå è ïðîèçâåñòè îñíîâíóþ àòàêó,<br />

ïðèíöèïû êîòîðîé ÿ óæå îïèñàë ÷óòü âûøå.<br />

Èçó÷èì ýòîò âîïðîñ íåìíîãî äåëèêàòíåå. Äëÿ íà÷àëà ïðåäñòàâèì,<br />

÷òî äâà óñòðîéñòâà óñïåëè ñâÿçàòüñÿ, ñîõðàíèòü êëþ÷ ñâÿçè Kab<br />

è óæå ïåðåøëè ê ñòàäèè Mutual authentication. Äàëåå íàäî çàñòàâèòü<br />

æåëåçÿ÷êè çàíîâî «ñïàðèòüñÿ».  îáùåé ñëîæíîñòè îïèñàíî<br />

òðè ìåòîäà àòàêè íà ïåðåñîïðÿæåíèå,<br />

ïðè÷åì êàæäàÿ èç íèõ çàâèñèò<br />

îò êà÷åñòâà ðåàëèçàöèè Bluetoothÿäðà<br />

â êîíêðåòíîì àïàðàòå. Âîò ýòè<br />

ìåòîäû â ïîðÿäêå ýôôåêòèâíîñòè:<br />

BT-óñòðîéñòâà îáìåíèâàþòñÿ<br />

LK_RAND-÷èñëàìè, çàùèùåííûìè<br />

Kinint'îì. Âïîñëåäñòâèè áóäåò<br />

ñîçäàí Kab-key ïî àëãîðèòìó E21<br />

ÊÒÎ ÁÛÑÒÐÅÉ<br />

Ïîíÿòíî, ÷òî êîíêðåòíûå ðåàëèçàöèè<br />

îïèñàííîãî âûøå ïðîöåññà ìîãóò ðàáîòàòü<br />

ñ ðàçëè÷íîé ñêîðîñòüþ. Ìîæíî îïòèìèçèðîâàòü<br />

ýòè ïðîãðàììû, èñïîëüçóÿ<br />

ñïåöèàëüíûå íàñòðîéêè êîìïèëÿòîðà,<br />

ìîæíî ïåðåïèñûâàòü ïî-ðàçíîìó<br />

öèêëû, óñëîâèÿ è àðèôìåòè÷åñêèå îïåðàöèè,<br />

æåëàÿ äîáèòüñÿ ìàêñèìàëüíîé<br />

XÀÊÅÐ 01 /85/ 06 071

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!