نگاهی به اصطلاح کپچا برای تشخیص ربات از انسان

من ربات نیستم

حتما هنگام ثبت‌نام یا ورود در سایت‌ها یا فروم‌ها، گذرتان به تصویری از کلمات کج و معوجی افتاده که باید آن را به صورت متنی بنویسید تا اجازه رفتن به مرحله بعد را داشته باشید.
کد خبر: ۸۵۷۵۷۱

احتمالا هم مواردی پیش آمده که در دل حرف درشتی هم نثار طراحش کرده‌اید که چرا این‌قدر ناجور نوشته شده است که انسان به سختی می‌تواند آن را تشخیص دهد، چه برسد به رایانه! این فناوری که با نام CAPTCHA شناخته می‌شود، دقیقا برای همین کاربرد طراحی شده است جلوی ربات‌ها (از نوع نرم‌افزاری‌اش) را در کارهای مختلف مثل ساختن اکانت یا کامنت گذاشتن بگیرد. البته CAPTCHA تنها مدل برای این کار در اینترنت نیست، اما می‌توان گفت مشهورترین است.

چه کسی کلمات مرا کج کرد؟

اصطلاح CAPTCHA مخفف جالب این کلمات:

Completely Automated Public Turing test to tell Computers and Humans Apart

به معنی آزمایش تورینگ کاملا خودکار و عمومی برای تشخیص رایانه‌ها و انسان‌ها از یکدیگر است. با این‌که این اصطلاح را چهار نفر به نام‌های ون‌آن، بلوم، هاپر و لنگ‌فورد ساخته‌اند (مخففی به این طول احتمالا حداقل چهار نفر برای ایجادش نیاز داشته است!)، اما سابقه این تصاویر به هم ریخته و به طور کلی نوشته‌هایی که توسط رایانه خوانا نباشد، به پیش از آن برمی‌گردد.

هکرها از اولین کسانی بودند که در فروم‌های مختلف، برای نوشتن درباره موضوعات حساس از نحوه نوشتن خاصی استفاده می‌کردند، زیرا حس می‌کردند این متن‌ها ممکن است تحت نظارت باشد. نمونه‌ای از این ترفند، جایگزین کردن حروف انگلیسی با کاراکترهای شبیه است، برای مثال نوشتن( )-|-|3|-| به جای HELLO و انواع دیگری از این جایگزینی‌ها. این روند بعدها به leetspeak (اعداد به جای برخی حروف) تبدیل شد که امروزه هکرها به‌خصوص در نام‌هایشان از آن استفاده می‌کنند.

در این‌که چه کسانی مخترع CAPTCHA به شکل امروزی‌اش بوده‌اند، بحث است؛ اما به نظر می‌رسد این سیستم، حاصل کار تیمی سه نفره از شرکت Altavista در سال 1997 باشد که برای جلوگیری از اضافه‌شدن آدرس‌ها به موتور جست‌وجویشان آن را طراحی کردند. ایده اصلی نمایش کلمات به این صورت، از دفترچه راهنمای یک اسکنر بود که توضیح داده بود چه تصاویری نتیجه مناسبی در OCR نخواهند داد. در آن زمان، این سیستم نام خاصی نداشته است که این باعث شده CAPTCHA به نامی که یک تیم چهارنفره از دانشگاه کارنگی ملون به آن داده‌اند، شناخته شود. البته تعریفی که این تیم از CAPTCHA دارد به صورت کلی تمام برنامه‌هایی است که می‌تواند انسان‌ها را از رایانه ها تشخیص دهد.

تشخیصی سخت برای رایانه‌ها

جالب است بدانید بر اساس تعریف CAPTCHA، الگوریتم ساخت آن باید عمومی باشد. این کار برای آن صورت می‌گیرد تا نشان دهد شکستن آن عملا یک مساله پیچیده در زمینه هوش‌‌مصنوعی به شمار می‌آید نه صرفا کشف الگوریتم پشت آن.

سیستم‌های CAPTCHA متن‌‌ـ ‌محور امروزی طوری طراحی شده ‌است تا تشخیص آنها نیاز به سه قابلیت مجزا داشته باشد:

