sixserv blog

welcome to teh #sixserv!

Archive for September, 2008

Captchas

mit 2 Kommentaren


Captchas, diese kleinen Bilder als Zugriffsbeschränkung, die verunstaltete Buchstaben mit teils zufälligen Hintergründen darstellen. Erst nach abtippen der Richtigen Buchstaben wird man als Mensch klassifiziert und man darf Formulare Senden oder den vor Software-Robotern(Bots) geschützten Bereich betreten. CAPTCHAS: Completely Automated Public Turing test to tell Computers and Humans Apart. Ein verdrehter Turing Test, ein Mechanismus der Voraussetzt das Menschen den Text lesen können und Computer nicht.

Doch Captchas sind lohnend. Es existiert ein richter Markt für das Erkennen von Captchas, die Spammer und andere zweifelhafte Gestalten zahlen zwischen $0.70 und $1.00 je 1000 erkannten Captcha. Doch längst gibt es nicht mehr nur Text-based-Captchas, von Audio-Captchas die verrauscht einzelne Buchstaben aufsagen, bis hin zu Rechenaufgaben die es zu lösen gilt oder das finden der Frau/Mann auf einem Bild:

Kreativer-Captcha: Wie heisst der Mann auf dem Bild?

Kreativer-Captcha: Wie heißt der Mann auf dem Bild?

Rechenaufgaben als Captcha

Rechenaufgaben als Captcha

Diese kreativen Captchas haben den Vorteil das erst jemand ein gezielten Angriff schreiben müsste, dann jedoch offenbart sich nach kurzen überlegen die Schwachstellen, die Rechenaufgabe ist einfach per OCR zu erkennen, und war nicht Google ein hervorragender Taschenrechner? Auch die Bilder der Personen-Konturen offenbaren dummerweise nach einigen Reloaden immerwieder die exakt gleichen Konturen, und auch hier ist die Schrift einfach zu erkennen. Die Frage ob ein Captcha sicher ist oder nicht kann nicht so leicht beantwortet werden. Mit genügend Motivation und Technischer Finesse kann sogut wie alles gelöst werden. Dabei reicht eine Erkennungsrate von 10% völlig aus, bei 1000 abgesetzten Spam-Versuchen kommen so immer noch 100 durch. Klassisch läuft ein Angriff auf ein Captcha in 3 Phasen:

  1. Vorverarbeiten des Bildes, entfernen von Hintergrundbilder, Kontrast erhöhen, etc.

  2. Segmentation: Die Buchstaben werden voneinander getrennt.

  3. Recognizion: Jeder Buchstabe wird per OCR erkannt.

Mittlerweile haben wir überaus fortschrittliche OCR-Software zur Verfügung, die freie alternative gocr usw. Einige wie z.B. Finereader erlauben zudem das antrainieren einer bestimmten Schriftsorte, perfekt für ein erkennen von Captchas. Moderne Captchas setzen deshalb bereits eine Stufe früher an. Das Schwierigste ist nämlich die Segementation, wo ein Mensch nicht die geringsten Probleme hat Buchstaben voneinander zutrennen, ist diese Aufgabe für den Computer fast unmöglich. Deshalb setzen gute Captchas daran das Segementieren möglichst Schwierig zu gestalten:

Segmentierung fast unmöglich

Segmentierung fast unmöglich

Der Strich verbindet die Buchstaben und macht Segementierung sogut wie unmöglich

Ein Strich verbindet die Buchstaben und macht die Segmentierung schwer

Teilweise werden auch neue Schriftarten kreiert die nur dem Captcha Generator zur Verfügung stehen um OCR-Software zu überfordern. Captchas sind seit langem Forschungsgegenstand, es gibt einige Papers die neue Algorthmen und Möglichkeiten beschreiben Captchas zu entschlüsseln oder die Zeichen zu segmentieren. Genauso wie es Aufsätze über das Erstellen von besonders sicheren Captchas gibt.

Eine weitere Möglichkeit Captchas zu entschlüsseln ist sie auf eigenen Seiten unterzubringen. Diese Relay-Attacke bindet das Captcha einer Fremden Seite auf einer eigenen Seite ein wo Besucher das entschlüsseln des Captchas übernehmen. Es gibt keine Möglichkeit diesen Angriff wirkungsvoll zu verhindern.

Geschrieben von apoc

27. September 2008 @ 17:20

Posted in web

Tagged with , , ,

opengl-background unter compiz

