<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: How To Crack Captchas</title>
	<atom:link href="http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/</link>
	<description>Floccinaucinihilipilificating antidisestablishmentarianism since 2001.</description>
	<lastBuildDate>Thu, 11 Mar 2010 20:33:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Jernej</title>
		<link>http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/comment-page-1/#comment-5723</link>
		<dc:creator>Jernej</dc:creator>
		<pubDate>Mon, 31 Aug 2009 09:43:31 +0000</pubDate>
		<guid isPermaLink="false">http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/#comment-5723</guid>
		<description>double() solved this, thanks! :)</description>
		<content:encoded><![CDATA[<p>double() solved this, thanks! :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew</title>
		<link>http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/comment-page-1/#comment-5722</link>
		<dc:creator>Andrew</dc:creator>
		<pubDate>Sun, 30 Aug 2009 20:23:27 +0000</pubDate>
		<guid isPermaLink="false">http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/#comment-5722</guid>
		<description>I&#039;ve never used Octave, but whenever I get a type error like this I normally solve it by adding double(...) or logical(...) or whatever around whatever variable or expression it&#039;s whining about.</description>
		<content:encoded><![CDATA[<p>I&#8217;ve never used Octave, but whenever I get a type error like this I normally solve it by adding double(&#8230;) or logical(&#8230;) or whatever around whatever variable or expression it&#8217;s whining about.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Jernej</title>
		<link>http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/comment-page-1/#comment-5721</link>
		<dc:creator>Jernej</dc:creator>
		<pubDate>Sat, 29 Aug 2009 14:58:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/#comment-5721</guid>
		<description>Hello,

I was playing a little bit with your code, after all it looked like that... http://pastebin.com/m50d11fa2 

How ever I use Octave insted Matlab and I just hit the problem ... the code at paste bin produces error:

http://pastebin.com/m5661fd57

Now the problem I think is here:

adjacentpixels=(imdilate(thisarea, [0 1 0;1 1 1;0 1 0])&amp;~thisarea);

but I have no idea how to fix that. Can you help or explain please?

Oh yes and if I uncomment this:

%class(thisarea)
%class(temp)
%class(region)

i get:

ans = logical
ans = double
ans = double

Thanks!</description>
		<content:encoded><![CDATA[<p>Hello,</p>
<p>I was playing a little bit with your code, after all it looked like that&#8230; <a href="http://pastebin.com/m50d11fa2" rel="nofollow">http://pastebin.com/m50d11fa2</a> </p>
<p>How ever I use Octave insted Matlab and I just hit the problem &#8230; the code at paste bin produces error:</p>
<p><a href="http://pastebin.com/m5661fd57" rel="nofollow">http://pastebin.com/m5661fd57</a></p>
<p>Now the problem I think is here:</p>
<p>adjacentpixels=(imdilate(thisarea, [0 1 0;1 1 1;0 1 0])&amp;~thisarea);</p>
<p>but I have no idea how to fix that. Can you help or explain please?</p>
<p>Oh yes and if I uncomment this:</p>
<p>%class(thisarea)<br />
%class(temp)<br />
%class(region)</p>
<p>i get:</p>
<p>ans = logical<br />
ans = double<br />
ans = double</p>
<p>Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew</title>
		<link>http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/comment-page-1/#comment-5614</link>
		<dc:creator>Andrew</dc:creator>
		<pubDate>Wed, 27 May 2009 08:47:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/#comment-5614</guid>
		<description>MATLAB again:
&lt;code&gt;imshow(imdilate(imerode(im(:,4:320)==im(:,1:317),ones(3)),ones(3)))&lt;/code&gt;

That was actually easier than just reading it.</description>
		<content:encoded><![CDATA[<p>MATLAB again:<br />
<code>imshow(imdilate(imerode(im(:,4:320)==im(:,1:317),ones(3)),ones(3)))</code></p>
<p>That was actually easier than just reading it.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Digi</title>
		<link>http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/comment-page-1/#comment-5613</link>
		<dc:creator>Digi</dc:creator>
		<pubDate>Tue, 26 May 2009 21:12:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/#comment-5613</guid>
		<description>How about cracking this captcha? :)

http://www.wowanno.com/forums/ucp.php?mode=register

I placed it there after a shitload of spam on that abandoned site.

A message to any potential spammer out there that might use the help you provide: fuck you.</description>
		<content:encoded><![CDATA[<p>How about cracking this captcha? :)</p>
<p><a href="http://www.wowanno.com/forums/ucp.php?mode=register" rel="nofollow">http://www.wowanno.com/forums/ucp.php?mode=register</a></p>
<p>I placed it there after a shitload of spam on that abandoned site.</p>
<p>A message to any potential spammer out there that might use the help you provide: fuck you.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew</title>
		<link>http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/comment-page-1/#comment-5427</link>
		<dc:creator>Andrew</dc:creator>
		<pubDate>Sun, 08 Feb 2009 15:44:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/#comment-5427</guid>
		<description>I can&#039;t find a working demo of the clock captcha on the web. It sounds interesting, although I can&#039;t see how hard it could be to automate the reading of an analogue clock. Finding the angles of straight lines, especially if they all start in the centre of the image, is pretty straightforward. The hardest part would be telling the hands apart, which didn&#039;t ought to be too taxing depending on the style, but even if you didn&#039;t bother, you&#039;ve still cracked 1 in 6 of them by chance. That said, &#039;moire clockface&#039; isn&#039;t a term I&#039;m familiar with, so I may have missed something there.

I like it when there&#039;s no cultural knowledge required: recognising celebrities would probably stop me from posting, and coins can be very unclear to foreigners (especially if some modern graphic designer has taken the numbers off them). Text-based ones like the normal ones have the advantage of requiring no knowledge beyond what you need to read and understand the site it&#039;s on. A friend of mine ran a videogame website and its captcha rather cleverly asked you to identify game boxes. Obviously it only had a finite number of questions, which was a drawback, but for a small site that&#039;s not a problem. (Although I&#039;m certain that spambots have mastered the art of email confirmation by now.)

It is, you&#039;re right, a massive disadvantage to have a computer sat opposite the subject in the Turing test, but it shouldn&#039;t be automatically fatal: we know computers can test things they can&#039;t do. For example, hashing algorithms can&#039;t be reversed, but can be tested against. We have to find something where the computer can work backwards from the answer (say by warping the letters and drawing lines on) to generate a question, but can&#039;t work forwards from there to find the answer. The hard part is that it has to be something a human can do easily. I suspect the bigger problem is that computers are too clever and people too dim.</description>
		<content:encoded><![CDATA[<p>I can&#8217;t find a working demo of the clock captcha on the web. It sounds interesting, although I can&#8217;t see how hard it could be to automate the reading of an analogue clock. Finding the angles of straight lines, especially if they all start in the centre of the image, is pretty straightforward. The hardest part would be telling the hands apart, which didn&#8217;t ought to be too taxing depending on the style, but even if you didn&#8217;t bother, you&#8217;ve still cracked 1 in 6 of them by chance. That said, &#8216;moire clockface&#8217; isn&#8217;t a term I&#8217;m familiar with, so I may have missed something there.</p>
<p>I like it when there&#8217;s no cultural knowledge required: recognising celebrities would probably stop me from posting, and coins can be very unclear to foreigners (especially if some modern graphic designer has taken the numbers off them). Text-based ones like the normal ones have the advantage of requiring no knowledge beyond what you need to read and understand the site it&#8217;s on. A friend of mine ran a videogame website and its captcha rather cleverly asked you to identify game boxes. Obviously it only had a finite number of questions, which was a drawback, but for a small site that&#8217;s not a problem. (Although I&#8217;m certain that spambots have mastered the art of email confirmation by now.)</p>
<p>It is, you&#8217;re right, a massive disadvantage to have a computer sat opposite the subject in the Turing test, but it shouldn&#8217;t be automatically fatal: we know computers can test things they can&#8217;t do. For example, hashing algorithms can&#8217;t be reversed, but can be tested against. We have to find something where the computer can work backwards from the answer (say by warping the letters and drawing lines on) to generate a question, but can&#8217;t work forwards from there to find the answer. The hard part is that it has to be something a human can do easily. I suspect the bigger problem is that computers are too clever and people too dim.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan</title>
		<link>http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/comment-page-1/#comment-5312</link>
		<dc:creator>Dan</dc:creator>
		<pubDate>Wed, 10 Dec 2008 01:47:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/#comment-5312</guid>
		<description>Oh I forgot to say.. How about a simple crossword clue combined with an anagram captcha or maybe an odd one out puzzle of the type you find in IQ tests?

Or. I may write this one next for the hell of it. You display random notes and coins in random position (some overlapping) - and ask for the total amount?

Orâ€¦ How about recognising celebrities?

orâ€¦ analysing the data given in other form fields?

orâ€¦ testing that the entered email address exists?

Itâ€™s a fascinating subject - I believe the fatal flaw may in the first two letters of the Captcha acronym - ie: Completely Automated. We are asking a one computer to test another.</description>
		<content:encoded><![CDATA[<p>Oh I forgot to say.. How about a simple crossword clue combined with an anagram captcha or maybe an odd one out puzzle of the type you find in IQ tests?</p>
<p>Or. I may write this one next for the hell of it. You display random notes and coins in random position (some overlapping) &#8211; and ask for the total amount?</p>
<p>Orâ€¦ How about recognising celebrities?</p>
<p>orâ€¦ analysing the data given in other form fields?</p>
<p>orâ€¦ testing that the entered email address exists?</p>
<p>Itâ€™s a fascinating subject &#8211; I believe the fatal flaw may in the first two letters of the Captcha acronym &#8211; ie: Completely Automated. We are asking a one computer to test another.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Dan</title>
		<link>http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/comment-page-1/#comment-5309</link>
		<dc:creator>Dan</dc:creator>
		<pubDate>Wed, 10 Dec 2008 01:30:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/#comment-5309</guid>
		<description>Hi Dr. Taylor, A very interesting article. Having written my first captcha, I was searching for info on cracking them and found your site. My first idea was to place random objects such as guns, umrellas, scarecrows etc at a random position, at a random angle with lots of random line and dots placed over them. I then felt this would be too easily solved by histogram analysis. The idea I settled on was to use random moire clockfaces shown at different angles where the user has to convert the time from analog to digital. You can see a demo at http://evolveradio.com/clockedya  (released under GPL)
I would welcome any feedback on it&#039;s effectiveness or any advice you have may have to offer as to how I might improve it. At the moment, I am not limiting the number of tries - I guess I should as I reckon the odds of guessing the correct answer are 1 in 1320. (12 x 11 x 10) the hands can not appear in the same position as each other.
Anyway, as I said, if you have a few minutes, I&#039;d love to know how easy or difficult you think it would be for my captcha to be solved by a computer.</description>
		<content:encoded><![CDATA[<p>Hi Dr. Taylor, A very interesting article. Having written my first captcha, I was searching for info on cracking them and found your site. My first idea was to place random objects such as guns, umrellas, scarecrows etc at a random position, at a random angle with lots of random line and dots placed over them. I then felt this would be too easily solved by histogram analysis. The idea I settled on was to use random moire clockfaces shown at different angles where the user has to convert the time from analog to digital. You can see a demo at <a href="http://evolveradio.com/clockedya" rel="nofollow">http://evolveradio.com/clockedya</a>  (released under GPL)<br />
I would welcome any feedback on it&#8217;s effectiveness or any advice you have may have to offer as to how I might improve it. At the moment, I am not limiting the number of tries &#8211; I guess I should as I reckon the odds of guessing the correct answer are 1 in 1320. (12 x 11 x 10) the hands can not appear in the same position as each other.<br />
Anyway, as I said, if you have a few minutes, I&#8217;d love to know how easy or difficult you think it would be for my captcha to be solved by a computer.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jared</title>
		<link>http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/comment-page-1/#comment-2009</link>
		<dc:creator>jared</dc:creator>
		<pubDate>Fri, 07 Mar 2008 02:28:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/#comment-2009</guid>
		<description>Captchas have to use non-linear transformation to become &quot;hard&quot;. Rotation, skew, etc. can all be solved by Principle Component Analysis.

Check out this author&#039;s run down of why linear transformation is not enough:

http://churchturing.org/captcha-dist/captcha/final.medium.png
http://churchturing.org/captcha-dist/</description>
		<content:encoded><![CDATA[<p>Captchas have to use non-linear transformation to become &#8220;hard&#8221;. Rotation, skew, etc. can all be solved by Principle Component Analysis.</p>
<p>Check out this author&#8217;s run down of why linear transformation is not enough:</p>
<p><a href="http://churchturing.org/captcha-dist/captcha/final.medium.png" rel="nofollow">http://churchturing.org/captcha-dist/captcha/final.medium.png</a><br />
<a href="http://churchturing.org/captcha-dist/" rel="nofollow">http://churchturing.org/captcha-dist/</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: john</title>
		<link>http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/comment-page-1/#comment-1983</link>
		<dc:creator>john</dc:creator>
		<pubDate>Fri, 29 Feb 2008 22:38:55 +0000</pubDate>
		<guid isPermaLink="false">http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/#comment-1983</guid>
		<description>Well, I enjoyed your article quite a bit just for the record.</description>
		<content:encoded><![CDATA[<p>Well, I enjoyed your article quite a bit just for the record.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew</title>
		<link>http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/comment-page-1/#comment-1769</link>
		<dc:creator>Andrew</dc:creator>
		<pubDate>Wed, 23 Jan 2008 16:56:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/#comment-1769</guid>
		<description>This is how all my opinions seem to work; I start out with a gut instinct, and tell people until I happen across one who knows what they&#039;re talking about, and after a few exchanges I have a far better justified position.

I&#039;d like to think that means I&#039;m open to correction, but I usually seem to end up with roughly the same opinion I had before &lt;i&gt;but for better reasons&lt;/i&gt; so either my instincts are fantastic or I can justify any irrational prejudice. I don&#039;t really know how to tell the two apart. I usually enjoy the process, though, so I don&#039;t worry about it much.</description>
		<content:encoded><![CDATA[<p>This is how all my opinions seem to work; I start out with a gut instinct, and tell people until I happen across one who knows what they&#8217;re talking about, and after a few exchanges I have a far better justified position.</p>
<p>I&#8217;d like to think that means I&#8217;m open to correction, but I usually seem to end up with roughly the same opinion I had before <i>but for better reasons</i> so either my instincts are fantastic or I can justify any irrational prejudice. I don&#8217;t really know how to tell the two apart. I usually enjoy the process, though, so I don&#8217;t worry about it much.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew</title>
		<link>http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/comment-page-1/#comment-1768</link>
		<dc:creator>Andrew</dc:creator>
		<pubDate>Wed, 23 Jan 2008 16:44:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/#comment-1768</guid>
		<description>I have. What I did, really, was to see the captcha for phpBB3, think &quot;that&#039;s rubbish, I bet I can crack it in a day&quot; and attack it to see if I could. To be honest, the captcha for phpBB is fairly irrelevant anyway, given how easy it is for even the dimmest script-kiddies to gain access to the admin panel and turn the index page into a billboard.

The &quot;answerhash&quot; isn&#039;t just the md5 of the answer, by the way. It&#039;s salted with a site ID and some material unique to the page it&#039;s on, so a stored answer would only work on one page. If I have to change it again I&#039;ll add to that a question ID so that when a question is retired all hashes associated with it are retired as well. It&#039;d mean checking five hashes instead of one, but that&#039;s okay.

With image-based ones, the gap between &quot;what computers can&#039;t do&quot; and &quot;what humans can do&quot; is closing fast, and probably closed long ago if you consider humans with any kind of disabilities. I don&#039;t even think captchas on individual sites are the right approach, long term. We need to stop the spam being sent in the first place -- the web traffic it generates is problematic and expensive enough and the tests to block it are the antithesis of most modern interface design principles.

(Personally, I think we need to start identifying the people whose computers are spam-sending zombies and taking away their broadband. They can&#039;t be trusted with it.)</description>
		<content:encoded><![CDATA[<p>I have. What I did, really, was to see the captcha for phpBB3, think &#8220;that&#8217;s rubbish, I bet I can crack it in a day&#8221; and attack it to see if I could. To be honest, the captcha for phpBB is fairly irrelevant anyway, given how easy it is for even the dimmest script-kiddies to gain access to the admin panel and turn the index page into a billboard.</p>
<p>The &#8220;answerhash&#8221; isn&#8217;t just the md5 of the answer, by the way. It&#8217;s salted with a site ID and some material unique to the page it&#8217;s on, so a stored answer would only work on one page. If I have to change it again I&#8217;ll add to that a question ID so that when a question is retired all hashes associated with it are retired as well. It&#8217;d mean checking five hashes instead of one, but that&#8217;s okay.</p>
<p>With image-based ones, the gap between &#8220;what computers can&#8217;t do&#8221; and &#8220;what humans can do&#8221; is closing fast, and probably closed long ago if you consider humans with any kind of disabilities. I don&#8217;t even think captchas on individual sites are the right approach, long term. We need to stop the spam being sent in the first place &#8212; the web traffic it generates is problematic and expensive enough and the tests to block it are the antithesis of most modern interface design principles.</p>
<p>(Personally, I think we need to start identifying the people whose computers are spam-sending zombies and taking away their broadband. They can&#8217;t be trusted with it.)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jimmy</title>
		<link>http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/comment-page-1/#comment-1766</link>
		<dc:creator>jimmy</dc:creator>
		<pubDate>Wed, 23 Jan 2008 14:27:44 +0000</pubDate>
		<guid isPermaLink="false">http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/#comment-1766</guid>
		<description>Unfortunately, most boards, particularly those that are freely available, suffer from fundamental downfalls in their captcha methods.

Firstly, you &lt;b&gt;CANNOT&lt;/b&gt; allow the user to see the relationship between the captcha question or image and it&#039;s solution.  You&#039;d be surprised at how often this is done.  For example, the md5 hashing of the question that you provide on this site does just this (the md5  &quot;answerhash&quot; is embedded in the form code and thus visible to any HTML parser).  Once one solution is calculated (which is easy in your case), it can be applied since they know the relationship between the hashing and the solution, even though it changes.  Banning ip addresses wouldn&#039;t work either because spam bots typically work in groups to avoid this, and you don&#039;t want to ban a potential website visitor because they&#039;ve slipped typing in the answer.  Once spammers get it, they share the methods to other spammers so that everyone may enjoy the security hole.

Secondly, you &lt;b&gt;MUST&lt;/b&gt; generate a unique captcha every time.  A question or image should never come up twice, no matter what.  It is pretty clear why this is important.  This is typically why text verification is rarely used, at least by itself.

Thirdly, a good, foolproof, changing, and unique captcha image needs to be developed.  For example, you may have an external chunk of php code using gd to generate an image, generate an id for this image, and put both the id and the solution in a database somewhere unbeknownst to the user.  Then upon submission of something, check the id against the solution in the database, maybe have a script on the db return either true or false, and automatically and immediately delete that entry from the database. 

 I&#039;ve always been interested in seeing how easy captcha images are to crack, and maybe even writing some code myself to do so.  You should put a small section up on your site where users can submit a link to a chunk of code somewhere that outputs an image, and see how long it takes to develop a crack for it (one that can be applied to any image that is generated, and computes the correct solution 100% of the time).  I firmly believe that with the proper linking of the characters with lines, and the correct usage of colors, fonts, scaling, rotation, overlapping, etc...that captchas are extremely effective.

In all fairness, you&#039;ve attacked weak catpchas in your post above.  There are some good ones!</description>
		<content:encoded><![CDATA[<p>Unfortunately, most boards, particularly those that are freely available, suffer from fundamental downfalls in their captcha methods.</p>
<p>Firstly, you <b>CANNOT</b> allow the user to see the relationship between the captcha question or image and it&#8217;s solution.  You&#8217;d be surprised at how often this is done.  For example, the md5 hashing of the question that you provide on this site does just this (the md5  &#8220;answerhash&#8221; is embedded in the form code and thus visible to any HTML parser).  Once one solution is calculated (which is easy in your case), it can be applied since they know the relationship between the hashing and the solution, even though it changes.  Banning ip addresses wouldn&#8217;t work either because spam bots typically work in groups to avoid this, and you don&#8217;t want to ban a potential website visitor because they&#8217;ve slipped typing in the answer.  Once spammers get it, they share the methods to other spammers so that everyone may enjoy the security hole.</p>
<p>Secondly, you <b>MUST</b> generate a unique captcha every time.  A question or image should never come up twice, no matter what.  It is pretty clear why this is important.  This is typically why text verification is rarely used, at least by itself.</p>
<p>Thirdly, a good, foolproof, changing, and unique captcha image needs to be developed.  For example, you may have an external chunk of php code using gd to generate an image, generate an id for this image, and put both the id and the solution in a database somewhere unbeknownst to the user.  Then upon submission of something, check the id against the solution in the database, maybe have a script on the db return either true or false, and automatically and immediately delete that entry from the database. </p>
<p> I&#8217;ve always been interested in seeing how easy captcha images are to crack, and maybe even writing some code myself to do so.  You should put a small section up on your site where users can submit a link to a chunk of code somewhere that outputs an image, and see how long it takes to develop a crack for it (one that can be applied to any image that is generated, and computes the correct solution 100% of the time).  I firmly believe that with the proper linking of the characters with lines, and the correct usage of colors, fonts, scaling, rotation, overlapping, etc&#8230;that captchas are extremely effective.</p>
<p>In all fairness, you&#8217;ve attacked weak catpchas in your post above.  There are some good ones!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Andrew</title>
		<link>http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/comment-page-1/#comment-1765</link>
		<dc:creator>Andrew</dc:creator>
		<pubDate>Wed, 23 Jan 2008 12:36:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/#comment-1765</guid>
		<description>No, that&#039;s kind of my whole point: &quot;any green-horn&quot; (whatever that might be) should indeed be able to do all of the above, because it&#039;s really quite easy. Computer Vision, and all its high-end algorithms, is all well and good and doing amazing things, but it&#039;s well outwith the reach of the average person.

A general algorithm would be more interesting, yes, but it would be a major investment of time and I&#039;d be the wrong person to do it. My point was just that I could spend a week or so, crack phpBB&#039;s captchas, and then spam all the phpBB forums in the world, which to my mind is a far greater weakness than a susceptibility to advanced computer vision algorithms, because as you pointed out there are so many people who could do what I just did. A few of them are bound to do it.

On the subject of my own captcha, I think to be fair you&#039;ve underestimated it. It actually was broken once, but not by &quot;entering two letter q&#039;s&quot;. That&#039;s just one of five or six questions that loop around the comments form, which are all simple tasks involving maths and/or moving letters around, and about a year ago, a spambot learned to add two numbers (which is a common question in captchas anyway). All I did was load up the captcha file and delete that question (leaving four or five others). That secured the site again without blocking real comments, and later that day I replaced it with a new question so no harm was done. Yes, the questions are weak but the system that surrounds them is much more robust. I could put in a conventional image-based captcha if I wanted, although that would reduce accessibility, so for the amount of traffic I have now it would probably do more harm than good.

But that&#039;s the only time I&#039;ve had any spam (other than pingbacks, which are so problematic they&#039;ve all but shut down Technorati) since I installed it, whereas phpBB&#039;s captchas are broken daily even on low-traffic forums. Okay, so the smarter spammers you enjoy might learn to enter two &quot;q&#039;s&quot; in a day, but I can remove that question that same day. I expect an automated system could remove it in a moment the first or second time WordPress detected a &quot;spammy&quot; comment getting through. Unless they can reverse-md5 long and meaningless strings, they&#039;ve got nothing long-term but cracking individual questions as they appear.</description>
		<content:encoded><![CDATA[<p>No, that&#8217;s kind of my whole point: &#8220;any green-horn&#8221; (whatever that might be) should indeed be able to do all of the above, because it&#8217;s really quite easy. Computer Vision, and all its high-end algorithms, is all well and good and doing amazing things, but it&#8217;s well outwith the reach of the average person.</p>
<p>A general algorithm would be more interesting, yes, but it would be a major investment of time and I&#8217;d be the wrong person to do it. My point was just that I could spend a week or so, crack phpBB&#8217;s captchas, and then spam all the phpBB forums in the world, which to my mind is a far greater weakness than a susceptibility to advanced computer vision algorithms, because as you pointed out there are so many people who could do what I just did. A few of them are bound to do it.</p>
<p>On the subject of my own captcha, I think to be fair you&#8217;ve underestimated it. It actually was broken once, but not by &#8220;entering two letter q&#8217;s&#8221;. That&#8217;s just one of five or six questions that loop around the comments form, which are all simple tasks involving maths and/or moving letters around, and about a year ago, a spambot learned to add two numbers (which is a common question in captchas anyway). All I did was load up the captcha file and delete that question (leaving four or five others). That secured the site again without blocking real comments, and later that day I replaced it with a new question so no harm was done. Yes, the questions are weak but the system that surrounds them is much more robust. I could put in a conventional image-based captcha if I wanted, although that would reduce accessibility, so for the amount of traffic I have now it would probably do more harm than good.</p>
<p>But that&#8217;s the only time I&#8217;ve had any spam (other than pingbacks, which are so problematic they&#8217;ve all but shut down Technorati) since I installed it, whereas phpBB&#8217;s captchas are broken daily even on low-traffic forums. Okay, so the smarter spammers you enjoy might learn to enter two &#8220;q&#8217;s&#8221; in a day, but I can remove that question that same day. I expect an automated system could remove it in a moment the first or second time WordPress detected a &#8220;spammy&#8221; comment getting through. Unless they can reverse-md5 long and meaningless strings, they&#8217;ve got nothing long-term but cracking individual questions as they appear.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jimmy</title>
		<link>http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/comment-page-1/#comment-1764</link>
		<dc:creator>jimmy</dc:creator>
		<pubDate>Wed, 23 Jan 2008 06:17:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.apathysketchpad.com/blog/2007/06/05/how-to-crack-captchas/#comment-1764</guid>
		<description>To begin, I must say that the author fancies himself a bit more of an intellectual than he actually is.  Allow me to elaborate on his opinions if I may.

Computer Vision is (and has been for some time) quite advanced.  Trust me when I say that if Computer Vision is powerful enough to race autonomous robots through unknown terrain, navigate cars through a city on their own, take facial fingerprints (not images, but measurements) of every single person entering the stadium for the Superbowl in 2001,  it can be used to crack a stupid captcha image.

The problem is that you are focusing on each individual captcha that you are cracking, and engineering a crack based on that particular image.  So what?  Any green-horn should be able to do that, and if they can&#039;t should not even be trying.  Why wouldn&#039;t you push toward designing a program to read ANY image captcha that it encounters?  You may have to put aside your trusty old Matlab for that one, and no, I won&#039;t send you any code.

The rant about a administrator approving each and every attempt to register a user is about as brute force of a solution as I can think of.  There are effective captchas out there, some of which I have written that have never been cracked a single time and have been up on forums, guestbooks, blogs, etc... for years with thousands of visitors a day.  Don&#039;t claim that you have accomplished something because you have cracked phpBB&#039;s image captcha, which, by the way, is not cracking anything at all, since it is open source to begin with.

Maybe you should submit your solution &quot;entering two letter q&#039;s&quot; to open source forums so they can benefit from this knowledge.

If I was an asshole, I&#039;d redirect the spam traffic that I get on all the websites I&#039;ve written and maintain to here; they&#039;d have you cracked in a day or so and fill you up so full of crap you&#039;d actually have some content on the site.  

Sorry if I sound mean, I actually spit out my coffee when I read the letter &#039;q&#039; thing because I was laughing so hard.  You made my day man.  Thanks.</description>
		<content:encoded><![CDATA[<p>To begin, I must say that the author fancies himself a bit more of an intellectual than he actually is.  Allow me to elaborate on his opinions if I may.</p>
<p>Computer Vision is (and has been for some time) quite advanced.  Trust me when I say that if Computer Vision is powerful enough to race autonomous robots through unknown terrain, navigate cars through a city on their own, take facial fingerprints (not images, but measurements) of every single person entering the stadium for the Superbowl in 2001,  it can be used to crack a stupid captcha image.</p>
<p>The problem is that you are focusing on each individual captcha that you are cracking, and engineering a crack based on that particular image.  So what?  Any green-horn should be able to do that, and if they can&#8217;t should not even be trying.  Why wouldn&#8217;t you push toward designing a program to read ANY image captcha that it encounters?  You may have to put aside your trusty old Matlab for that one, and no, I won&#8217;t send you any code.</p>
<p>The rant about a administrator approving each and every attempt to register a user is about as brute force of a solution as I can think of.  There are effective captchas out there, some of which I have written that have never been cracked a single time and have been up on forums, guestbooks, blogs, etc&#8230; for years with thousands of visitors a day.  Don&#8217;t claim that you have accomplished something because you have cracked phpBB&#8217;s image captcha, which, by the way, is not cracking anything at all, since it is open source to begin with.</p>
<p>Maybe you should submit your solution &#8220;entering two letter q&#8217;s&#8221; to open source forums so they can benefit from this knowledge.</p>
<p>If I was an asshole, I&#8217;d redirect the spam traffic that I get on all the websites I&#8217;ve written and maintain to here; they&#8217;d have you cracked in a day or so and fill you up so full of crap you&#8217;d actually have some content on the site.  </p>
<p>Sorry if I sound mean, I actually spit out my coffee when I read the letter &#8216;q&#8217; thing because I was laughing so hard.  You made my day man.  Thanks.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
