CAPTCHA, bozuk metin içeren bir resim veya sitede robot olmadığınızı kontrol eden küçük bir görevdir. Otomatik olarak oluşturulmaktadır. Böylece bot testi geçemez, ama kişi geçebilmektedir.
Adı, “Completely Automated Public Turing Test To Tell Computers and Humans Apart” İngilizce cümlesinin kısaltmasıdır. Kabaca “bilgisayarları insanlardan ayırmak için tam otomatik bir Turing testi” olarak çevrilebilmektedir. Bu ad çok uzun olduğundan “captcha” olarak kısaltılmıştır.
Turing testi, yalnızca düşünen bir varlığın geçebileceği bir testtir. İngiliz matematikçi Alan Turing tarafından icat edilmiştir. Aşağıda test hakkında daha fazla ayrıntıya gireceğiz.
Neden bir captcha’ya ihtiyacınız vardır?
İşlemi kimin gerçekleştirmeye çalıştığını belirlemek için Captcha gereklidir. Bir kişi veya bir robot mu olduğunu anlamaya da yaramaktadır. Geçmeden şu veya bu eylemi gerçekleştiremezsiniz. Siteye girin, giriş yapın, yorum bırakın. Görev genellikle bir insan için oldukça basit ve bir robot için neredeyse imkansızdır. Neden botları ayıklıyoruz? Bunun birkaç sebebi vardır;
- Saldırganlar Botlar, web sitelerinde farklı saldırı türleri için kullanılabilmektedir. Her şeyden önce, bunlar DDoS saldırılarıdır. Sunucuyu aşırı yükleyen otomatik toplu isteklerdir. Bir de kaba kuvvet vardır. Ayrıca farklı seçenekleri neredeyse hiç durmadan deneyen bir robot kullanarak kullanıcı adı ve parola seçimi yapılmalıdır;
- İstenmeyen e-postaları ayırt etmek için gereklidir. Bir bot için yaygın bir kullanım durumu, faydalı içeriğe müdahale eden “çöp” tanıtım mesajları göndermektir;
- Sahtekar. Örneğin, çevrimiçi mağazalar bazen sınırlı süreli “Satın almak için acele edin” promosyonları yürütmektedir. Bu nedenle de robotlar bu tür teklifleri izleyerek tüm promosyon ürünlerini birkaç saniye içinde satın alabilmektedir.
Arama motorları gibi zarar vermeyen robotlar da vardır. Kendinizi onlardan captcha ile korumanıza gerek yoktur. Ayrıca potansiyel olarak tehlikeli eylemler gerçekleştirmezler.
captcha’yı kim kullanmaktadır?
Captcha kullanımı, site sahipleri veya bakımını yapan uzmanlar tarafından belirlenmektedir. Gerekli olup olmadığı, kaynağın amaç ve hedeflerine bağlıdır. Ayrıca sahiplerinin yeteneklerine de bağlıdır. Örneğin;
- Captcha, kullanıcıların canlı bir şekilde iletişim kurduğu kaynaklar hakkında yorumlar yayınlayacak şekilde ayarlanmıştır;
- Kullanıcının saldırıya uğramadığından emin olmak için oturum açarken veya bir ürün satın almaya çalışırken captcha görünebilmektedir;
- Bazı hizmetler, kullanıcının etkinliği kendilerine şüpheli görünüyorsa bir güvenlik kodu girmeyi teklif etmektedir. Bazen, örneğin bir VPN veya bir şifre girerken bir yazım hatası nedeniyle yanlışlıkla çalışmaktalardır.
Ticari siteler, kendilerini bir robot kullanarak sayfalardan veri okumaya karşı korumak için captcha yükleyebilmektedir. Ancak bu genellikle işe yaramamaktadır. Ayrıca bu sistem nadiren de olsa, doğrudan zarara neden olmaktadır. Yalnızca dolaylı olarak rakiplerin bilgi toplamasına yardımcı olmaktadır.
Bir captcha nasıl görünebilmektedir?
Yaygın bir seçenek, harflerin, sözcüklerin veya sayıların bir kombinasyonunu gösteren bir resimdir. Testi geçmek için yazılanları ayrıştırmanız ve sonucu özel bir alana girmeniz gerekir. Ancak bu tek tip değildir. Buna ek olarak farklı olanları da vardır. Bunlar;
- Bir kişinin açık bir şekilde cevaplayabileceği basit sorulardır. Örneğin, “Einstain’in adı neydi?”;
- Çözülecek matematiksel örnekler ve girilecek sonuç;
- “Kırmızı düğmeye tıklayın” veya “Yapbozu birleştirin” gibi mini oyunlar;
- Listeden doğru seçeneklerin seçilmesi – genellikle bunlar “Tüm resimleri trafik ışıklarıyla belirtin” biçimindeki görevlerdir.
- Son örnek, popüler Google reCAPCHA hizmetinde aktif olarak kullanılmaktadır. Harfleri birleştirme gibi geleneksel yöntemlere göre oldukça güvenilir kabul edilmektedir.
Bu kapsamlı bir liste değildir. Birçok captcha seçeneği vardır. Ayrıca belirli yürütme yalnızca yaratıcılarının hayal gücüne bağlıdır. Kullanıcı etkinliği hakkında sonuçlar çıkaran görünmez bir captcha bile vardır. Google bunu kullanmaktadır.
Captcha fikri: Turing testi
Bir captcha çözmek bir insan için kolay, ilkel bir robotun çözmesi imkansız bir iştir. Fikir birkaç on yıl önce Turing testinin bir uygulaması olarak ortaya çıkmıştır.
Alan Turing, bir yaratığın düşünüp düşünemeyeceğini belirlemek için ampirik bir test yapmıştır. Klasik test şu şekilde düzenlenmiştir: Bir kişinin iki görünmez muhatabı vardır. Birincisi bir makine ve diğeri başka bir kişidir. Hangisinin robot olduğunu doğru bir şekilde belirleyemezse, makine düşünme yeteneğine sahiptir. Daha sonra, testin daha birçok varyasyonu oluşturulmuştur. Captcha da bunlardan biri ama onu kontrol eden soyut bir kişi değildir. Bir algoritma olarak karşımıza çıkmaktadır.
Yakın zamana kadar hiçbir makine Turing testini geçememiştir. Son zamanlarda, Google’ın LaMDA yapay zekası başarılı olmuştur. Ayrıca GPT-3 ve DALL-E 2 sinir ağlarının bazı çizimleri artık insan çizimlerinden ayırt edilememektedir. Ancak bu, düşünebilecekleri anlamına gelmemektedir. Testi geçmenin düşünmenin varlığını değildir. Onu taklit etme yeteneğini gösterdiği zaten kanıtlanmıştır.
Güvenlik kodu nasıl çalışmaktadır?
Captcha, otomatikleştirilmiş ve herkese açık ilkel bir Turing testidir. Görevi ziyaretçiye gösteren ve ardından gönderilen yanıtı okuyan bir algoritmaya dayanmaktadır. Sorular ve görevler farklı şekillerde uygulanmaktadır. Bazen kişinin kendisi onlarla gelmektedir. Bu durum çoğu zaman bilmeceler, soruların cevapları ve matematiksel örneklerle seçenekler yaratırlar. Ancak çoğu captcha sorunu otomatik olarak oluşturulmaktadır. Görüntü, oluşturulan yanıt temelinde de oluşturulmaktadır. Otomatik olarak da bozulmaktadır. Gürültü eklenebilmekte ve tüm bunlar bir bilgisayar tarafından yapılabilmektedir.
Captcha geçilene kadar, algoritma ziyaretçinin belirli bir eylemi gerçekleştirmesine izin vermez. Genellikle yanlış cevabı bildirmekte ve kullanıcıya görevi tekrar vermektedir. Ancak tamamlandığında erişim izni verilmektedir.
Bazı modern captcha değişkenleri akıllıdır. Kullanıcı doğal davranıyorsa açılmazlar ve yalnızca şüpheli etkinlik olduğunda çalışırlar. Örneğin, bir ziyaretçi çok fazla mesaj göndermektedir. İçeriği çok aktif bir şekilde indirilmektedir. Bu nedenle VPN veya anonim mod aracılığıyla erişilmektedir.
Bir robot captcha’yı atlayabilir mi?
Captcha “güçlü” veya “zayıf” olabilmektedir. Robotlar için “zayıf” bir captcha’yı geçmek kolaydır. Ayrıca “güçlü” bir captcha’yı geçmek neredeyse imkansızdır. Bununla birlikte genellikle başka bir dezavantajı daha vardır. İnsanların içinden geçmesini zorlaştırmaktadır.
Tanıma. Teknolojiler gelişiyor ve modern robotlar, karakterlerin zıt bir arka plana yerleştirildiği ve fazla bozulmadığı kolay bir captcha’yı kolayca geçebilmektedir. Bu nedenle, giderek daha karmaşık algoritmalar ve görevler kullanılmaktadır.
Captcha tanıma için özel hizmetler bile vardır. Ancak bunları kullanmanızı önermiyoruz: normal kullanıcılar için bu gereksizdir. Ek olarak, genellikle belirli bir captcha “türü” için tasarlanırlar. Bazen captcha’ları tanımak için sinir ağları ve bilgisayar görüşü kullanılabilmektedir.
Öbür metodlar. Bir soru ve cevap bir kişi tarafından icat edildiyse, er ya da geç robotların veritabanlarında görünebilirler ve basitçe veritabanından gelen bilgilere göre captcha’yı geçirebilirler. Aynı zamanda captcha’ların güvenlik açıkları vardır. Örneğin, sayfadaki resmin tam adında bulunan cevaptır. Robot bunu fark edebilmekte ve içine girebilmektedir. Böyle bir captcha aslında işlevsel değildir.
Daha karmaşık yöntemler de vardır. Örneğin, captcha’yı canlı bir kullanıcıya yönlendiren ve ardından onun girdiğini okuyan viral botlardır. Kullanıcı hiçbir şeyden şüphelenmeyebilir bile. Ancak bu daha az yaygındır.
Captcha’yı robotlardan nasıl korursunuz?
Birkaç yol vardır. Daha güçlü algoritmalar kullanın veya spam göndericilere ve saldırılara karşı alternatif koruma türleri kullanın.
Daha güçlü algoritmalar, ayrıştırılması zor sembollere sahip standart bir metin captcha veya başka bir görev türüdür. Örneğin, belirli türdeki görüntüleri tanıyan reCAPTCHA’nın oldukça etkili olduğu kabul edilmektedir. Tüm botlar bunları ayırt edecek kadar eğitilmemiştir.
Karakterleri güçlü bir şekilde bozan bir captcha kullanmak da mümkündür. Ancak bu durum özellikle görme yeteneği zayıf veya nörolojik engelleri olan kullanıcılar için elverişsizdir. Saldırılara karşı özel güvenlik duvarları gibi alternatif koruma türlerinden biraz sonra bahsedeceğiz.
Captcha’nın faydaları
Basit. Bir web sitesine captcha yüklemek oldukça hızlı ve kolaydır. İnternette farklı türde görevler sunan düzinelerce eklenti vardır. Aynı zamanda, bazılarını robotların atlaması oldukça zordur.
Konforlu. Genellikle captcha hizmetleri CMS’ye entegre edilmektedir. Ayrıca site sahibi bunları doğrudan yönetim panelinden yönetebilmektedir.
Ucuz. Bu site uzantılarından bazıları ücretsiz, diğerleri ucuzdur. Ayrıca kesinlikle diğer güvenlik önlemlerinden daha ucuzdur. Ek olarak, bir geliştirici her zaman kendi algoritmasını oluşturabilmektedir. Bunların nasıl çalıştığına ilişkin makaleler çevrimiçi olarak kamu malı olarak mevcuttur.
Verimli. Elbette, karmaşık bir captcha’yı bile atlayabilen gelişmiş robotlar vardır. Ancak en basit botların çoğuna karşı koruma sağlayacaktır. Özellikle iyi bir koruma seviyesine sahip bir seçenek seçerseniz.
Dezavantajları
Kullanıcı rahatsızlığı. Kullanıcılar özellikle çok sık görünüyorsa, rahatsız olabilmektedir. Bilgi siteleri için bu o kadar kritik değildir. Ancak ticari olanlar için önemlidir. Bir kişi ayrılabilir ve neredeyse verdiği bir siparişi veremez. Sonuç olarak, şirket bir müşteriyi kaybedebilmektedir. Ek olarak, davranışsal faktörler düşünmektedir. İnsanlar captcha’da zaman geçirmek istemedikleri için herhangi bir işlem yapmamaktadır.
Erişilebilirlik sorunları. Belirli bir kullanıcı kategorisi, captcha’yı tanımayı zorlaştıran sağlık özelliklerine sahip olabilmektedir. Bu durum zayıf görme, çeşitli nörolojik bozukluklar ve diğer durumları içerebilmektedir. Bu tür kullanıcıları göz önünde bulundurarak bir kaynak oluşturuyorsanız, alternatif seçenekleri göz önünde bulundurmalısınız.
Hız üzerindeki etkisi. Bir sayfayı captcha ile yüklemek, onsuz olduğundan daha fazla zaman almaktadır. Bu nedenle, kontrol edilen sayfalar daha yavaş yüklenmektedir. Yükleme hızı ise, kritik bir parametredir. Hem kullanıcı davranışını, hem de arama motorlarının tutumunu etkilemektedir.
Kırılganlık Geçmişte popüler olan phpBB veya vBulletin gibi bazı captcha türleri artık savunmasız kabul edilmektedir. Bu nedenle robotlara karşı koruma sağlayamamaktadırlar. Ayrıca daha modern algoritmalar için bile geçici çözümler vardır. Ancak çok daha küçüktürler.
Captcha’nın yerini ne alabilmektedir?
Bazı kişiler bir yöntem olarak modası geçmiş olduğuna inanmaktadır. Bu durum daha düşünceli ve gelişmiş robotlar olarak da ortaya çıkmaktadır. Gerçekten de artık teorik olarak program iyi korunan captcha algoritmalarının bile üstesinden gelebilmektedir. Ancak bu durum, captcha’nın tamamen işe yaramaz olduğu anlamına gelmemektedir. Yine de botların çoğunu kesmeye yardımcı olan kullanışlı ve iddiasız bir yöntemdir. Basitçe, sitenin korunmasıyla ilgileniyorsanız, captcha diğer yöntemlerle birleştirilmelidir. Bunlar şunlar olabilmektedir;
- Güvenlik duvarları – kötü amaçlı veya şüpheli trafiğe izin vermezler;
- Spam filtreleri – spam’i tanıyan ve engelleyen özel uzantılar;
- Daha karmaşık hesap girişi – örneğin, tek seferlik kodlar veya bir telefon numarası aracılığıyla iki faktörlü kimlik doğrulama;
- Bot filtreleri – robotları önceden tanımlanmış kurallara göre izleyen programlar;
- Davetsiz misafirlere karşı koruma sağlayan hizmetler – bunlar ödenmektedir. Ancak başarılı bir şekilde filtrelenmektedir.
- Tam teşekküllü DDoS saldırıları bile onu geçemez.
Bir web sitesine captcha nasıl kurulur?
Genellikle CMS’de yerleşik olan captcha için özel eklentiler vardır. Talimatlara göre indirilip sitenin içerik yönetim sistemine kurulmaları gerekmektedir. Ardından eklentiyi yapılandırmanız. Örneğin dahil edilme modunu ayarlamanız gerekecektir. Yine bu sayede çalışacağı sayfaları belirlemeniz gerekecektir. Bundan sonra, captcha’nın normal çalışıp çalışmadığını test etmeye değecektir. Bir şeyler ters giderse, kullanıcı eylemlerinin her zaman engellenme riski vardır.
Yüklerken nelere dikkat edilmelidir?
Güvenliğinden ödün verilmemiş, ancak aynı zamanda kullanıcılar için aşağı yukarı anlaşılır kalan güvenilir algoritmalar seçmeye çalışın. Örneğin, trafik şüpheli değilse, çeşitli resimlerle reCAPTCHA veya bir düğmeye basit bir tıklama yeterli olacaktır.
Robotların sürekli geliştiğini ve captcha’nın her şeye karşı koruma sağlayamayacağını unutmayın. Ayrıca kendi benzersiz algoritmanızı oluşturmak istiyorsanız, kendiniz bir captcha üreteci geliştirebilirsiniz. Bu durumda görüntü programlamanın temellerini ve captcha’yı bir robot tarafından tanınmaktan korumaya yardımcı olan ilkeleri öğrenmeniz gerekecektir.