|
|
CAPTCHAs
Introduction
Last updated: October 23, 2004
From Wikipedia:
A captcha (an acronym for "completely automated public
Turing test to tell computers and humans apart") is a type of
challenge-response test used in computing to determine whether or not the user
is human. The term was coined in 2000 by Luis von Ahn, Manuel Blum, and
Nicholas J. Hopper of Carnegie Mellon University, and John Langford of IBM. A
common type of captcha requires that the user type the letters of a distorted
and/or obscured sequence of letters or digits that appears on the screen.
Because the test is administered by a computer, in contrast to the standard
Turing test that is administered by a human, a captcha is sometimes described
as a reverse Turing test.
Captchas are used to prevent bots from using various types of computing
services. Applications include preventing bots from taking part in online
polls, registering for free email accounts (which may then be used to send
spam), and, more recently, preventing bot-generated spam by requiring that the
(unrecognized) sender successfully pass a captcha test before the email
message is delivered.
From the CAPTCHA Project:
A CAPTCHATM test is a program that can generate and
grade tests that:
- Most humans can pass.
- Current computer programs can't pass.
A number of open source (free) captcha solutions are available -- some of
which are listed below for comparison. Please check with the developer's web
site for software updates and more detailed information.
Comparison Matrix1
| Feature |
Authen::Captcha |
Captcha |
Captcha-TT |
HN Captcha |
Img Validator |
OCR Captcha |
Veriword |
| Language |
Perl |
PHP |
PHP |
PHP |
PHP |
PHP |
PHP |
| Public Text |
|
| - Generator |
rand() |
mt_rand() |
mt_rand() |
md5(uniqid(rand())) |
md5(uniqid(microtime())) |
md5(uniqid(rand())) |
array_rand() |
| Private Key |
|
| - Encryption |
MD5 |
- |
MD5 |
MD5 |
MD5 |
MD5 |
- |
| - Storage |
File |
Session |
Session or Cookie |
Form |
Session |
Form |
Session |
| Image |
|
| - Output2 |
File |
Buffer |
Buffer |
File |
Buffer |
File |
Buffer |
| - Format3 |
PNG |
JPEG, PNG |
JPEG, PNG |
JPEG |
JPEG, PNG |
PNG |
JPEG, PNG |
| - Fonts |
Images4 |
TrueType5 |
TrueType5 |
TrueType5 |
TrueType5 |
TrueType5 |
TrueType6 |
| - Text Rotation |
- |
- |
Yes |
Yes |
- |
Yes |
Yes7 |
| - Background |
Images |
- |
Images |
Noise or Grid |
Images |
Noise or Grid |
Images |
| - Colours |
Fixed |
Fixed |
Random |
Random8 |
Hybrid9 |
Random |
Fixed |
| Version |
1.023 |
- |
1.0.1 |
1.2 |
- |
1.2 |
1.3 |
| Released |
2003-12-17 |
2004-04-05 |
2004-04-07 |
2004-04-16 |
2004-09-15 |
2004-04-13 |
2004-10-23 |
| License |
GPL |
GPL |
GPL |
GPL |
GPL |
GPL |
Other10 |
| Author(s) |
Seth T Jackson, Josh I Miller |
Pascal Rehfeldt |
Charles Gentry |
Horst Nogajski |
Alfred Reinold Baudisch |
Julien Pachet |
Huda M Elmatsani |
Notes:
1. Disclaimer: the SoftwareDevelopment.CA web site uses Captcha-TT.
2. Temporary file vs. internal output buffer.
3. Without programmatic changes.
4. One typeface with each available character stored as a bitmap image file.
5. Hardcoded list of fonts to choose from.
6. Randomly selected from fonts directory.
7. Wave effect.
8. Web safe colour palette.
9. Random selection from fixed colour schemes.
10. "This program is free for any purpose use."
Criticisms
There are three major criticisms of CAPTCHAs:
- Patent encumbrance.
USPTO patent 6195698 - Method for selectively restricting access to computer systems.
USPTO patent application 20040199597 - Method and system for image
verification to prevent messaging abuse.
- Inaccessibility to the visually impaired (for text-based CAPTCHAs).
Audio captchas appear to be the dominant working solution to this problem
(intensified in the USA by the "Americans with Disabilities Act").
For example, the MSN Hotmail registration system offers an audio captcha as an
alternative to the image captcha. Here, the characters appearing in the
captcha picture are read aloud in a woman's voice, with random background noise
added to thwart voice recognition software.
- Circumvention by spammers.
One technique is to use optical character recognition (OCR) and image
manipulation tools. Another is to trick humans into solving the problem
under false pretenses (e.g., captcha recycling).
|