Âòîðîé ðàç ïîâòîðÿþ: ÿ ÷åëîâåê! |
Ìûñëà Âëàäèñëàâ // DgtlScrm // digitalscream@real.xakep.ru
Ñ êàæäûì äíåì ðàñòåò àêòèâíîñòü ïîëüçîâàòåëåé Èíòåðíåò. Ê ñåòåâîé îáùåñòâåííîñòè ïðèñîåäèíÿþòñÿ óæå äîìîõîçÿéêè â ïîèñêàõ ðåöåïòîâ, êóðîðòîâ è íîâûõ òå÷åíèé â ìîäå, äåòè, ñêà÷èâàþùèå êîìïüþòåðíûå èãðû, è ìíîãèå äðóãèå ñëîè íàñåëåíèÿ. Íî ëþäè íå åäèíñòâåííûå åãî îáèòàòåëè è âñå ÷àùå ìîæíî óñëûøàòü î, òàê íàçûâàåìûõ, èíòåðíåò-ðîáîòàõ…
1. Êðàòêèé îáçîð
Èíòåðíåò-ðîáîòû èëè êàê èõ ÷àùå íàçûâàþò áîòû, ýòî ïðîãðàììû ñîçäàííûå äëÿ àâòîìàòèçèðîâàííîãî âûïîëíåíèÿ íåêîòîðûõ ôóíêöèé â ñåòè.  çàâèñèìîñòè îò èõ ïðåäíàçíà÷åíèÿ, öåëü ðàáîòû òàêèõ ïðîãðàìì òîæå ðàçíàÿ. Íî îáúåäèíÿåò ðîáîòîâ îäíî – èçáàâèòü ÷åëîâåêà îò âûïîëíåíèÿ îäíîîáðàçíîé ðóòèííîé ðàáîòû. Êàçàëîñü áû, â ýòîì íåò íè÷åãî çàçîðíîãî. Áèçíåñìåí, ïîëó÷àþùèé íà ýëåêòðîííóþ ïî÷òó ñàìûå ñâåæèå íîâîñòè ñ îãðîìíîãî êîëè÷åñòâà ñàéòîâ èëè ðîáîòû-ïîèñêîâèêè, íå äîëæíû ïðèíîñèòü âðåä ìèðîâîìó ñîîáùåñòâó. Íî ÷àñòî öåëü ôóíêöèîíèðîâàíèÿ òàêèõ ñèñòåì ñîâåðøåííî èíàÿ, êðîìå ýòîãî äàæå âûøå îïèñàííûå çàäà÷è ìîãóò ðàñöåíèâàòüñÿ íåãàòèâíî. Âåäü åñëè ÷åëîâåê ïîëó÷àåò ïîñëåäíèå ñâîäêè íîâîñòåé ñ ïîìîùüþ áîòà, îí òàê è íå óâèäèò ðåêëàìíîãî áàííåðà, çà ïîêàç êîòîðîãî âëàäåëüöû ñàéòà, âîçìîæíî, ïîëó÷àþò äåíüãè. Ðîáîò-ïîèñêîâèê, ïðè îïðåäåëåííûõ óñëîâèÿõ ìîæåò íàòêíóòüñÿ íà èíôîðìàöèþ, ïóáëè÷íûé äîñòóï ê êîòîðîé êðàéíå íåæåëàòåëåí (âñïîìíèòü õîòÿ áû “Google Hacking”). Íî ýòî âñå êðàéíîñòè. ×àùå âñåãî, àâòîìàòèçàöèÿ – óäåë ëþäåé ïðåñëåäóþùèõ äàëåêî íå ñàìûå áëàãèå öåëè.
Çà ïðèìåðàìè äàëåêî õîäèòü íå ñòîèò. Àêòèâíî ðàñòóùèé óðîâåíü ñïàìà, î÷åíü ñèëüíî çàâèñèò îò ðàáîòû òàêèõ ïðîãðàìì êàê ñáîðùèêè ïî÷òû (äëÿ ïîïîëíåíèÿ áàçû àäðåñîâ), àâòîìàòè÷åñêèõ ðåãèñòðàöèé ïî÷òîâûõ ÿùèêîâ (êîòîðûå ïîòîì èñïîëüçóþòñÿ äëÿ ðàññûëêè). Ðîáîòû ìîãóò èñïîëüçîâàòüñÿ äëÿ «çàìóñîðèâàíèÿ» ôîðóìîâ, ÷àòîâ, æèâûõ æóðíàëîâ; îíè ìîãóò çàíèìàòüñÿ ðàññûëêîé SMS ÷åðåç Web-èíòåðôåéñû, ïèñàòü ïèñüìà, ó÷àñòâîâàòü â ãîëîñîâàíèÿõ, ïîäáèðàòü ïàðîëè è ò.ä. Âñå ýòî ïðèâîäèò èëè ê çàòðóäíèòåëüíîñòè ïîëó÷åíèÿ èñêîìîé èíôîðìàöèè ïîëüçîâàòåëåì, èëè ê áîëåå ýôôåêòèâíîé ðàáîòå çëîóìûøëåííèêîâ. Òàêîå ïîëîæåíèå äåë çàñòàâèëî ëþäåé, çàíèìàþùèõñÿ êîìïüþòåðíîé áåçîïàñíîñòüþ, âïëîòíóþ çàäóìàòüñÿ î ñïîñîáàõ ðåøåíèÿ ýòîé ïðîáëåìû, à õàêåðîâ, â ñâîþ î÷åðåäü, î ñïîñîáàõ èõ îáõîäà.
Èçîáðàæåíèå, ñîäåðæàùåå öèôðû èëè ñëîâà, è ïðîñüáà ââåñòè èõ ñ êëàâèàòóðû…. Áîëüøîå êîëè÷åñòâî ïîëüçîâàòåëåé íå ïîíèìàþò ïðåäíàçíà÷åíèÿ ýòîé ïðîöåäóðû, ìíîãèå ñîçäàòåëè áîòîâ íå çàäåðæèâàþòñÿ äîëãî íà òàêèõ ñàéòàõ, íî íåêîòîðûõ ýòî íå îñòàíàâëèâàåò. Äàííàÿ ñòàòüÿ íàïèñàíà äëÿ òîãî, ÷òîáû ðàçîáðàòüñÿ ñ ïîëîæåíèåì äåë íà ýòîì ôðîíòå. È ïîíÿòü, äåéñòâèòåëüíî ëè çàùèùàþò íàñ îò òàêîãî ðîäà ñèñòåì.
2. Êîìïüþòåð èëè ÷åëîâåê
Äëÿ îïðåäåëåíèÿ äåéñòâèòåëüíî ëè ïîñåòèòåëü ñàéòà ÿâëÿåòñÿ ÷åëîâåêîì èëè ýòî ïðîãðàììà, åìó ïðåäñòîèò ðåøèòü çàäà÷ó, ïðîñòóþ äëÿ ÷åëîâåêà, íî íå ðåøàåìóþ (à òî÷íåå òÿæåëî ðåøàåìóþ) äëÿ êîìïüþòåðà. Òàêîãî ðîäà çàäà÷è íàçûâàþòñÿ CAPTCHA.
CAPTCHA – ýòî àêðîíèì, îò âûðàæåíèÿ “Computer Aided Public Turing test to tell Computers and Humans Apart”. Ñîáñòâåííî ãîâîðÿ, ýòî Òåñò Òüþðèíãà äëÿ ðàçëè÷åíèÿ ÷åëîâåêà îò ïðîãðàììû. Èíîãäà CAPTCHA íàçûâàþò îáðàòíûì òåñòîì Òüþðèíãà (Áîëå ïîäðîáíóþ ôîðìóëèðîâêó ýòîãî ïîíÿòèÿ ìîæíî íàéòè íà Wikipedia).
Ïîíÿòèå Òåñòà Òüþðèíãà áûëî ââåäåíî Àëàíîì Ì. Òüþðèíãîì (1912-1954 ãã.) â åãî ðàáîòå “èãðà èìèòàöèè”. Çàäà÷à òàêîãî òåñòà îïðåäåëèòü îáëàäàåò êîìïüþòåðíàÿ ïðîãðàììà èíòåëëåêòîì, èëè òî÷íåå ìîæåò ëè îíà âûäàâàòü ñåáÿ çà ÷åëîâåêà. Êðèòåðèé Òüþðèíãà îïèñàí â âèäå èãðû “Èìèòàöèÿ”. Ñóòü èãðû çàêëþ÷àåòñÿ â òîì, ÷òî áåðåòñÿ îäèí ìóæ÷èíà, îäíà æåíùèíà è ïðîãðàììà. Ïîñëåäíÿÿ, â ñâîþ î÷åðåäü, íå èìåÿ èíôîðìàöèè, î ïîëå äâóõ îñòàëüíûõ ó÷àñòíèêîâ, çàäàåò èì âîïðîñû. Öåëü ïðîãðàììû – îïðåäåëèòü ïîë ëþäåé. Íåñìîòðÿ íà êðèòèêó ýòîé òåîðèè, îíà âíåñëà áîëüøîé âêëàä â ðàçâèòèå ñèñòåì èñêóññòâåííîãî èíòåëëåêòà è ôèëîñîôèè, à â íàøå âðåìÿ åùå íàøëà ïðèìåíåíèå â áîðüáå ñ àâòîìàòèçèðîâàííûì ïðîãðàììíûì îáåñïå÷åíèåì.
Íà ñåãîäíÿøíèé ìîìåíò CAPTCHA ìîæíî âñòðåòèòü ïðàêòè÷åñêè âåçäå: ïðè ðåãèñòðàöèè, àâòîðèçàöèè, îòïðàâêå ñîîáùåíèé, çàïðîñå êàêîé-ëèáî èíôîðìàöèè è ò.ä. Âåçäå ãäå ìîæåò áûòü âûãîäíîé àâòîìàòèçàöèÿ, â òîì ÷èñëå è íàíåñåíèå óùåðáà âëàäåëüöàì Èíòåðíåò ñåðâèñîâ èëè èõ êëèåíòàì.

