ïýòðрь - Xakep Online
ïýòðрь - Xakep Online
ïýòðрь - Xakep Online
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