mit 3 Kommentaren


eine weitere nette spielerei fuer menschen mit zu viel ressourcen :D

ich hab sie nicht aber das ganze laeuft auch auf einem 700Mhz Duron fluessig.

ihr benoetigt “xscreensaver” (und auch das paket “fireflies” falls ihr es wie auf den screenshots haben wollt, wobei sich “pong” auch ganz gut macht) und “xwinwrap” (xwinwrap does teh magic)

nks@hydra ~ $ nice -n 15 /usr/bin/xwinwrap -ni -argb -fs -s -st -sp -b -nf — /usr/lib/misc/xscreensaver/fireflies -window-id WID

das ganze sieht dann so aus:

fuer mehr infos:

man kann neben xscreensaver auch videos als hintergrund laufen lassen

nks

Geschrieben von nks

19. September 2008 @ 17:53

software-kvm mit synergy

ohne Kommentare


mir ist gestern die fernbedienung meiner sourround-anlage auf den boden gefallen - jetzt ist sie unbrauchbar. also dachte ich mir: “hey, mach doch den eee-pc zu deiner neuen fernbedienung!”.

also wenn ich im bett liege und die lautstaerke regeln will, schnell per ssh auf den rechner verbinden und alsamixer nutzen. aber dafuer is der eee ja schon bisl overkill. dann erinnerte ich mich an meine experimente vor einem jahr die beiden desktop-pcs miteinander zu verbinden.

ich hatte es auch mit synergy versucht, aber es war ziemlich buggy. aber die neue version laeuft wesentlich stabiler. also schnell auf allen 3 boxen synergy gemerged und ab an die config:

# nks’s synergy configuration file
# eeerr0r is the synergy-server
# infected and hydra are the clients

section: screens
infected:
hydra:
eeerr0r:
end

section: links
# larry is to the right of moe and curly is above moe
infected:
right = eeerr0r
eeerr0r:
left = infected
right = hydra
hydra:
left = eeerr0r
end
section: aliases
infected:
192.168.178.30
hydra:
192.168.178.32
eeerr0r:
192.168.178.25
end

das ganze dann auf dem system welches tastatur und maus bereitstellen soll unter “/etc/synergy.conf”
und dann ab in die shell:

nks@eeerr0r ~ $ synergys -f –config /etc/synergy.conf

nks@infected ~ $ synergyc -f eeerr0r

nks@hydra ~ $ synergyc -f eeerr0r

und schon kann ich vom eee-pc aus beide rechner kvm-style fernsteuern :D
das ganze funktioniert auch unter windows und mac os.

besonders schoen is das ganze in kombination mit compiz weil man dann vom bett/anywhere aus ranzoomen kann :D

informationen & links:

ps: apoc ich werd das mit dem gross/klein-schreiben ueberarbeiten :D

pps: chase & status releasen demnaechst ihr neues album, zwar ziemlich die uk-kommerz schiene, aber “hurt you” und “pieces” laufen atm ja fast in jedem set, also man kann gespannt sein (wobei “hurt you” auch auf dem neuem album ist)

ppps: ich hatte damals auch mit xdmx rumexperimentiert, hehe.. vll. probier ich demnaechst auch wieder etwas damit rum, allerdings mit compiz etwas zu lahm, in kombination mit chromium funktioniert es vll besser.

nks

Geschrieben von nks

19. September 2008 @ 16:54

Posted in linux

Tagged with , , , , , ,

Rbot Remote

ohne Kommentare


Ich setze schon lange den grandiosen IRC-Bot “rbot” ein. Ein überaus vielseitiger und einfach zu erweiternder Bot, der dazu auch noch in meiner lieblings Script-Sprache Ruby geschrieben ist. Vielleicht komme ich dazu einige meiner Plugins, die ich für ihn geschrieben habe, hier zu Veröffentlichen.

Eines der Features von rbot welches ich erst kürzlich entdeckt habe und was absolut genial ist, ist das Rbot Remote Interface. Per Default hört der Bot nämlich auf Port 7268(127.0.0.1) und stellt dort ein DRb(Distributed Ruby) Interface zur Verfügung. Dieses erlaubt es von Außen den Bot zu steuern und beispielsweise Funktionen eines Plugins auszuführen. RbotRemote kann z.B. dazu genutzt werden bei neuen SVN-Commits im RSS Plugin das Updaten eines Commit-Feeds zu starten. Denkbar ist dies natürlich auch für neue Blog-Posts innerhalb von Wordpress etc.