Ðèñ. 1. Äëÿ ïîëó÷åíèÿ ïàñïîðòà Microsoft .NET,
òàêæå òðåáóåòñÿ ïðîéòè CAPTCHA òåñò.
CAPTCHA ìîæåò áûòü ðåàëèçîâàíà ðàçëè÷íûìè ñïîñîáàìè. Èíîãäà òðåáóåòñÿ ââåñòè íå îäíî ñëîâî, à íåñêîëüêî. Âñòðå÷àþòñÿ òàêæå çàäàíèÿ, ãäå íàäî íàéòè îáùèé ýëåìåíò, ïðèñóòñòâóþùèé íà 4-õ èçîáðàæåíèÿõ èëè ñêàçàòü î ñîäåðæèìîì èñêàæåííîãî ðèñóíêà. Äëÿ ëþäåé ñ ïëîõèì çðåíèåì ñóùåñòâóþò çâóêîâûå òåñòû èëè çàäà÷è, òðåáóþùèå ëîãè÷åñêîãî ìûøëåíèÿ.

Ðèñ. 2. CAPTCHA òåñòû áûâàþò ðàçíûìè è íîñÿò ðàçíûå íàçâàíèÿ
èõ îáúåäèíÿåò òîëüêî îáùàÿ öåëü.
3. Âîïðîñ áåçîïàñíîñòè
Èíòåðåñíî, ÷òî “CAPTCHA Project”, áóäó÷è ïèîíåðîì, â äàííîé îáëàñòè, äàëè íàçâàíèå òå÷åíèþ, ïåðâîíà÷àëüíàÿ öåëü êîòîðîãî îñòàíîâèòü ñïàì. Òàê è ôèðìà “Spam”, ïåðâîé íà÷àëà ïðàêòèêó ìàññîâîé ðàññûëêè è òîæå ñî âðåìåíåì îïðåäåëèëà íàçâàíèå äëÿ “íå æåëàåìîé êîððåñïîíäåíöèè ðåêëàìíîãî õàðàêòåðà” (õîòÿ âîîáùå òî, òåñò ïîëó÷èë íàçâàíèå â 2000 ãîäó áëàãîäàðÿ óíèâåðñèòåòó Carnegie Mellon è êîìïàíèè IBM, íî èìåííî ýòîò ïðîåêò áûë ñàìûì ïåðâûì). Íà äàííûé ìîìåíò óæå ñóùåñòâóåò áîëüøîé âûáîð ñðåäè ïðîèçâîäèòåëåé CAPTCHA. Ýòèì çàíèìàþòñÿ, êàê è ãèãàíòû íà ðûíêå ïðîãðàììíîãî îáåñïå÷åíèÿ, òàê è îòäåëüíûå ïðîãðàììèñòû. Ñîîòâåòñòâåííî, îò êâàëèôèêàöèè ïðîèçâîäèòåëÿ íàïðÿìóþ çàâèñèò, íàñêîëüêî ëåãêî ìîæíî îáîéòè òåñò.  äîïîëíåíèå, CAPTCHA òðåáóåò ïðàâèëüíîãî âíåäðåíèÿ. ×àñòî î÷åíü õîðîøåãî êà÷åñòâà òåñò, îêàçûâàåòñÿ, ëåãêî îáîéòè èç-çà òîãî, ÷òî îí èñïîëüçóåòñÿ áåç ñîáëþäåíèÿ ïîëèòèêè áåçîïàñíîñòè.
Ñïîñîáîâ îáîéòè èëè ïðîéòè òåñò äîñòàòî÷íî ìíîãî. Áîëåå òîãî, íà ìîåé ïðàêòèêå áîëüøå ñëó÷àåâ, êîãäà îí îêàçûâàåòñÿ áåññèëåí ïðîòèâ àâòîìàòèçèðîâàííûõ ïðîãðàìì. Íî îáî âñåì ïî ïîðÿäêó. Íà÷íåì íàø îáçîð ñ íàèìåíåå âåðîÿòíûõ òåõíèê è çàêîí÷èì ñàìûìè ýôôåêòèâíûìè èç íèõ.  òîæå âðåìÿ, îò ïðîñòûõ â ðåàëèçàöèè, äî ñëîæíûõ.
3.1. Óÿçâèìîñòè ïðîãðàììíîãî îáåñïå÷åíèÿ
Òàê âñåãäà, åñëè åñòü ïðèëîæåíèå, íàâåðíÿêà íàéäåòñÿ ïàðà-òðîéêà óÿçâèìîñòåé. Íåò, î ïåðåïîëíåíèè áóôåðà ïðè ïðîõîæäåíèè òåñòà ìû ãîâîðèòü íå áóäåì. Õîòÿ âîçìîæíî è òàêèå ñëó÷àè âñòðå÷àþòñÿ. Íà÷íåì, ïîæàëóé, ñ ïîäáîðà êîíòðîëüíîé èíôîðìàöèè.
3.1.1. Ïåðåáîð âàðèàíòîâ è ïðåäóãàäûâàíèå ðåçóëüòàòîâ
Ïðåäóãàäûâàíèå ðåçóëüòàòîâ ïðåäïîëàãàåò, ÷òî íàì èçâåñòíî, êàêàÿ èíôîðìàöèÿ íàïðÿìóþ âëèÿåò íà ãåíåðàöèþ CAPTCHA. Ïîëó÷èòü åå ìîæíî â äâóõ ñëó÷àÿõ: óÿçâèìûé ïðîåêò ïðåäîñòàâëÿåòñÿ â îòêðûòîì èñõîäíîì êîäå èëè îíà áûëà ïîëó÷åíà ñ ïîìîùüþ ýâðèñòè÷åñêîãî àíàëèçà (îïðåäåëåííîå êîëè÷åñòâî òåñòîâ, ñî âñåìè âûòåêàþùèìè). Òàêîé èíôîðìàöèåé ìîæåò áûòü íàø IP àäðåñ, âðåìÿ è çíàíèÿ îá èñïîëüçóåìîì ãåíåðàòîðå ñëó÷àéíûõ ÷èñåë. Ïîñëåäíåå, íå äîëæíî îñîáî âàñ ñìóùàòü, èáî äëÿ ïðåäñêàçûâàíèÿ ïñåâäîñëó÷àéíûõ ÷èñåë ñóùåñòâóåò îãðîìíîå êîëè÷åñòâî ïðîãðàìì (Áîëå äåòàëüíî ïðî ýòó òåìó âû ìîæåòå ïðî÷èòàòü â ðàáîòå “Ñòàðûé âçãëÿä íà íîâûå âåùè”). Âàøà çàäà÷à, â êîíöå êîíöîâ, ñâîäèòñÿ ê ïîèñêàì ôîðìóëû, ïî êîòîðîé ñîçäàåòñÿ òåñò. Íî îñòàâèì ýòîò ñïîñîá äëÿ ëþäåé, äîëæíûì îáðàçîì âëàäåþùèõ ìàòåìàòè÷åñêèì àíàëèçîì, è ïåðåéäåì ê ïåðåáîðó.
Ïåðåáîð âîçìîæíûõ âàðèàíòîâ îòâåòà, â ïðèíöèïå, ðàáîòîñïîñîáíûé ïðèåì. Ïîëíûì ïåðåáîðîì ìîæíî âîñïîëüçîâàòüñÿ, åñëè ÏÎ íà ñåðâåðå, íåãðàìîòíî ðàáîòàåò ñ ñåññèåé. Ïðèìåðîì ìîæåò ñëóæèòü äâèæîê vBulletin. Íî î íåì ìû ïîãîâîðèì íåìíîæêî ïîçæå, à ïîêà òîëüêî îïðåäåëèì êàêèå óñëîâèÿ, ÿâëÿþòñÿ íåîáõîäèìûìè äëÿ ïîäáîðà. Èõ âñåãî äâà, áîëåå òîãî ýòî ñêîðåå çàâèñèìîñòü êîýôôèöèåíòîâ:
Åñëè ñåññèÿ ñóùåñòâóåò “îò ñàáìèòà äî ñàáìèòà”, ïåðåáîð íåâîçìîæåí.  òîæå âðåìÿ, êîãäà òåñò òðåáóåò ââåñòè 10 ñèìâîëîâ, ñðåäè êîòîðûõ áóêâû, öèôðû è ðàçíûå äðóãèå ñèìâîëû, âåðîÿòíîñòü óñïåõà ðåçêî ñòðåìèòñÿ ê íóëþ. Ïðàêòè÷åñêè âñåãäà, èñïîëüçîâàíèå ïåðåáîðà, òðåáóåò ìàíèïóëÿöèè ñåññèîííîé èíôîðìàöèåé. Ïîñêîëüêó, íàïèñàíèå ïåðåáîðùèêà âûõîäèò çà ðàìêè ýòîé ñòàòüè, à ìàíèïóëèðîâàíèå ñåññèé ÷àùå âñåãî äàåò è äðóãèå ðåçóëüòàòû, ìîæíî íå ðàññìàòðèâàòü ïåðåáîð áîëåå äåòàëüíî. Ñòîèò óïîìÿíóòü, ÷òî äëÿ íåêîòîðûõ òåñòîâ ïîäõîäèò ïåðåáîð ïî ñëîâàðþ, à ýòî áîëåå ýôôåêòèâíî ïî ñðàâíåíèþ ñ ïîëíûì ïåðåáîðîì.
3.1.2. Èñïîëüçîâàíèå íåñóùåñòâóþùèõ ñåññèé
Ñåññèè – êîðåíü çëà. Ýòî óòâåðæäåíèå, ÷àùå äðóãèõ îêàçûâàåòñÿ èñòèííûì. Ïîñêîëüêó öåëü ñòàòüè ïîêàçàòü ïðîñòîòó ðåøåíèé, ÿ áóäó ñòàðàòüñÿ âåçäå, ãäå ýòî òîëüêî âîçìîæíî, ïðèâîäèòü ïðèìåðû. Íà ýòîò ðàç ïîä ïðèöåë ïîïàë ñàéò www.umc.ua. Ýòî ñòðàíè÷êà Óêðàèíñêîãî ìîáèëüíîãî îïåðàòîðà UMC.

