Generarea de imagini

Cum de a desena etichete care sunt rezistente la recunoaștere? Pentru a răspunde la această întrebare, este necesar să răspundem la o altă întrebare - pe ce principii sunt construiți algoritmii de recunoaștere. Apoi, vom înțelege modul în care această recunoaștere este cât se poate de dificilă.

Contrar credintei populare, pentru a ocoli CAPTCHA, de regulă, nu utilizează programe universale de recunoaștere a textului scanat, cum ar fi FineReader sau MS Office Document Imaging, astfel încât, dacă CAPTCHA dvs. nu se pretează pentru a recunoaște aceste programe, aceasta nu înseamnă că eticheta nu poate fi ușor de recunoscut-l ascuțit sub el un identificator personal (a se vedea secțiunea Exemple de hacking).

Recunoașterea este împărțită în două etape principale:

  • Determinați locația și limitele fiecărui simbol.
  • Recunoașterea reală a caracterelor.

Dacă simbolurile sunt întotdeauna în aceleași locuri (cum ar fi, de exemplu, în forumul Invision Power Board - vezi ilustrația din dreapta), rămâne numai al doilea dintre aceste două etape. Prin urmare, este necesar cel puțin să se modifice coordonatele simbolurilor.

Dacă locul simbolurilor nu este fix, următorul mod de a le selecta este să le comparați în contrast cu fundalul. Dacă culoarea caracterelor diferă de culoarea de fundal (ca în forumul phpBB), aceasta nu oferă nici o protecție:

A lăsat doar pixeli întunecați - și "voila".
Galbenul a evidențiat familiaritatea detectată (dreptunghiuri care conțin "pixeli întunecați" în ei înșiși)

Astfel, trebuie fie să adăugați zgomot care este dificil de separat de simbolurile în sine, fie să faceți dificilă separarea simbolurilor prin punerea lor în spate sau suprapunerea reciprocă.

De fapt, recunoașterea caracterului poate avea loc în mai multe moduri.

Cea mai ușoară cale este de a "masca". Programul are un font de referință, fiecare caracter compară fonturile recunoscute. Acest simbol, care are cele mai multe potriviri (pixeli de aceeași culoare ca în standard), și este considerat răspunsul.

CAPTCHA face obiectul unei comparații cu masca, care nu utilizează distorsiuni geometrice ale simbolurilor, și de asemenea folosesc un font (sau un număr foarte limitat).

Alți algoritmi, mai sofisticate recunosc un simbol al caracteristicilor sale caracteristice: cantitatea de ramificare, zone și locația lor reciprocă închise. Există o clasă de algoritmi numit „rețele neuronale“ - este, aproximativ vorbind, o cutie neagră, care este o premieră pentru antrenament și să dea imaginea răspunsul corect, și apoi, după antrenament, el va fi în măsură să dea răspunsul corect în sine. Este adevărat că procesul de învățare este foarte lung și laborios.

Pentru a vă proteja împotriva unor astfel de algoritmi, puteți adăuga zgomote care distorsionează în mod semnificativ desenul simbolurilor, dar există pericolul de supraîncărcare și de obținere a unei imagini care nu poate fi recunoscută de o persoană.

Cred că cea mai mare atenție trebuie acordată primului punct de protecție - de la identificarea limitelor simbolului - este dificil să recunoaștem simbolul dacă nu se știe unde începe și se termină.

Luați în considerare aplicarea acestor principii la exemple de CAPTCHA reală (asteriscurile din nume indică ratingul meu personal de securitate - de la 1 la 4):

Google ***
Deformarea neliniară a inscripției, deplasarea simbolurilor în raport cu celelalte, apropierea simbolurilor, fonturi diferite.
Nu se aplică zgomote. Adevărat, simbolurile nu se lipesc întotdeauna împreună fără goluri.

MSN ****
Rotația și distorsiunea simbolurilor, zgomotul sub formă de linii de aceeași culoare, simboluri intersectate.

Yahoo ***
Distorsiunea neliniară a simbolurilor, zgomotul sub forma unei polilini rupte.
Din dezavantaje - linia întreruptă poate fi separată de simboluri.

Mail.ru este foarte veche **
Rotația caracterelor, ușoară variație a fonturilor, contrast scăzut cu fundalul. În opinia mea - nu este un CAPTCHA foarte bun (simbolurile, de regulă, sunt mai întunecate decât zgomotul, se află separat)

Mail.ru vechi ****
Offset în înălțime, denaturarea neliniară a simbolurilor, zgomot sub formă de simboluri de intersectare a polilinelor de aceeași culoare.

Yandex ****
Lipirea simbolurilor conturului, denaturarea neliniară, zgomotul sub formă de linii albe și întunecate.

Rambler Old **
Simboluri multicolore, rotație, offset. Zgomot sub formă de puncte și linii drepte.


Rambler ***
Deformarea neliniară a simbolurilor. Simbolurile, cu toate acestea, sunt ușor separate unul de celălalt și de zgomot. Cazul numai pentru recunoașterea caracterului, și nu este dificil chiar și fără implicarea rețelelor neuronale (ținând cont de faptul că personajele sunt cifrele și distorsionate în principal pe orizontală).

Beeline ***
Distorsiuni liniare mici ale caracterelor, dimensiuni diferite. Simbolurile sunt plasate pe fundal cu zgomot sub formă de figuri geometrice (elipse) prin inversiune. Dezavantaj: cifrele sunt mai contrastate decât fundalul.

MTS vechi **
O mișcare mică, o schimbare de simboluri. Ocazional, târându-le unii pe alții. Zgomotul este ușor de eliminat prin reducerea clarității (estompării). CAPTCHA destul de slabă

MTS nou ***
O mișcare mică, o schimbare de simboluri. Ocazional, târându-le unii pe alții. Fonturi. Zgomote semnificative, atât sub forma unei texturi de fond, cât și prin simboluri care se suprapun. Adevărat, uneori chiar și o persoană nu citește mereu ușor rezultatul.

Megaphone ***
Schimbarea simbolurilor, zgomotul sub formă de linii și puncte.
Liniile paralele pot fi filtrate, cu liniile înclinate mai dificile.

# 10097; Crearea design-ului site-ului, doar design fara layout, layout PSD - de la 5 la 10 tr.
Portofoliu și exemple de lucrări. Designer: [email protected] Skype: tanditl Dragoste (Teolinka)

Articole similare