Da DRb logischerweise nur für Ruby zur Verfügung steht muss bspw. eine PHP-Webapplikation ein Ruby-Skript starten welches die gewünschte Aktionen am rbot auslöst. Hier als Beispiel-Skript wird eine Nachricht an #sixserv(btw: im Freenode) gesendet:

#!/usr/bin/ruby
 
require 'drb'
 
rbot = DRbObject.new_with_uri("druby://localhost:7268")
id = rbot.delegate(nil, "remote login owner [Owner/Auth Passwort]")[:return]
rbot.delegate(id, "dispatch say #sixserv Hallo Welt!")

In /bin/rbot-remote gibt es ein ähnliches, etwas komplexeres Beispiel welches die Eingaben von stdin erwartet.

Eine weitere Möglichkeit ist wie schon erwähnt eine Methode eines Plugins zu starten. Hier ein ganz einfaches rbot-Plugin:

class SimplePlugin < Plugin
  def sayfoo(m, params)
    @bot.say '#sixserv', 'foo'
    if params.has_key?(:bar) then
      @bot.say '#sixserv', params[:bar]
    end
  end
end
 
plugin = SimplePlugin.new
plugin.map 'sayfoo'
plugin.map 'sayfoo :bar'

Wird die Methode extern aufgerufen kann man natürlich kein m.reply verwenden, wenn die Nachricht im Channel landen soll, ich habe das hier ganz einfach gelöst indem ich den Channel fest eingebunden habe. Hier noch das Skript welches sayfoo mit Parameter aufruft:

#!/usr/bin/ruby
 
require 'drb'
 
rbot = DRbObject.new_with_uri("druby://localhost:7268")
id = rbot.delegate(nil, "remote login owner [Owner/Auth Passwort]")[:return]
rbot.delegate(id, "dispatch sayfoo bar")

Geschrieben von apoc

15. September 2008 @ 23:14

Posted in rbot, ruby

Tagged with , , , , ,

Corporate Blogging mit User-Subdomains

mit einem Kommentar


Das Sixserv Blog ist ein Multiuser-Blog(d.h. Mehrere Autoren verfassen Artikel), unter der Hauptdomain(sixserv.org) sollten alle Artikel angezeigt werden. Wir wollten allerdings zusätzliche Subdomains(z.B. apoc.sixserv.org) die die Artikel des jeweiligen Autors anzeigt. Besonders wichtig dabei war das es möglich ist pro Subdomain unterschiedliche Themes zu verwenden.
Als Grundlage für dieses Vorhaben verwendete ich das Wordpress-Plugin Domain-Mirror von Dave McAleavy. Ich ergänzte es um die Möglichkeit pro Domain einen Benutzer sowie Theme eingeben zu können: Weiterlesen »

Geschrieben von apoc

2. September 2008 @ 02:44

Posted in coding, meta, php, wordpress

Tagged with , , ,

WPA_Supplicant für Windows

ohne Kommentare


Gestern stand ich vor dem Problem ein neues WLAN-Netzwerk unter Windows XP einzurichten, soweit ja kein Problem werdet ihr sagen, allerdings wurde vorher das unsichere WEP eingesetzt und eine der verwendeten WLAN-PCMCIA Karten unterstützt kein WPA. Dazu kommt noch das der letzte Treiber von 2004 ist. Es handelt sich um eine “Acer WLAN 11g PCMCIA(wlan-g-pc2)”.

Gelöst habe ich das Problem letztendlich mit wpa_supplicant für Windows, welches nach einigen Testen auch durchaus stabil läuft. Das ganze wirkt schon ein wenig abenteuerlich(Winpcap wird z.B. benötigt um an die Pakete und das Interface zu gelangen), allerdings ist es schnell eingerichtet(läuft über die gleiche wpa_supplicant.conf wie unter Linux) und unterstützt dann auch tatsächlich alle Protokolle die Supplicant unterstützt.
Zusätzlich gibt es eine spezielle Version(wpasvc.exe) die man als Dienst(Service) registrieren kann. Nachteil ist allerdings das sie ihre Konfiguration aus der Registry bezieht, was wie bekannt ein wenig umständlich ist.

Trotzdem ist es eine wunderbare Möglichkeit ältere WLAN-Adapter unter Windows für WPA Fit zu machen.

Geschrieben von apoc

1. September 2008 @ 19:39

Posted in windows

Tagged with , , , ,