Ðèñ. 3. Äëÿ îòïðàâêè SMS ñîîáùåíèÿ èç Èíòåðíåò, ïîëüçîâàòåëþ
ïðèäåòñÿ äîêàçàòü ÷òî îí ÷åëîâåê à íå ïðîãðàììà
Íà ýòîì ñàéòå åñòü èíòåðôåéñ äëÿ îòïðàâêè SMS ñîîáùåíèé. Êàê è áîëüøèíñòâî îïåðàöèé òàêîãî ðîäà, îíà òðåáóåò ïðîéòè òåñò “âîïðîñ-îòâåò” (CAPTCHA). ×òîáû íà÷àòü àíàëèç è ýêñïëóàòèðîâàíèå äàííîãî ñåðâèñà, ñïåðâà, ñëåäóåò óáðàòü âñå íå íóæíîå èç HTML êîäà.

Ðèñ. 4. Óáðàâ âñå íå íóæíîå, âèäíî, ÷òî ðàáîòà CAPTCHA
îñíîâàíà íà PHP ñåññèè.
Âçãëÿíèòå íà ñòðîêè 3 è 6. Ëåãêî óâèäåòü, ÷òî ôîðìà ñîäåðæèò ñêðûòîå ïîëå ñ èäåíòèôèêàòîðîì ñåññèè (ñòðîêà 3) è èçîáðàæåíèå, ñãåíåðèðîâàííîå ñïåöèàëüíî äëÿ ýòîé ñåññèè (ñòðîêà 6).  ïðèíöèïå, ñàìà ïî ñåáå, òàêàÿ êîíñòðóêöèÿ, íå ïðåäñòàâëÿåò íèêàêîé îïàñíîñòè. Íî ýòî òîëüêî íà ïåðâûé âçãëÿä, åå èíòåðåñíûå îñîáåííîñòè ìîãóò ïðîÿâèòüñÿ ïîñëå îïðåäåëåííûõ òåñòîâ.  äàííîì ñëó÷àå, åñëè â êà÷åñòâå èäåíòèôèêàòîðà ñåññèè (PHPSESSID) óêàçàòü âñå íóëè, à ïîëå äëÿ îòâåòà íà CAPTCHA îñòàâèòü ïóñòûì, ñîîáùåíèå âñå ðàâíî ïîñûëàåòñÿ óñïåøíî.  ÷åì äåëî? Òàêîå ìîãëî ïðîèçîéòè òîëüêî òîãäà, êîãäà ïðè âûáîðêå äàííûõ èç SQL, íå ïðîâåðÿåòñÿ êîëè÷åñòâî ïîëó÷åííûõ ðåçóëüòàòîâ (ôóíêöèÿ mysql_num_rows). Ïîýòîìó, ôðàãìåíò ïðîãðàììû îòïðàâêè ñîîáùåíèé ìîæåò âûãëÿäåòü êàê íà ðèñ.5.

