Top Banner
Objective Captcha Darko Obradovic DFKI GmbH Kaiserslautern.pm http://www.dfki.uni-kl.de/~obradovic [email protected] http://kaiserslautern.pm.org [email protected] Deutsches Forschungszentrum für Künstliche Intelligenz GmbH with contributions from Florian Jostock, Kai Tombers and Fabian Zimmermann
23

Darko Obradovic

Dec 15, 2016

Download

Documents

phungtram
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Darko Obradovic

ObjectiveCaptcha

Darko Obradovic

DFKI GmbHKaiserslautern.pm

http://www.dfki.uni-kl.de/[email protected]

http://[email protected]

DeutschesForschungszentrumfür KünstlicheIntelligenz GmbH

with contributions from Florian Jostock,Kai Tombers and Fabian Zimmermann

Page 2: Darko Obradovic

2

Outline● Introduction● Text Captchas● Objective Captcha

– Idea– Usage– Architecture– Customisation

● Conclusion

Page 3: Darko Obradovic

3

Introduction● CAPTCHA™=

CompletelyAutomatedPublicTuring test to tellComputers andHumansApart

● challenge-response system to protect web site access against bots

?

Page 4: Darko Obradovic

4

Introduction● types of captchas:

– visual, audio, semantic

● general requirements:– automated generation of new challenges– no „security by obscurity“!

challenge algorithms should be published– chance to solve a captcha by guessing should

be less than 1%– delete incorrectly answered queries– prevent multiple guessing by same IP address

Page 5: Darko Obradovic

5

Text Captchas● text captchas are most wide spread today● common techniques:

– dictionary words or arbitrary strings– text deformation, rotation, ...– background texturing– font variations– and many more...

● Perl support:– Authen::CaptchaAuthen::Captcha– GD::SecurityImageGD::SecurityImage

Page 6: Darko Obradovic

6

Text Captcha Examples

Page 7: Darko Obradovic

7

Text Captcha Riddles

Page 8: Darko Obradovic

8

Text Captcha Problems● mature OCR techniques:

– very active research discipline– free availability of advanced OCR code

(e.g. integrated OCR library in PHP)– specialised captcha crack tools with very high

success rates exist

● with increased security, readability for humans becomes more and more difficult

Page 9: Darko Obradovic

9

The „Objective“ Idea● use object images instead of characters!● algorithmic creation on the fly● variability of:

– positioning– line length– proportions– optional elements– alternative elements

Page 10: Darko Obradovic

10

Object Example 1: Glass

Page 11: Darko Obradovic

11

Object Example 2: Bike

Page 12: Darko Obradovic

12

„Objective“ Tuning● vulnerable to image recognition

techniques:– count pixels, edges, enclosed areas, ...– compare feature vectors (SVM)

● use background patterns:– exploits human pattern recognition capability– hardly recognisable by computers– interferes with most features

Page 13: Darko Obradovic

13

Background Examples

Page 14: Darko Obradovic

14

Architecture

Page 15: Darko Obradovic

15

How To Use It● set up paths in oc_conf.ploc_conf.pl once● Captcha->form(3, 6, 1)

– creates 3 objects with backgrounds– returns form elements in a table– offers 6 choices for each object– handles id and response automatically– just include this call in your CGI form!

● Captcha->check_response()– checks response in submitted query

Page 16: Darko Obradovic

16

CGI Form Example

Page 17: Darko Obradovic

17

Customisation● add your own objects and backgrounds!● draw objects/backgrounds with GD::line(), GD::rectangle(), GD::ellipse(), GD::arc(), ...

● implement position/length variance with– Captcha::fuzzy(fuzziness, x, y, ...)

● implement options/alternatives with– Captcha::probe(probability)

Page 18: Darko Obradovic

18

Code Example: Treesub draw {

my ($self) = @_;my $img = $self->{image};my $fg = $self->{fg};

# define center pointmy ($x, $y) = fuzzy(15, 100, 115);

# draw tree bolemy $bole_width = fuzzy(1, 3);my $bole_height = fuzzy(10, 55);$img->rectangle($x - $bole_width, $y,

$x + $bole_width, $y + $bole_height, $fg);

# draw tree crownmy $crown_width = fuzzy(15, 50);my $crown_height = fuzzy(10, 35);$img->ellipse($x, $y - $crown_height,

2 * $crown_width, 2 * $crown_height, $fg);}

Page 19: Darko Obradovic

19

Code Example: Tree

Page 20: Darko Obradovic

20

Further Possibilities● harden against image recognition:

– rotation, graphic filters, texturing, ...

● more objects, more backgrounds!classes to recognise rise multiplicatively:– 6 objects * 3 backgrounds = 18 classes– 12 objects * 6 backgrounds = 72 classes

● unique objects for your site protect you from generalised attacks

Page 21: Darko Obradovic

21

General Problems● accessibility problem:

– visual and audio captchas always exclude impaired users

– only semantic captchas are fully accessible

● AI research will catch up● social attacks always break captchas

– delegate captchas to your own site's users

● waste of user time– 150,000 hours per day estimated– „reCAPTCHA“ project digitalises books

Page 22: Darko Obradovic

22

Related Links● PWNtcha - captcha decoder

– http://sam.zoy.org/pwntcha/

● Breaking a Visual CAPTCHA– http://www.cs.sfu.ca/~mori/research/gimpy/

● Inaccessibility of CAPTCHA– http://www.w3.org/TR/turingtest/

● reCAPTCHA – Stop Spam. Read Books.– http://recaptcha.net/

Page 23: Darko Obradovic

23

Questions?

Discussion!

Submit yourplugins!