Mittwoch, 21. März 2012

Neues zur captcha-Diskussion

Über Sinn und Unsinn von captchas gibt es seit längerem Diskussion, die hier nicht aufgewärmt werden sollen. Es gibt neue, interessante Informationen zu diesem Thema

Angeregt von einem Hinweis in einem XING-Forum (Webdesign und Usability), führt die Recherche zu einem aktuellen Aufsatz von Troy Hunt:

http://www.troyhunt.com/2012/01/breaking-captcha-with-automated-humans.html

Dieser setzt sich extrem intensiv mit dem kommerziellen Angebot von  KolotiBablo.com auseinander. Dort arbeiten tatsächlich CAPTCHA crackers, die für cent-Preise anbieten, große Mengen von captchas auszulesen. Interessant also für spammer - statt mit Cracking-Tools zu arbeiten, die nur Erfolgsquoten von 50-60 % haben, nimmt man diesen Dienst in Anspruch, wo wirklich "Humans" die Captchas auslesen - mit entsprechend hoher Erfolgsqute.
Antigate's welcome screen




Das Teamfoto, das in der Werbung gezeigt wird, dürfte natürlich nur ein Stockfoto einer Agentur sein. Aber die Firma arbeitet wirklich, und der Autor obigen Aufsatzes hat das ganze getestet.



Dort gibt es sogar eine Börse, einen Marktplatz, wo weitere Dienste angeboten werden.


Das ganze funktioniert am besten, wenn man ein selbst erstelltes, automatisiertes Programm benutzt, um das Problem zu umgehen, dass nach dem ersten Seitenaufruf schon 1 captcha verbraucht ist. Der Autor deckt hier die ganzen Mechanismen auf, wie man captcha funktionieren und wie Cracker arbeiten.

Options for consuming Antigate's service
Antigate's welcome screen


  1. Send the CAPTCHA and API key via an HTTP POST request
  2. A response is returned with an ID
  3. Wait 10 seconds then send the ID back in another request
  4. A response with either the resolved text or a “not ready” status is sent back
  5. If it’s not ready, wait 5 seconds then ask for the status again (rinse, lather, repeat)

 


Obiges Beispiel ist wie folgt eingebettet:


<script type="text/javascript">
  var RecaptchaOptions = { "theme": "Red", "lang": "en", "tabindex": 0 };
</script>
<script src="http://www.google.com/recaptcha/api/challenge?
  k=6Le2hMwSAAAAAPhhj00SFHjaniz3zLnV0nDLThq9"
  type="text/javascript"></script>
<noscript>
  <iframe frameborder="0" height="300px" 
    src="http://www.google.com/recaptcha/api/noscript?
    k=6Le2hMwSAAAAAPhhj00SFHjaniz3zLnV0nDLThq9" width="500px"></iframe>
  <br />
  <br />
  <textarea cols="40" name="recaptcha_challenge_field" rows="3"></textarea>
  <input name="recaptcha_response_field" type="hidden" 
    value="manual_challenge" />
</noscript>

Dann liest der Autor den noscript Bereich aus, das ist das, was der Browser zeigt, wenn kein Javascript eingeschaltet ist. Das erspart viel Umstände, wie der Autor erklärt.

Er stieß dann auf das Wichtigste, ein kleiner iframe, wo das Bild eingebettet ist; hier im Beispiel: http://www.google.com/recaptcha/api/noscript?k=6Le2hMwSAAAAAPhhj00SFHjaniz3zLnV0nDLThq9

Diese Seite rendert nur eine sehr einfach Captcha-implementation, was notwendig ist, wenn der User kein Javascript benutzt.

CAPTCHA contents of the iframe embedded in a form

Liest man den Quelltext mit dem aufrufenden Skript bzw. Programm automatisiert aus, dann ist kein refresh notwendig, und das Skript entdeckt die entscheidende URL für das Ersatzcaptcha:

<img width="300" height="57" alt="" src="image?
c=03AHJ_VusH0z9XlyEjm8c2Qm6sl9DhDD_fWq7R-tpRlwhF0KeLy2m8nZBM-
T7AOpGn6UCLd0M7fITJZ2RJ0pgHVt2PrchJwp3VoaKwcJMAK7_BhQdxIPidUT5-
nAUIF7GRDD3vrjs2CXLfw7byQMJa9gDNy9CSvhiSuw">

Das wird  dann an Antigate gesandt

http://www.google.com/recaptcha/api/image?c=03AHJ_VusH0z9XlyEjm8c2Qm6sl9DhDD_fWq7R-tpRlwhF0KeLy2m8nZBM-T7AOpGn6UCLd0M7fITJZ2RJ0pgHVt2PrchJwp3VoaKwcJMAK7_BhQdxIPidUT5-nAUIF7GRDD3vrjs2CXLfw7byQMJa9gDNy9CSvhiSuw
Wie er sich dann einen CAPTCHA cracker baut, der auf dieser Erkenntnis basiert, ist immer noch spannend; ich zeige hier nur ein paar Screenshots. Übrigens: Die Firma bietet als Hilfe ein kleines Cplusplus-Skript an, der Autor hatte sich aber selbst eines gestrickt, mit folgendem Konzept:


Sequnce diagram of how CAPTCHA will be circumvented

Purchasing refills for the Antigate service

Umgerechnet 96 US-cents to break 1,000 CAPTCHAS. Das ist o.k.

Avangate's purchase page

Nächster Schritt ist die Paypal-Zahlung

Receipt for purchasing $1 worth of Antigate CAPTCHA cracking
A short while later and the code is conveniently delivered via email:
Activation key for th Antigate service

Running the CAPTCHA cracker

Log entry after automating the registration
New user registration in the database30 instances of the CAPTCHA cracker running simultaneously

CAPTCHAs cracked per minute (30 threads)
Zitat: A total of 1,230 CAPTCHAs were sent off to Antigate and only 77 were not solved correctly hence causing the registration process to fail. That’s a 94% success rate:

Success rate of CAPTCHAs solved

Natürlich reißt der Autor auch die Frage der moralischen Legalität an. Außerdem weist er darauf hin, dass es auch andere Dienste gibt, als nur Antigate.

Noch ein paar interessante Schnipsel aus den Kommentaren zu dem Artikel auf WTF


Übrigens: Laut einer Hochrechnung der Carnegie Mellon University aus dem Jahre 2004 verbrachten damals die Internetnutzer weltweit pro Tag 150.000 Stunden damit, CAPTCHAs zu lösen. Wieviel werden es wohl 2012 sein?

  © Blogger template 'Fly Away' by Ourblogtemplates.com 2008

Back to TOP