Ðèñ. 5. Ïñåâäîêîä äëÿ ïðîâåðêè CAPTCHA
Ëîãèêà ýêñïëóàòèðîâàíèÿ äîñòàòî÷íî ïðîñòà. Âñå çíà÷åíèÿ PHPSESSID â HTML ôîðìå - çàíóëÿþòñÿ. Ïîñëå ÷åãî, ñãåíåðèðîâàííîå ñåðâåðîì èçîáðàæåíèå, îêàæåòñÿ ïóñòûì! Íå äîëãî äóìàÿ, ïîëå âîçëå ðèñóíêà (òóäà, ïî èäåå, ñëåäóåò ââåñòè öèôðû), îñòàâëÿåì ïóñòûì. È âîò ÷òî ïðîèñõîäèò ïîñëå îòïðàâêè ôîðìû:
Íåõâàòêà îäíîé ñòðîêè â ïðîãðàììå, ñâîäèò íà íåò âñå îñòàëüíûå ìåðû áåçîïàñíîñòè. Åñëè áû ïðîãðàììèñò ïðîâåðèë ïîëó÷åííûé ðåçóëüòàò èç áàçû èëè õîòÿ áû îòâåðãàë ôîðìû ñ ïóñòûì çíà÷åíèåì CAPTCHA-îòâåòà, òàêàÿ àòàêà îêàçàëàñü áû íåâîçìîæíîé. Êñòàòè, äàæå ìíîãèå èç Web-äâèæêîâ ñðåäíåãî óðîâíÿ, ñîäåðæàò ïîõîæèå íåäîðàáîòêè.
3.1.3. Ïîâòîðíîå èñïîëüçîâàíèå ñåññèé
Âû åùå íå çàáûëè, ÷òî áîëüøèíñòâî îøèáîê âîçíèêàþò èìåííî ïðè îáðàáîòêå ñåññèé. ß áóäó ïîâòîðÿòü ýòî ñíîâà è ñíîâà, ÷òîáû íàäîëãî çàêðåïèòü â âàøåì ñîçíàíèè. Âîò åùå îäèí äîâîä: ñåññèè ñóùåñòâóþò íà îïðåäåëåííîì èíòåðâàëå âðåìåíè. Âåðíåìñÿ ê ðàçáîðó vBulletin. Íà íåãî ÿ íàòêíóëñÿ, êîãäà àâòîìàòèçèðîâàë ãîëîñîâàíèå ñàéòà www.DogsOnAcid.com, ïîñâÿùåííîãî D’n’B íàïðàâëåíèþ â ìóçûêå.

Ðèñ. 6. DogsOnAcid îäèí èç ìíîæåñòâà ñàéòîâ, êîòîðûå èñïîëüçóþò vBulletin
Ïîïóëÿðíîñòü ñèñòåìû íå âñåãäà ÿâëÿåòñÿ ïðèçíàêîì åå íàäåæíîñòè. vBulletin – òîìó äîêàçàòåëüñòâî. Äëÿ ðåãèñòðàöèè â ñèñòåìå âàì îïÿòü-òàêè ïðèäåòñÿ ïðîéòè òåñò “âîïðîñ-îòâåò”. Âçãëÿíåì, ÷òî íà ýòîò ðàç íàì ïðåäñòîèò îáîéòè.

Ðèñ. 7. Òàê â ÷èñòîì âèäå âûãëÿäèò CAPTCHA îò vBulletin
Ñèòóàöèÿ äîëæíà íåìíîãî óñëîæíèòüñÿ, ïîñêîëüêó êðîìå ñåññèè ïîëüçîâàòåëÿ (ïîëå s, ñòðîêà 7), ââåäåíà åùå ñåññèÿ äëÿ èçîáðàæåíèÿ (ïîëå imagehash, ñòðîêà 25). Êðîìå âñåãî ýòîãî, èçîáðàæåíèå âûäàåòñÿ ñåðâåðîì ïî îáîèì âõîäíûì ïàðàìåòðàì (ñåññèÿ è õåø). Ñêàæó âàì, ÷åñòíî, â èñõîäíûé êîä ÿ íå ñìîòðåë. Íî çàìåòèë, êîå-÷òî èìåííî â HTML ñòðàíèöå è Cookie. Ñ íà÷àëà î Cookie, èõ íàäî èãíîðèðîâàòü âîîáùå. Åñëè áîò ðàáîòàåò â Internet Explorer èëè êàêîì òî äðóãîì áðàóçåðå, âûêëþ÷èòå èõ. Åñëè ýòî ïðèëîæåíèå, òî îòñûëàÿ çàïðîñ ê ñåðâåðó, îñòàâüòå èõ çíà÷åíèå ïóñòûì. Òàêîå òðåáîâàíèå íåîáõîäèìî, ïîñêîëüêó ïîñëå ðåãèñòðàöèè â íèõ áóäåò ñîäåðæàòüñÿ èíôîðìàöèÿ î òîì, ÷òî âû óñïåøíî çàðåãèñòðèðîâàíû, êðîìå òîãî, íåñîîòâåòñòâèå ñåññèè â Cookie è HTML ôîðìå, ìîæåò íàñòîðàæèâàòü àòàêóåìûå ñåðâèñû.
Òåïåðü ñàìîå èíòåðåñíîå, ïîñëå óñïåøíîé èëè íåóñïåøíîé ðåãèñòðàöèè, âàì ñîçäàåòñÿ íîâàÿ ñåññèÿ. Íî, òåì íå ìåíåå, ñòàðàÿ íåêîòîðîå âðåìÿ åùå ëåæèò â áàçå è ìîæåò áûòü ïîâòîðíî èñïîëüçîâàíà. Ñåññèÿ ïîëüçîâàòåëÿ, íå äîëæíà âûçûâàòü ó âàñ îñîáîãî èíòåðåñà, ïîñêîëüêó ìîæíî âîñïîëüçîâàòüñÿ è íîâîé. Äðóãîå äåëî õåø èçîáðàæåíèÿ. Îòâåòèâ îäèí ðàç ïðàâèëüíî íà CAPTCHA, èñïîëüçóÿ ñòàðûé õåø, âû ìîæåòå äàòü òîò æå ñàìûé îòâåò, è îí áóäåò çàñ÷èòàí. Ïîýòîìó, ïðåäñòàâèì ñåáå ñèòóàöèþ, êîãäà âû îäèí ðàç ãîâîðèòå áîòó ïðàâèëüíûé îòâåò, à îí â ñâîþ î÷åðåäü, çà ïðåäîñòàâëåííîå åìó âðåìÿ ðåãèñòðèðóåò ïàðó ñîòåí ïîëüçîâàòåëåé. Èëè â äðóãèõ ñèñòåìàõ, èìåþùèõ òàêóþ æå îøèáêó, ïèøåò êîììåíòàðèè, ïîäáèðàåò ïàðîëè, äåëàåò ïîêóïêè è ò.ä.
Õîðîøî, åñëè âû âñåãäà ðÿäîì è ìîæåòå åìó ïîäñêàçàòü îòâåò, â òî âðåìÿ, êîãäà ñòàðàÿ ñåññèÿ óæå íåïðèãîäíà. ×òî æå äåëàòü â ñëó÷àå, åñëè îò íåãî òðåáóåòñÿ ïîëíîñòüþ àâòîíîìíàÿ ðàáîòà. Òóò óæå äåëî çà âàìè, âû ìîæåòå íàïèñàòü åãî òàê, ÷òîáû îí ñàìîñòîÿòåëüíî, ñ ïîìîùüþ ïîëíîãî ïåðåáîðà, ïîëó÷àë ïðàâèëüíûé îòâåò, è äàëüøå ïîâòîðíî èì ïîëüçîâàëñÿ. Åñëè âû íå äàëåêè îò ïðîãðàììèðîâàíèÿ, ó âàñ åñòü âñå øàíñû íàïèñàòü îòíîñèòåëüíî ïðîñòåíüêèé ðàñïîçíàâàòåëü îáðàçîâ. Ïóñêàé îí áóäåò ðàáîòàòü íå ñàìûì áûñòðûì îáðàçîì, çàòî îò íåãî òðåáóåòñÿ ðàñïîçíàòü òåêñò â òå÷åíèè íåñêîëüêèõ ìèíóò, à ïîýòîìó ñêîðîñòü ðàáîòû íå êðèòè÷íà. Äàëüøå ðåçóëüòàò ðàñïîçíàâàíèÿ ñòàâèòñÿ íà êîíâåéåð. Íî î ðàñïîçíàâàíèè ìû ïîãîâîðèì ïîïîçæå.
Áûâàþò è äðóãèå ñëó÷àè, êîãäà â HTML êîäå âû íå âñòðåòèòå êàêîãî-ëèáî óïîìèíàíèÿ î ñåññèè. Íå ðàññòðàèâàéòåñü, îíà îáÿçàòåëüíî äîëæíà áûòü. Ñîâåòóþ òîãäà âçãëÿíóòü â ñîäåðæèìîå Cookie. Ê ïîâòîðíîìó èñïîëüçîâàíèþ ñåññèé íå ðàâíîäóøíû òàêèå ñèñòåìû êàê Gotcha, Code Project Captcha, humanVerify, è äðóãèå.  íèõ èíôîðìàöèÿ î ñåññèè õðàíèòñÿ èìåííî â Cookie. Êñòàòè â ýòèõ ñèñòåìàõ ïîäìåíÿòü íàäî èìåííî ñåññèþ ïîëüçîâàòåëÿ (â äàííîì ñëó÷àå ýòî PHPSESSID), ïîñêîëüêó õåø èçîáðàæåíèÿ òàì íàïðî÷ü îòñóòñòâóåò.
Ïðè÷èíà óñïåøíîé àòàêè, êàê è â ïðîøëûé ðàç áàíàëüíà, ñåññèÿ (ïîñëå îòïðàâêè ôîðìû) íå óäàëÿåòñÿ íà ñåðâåðå â òå÷åíèå äîñòàòî÷íî áîëüøîãî ïðîìåæóòêà âðåìåíè. Îäíà ñòðî÷êà, íå õâàòàåò âñåãî îäíîé ñòðîêè.
3.1.3. Ìàíèïóëèðîâàíèå çíà÷åíèåì VEWSTATE
Áóäüòå áäèòåëüíû, èìåÿ äåëî ñ ñåññèÿìè. Îñîáåííî êîãäà êòî-òî èõ ñîçäàë çà âàñ, è âû äàæå íå çàäóìûâàåòåñü î ïðèíöèïàõ èõ ðàáîòû. Ðå÷ü èäåò î ïðèëîæåíèÿõ íàïèñàííûõ íà ASP.NET. Ýëåãàíòíîñòü è ïðîñòîòà ïðîãðàììèðîâàíèÿ íà ýòîì ÿçûêå, ïðîÿâëÿþò ïîáî÷íûå ýôôåêòû ïðè èõ áîëåå äåòàëüíîì èçó÷åíèè. Äëÿ ïðèìåðà, âîçüìåì ñàéò, òðåáóþùèé ïðîõîæäåíèÿ òåñòà, ïðè êàæäîì âõîäå ïîëüçîâàòåëÿ â ñèñòåìó.

