darko obradovic

23
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

Upload: phungtram

Post on 15-Dec-2016

241 views

Category:

Documents


1 download

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!