1) تشخیص نامتغیر: قابلیت تشخیص حروف با وجود تغییرات زیاد در ظاهر آنها. انواع اشکالی از یک کاراکتر که انسان می‌تواند تشخیص دهد، تقریبا بی‌نهایت است، اما این قضیه برای رایانه‌ها صادق نیست و یاد دادن یک هوش‌مصنوعی برای تشخیص تمامی این انواع بی‌شمار، چالش بسیار بزرگی است.

2) تقسیم‌بندی یا توانایی جداسازی حروف از یکدیگر: این امر در CAPTCHAها با چسباندن حروف به همدیگر و حذف فاصله، برای رایانه‌ها بسیار مشکل است.

3) زمینه نیز از اهمیت زیادی در CAPTCHA برخوردار است: در مواردی باید کلمه به صورت کلی توسط کاربر تشخیص داده شود تا برای مثال معلوم شود کاراکتری که شبیه m است، در اصل دو کاراکتر u و n بوده است.

هریک از این مسائل به تنهایی برای رایانه یک چالش اساسی است و ترکیب هر سه آنها در طراحی CAPTCHA باعث سختی حل کردن آن می‌شود، اما برخلاف رایانه‌ها، انسان‌ها در این سه قابلیت بسیار توانا هستند. یکی از نکات جالب این است که جداسازی و تشخیص حروف برای رایانه‌ها دو عمل جداگانه به حساب می‌آید، در حالی‌که برای انسان‌ها بخشی از یک پردازش است. مثلا وقتی انسان تشخیص می‌دهد حرف اول یک d,CAPTCHA است، در همان حال حدود این حرف را نیز تشخیص می‌دهد و همچنین متوجه می‌شود این حرف در چه قسمت‌هایی با حرف بعدی ادغام شده است. علاوه بر این، ذهن انسان این قابلیت را دارد تا گزینه‌های مختلف را همزمان با هم نگه دارد تا در پایان ببیند کدام یک به کل کلمه نزدیک‌تر است و آن را انتخاب کند.

کاربرد CAPTCHAها

CAPTCHAها در بخش‌های مختلفی از اینترنت به کار می‌رود که برخی از آنها مرسوم و برخی دیگر کاربردهای جالبی است که کمتر بیان می‌شود:

ـ جلوگیری از کامنت‌های اسپم: بلاگری نیست که با کامنت‌های اسپم زیر پست‌هایش مشکل نداشته باشد. یکی از راه‌های مبارزه‌ با این نوع کامنت‌ها، مجبور کردن کاربران به ثبت‌نام است که باعث کاهش کامنت‌ها و خودسانسوری بعضی کاربران می‌شود، اما CAPTCHA گزینه‌ای مناسب برای حذف کامنت‌های اسپم در عین حفظ کامنت‌های بی‌نام یا با نام مستعار است.

ـ حفاظت در مقابل ثبت‌نام‌های رباتی: امروزه سایت‌های زیادی، سرویس‌های رایگان ارائه می‌کنند (مانند ایمیل) که بدون استفاده از CAPTCHA به این راحتی‌ها نمی‌توان جلوی ربات‌هایی را گرفت که در دقیقه هزاران ایمیل می‌سازند.

ـ جلوگیری از خواندن آدرس ایمیل‌ها: یکی از راه‌های یافتن آدرس‌های ایمیل توسط اسپمرها، درآوردن آنها از سایت‌های مختلف است که ایمیل‌ها به صورت متنی و در دسترس نوشته شده است. با بهره‌گیری از CAPTCHA می‌توان جلوی برداشتن آدرس‌های ایمیل به وسیله ربات‌ها را گرفت.

ـ نظرسنجی‌های آنلاین: شما نمی‌خواهید رقابت انسان‌ها بین دو گزینه، به رقابت میان ربات‌ها تبدیل شود. شاید برایتان جالب باشد که این اتفاق سال 1999 در یک نظرسنجی در سایت Slashdot برای انتخاب بهترین دانشکده رایانه افتاده است. بعد از این‌که دانشجویان دانشگاه کارنگی ملون راهی برای گول زدن سیستم توسط یک برنامه پیدا کردند، نظرسنجی عملا به مسابقه‌ای میان ربات‌های دانشگاه کارنگی ملون و MIT تبدیل شد که البته در پایان MIT با نزدیک صد رأی اختلاف برنده شد.