Ðèñ. 8. Ôîðìà àâòîðèçàöèè ïîëüçîâàòåëÿ ñîçäàííàÿ íà ASP.NET
Âñå äîëæíî áûòü ïðàâèëüíî. Êàê òîëüêî ïîëüçîâàòåëü ââîäèò ñâîè ëîãèí è ïàðîëü, à êî âñåìó è âåðíî îòâå÷àåò íà âîïðîñ, îí óñïåøíî ïîëó÷àåò ñâîþ ñåññèþ. Ïðîãðàììà âõîäà â ñèñòåìó âûãëÿäèò ñëåäóþùèì îáðàçîì:

Ðèñ. 9. ×àñòè÷íûé èñõîäíûé êîä àâòîðèçàöèè ïîëüçîâàòåëÿ íà ASP.NET
Íà ýòîé ñòðàíèöå èñïîëüçóåòñÿ CATPCHA îò ôèðìû Lanap. Ñîáëþäàÿ ñòàðóþ ïîñëåäîâàòåëüíîñòü äåéñòâèé, çàãëÿäûâàåì â èñõîäíûé êîä ñòðàíèöû:

Ðèñ. 10. ×àñòè÷íûé èñõîäíûé êîä àâòîðèçàöèè ïîëüçîâàòåëÿ â HTML
Ïîïûòêè ìàíèïóëÿöèè ñ èäåíòèôèêàòîðîì èçîáðàæåíèÿ íå óâåí÷àëèñü óñïåõîì. Íî, ïîñêîëüêó ýòî ïðèëîæåíèå íàïèñàíî íà ASP.NET, ó íàñ åñòü âîçìîæíîñòü çàíÿòüñÿ ýêñïåðèìåíòàìè, ìàíèïóëèðóÿ VEWSTATE.
Âîîáùå VEWSTATE ýòî òåìà îòäåëüíîé ñòàòüè. Äëÿ òåõ, êòî íå çíàêîì ñ åãî ïðåäíàçíà÷åíèåì ÿ êîðîòêî ïîÿñíþ íåêîòîðûå íþàíñû. Ýòî ïîëå ñêðûòîå, è ñäåëàíî îíî äëÿ îáåñïå÷åíèÿ óäîáíî-ïðîãðàììèðóåìîé ñèñòåìû êëèåíò-ñåðâåð. VEWSTATE, ñâîåãî ðîäà ñåññèÿ, íî îíà áåðåò íà ñåáÿ íàìíîãî áîëüøå îáÿçàííîñòåé. Ê íèì îòíîñèòüñÿ òàêæå è õðàíåíèå ïåðåìåííûõ. Îòêðîâåííî ãîâîðÿ, VEWSTATE ìîæåò áûòü ìîùíûì îðóäèåì äëÿ àòàê SQL Injection, XSS è ò.ä. Íî ñåé÷àñ ïîãîâîðèì òîëüêî îá åå âîçìîæíîñòè õðàíèòü çíà÷åíèÿ ïåðåìåííûõ.
Çíà÷èò, êîãäà âû ââåëè ñâîé ëîãèí è ïàðîëü, îíè ñ áîëüøîé âåðîÿòíîñòüþ ìîãóò ïîïàñòü â VEWSTATE.  íàøåì ñëó÷àå, óñïåøíûé âõîä ïîëüçîâàòåëÿ â ñèñòåìó, äîïîëíèòåëüíî êîíòðîëèðóåòñÿ ïåðåìåííîé Logged. Êàê âû óæå íàâåðíî äîãàäàëèñü, îíà òîæå õðàíèòñÿ â VEWSTATE. Íåò, ñëåäóþùèé ýòàï ýòî íå äåøèôðàöèÿ VEWSTATE, â äàííîì ñëó÷àå ýòî ëèøíåå. Ââîäèì ïðàâèëüíî ëîãèí, ïàðîëü è îòâåò íà òåñò.  ðåçóëüòàòå ìû ïðîéäåì àâòîðèçàöèþ. Äàëüøå, â HTML êîäå ñòðàíèöû íàõîäèì çíà÷åíèå VEWSTATE è êîïèðóåì åãî. Ñîçäàåì HTML ñòðàíèöó, ñ ôîðìîé àâòîðèçàöèè. Èç îðèãèíàëüíîé ôîðìû, ìîæíî óäàëèòü âñå êðîìå VEWSTATE è SUBMIT. Èíòåðåñíî, ÷òî íå òðåáóþòñÿ äàæå ïîëÿ ëîãèí è ïàðîëü. Êàê âû äóìàåòå, ïî÷åìó? Âñå î÷åíü ïðîñòî, èõ çíà÷åíèÿ õðàíèò VEWSTATE. Âû óñïåøíî àâòîðèçèðóåòåñü.
Ïðîáëåìà äàííîé ïðîãðàììû çàêëþ÷àåòñÿ â ñòðîêå 23, òàì êðîìå îòâåòà íà CAPTCHA òàêæå ïðîâåðÿåòñÿ âàø ñòàòóñ. Åñëè âû óæå âîøëè â ñèñòåìó, òî äàííûå íå ïðîâåðÿþòñÿ. À âû âîøëè, îá ýòîì ñâèäåòåëüñòâóåò çíà÷åíèå VEWSTATE, ïðèøåäøåå íà ñåðâåð. ß íå çàáûë íàïîìíèòü, ÷òî ýòî ïðîáëåìà ñåññèè?
3.2. Ðàñïîçíàâàíèå îáðàçîâ
 øèðîêèõ êðóãàõ ðàñïîçíàâàíèå îáðàçîâ ïî ïðàâó ñ÷èòàåòñÿ ñàìûì ýôôåêòèâíûì ñïîñîáîì äëÿ ðåøåíèÿ çàäà÷ èíòåðïðåòàöèè. Ýòî äåéñòâèòåëüíî òàê, âåäü âñå îñòàëüíûå ñïîñîáû î÷åíü ñïåöèôè÷íû, è äëÿ èõ ðåàëèçàöèè òðåáóþòñÿ äîïîëíèòåëüíûå çàòðàòû âðåìåíè. Ñ äðóãîé ñòîðîíû, âåðîÿòíîñòü îáíàðóæèòü óÿçâèìîñòü â àòàêóåìîì èíòåðôåéñå çàâèñèò îò êâàëèôèêàöèè ñîçäàòåëåé ÏÎ è çëîóìûøëåííèêà. ×àñòî ìîæåò áûòü òàê, ÷òî ïîïûòêè íàéòè óÿçâèìîñòü çàêàí÷èâàþòñÿ íåóäà÷åé. Ïîýòîìó â òàêèõ ñëó÷àÿõ, ðàñïîçíàâàíèå îáðàçîâ ìîæåò îêàçàòüñÿ î÷åíü ïðèâëåêàòåëüíûì ðåøåíèåì. Íî íå ñòîèò äóìàòü, ÷òî ðå÷ü èäåò èñêëþ÷èòåëüíî î ñèñòåìàõ èñêóññòâåííîãî èíòåëëåêòà, õîòÿ îíè èìåþò ìåñòî áûòü. Ñóùåñòâóåò åùå äâà ñïîñîáà, êîòîðûå âîøëè â ýòîò ðàçäåë.
