Captcha, web sitelerine kayıt sırasında veya girişte, isteği gönderenin gerçekten bir insan mı yoksa zararlı bir yazılım mı olduğunu tespit etmek için kullanılan programlara denir. Captcha kelimesi ingilizce “Completely Automated Public Turing test to tell Computers and Humans Apart” tanımlamasının baş harfleri kullanılarak ortaya çıkmıştır. Captcha kullanımı, bozulmuş yazıların insanlar tarafından okunabildiği halde zararlı yazılımlar tarafından okunamadığı varsayımına dayanmaktadır [1].
Aşağıdaki örnekte gösterilen resimler captcha programları tarafından üretilmiştir:
captcha.png
captcha2.jpeg
Kullanıcı web sitesine kayıt olurken veya web sitesine giriş yaparken, yukarıda belirtilen resimlerde yer alan yazıyı girmesi istenmektedir. Bu şekilde, istek gönderenin gerçekten bir insan mı yoksa bir yazılım mı olduğu tespit edilir.
Captcha programlarının kullanıldığı bazı alanlar şu şekilde sıralanabilir:
Web sitelerine kayıt olurken veya giriş yaparken isteği gönderenin insan mı yoksa yazılım mı olduğunu belirlemek
Blog’larda spam mesajların girilmesini engellemek
Herhangi bir alanda şifre girilmesi gereken alanlara sözlük (dictionary) veya kabakuvvet (brute force) saldırılarını engellemek
E-postalarla gelen virüsleri ve spam'leri engellemek
Captcha programı yazanlar, oluşturulan Captcha’nın kırılamamasını sağlamaya çalışırlar. Ancak kırılamaz gibi görünse de, görüntü işleme tekniklerinin gelişmesinden dolayı, bazı captcha çeşitleri oldukça kolay bir şekilde kırılabilmektedir. Dünyaca ünlü bazı web sitelerinin kullandığı ve kompleks captcha çeşitlerinden bazıları aşağıda verilmiştir. Ayrıca bu captcha çeşitlerinin kırılabilme ihtimali de verilmiştir. Verilen ihtimaller captcha yazılımlarını test eden uzmanlara sorularak hesaplanmıştır
Web sitelerinin kötüye kullanılmasını engellemek için Captcha kullanılması tavsiye edilmektedir. Günümüzde üretilen pek çok Captcha uygulaması bulunmaktadır. Captcha kullanılırken şu özelliklere dikkat edilmesi gerekir [3]:
Captcha’nın Anlaşılabilir Olması: Captcha’nın kullanıcılar tarafından görülebilecek ve anlaşılabilecek bir şekilde oluşturulması gerekmektedir. Görme engelli insanlar için captcha’nın seslendirilmesi için gerekli programlar da kullanılmalıdır.
Resimlerin Yeterince Bozulması: Günümüzde görüntü tanıma ve metin tanıma (image recognition, text recognition) teknikleri oldukça gelişmiştir. Bu teknikler kullanılarak yeterince bozulmaya uğratılmamış captcha’da yer alan yazılar tespit edilebilir. Bunu engellemek için capctca’nın yeterince bozulmasını sağlayacak algoritmanın tanımlanması gerekir.