ـ جلوگیری از حملات دیکشنری: این کاربرد را ممکن است در ورود به جیمیل دیده باشید. وقتی شما رمز عبور را چند بار اشتباه وارد کنید، به شما یک CAPTCHA نشان داده می‌شود که فقط در صورت وارد کردن آن می‌توانید دوباره ورود را امتحان کنید.

ـ ربات‌های موتورهای جست‌وجو: مواقعی پیش می‌آید که یک وبسایت نمی‌خواهد توسط موتورهای جست‌وجو یا هر ربات crawler دیگری ایندکس شود. این عمل معمولا به کمک‌ تگ‌های html صورت می‌گیرد، اما تمام ربات‌ها به این تگ‌ها احترام نمی‌گذارند که در این موارد، CAPTCHA
سپر دفاعی خوبی به شمار می‌آید.

ماجرای reCAPTCHA چیست؟

امروزه در بسیاری از سایت‌ها به جای CAPTCHAهای قدیمی، پلاگین reCAPTCHA را می‌بینید. این سیستم که نوع خاصی از CAPTCHA است، توسط دو نفر از بنیانگذاران CAPTCHA و همکارانشان در دانشگاه کارنگی ملون توسعه یافت که پس از آن سال 2009 توسط گوگل خریداری شد.

هدف اصلی reCAPTCHA، دیجیتال کردن کتاب‌ها و روزنامه‌ها به کمک کاربران است. یعنی عملا کلمات اسکن‌شده به جای کلمات رندم در سیستم CAPTCHA قرار می‌گیرند. reCAPTCHA تاکنون موفق شده است تمام آرشیو روزنامه نیویورک تایمز را از سال 1851 به صورت دیجیتال دربیاورد؛ یعنی حدود 13 میلیون مقاله. علاوه‌بر این، کتاب‌های زیادی نیز از سرویس کتاب‌های گوگل توسط همین سرویس دیجیتال شده‌اند. البته گوگل کاربرد و ساختار این سرویس را کمی تغییر داده و علاوه‌‌بر متن، سیستم انتخاب تصاویر نیز به آن افزوده شده است. (مانند انتخاب تمام تصاویری که در آنها شیء خاصی وجود دارد) گوگل همچنین از آن برای بهبود سرویس نقشه‌اش و الگوریتم‌های هوش ‌مصنوعی ‌خود نیز بهره می‌گیرد.

این سیستم تقریبا در روز بیش از صد میلیون CAPTCHA نمایش می‌دهد و توسط سایت‌هایی مثل فیسبوک، توییتر، سی‌ان‌ان و کرگ‌لیست مورد استفاده قرار می‌گیرد.

انسان‌ها و آینده CAPTCHAها

با وجود گستردگی سیستم CAPTCHA، پیشرفت الگوریتم‌های تشخیص متن و همچنین ضعف‌های امنیتی این سیستم سبب شده است بهبودها یا جایگزین‌هایی برای آن ارائه شود. گسترش برنامه‌های موبایل نیز این حرکت را برای یافتن راه‌حل‌های جدیدتر تشخیص انسان از ماشین،
سرعت بخشیده است.

برای مثال، گوگل علاوه‌بر افزودن سرویس تشخیص تصاویر به CAPTCHA، سیستمی را نیز برای چک کردن نحوه عملکرد کاربر با پارامترهای مختلف طراحی کرده است تا بدون این‌که او متوجه شود بتواند از انسان بودنش اطمینان حاصل کند. استفاده از معماهای ریاضی یا طرح بعضی سوالات نیز از روش‌های پیشنهادی جدید در این‌گونه سیستم‌هاست.

محمود صادقی

newsQrCode
ارسال نظرات در انتظار بررسی: ۰ انتشار یافته: ۰

نیازمندی ها