3.2.1. Àëãîðèòìè÷åñêàÿ îáðàáîòêà èçîáðàæåíèé (òåñò íà èäåíòè÷íîñòü)
Äàííûé ñïîñîá ìîæåò ïðèìåíÿòüñÿ, äëÿ ðàñïîçíàâàíèÿ èçîáðàæåíèé ñ íèçêèì óðîâíåì øóìîâ èëè ñ èõ ïîëíûì îòñóòñòâèåì. Åãî ñóòü çàêëþ÷àåòñÿ â òîì, ÷òî äëÿ èäåíòèôèêàöèè ñèìâîëîâ äîñòàòî÷íî ñðàâíåíèé îòäåëüíûõ ôðàãìåíòîâ èçîáðàæåíèÿ. Äëÿ ïðèìåðà(îí êîñâåííî êàñàåòñÿ òåìû ñòàòüè, íî ïîìîæåò â äàëüíåéøåì åå ïîíèìàíèè), åñëè âû èñïîëüçóåòå íåçàðåãèñòðèðîâàííûé Total Commander (óòèëèòó ìîæíî çàãðóçèòü íà ñàéòå SoftKey.Ru), ïðè êàæäîì åãî çàïóñêå îò âàñ òðåáóåòñÿ íàæàòü íà îäíó èç òðåõ êíîïîê. Åå íîìåð çàäàåòñÿ ñëó÷àéíûì îáðàçîì è îòîáðàæàåòñÿ â ñòðîêå «Please press button Nr.? to start the program! » (ñì. ðèñ. 11).

Ðèñ. 11. Îêíî ïðè çàïóñêå íåçàðåãèñòðèðîâàííîé êîïèè Total Commander
Îêíî ïîÿâëÿåòñÿ â îäíèõ è òåõ æå êîîðäèíàòàõ, çíà÷èò è ïîçèöèÿ òåêñòà, ãëàñÿùåãî î íîìåðå êíîïêè, òîæå îñòàåòñÿ íåèçìåííîé. Ïîýòîìó, ñîõðàíèâ èçîáðàæåíèÿ âñåõ òðåõ âàðèàíòîâ äèàëîãîâîãî îêíà (äëÿ 1-é, 2-é è 3-é), âû ïîëó÷àåòå âîçìîæíîñòü, â ëþáîé ìîìåíò âðåìåíè, óçíàòü êàêîé íîìåð òðåáóåòñÿ ââåñòè. Âñå ÷òî äëÿ ýòîãî íåîáõîäèìî, ýòî îáû÷íàÿ ïðîâåðêà íà èäåíòè÷íîñòü, ïîäãîòîâëåííûõ èçîáðàæåíèé (ñêðèíøîòîâ) ñ ñîäåðæèìûì íà ýêðàíå. Äàëåå, îïðåäåëèâ íîìåð êíîïêè, ìîæíî ïðîãðàììíî ïîñëàòü íà íåå íàæàòèå ìûøêè, ïîñêîëüêó åå ïîçèöèÿ òîæå áóäåò ñòàòè÷íîé.
Ñèòóàöèÿ ìîæåò áûòü íåìíîãî óñëîæíåíà, â ñëó÷àå êîãäà òðåáóåòñÿ ðàñïîçíàòü òåêñò ðàçìåùåííûé íà òåêñòóðå èëè ñîñòîÿùèé èç íåìîíîøèðíûõ ñèìâîëîâ. Äëÿ ïðèìåðà, ìîæíî âçãëÿíóòü íà ñàéò www.privatmobile.com.ua. Ýòî ñàéò ìîáèëüíîãî îïåðàòîðà, êîòîðûé ïðåäîñòàâëÿåò ìíîæåñòâî óñëóã íàñòðàèâàåìûõ ÷åðåç Èíòåðíåò. Îäíà èç íèõ ýòî ñìåíà íîìåðà òåëåôîíà êëèåíòà. Êîãäà-òî, ïåðåäî ìíîé áûëà ïîñòàâëåíà çàäà÷à àâòîìàòèçàöèè ýòîãî ïðîöåññà. Äëÿ ïîäòâåðæäåíèÿ äàííîé îïåðàöèè, îò ïîëüçîâàòåëÿ òðåáóåòñÿ îòîñëàòü SMS ñîîáùåíèå ñ êîíòðîëüíûì òåêñòîì. Ïðîáëåìà çàêëþ÷àåòñÿ â òîì, ÷òî èçíà÷àëüíî îí îòîáðàæàåòñÿ â âèäå èçîáðàæåíèÿ, à íå êàê òåêñòîâàÿ èíôîðìàöèÿ (ñì. ðèñ. 12).

