آزمون CAPTCHA چرا اینقدر در سایت های وب متداول می باشد؟
آزمون CAPTCHA چرا اینقدر در سایت های وب متداول می باشد؟
آزمون CAPTCHA چرا اینقدر دروب سایت های متداول می باشد؟
شما از کامپیوتر خود برای خرید مثلاً بلیط
هواپیما استفاده می کنید. پیش از آنکه بتوانید بلیطها را خریداری نمایید، ابتدا
باید یک آزمایش را پشت سر بگذارید. در واقع، نکته در همینجا است. این آزمایش برای شما
بسیار ساده و سرراست خواهد بود. اما برای کامپیوتر، حل کردن همین آزمایش ساده
تقریباً غیر ممکن است.
این نوع آزمایشها تحت عنوان CAPTCHA شناخته می شوند، یک
سرنام برای عبارت " Completely Automated Public Turing Test to Tell Computers and
Humans Apart". این آزمایشها در عین حال بعنوان یک نوع HIP Human Interaction Proof شناخته می شوند.شما احتمالاً آزمایشهای CAPTCHA تصویری از یک سری
حروف تحریف شده است. شما باید مجموعه درستی از حروف را در یک فرم وارد کنید. اگر
حروف شما با حروف داخل تصویر تحریف شده مطابقت داشته باشند، شما آزمایش را پشت سر
گذاشته اید.
برای مثال، ممکن است یک سرویس eMail رایگان، خود را در
زیر بمباران درخواستهای ایجاد حساسیت کاربری از سوی یک برنامه خودکار ببیند. این
برنامه خودکار می تواند بخشی از یک تلاش بزرگتر برای ارسال نامه های Spam به میلیونها کاربر
باشد. آزمایش CAPTCHA به شناساییاین موضوع که کدام کاربران موجودات انسانی واقعی هستند
و کدامیک برنامه های کامپیوتری، کمک می کند.
CAPTCHA و آزمایش Turing
فناوری CAPTCHA ریشه در یک تجربه با
نام آزمایش Turing دارد. Alan Turing که گاهی اوقات با
نام پدر Computing مدرن شناخته می شود، آزمایشی را بعنوان شیوه ای برای تعیین این
موضوع که ماشینها می توانند مشابه انسانها فکر کنند یا خیر، پیشنهاد کرد. ازمایش
کلاسیک یک بازی تقلید است. در این بازی، یک پرسشگر مجموعه ای از سوالات را از دو شرکت کننده می پرسد. یکی از
این شرکت کننده ها یک ماشین و دیگری یک انسان است. پرسشگر نمی تواند شرکت کنندگان
را دیده و یا صدای آنها را بشنود و هیچ
راهی برای متمایز نمودن آنها از یکدیگر ندارد. اگر پرسشگر نتواند بر اساس پاسخها
مشخص کند که کدام شرکت کننده ماشین است، ماشین Turing را پشت سر می گذارد.
البته هدف CAPTCHA ایجاد آزمایشی است
که انسانها بتوانند آن را به آسانی پشت سر بگذارند اما ماشینها قادر به حل آن
نباشند. در عین حال این نکته از اهمیت بالایی برخوردار است که نرم افزار کاربردی CAPTCHA بتواند CAPTCHAهای متفاوتی را به کاربران مختلف ارائه کند. اگر یک CAPTCHA بصری یک تصویر ثابت
را نمایش دهد که برای تمام کاربران یکسان است، مدت زیادی طول نخواهد کشید که یک Spammer فرم مربوطه را
یافته، حروف را تفسیر کرده و یک برنامه را برای تایپ خودکار پاسخ صحیح در فرم می
نویسد.
اکثر CAPTCHAها(نه تمام آنها) به یک آزمایش بصری تکیه
دارند. وقتی نوبت به پردازش داده های بصری می رسد، کامپیوترها فاقد همان پیشرفتگی
هستند که در انسانها وجود دارد. ما می توانیم به یک تصویر نگاه کرده و الگوها را
بسیار آسانتر از یک کامیپوتر در آن تشخیص دهیم. ذهن انسان گاهی اوقات الگوها را
حتی زمانیکه وجود ندارند مشاهده و درک می نماید. الگویی که ما آن را Pareidolia می نامیم. آیا
تاکنون تصویری را در ابرها مشاهده کرده اید؟ این مغز شما است که تلاش می کند تا
اطلاعات تصادفی را به الگوها و شکلهای مشخصی نسبت دهد.
چه کسی از CAPTCHA استفاده می کند؟
یک کاربرد متداول CAPTCHA بررسی آراء Online است. در واقع، یک
رای گیری Slashdot نشان داد که اگر ناظرین انتخاباتی فیلترهایی را بر روی نظر
سنجیهای خود پیاده سازی نکنند، امکان وقوع چه حوادثی وجود دارد.در سال1999، Slashdot یک نظرسنجی را منتشر
کرده و از بازدید کنندگان خواست تا دانشکده ای که بهترین برنامه را در علوم
کامپیوتر داشته است انتخاب نمایند. دانشجویان دو دانشگاه (MIT و Carnegie Mellon) برنامه های خودکاری
با نام Bots را تهیه کردند تا بطور تکراری به دانشکده های مربوط به خودشان رای
بدهند. در حالیکه این دو دانشکده هزاران رای دریافت کرده بودند، هر یک از دانشکده
های دیگر تنها چند صد رای در صندوق خود داشتند. اگر ایجاد برنامه ای که بتواند
دریک نظرسنجی Online اعتماد کنیم. یک فرم CAPTCHA می تواند به جلوگیری از
تلاشهای برنامه نویسان برای بهره گیری از سیستم نظرسنجی کمک نماید.
فرمهای ثبت نام بر روی سایتهای وب غالباً
از CAPTCHAها استفاده می کنند. برای مثال، سرویسهای eMail رایگان مبتنی بر وب
نظیر Hotmail , Yahoo!Mail و یا Gmail به کاربران اجازه می دهند
که حسابهای کاربری رایگان eMail برای خودایجاد نمایند.
معمولاً کاربر باید مقداری اطلاعات شخصی را در هنگام ایجاد یک حساب کاربری ارائه
نماید، اما سرویسها در اکثر موارد صحت این اطلاعات را بررسی نمی کنند. آنها از CAPTCHA برای جلوگیری از
تلاش Spammer ها در استفاده از Bots برای ایجاد صدها حساب
کاربری پستی Spam استفاده می نمایند.
بعضی از صفحات وب دارای تخته های پیام و یا
فرمهای تماسی هستند که به بازدیدکنندگان امکان می دهند تا پیامهایی را به سایت
ارسال کرده و یا آنها را مستقیماً برای سرپرستان وب بفرستند. برای جلوگیری از هجوم
Spam ها، بسیاری از
سایتها یک برنامه CAPTCHA را برای فیلتر نمودن مزاحمتها در نظر گرفته اند. یک CAPTCHA نمی تواند فردی را
متوقف نماید که مصمم است یک پیام گستاخانه یا تهدید را برای یک سرپرست بفرستد، اما
به جلوگیری از ارسال پیامهای خودکار توسط Botها کمک خواهد کرد.
متداول ترین فرم CAPTCHA، بازدیدکنندگان را
ملزم به تایپ کردن یک عبارت یا مجموعه ای از حروف و اعداد می نماید که نرم افزار
کاربردی آنها را به شیوه ای تحریف کرده است. بعضی از ایجاد کنندگان CAPTCHA به شیوه ای برای
افزایش ارزش اینگونه نرم افزارهای کاربردی دست یافته اند: دیجیتایز نمودن کتابها.
یک نرم افزار کاربردی که CAPTCHA reنام دارد،
پاسخهای کاربران در فیلدهای CAPTCHA را بررسی مضمون یک قطعه
اسکن شده از کاغذ به خدمت می گیرد. سپس، این امکان برای موتورهای جستجو فراهم می
شود که مضمون یک سند اسکن شده را جستجو و ایندکس نمایند.
نحوه کار به این ترتیب است که: ابتدا،
سرپرست برنامه CAPTCHA re یک
کتاب را بصورت دیجیتالی اسکن می کند، سپس، برنامه CAPTCHA re دو عبارت را از
تصویر دیجیتایز شده انتخاب می نماید. نرم افزار کاربردی از قبل یکی از کلمات را
تشخیص می دهد. اگر بازدید کننده این عبارت را بطور صحیح در یک فیلد تایپ کند، نرم
افزار کاربردی فرض می کند عبارت دومی که کاربر تاپی کرده است نیز صحیح می باشد.
این کلمه دوم به یک مخزن کلمات می رود که نرم افزار کاربردی آنها را به سایر
کاربران ارائه خواهد کرد.وقتی هر کاربر کلمه ای را تایپ می کند، نرم افزار
کاربردیآن عبارت را با پاسخ اولیه مقایسه می نماید. در نهایت، نرم افزار کاربردی
پاسخهای کافی را برای بررسی کلمات با درجه بالایی از قطعیت دریافت می کند. سپس،
این عبارت می تواند به مخزن کلمات بررسی شده برود.
این فرایند تا حدودی وقتگیر به نظر می رسد،
اما به یاد داشته باشید که در یک کتاب دیجیتایز شده را بررسی می نماید، بلکهبررسی
می کند که افراد پرکننده فرمها واقعاً انسان هستند. در مقابل، این افراد نیز به
سرویسی که مایل به استفاده از آن هستند دسترسی پیدا می کنند.
اولین گام برای ایجاد یک CAPTCHA، نگاه کرده به شیوه
های متفاوت پردازش اطلاعات توسط انسانها و ماشینها است. ماشینها از یک مجموعه
دستورالعمل پیروی می کنند. اگر چیزی خارج از حوزه این دستورالعملها قرار داشته
باشد، ماشینها قادر به جبران آن نخواهند بود. یک طراح CAPTCHA باید
این موضوع را هنگام ایجاد یک آزمایش در نظر داشته باشد. برای مثال، ایجاد برنامه
های که متادیتاها(Metadate، اطلاعاتی بر روی وب که
برای انسانها قابل مشاهده نیستند ولی ماشینها قادر به خواندن آنها می باشند)را
بخوانند بسیار آسان است. اگر شما یک CAPTCHA بصری ایجاد کنید و
متادیتای تصویر حاوی راه حل مربوطه باشد، CAPTCHA شما در مدت کوتاهی
شکسته خواهد شد.
به همین ترتیب، ایجاد یک CAPTCHA که حروف و اعداد را
به هر شکل ممکن تحریف نکند نیز چندان معقول نخواهد بود. بسیاری از برنامه های
کامپیوتری می توانند یک تصویر را اسکن کرده و شکلهای ساده ای نظیر حروف و اعداد را
در آنها تشخیص دهند.
استفاده از CAPTCHA
نصب یک CAPTCHA بر روی سایت وب شما
به آسانی کپی کردن چند خط کد در داخل صفحه HTML سایتتان خواهد بود.
در عین حال، اینکار برای شما هیچ هزینه ای نخواهد داشت زیرا بسیاری از نرم
افزارهای کاربردی CAPTCHA رایگان هستند.
یک شیوه برای ایجاد CAPTCHA این است که از قبل
تصاویر و راه حلهای مورد استفاده آنرا تعیین کنیم. این شیوه به یک بانک اطلاعاتی
نیاز دارد که تمام راه حلهای CAPTCHAرا در بر می گیرد و می تواند اعتماد پذیری
آزمایش را کاهش دهد. به اعتقاد Kumar chellapilla و Patric Simard(دو نفر از متخصصین
تحقیقاتی مایکروسافت)، انسانها باید یک نرخ موفقیت 80درصدی در حل کردن هر CAPTCHA بخصوص داشته باشند،
اما این نرخ موفقیت ماشینها نباید از 01/0 فراتر رود. اگر یک Spammer بتواند فهرستی از
تمام راه حلهای CAPTCHA را بدست آورد، می تواند یک نرم افزار کاربردی را ایجاد کند که CAPTCHA مورد نظر را در یک حمله BruteForce با تمام پاسخهای
احتمالی بمباران می نماید. برای آنکه CAPTCHAبا شرایط یک آزمایش خوب مطابقت داشته باشد، بانک اطلاعات به بیش از 10000 CAPTCHA احتمالی نیاز دارد.
سایر نرم افزارهای کاربردی CAPTCHA، رشته های تصادفی از
حروف و اعداد را ایجاد می کنند. شما هرگز دو بار با یک مجموعه یکسان مواجه نخواهید
شد. استفاده" تصادفی سازی" احتمال یک حمله BruteForce را ازبین می برد
زیرا احتمال اینکه یک Bot مجموعه صحیحی از حروف تصادفی را وارد کند،
بسیار پایین خواهد بود. هر چه رشته کاراکترها طولانی تر باشد، احتمال موفقیت Bot نیز کاهش می یابد.
شکستن یک CAPTCHA
چالش اصلی در شکستن یک CAPTCHA، مشخص کردن اینکه یک
پیام چه می گوید، نیست. در نهایت نرخ موفقیت انسانها برای هر CAPTCHA باید حداقل 80درصد
باشد. وظیفه واقعاً دشوار این است که به یک کامپیوتر بیاموزیم چگونه اطلاعات را به
شیوه ای مشابه با تفکر انسان پردازش نماید. دربسیاری موارد افرادی که CAPTCHAها را می شکنند بر افزایش هوشمندی
کامپیوترها تمرکز نکرده اند، بلکه برای کاهش پیچیدگی مسئله ارائه شده توسط CAPTCHAتلاش نموده اند.
یک برنامه نویس که تلاش می کند این CAPTCHA را بشکند می تواند
در چند مرحله به مسئله نزدیک شود. او باید یک الگوریتم بنویسد. در این سناریو یک
گام می تواند تبدیل تصویر به فرمت Grayscaleباشد. این بدان معنی است که نرم افزار کاربردی تمام رنگها را از تصویر
حذف نموده و یک سطح از مبهم سازی اعمال شده توسط CAPTCHA را حذف می کند.
سپس، ممکن است الگوریتم به کامپیوتر بگوید
که الگوهایی را در تصویر سیاه و سفید بیاید. برنامه ، هر الگو را با یک حرف معمولی
مقایسه کرده و به جستجوی انطباقها می پردازد. اگر برنامه بتواند تنها چند حرف را
انطباق دهد، می توان آنها را با یک بانک اطلاعاتی از کلمات انگلیسی مقایسه کند.
سپس، کاندیداهای احتمالی را در فیلد ارائه قرار می دهد.این شیوه می تواند بطور
شگفت انگیزی کارآمد باشد.
اما CAPTCHAهای پیچیده تر چه می شوند؟ Gimpy CAPTCHA 10کلمه انگلیسی را با فونتهای تار شده بر روی
یک پس زمینه نامنظم نمایش می دهد. CAPTCHAعبارات را بصورت دوبد.و سازماندهی می کند و
کلمات هر جفت با یکدیگر همپوشانی دارند. کاربران باید سه کلمه را بطور صحیح تایپ
کنند تا آزمایش را پشت سر بگذارند. این روش تا چه اندازه قابل اعتماد است؟
بر اساس نتایج بدست آمده با در اختیار
داشتن یک الگوریتم مناسب حتی این روش نیز بطورخارق العاده ای قابل اعتماد نیست. Greg Mori و Jitendra Malikمقاله ای را منتشر کردند که شیوه آنها برای
شکستن نسخه Gimpy آزمایشهای CAPTCHA را تشریح می کرد. چیزی که
به آنها کمک کرده بود استفاده روش Gimpy از عبارات واقعی بجای رشته
های تصادفی از حروف و اعداد بود.با در نظر گرفتن این واقعیت، Mori و Malik الگوریتمی را طراحی
کرده بودند که تلاش می کرد کلمات را بررسی آغاز و پایان رشته حروف آنها شناسایی
نماید. آنها همچنین از یک فرهنگ لغات 500کلمه ای Gimpy استفاده می کردند.
گوشهای الکترونیک
CAPTCHAهای صوتی نیز چندان ضد ضربه نیستند. در
بهار سال 2008، گزارشهایی منتشر شدند که نشان می دادند هکرها شیوه ای را برای سیستم
CAPTCHA صوتی، شما باید یک
کتابخانه از اصوات را ایجاد کنید که هر کاراکتر در بانک اطلاعاتی CAPTCHA را مجدداً بیان می کنند. توجه داشته باشید که بر حسب میزان تحریف،
ممکن است اصوات متعددی برای یک کاراکتر واحد وجود داشته باشد. پس از طبقه بندی هر
صدا، Spammer از نرم افزارهای مختلف تشخیص گفتار برای تفسیر CAPTCHAصوتی استفاده می کند.
CAPTCHA و هوش مصنوعی
Luis von Ahn از دانشگاه Carnegie Mellon یکی از مخترعین CAPTCHA است. او در یک
سمینار که در سال 2006 برگزار شد، درباره رابطه میان مواردی نظیر CAPTCHA و حوزه هوش مصنوعی(AI) صحبت کرد. از
آنجائیکه CAPTCHA یک مانع مابین Spammerها (یا هکرها) و اهداف آنها به حساب می آید، این افراد زمان و انرژی
قابل ملاحظه ای را به شکستن CAPTCHAها اختصاص داده اند. موفقیت آنها به معنای آن است که ماشینها پیشرفته
تر می شوند. هر بار که یکنفر نحوه آموزش غلبه بر یک CAPTCHA را به یک ماشین می
آموزد، ما یک قدم به هوش مصنوعی نزدیک تر می شویم.
هر چه کاربران راه های جدیدی را برای دور
زدن CAPTCHA پیدا می کنند، دانشمندان علوم کامپیوتر نظیر von Ahm نیز CAPTCHAهایی را توسعه می دهند که به چالشهای آنها
در حوزه AIمربوط هستند. یک قدم رو به عقب برای CAPTCHA، یک قدم رو به جلو
برای هوش مصنوعی به حساب می آید و در نتیجه: هر شکست یک پیروزی است.
اما سرپرستان وب در این میان چه وضعیتی
خواهند داشت؟ احتمالاً فلسفه von Ahm برای آنهاجذابیت چندانی
نخواهد داشت. از دیدگاه سرپرستان وب، آنها هنوز با مشکلات انبوهی درگیر هستند: Spammerها و هکرها.یک جستجوی کوچک در این مورد که
کدام نرم افزارهای کاربردی CAPTCHAهنوز قابل اعتماد می باشند، از اهمیت
بالایی برخوردار است. اگر یک سیستم CAPTCHAمغلوب شود، سرپرست باید کد آن را از سایت خود برداشته و نسخه دیگری را
جایگزین نرم افزار کاربردی شکست خوردن نماید.
مایل به بازی هستید؟
Luis von Ahn از شهرت و اعتبار
بالایی در زمینه کنترل محاسبات انسانی بعنوان شیوه ای برای پیشرفت فناوری کامپیوتر
برخوردار است. چگونه می توانید سایرین را متقاعد نمایید تا در افزایش هوش ماشینها
به شما کمک کنند؟ کافی است آن را به یک بازی تبدیل کنید. در اینجا تعدادی از
بازیهایی که Luis von
Ahn برای افزایش کارائی برنامه های کامپیوتری بر
روی آنها کار کرده است را مشاهده می کنید:
- بازی ESP: که بازیکنان را دو
به دو جدا می کندو یک تصویر را به هر یک از آنها نشان می دهد. سپس، بازیکنان را
برای رسیدن به یک برچسب مشابه برای تشریح عکس مورد نظر به چالش می کشد. هر برچسب
بررسی شده می تواند به دسته بندی عکس برای موتورهای جستجو کمک نماید.
-
بازی Verbosity که در آن یک بازیکن
یک عبارت را با استفاده از مجموعه ای از نشانه ها و راهنمائیها برای بازیکن دیگری
تشریح می کند. بازیکن دیگر باید عبارت صحیح را حدس بزند.
در نهایت، ممکن است به نقطه ای برسیم که در
آن کامپیوترها و انسانها معماهای مطرح شده را به شیوه های مشابهی حل می کنند. اگر
چنین ایده ای تحقق پیدا کند، آزمایشهایی نظیر CAPTCHA به خطهای بی مصرفی از کد تبدیل خواهند شد. تا آن زمان ما در
حالیکه برای رمز گشایی کدهای CAPTCHAتلاش می کنیم، صرفاً باید با دقت به آنها خیره شویم (یا گوش بدهیم).