Ðèñ.12. Êîä ïîäòâåðæäåíèÿ íà ñàéòå Privat::Mobile
îòîáðàæàåòñÿ êàê ðèñóíîê
Êàê âèäíî èç ðèñóíêà, øóì â èçîáðàæåíèè îòñóòñòâóåò âîîáùå. Äëÿ óñïåøíîé èäåíòèôèêàöèè ãðàôè÷åñêîé èíôîðìàöèè íåîáõîäèìî âñåãî äâà ýòàïà (Ðèñ. 13):
1. èçáàâëåíèå îò ôîíà èçîáðàæåíèÿ, äëÿ ïîçèöèîííî íåçàâèñèìîé èäåíòèôèêàöèè ñèìâîëîâ.
2. òðàññèðîâêà êîíòóðà ñèìâîëîâ, ÷òîáû èçáàâèòñÿ îò ñèòóàöèè èõ íàëîæåíèÿ äðóã íà äðóãà (â äàííîì ñëó÷àå ýòî ïðîèñõîäèò ñ ïåðâûì ñèìâîëîì, îòíîñèòåëüíî âòîðîãî).

Ðèñ. 13 Èñõîäíîå èçîáðàæåíèå è ðåçóëüòàòû ðàáîòû 2-õ ôèëüòðîâ
Ïîñëå ïðåäâàðèòåëüíîé îáðàáîòêè èçîáðàæåíèÿ, êàæäàÿ èç áóêâ áóäåò èäåíòèôèöèðîâàíà â îòäåëüíîñòè. Êàê è â ïðîøëîì ïðèìåðå, ïîäãîòîâèâ «ãðàôè÷åñêèé ñëîâàðü», ñäåëàòü ýòî ìîæíî ñ ïîìîùüþ îáû÷íîãî ñðàâíåíèÿ èçîáðàæåíèé. Äëÿ ïðîãðàììèñòà ñðåäíåé êâàëèôèêàöèè, ñîñòàâëåíèå ïðîãðàììû òàêîãî óðîâíÿ ñëîæíîñòè, íå ñîñòàâèò áîëüøîé ïðîáëåìû. Íåñìîòðÿ íà ýòî, ñåãîäíÿ â Èíòåðíåòå, åùå î÷åíü ÷àñòî ìîæíî âñòðåòèòü ñòðàíèöû, íà êîòîðûõ ãåíåðèðóþòñÿ ðèñóíêè òàêîé æå ñëîæíîñòè, à òî è ïðîùå.
 äîïîëíåíèå, íà ñàéòå www.kyivstar.net, äëÿ îòïðàâêè ñîîáùåíèé, òîæå òðåáóåòñÿ ïðàâèëüíî îòâåòèòü íà CAPTCHA.

Ðèñ. 14. Ñàéò ìîáèëüíîãî îïåðàòîðà ÊèåâÑòàð è íåñêîëüêî
âàðèàíòîâ, ñãåíåðèðîâàííûõ èçîáðàæåíèé.
Êàê âû ìîæåòå çàìåòèòü, â íåêîòîðûõ ñëó÷àÿõ òåñò ìîæíî ëåãêî îáîéòè, äîæèäàÿñü, ïîêà ñãåíåðèðîâàííîå èçîáðàæåíèå áóäåò ïîä íóëåâûì óãëîì (âàðèàíò D). Íî ýòîò ïðîöåññ ìîæíî çíà÷èòåëüíî ïðèáëèçèòü. Äëÿ ãåíåðàöèè CAPTCHA èñïîëüçóåòñÿ ñêðèïò image.php. Ïîìíèòå, ÷òî ÿ ãîâîðèë î ñåññèè? Òàê âîò, ó÷èòûâàÿ, ÷òî ñåññèÿ ñóùåñòâóåò íåñêîëüêî ìèíóò, ïîâòîðíîå îáðàùåíèå ê image.php, äàåò èçîáðàæåíèå ñ òåìè æå öèôðàìè, òîëüêî ïîä äðóãèì óãëîì. Ïîòðåáóåòñÿ âñåãî îêîëî ïÿòè çàïðîñîâ, ÷òîáû ïîëó÷èòü èçîáðàæåíèå â ëåãêî îáðàáàòûâàåìîì âèäå. À èäåíòèôèöèðîâàâ òåêñò, ìîæíî îòïðàâëÿòü ôîðìó íà ñåðâåð.  ýòîì ñëó÷àå, ïðîáëåìà íå òîëüêî â ïðîñòîòå ðèñóíêà, äîïîëíèòåëüíî ïîëàãàÿñü íà îñîáåííîñòè ñåññèè, âû ìîæåòå ëåãêî îáîéòè òåñò.
3.2.2. Ðàñïîçíàâàíèå îáðàçîâ
Âñå âûøå îïèñàííûå ïðèìåðû, î÷åíü ïðîñòû â èñïîëüçîâàíèè. À ñåé÷àñ ðå÷ü ïîéäåò î íåìíîãî áîëåå ñëîæíûõ òåõíîëîãèÿõ, íî â òî æå âðåìÿ è áîëåå ýôôåêòèâíûõ. Ìû ïîãîâîðèì î ðàñïîçíàâàíèè îáðàçîâ, â ÷èñòîì âèäå. Ðå÷ü èäåò î çàäà÷àõ OCR – îïòè÷åñêîãî ðàñïîçíàâàíèÿ ñèìâîëîâ.
Ìíîãèå ñ÷èòàþò, ðàñïîçíàâàíèå îáðàçîâ íåäîñÿãàåìîé âåðøèíîé. Õî÷ó âàñ çàâåðèòü, ÷òî ýòî óòâåðæäåíèå äàëåêî îò èñòèíû. Âû êàê ïîòðåáèòåëü, íàâåðíî íå ðàç èñïîëüçîâàëè Fine Reader. Õîòÿ ìîæíî, óñîìíèòñÿ â êà÷åñòâå åãî ðàáîòû, âñïîìíèòå, ÷òî îáðàáàòûâàåìûé èì òåêñò èìååò îòíîñèòåëüíî ìàëûå ðàçìåðû è áîëüøîé îáúåì. À êî âñåìó è ñêîðîñòü ðàñïîçíàâàíèÿ íà âûñîêîì óðîâíå. Äðóãîå äåëî CAPTCHA: ñ îäíîé ñòîðîíû íîðìàëüíûé ðàçìåð è êîðîòêèé òåêñò, íî ñ äðóãîé – âûñîêèé óðîâåíü øóìîâ è äåôîðìàöèé.
Íà ñåãîäíÿøíèé ìîìåíò óæå ñóùåñòâóåò ìíîãî ïðîåêòîâ çàíèìàþùèõñÿ èñêëþ÷èòåëüíî ðàñïîçíàâàíèåì CAPTCHA. Íàèáîëåå èçâåñòíûìè èç íèõ ÿâëÿþòñÿ äâà: “UC Berkeley Computer Vision Group” è “PWNtcha”.
×ëåíû “UC Berkeley Computer Vision Group” îïóáëèêîâàëè â Èíòåðíåò äîêóìåíò, çàâåðÿþùèé â òîì, ÷òî èì óäàåòñÿ ðàñïîçíàâàòü òåñòû, ñãåíåðèðîâàííûå ñ ïîìîùüþ Gimpy. Ïðè÷åì ïðîöåíò óñïåõà ñîñòàâëÿåò 92%.

Ðèñ. 15. Ïðèìåðû CAPTCHA êîòîðûå áûëè ðàñïîçíàíû
ñîòðóäíèêàìè èíñòèòóòà Áåðêëè
Ðàáîòà PWNtcha, ïîêàçûâàåò òîæå âíóøèòåëüíûå ðåçóëüòàòû:

Ðèñ. 16. Ôðàãìåíò èç ñïèñêà CAPTCHA èçîáðàæåíèé,
ðàñïîçíàííûõ ïðîãðàììîé PWNtcha
Èñïîëüçîâàíèå èñêóññòâåííîãî èíòåëëåêòà â ñêîðîì âðåìåíè äîëæíî ñâåñòè íà íåò, ïðèìåíåíèå âèçóàëüíûõ òåñòîâ. Ïðåäâàðèòåëüíî îáó÷åííàÿ íåéðîííàÿ ñåòü, ìîæåò ñ áîëüøîé òî÷íîñòüþ ïðàâèëüíî ðàñïîçíàòü èçîáðàæåíèå. Ñóùåñòâóåò îäèí ñóùåñòâåííûé íþàíñ, ïîêà ïðåäëîæåííûå ðàçðàáîòêè íå îáëàäàþò âûñîêîé ñêîðîñòüþ ðàáîòû.  îñíîâíîì ýòî ñâÿçàíî ñ àëãîðèòìàìè ðàñïîçíàâàíèÿ, à ÷àñòî áûâàåò òàê, ÷òî èõ èñïîëüçóåòñÿ íåñêîëüêî. Íî äëÿ çëîóìûøëåííèêà, èñïîëüçóþùåãî íåéðîííûå ñåòè, äåëà ñòîÿò êóäà ïðîùå. Åãî çàäà÷à ñâîäèòñÿ ê îáó÷åíèþ ñåòè. Ýòî íå ïðîáëåìà, ïîñêîëüêó áîëüøèíñòâî ïðåäëàãàåìûõ CAPTCHA ìîæíî ñêà÷àòü è òàêèì îáðàçîì îðãàíèçîâàòü îáó÷åíèå.
Êî âñåìó ïåðå÷èñëåííîìó, äîáàâüòå ïîíÿòèÿ àññîöèàòèâíûõ ñâÿçåé, ãåíåòè÷åñêîãî àëãîðèòìà, è âîçìîæíîñòü óñïåøíîãî ðàñïîçíàâàíèÿ áóäåò ðàñòè "èç ïîêîëåíèÿ â ïîêîëåíèå". Ãåíîòèï àëãîðèòìîâ îáðàáîòêè èçîáðàæåíèé, åñëè ýòî çâó÷èò àáñóðäíî, òî õîðîøåíüêî çàäóìàéòåñü íàä ñâîèìè ïîçíàíèÿìè â îáëàñòÿõ ãåíåòèêè è ñîçäàíèÿ èñêóññòâåííîãî èíòåëëåêòà. Ñóùåñòâóþùèå ïðîåêòû, ýòî ëèøü âåðøèíà àéñáåðãà.
3.2.2. Èñïîëüçîâàíèå ÷åëîâå÷åñêîãî ðåñóðñà
Ïîæàëóé, ñàìûì èíòåðåñíûì èç ñóùåñòâóþùèõ ðåøåíèé, ýòî òî ÷òî ïðèäóìàëè ñïàìåðû, äëÿ ðåãèñòðàöèè áåñïëàòíûõ ïî÷òîâûõ ÿùèêîâ â ñèñòåìàõ Yahoo è HotMail. Îíè íå èñêàëè óÿçâèìîñòåé, íå ïèñàëè ðàñïîçíàâàíèå îáðàçîâ. Ñïàìåðû ïîäêëþ÷èëè ê ñâîåé áîðüáå ïðèëè÷íóþ ÷àñòü ïîëüçîâàòåëåé Èíòåðíåòà, à òî÷íåå ëþáèòåëåé áåñïëàòíîãî ïîðíî (ñì. Ðèñ. 17).

Ðèñ. 17. Ëþáèòåëÿì áåñïëàòíîãî ïðîñìîòðà ñàéòîâ
ïîðíîãðàôè÷åñêîãî õàðàêòåðà íåîáõîäèìî ïðîõîäèòü
CAPTCHA òåñò, äëÿ êàæäîé ñëåäóþùåé ôîòîãðàôèè.
Ñïàìåðû ñîçäàþò áåñïëàòíûå ôîòî ãàëåðåè ïîðíîãðàôè÷åñêîãî õàðàêòåðà. Åäèíñòâåííîå, ÷òî òðåáóåòñÿ îò ïîñåòèòåëÿ, ýòî îòâå÷àòü íà CAPTCHA òåñò, äëÿ ïðîñìîòðà ñëåäóþùåé ôîòîãðàôèè. Ñàì òåñò, âûáèðàåòñÿ èç ôîðìû ðåãèñòðàöèè ïî÷òîâîãî ñåðâåðà. Îòâåò ïîëüçîâàòåëÿ, ñîîòâåòñòâåííî âñòàâëÿåòñÿ â òóæå ôîðìó, è òàêèì îáðàçîì êàæäàÿ ôîòîãðàôèÿ ðàâíÿåòñÿ íîâîìó ïî÷òîâîìó ÿùèêó. Òåõíè÷åñêè, òàêàÿ ñèñòåìà íå òðåáóåò âûñîêîé êâàëèôèêàöèè çëîóìûøëåííèêà, à ïîýòîìó ÿâëÿåòñÿ î÷åíü ïðîñòîé â ðåàëèçàöèè. Êðîìå ýòîãî, ëþáèòåëåé ïîðíî òîæå íå ìàëî.
3.3. Ðåêîìåíäàöèè ïî áåçîïàñíîñòè
Êàê ëåãêî óáåäèòüñÿ, ÷òî ñïîñîáîâ îáîéòè ïðîâåðêó, õîòü îòáàâëÿé. Ïîýòîìó ýòèì ìû è çàéìåìñÿ. Âîò íåêîòîðûå ðåêîìåíäàöèè:
Íà ñàìîì äåëå ïåðåä íàìè âîçíèêëà äîñòàòî÷íî áîëüøàÿ ïðîáëåìà. Ñóùåñòâóþùèå ñèñòåìû íå çàùèùàþò ñâîèõ ïîòðåáèòåëåé. Íà ýòîò ðàç ðå÷ü èäåò íå î óÿçâèìîñòÿõ, à î ñàìîé òåõíîëîãèè. Óñëîæíÿÿ CAPTCHA ìû óæå ÷àñòî, ñàìè ñ òðóäîì ïîíèìàåì, ÷òî çà òåêñò ñêðûâàåòñÿ â ýòîì èçîáðàæåíèè. Òàê íå ìîæåò ïðîäîëæàòüñÿ äàëüøå. Îáëàñòü ÈÈ ïîñòåïåííî ðàçâèâàåòñÿ, äåëî íå â óìíûõ äîìàõ è íå â ìèëîé äåâî÷êå ïî èìåíè Ýëëèñ, æèâóùåé â èíñòèòóòå Áåðêëè, ëþáåçíî ãîòîâîé ïîîáùàòüñÿ ñ òîáîé. Äåëî â èñêóññòâåííîì èíòåëëåêòå, íåéðîííûõ ñåòÿõ è àññîöèàòèâíîì ìûøëåíèè. ×òî äàëüøå? Ñêîðåå âñåãî, ýòî ïðèâåäåò ê íåîáõîäèìîñòè âíåäðåíèÿ áèîìåòðè÷åñêèõ ñèñòåì, ñî âñåìè èç ýòîãî âûòåêàþùèìè. Áóäüòå áäèòåëüíû…
| Êîììåíòèðîâàòü | « Ïðåä. çàïèñü — Ê äíåâíèêó — Ñëåä. çàïèñü » | Ñòðàíèöû: [1] [Íîâûå] |