CAPTCHA چیست و چگونه عمل می کند؟

سطح بندی مطلب:
پیشرفته
Captcha چیست و چگونه عمل می کند؟ - لوگکت
تصور کنید با کامپیوتر خود در اینترنت قصد خرید یک کارت شارژ موبایل را دارید. قبل از پرداخت پول در سایت بانک، شما باید یک تست را پشت سر بگذارید و البته این آزمون سخت نیست. در واقع ، نکته همین است. برای شما، تست باید ساده و سر راست باشد. اما برای یک کامپیوتر، حل کردن همین تست ساده تقریبا غیر ممکن است! این آزمون که تا حالا زیاد با آن برخورد داشته اید، کپچا نام دارد. یکی از عادی ترین انواع کپچا، تصویر چند عدد یا حرف است که شما باید آنها را در کادر تعیین شده وارد کنید. اگر عبارت وارد شده با عکس کاملا یکسان باشد، شما در آزمون قبول شده اید و می توانید خرید تان را انجام دهید!

Captcha چیست و چگونه عمل می کند؟ - لوگکت

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

CAPTCHA و تست تورینگ
تکنولوژی کپچا ریشه در آزمایشی موسوم به تست تورینگ دارد. «آلن تورینگ»، که گاهی از او به عنوان پدر محاسبات رایانه ای مدرن یاد می شود، این آزمون را به عنوان راهی برای بررسی اینکه آیا ماشین می تواند فکر کند یا حداقل چنین به نظر برسد که همانند انسانها فکر می کند، پیشنهاد داد. آزمون کلاسیک تورینگ نوعی بازی تقلید کردن است. در این بازی، بازپرس از شرکت کنندگان یک سری سوال می پرسند. یکی از شرکت کنندگان یک ماشین است و دیگری انسانی واقعی. بازپرس نمی تواند شرکت کنندگان را ببیند یا صدایشان را بشنود و هیچ راهی برای دانستن این که کدام انسان است و کدام ماشین ندارد. اگر بازپرس در پایان بر اساس پاسخ ها قادر به کشف این مسئله نشد که کدام شرکت کننده ماشین است و کدام یک انسان، ماشین تست تورینگ را با موفقیت پشت سر گذاشته.
البته ، در تست captcha، هدف این است که آزمون یا بهتر است بگوییم مانعی ایجاد کنیم که انسان به راحتی بتواند از ان عبور کند، اما ماشینها نتوانند عبور کنند. این نیز مهم است که برنامه کپچا قادر به ارائه کدهای مختلف برای کاربران متفاوت باشد. اگر کپچای تصویری، تنها یک تصویر ثابت را برای هر کاربری به نمایش در آورد، طولی نمی کشد که یک هکر حروف موجود در فرم را شناسایی کرده، حروف را رمز گشایی کرده، و برنامه ای می نویسد که پاسخ صحیح را به صورت خودکار در کادر مربوطه وارد کند.

Captcha چیست و چگونه عمل می کند؟ - لوگکت

همه کپچاها از شما تایپ متن درون تصویر را نمی خواهند. مثلا تست تصویر فوق از کاربران می خواهد با استفاده از موس شکل هندسی خاص درون عکس ها را در جهت حرکت مشخص شده دنبال کنند.

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

یکی دیگر از گزینه های پیش رو برای ایجاد یک کپچا این است که از مخاطب سوال می شود که متنی را خوانده و تفسیری کوتاه از آن ارائه دهد. مدل متنی کپچا در واقع مهارت های درک مطلب خواننده را مورد آزمون قرار می دهد. در حالی که برنامه های کامپیوتری قادرند کلمات کلیدی متون را انتخاب کنند، در عمل نمی توانند درک کنند هر کلمه یا هر عبارت دقیقا چه معنا و مفهومی دارد.
مثلا کپچا از شما سوال می کند برادر پدر شما، چه نسبتی با شما دارد؟ حال باید از لیست جواب را انتخاب کنید. در این لیست ممکن است کلمات اینچنینی ببینید: مادر - عمه - عمو - تلویزیون - درخت!

چه کسی از CAPTCHA استفاده می کند؟
یکی از کاربردهای رایج کپچا برای اعتبار سنجی رای گیری های انلاین است. در سال 1999، سایت Slashdot یک نظر سنجی راه انداخت که نظر بازدید کنندگان را برای انتخاب بهترین محل تحصیل برای گذران دوره کارشناسی ارشد علوم کامپیوتر در آمریکا جویا می شد. دانشجویان دو دانشگاه - کارنگی ملون و ام آی تی - برنامه های خودکاری به نام bots طراحی کردند تا به دانشگاه شان به کرات رای دهد. در حالی که آن دو دانشگاه هزاران رای را به این شیوه به خود اختصاص داده بودند، دانشگاه های دیگر هر یک فقط چند صد رای جمع کرده بودند. اگر این امکان وجود داشته باشد که با ایجاد برنامه ای بتوان در رای گیری و نظر سنجی شرکت کرد و آرا را به نفع خود تغییر داد، چگونه می توانیم به نتیجه نظرسنجی های آنلاین اعتماد کنیم؟ فرم کپچا می تواند در این زمینه به پیشگیری از برنامه نویسی برای سوء استفاده از سیستم رای گیری کمک کند.

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

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

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

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

در اینجا نحوه این عمل را توضیح می دهیم: اول، مدیر برنامه reCAPTCHA یک کتاب را اسکن می کند. سپس برنامه reCAPTCHA دو کلمه از تصویر دیجیتالی را انتخاب می کند. برنامه قبلا یکی از کلمات را شناسایی کرده. اگر بازدید کننده آن کلمه را در یک فیلد به درستی وارد کند، نرم افزار فرض می کند که کلمه دومی که کاربر وارد می کند نیز درست تایپ شده. این کلمه دوم به مجموعه کلماتی که برنامه آن را به دیگر کاربران نشان خواهد داد، اضافه می گردد. همانطور که هر کاربر یک کلمه را تایپ می کند، نرم افزار این کلمه را با جواب اصلی مقایسه می کند. در نهایت، نرم افزار پاسخ هایی دریافت می کند که برای تأیید کلمه با درجه بالایی از اطمینان کافی هستند. از این پس کلمه می تواند به مجموعه لغات تایید شده نرم افزار برود.

این ایده شاید زمان بر به نظر برسد، اما به یاد داشته باشید که در این مورد کپچا دو وظیفه را انجام می دهد. نه تنها محتویات یک کتاب اسکن شده را تایید می کند، بلکه تایید انسان بودن کاربرانی که فرم را پر کرده اند را هم بر عهده دارد. در مقابل ، آن دسته از مردم که در این کار مشارکت داشته اند نیز به سرویس مورد نظر خود خواهند رسید.

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

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

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

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

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

نحوه شکستن CAPTCHA
چالش پیش رو در شکستن کپچا، این نیست که کشف کنیم درون تصویر چه نوشته شده. بالاخره، انسان ها حداقل 80 درصد میزان موفقیت در این زمینه دارند. کار واقعا سخت این است که به کامپیوتر بیاموزیم که چگونه اطلاعات را با روشی مشابه چگونه فکر کردن انسان ها پردازش کند. در بسیاری از موارد ، افرادی که موفق به شکستن کپچا شده اند، بر این نکته تمرکز کرده اند که کامپیوتر ها در این مورد خاص باهوش نیستند، و بر این مبنا پیچیدگی مسئله مطرح شده توسط کپچا را به طرق مختلف کاهش داده اند.

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

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

Captcha چیست و چگونه عمل می کند؟ - لوگکت

کپچای مورد استفاده این تصویر، ۱۰ کلمه را نمایش می دهد. اما شما برای عبور از آن تنها باید سه کلمه را به درستی در فیلدها وارد کنید.

در مورد کپچاهای پیچیده تر چه می توان کرد؟ کپچای پروژه Gimpy ده واژه انگلیسی با فونت اعوجاج یافته را در پس زمینه نامنظم به نمایش در می آورد. در این کپچا کلمات موجود به صورت جفت جفت درآمده و کلمات هر جفت با یکدیگر همپوشانی دارند. کاربران باید سه کلمه را درست تایپ کنند تا به مرحله بعد بروند. این رویکرد چه قدر قابل اعتماد است؟

همانطور که معلوم است، با الگوریتم ایجاد رخنه در کپچا، نمی توان گفت این شیوه بالا به طرز وحشتناکی قابل اعتماد است. «گرگ موری» و «جیتندرا مالک» مقاله ای منتشر کردند و در آن به شرح رویکرد خود برای رخنه در کپچای Gimpy پرداختند. یکی از چیزهایی که به آنها کمک کرد، شیوه این کپچا در استفاده از کلمات واقعی و معنی دار به جای رشته تصادفی از حروف و اعداد بود. با استفاده از این نکته، موری و مالک الگوریتمی طراحی کردند که تلاش می کرد کلمات را با بررسی آغاز و پایان رشته ای از حروف شناسایی کند. آنها همچنین از فرهنگ لغت 500 کلمه ای Gimpy نیز استفاده می کردند.

CAPTCHA و هوش مصنوعی
«لوییس فون آن» (Luis von Ahn) از دانشگاه کارنگی ملون یکی از مخترعان کپچا است. در سال 2006 «فون آن» در مورد ارتباط بین چیزهایی مانند کپچا و موضوع هوش مصنوعی (AI) سخنرانی داشت. از آنجا که کپچا مانعی بین اسپمر یا هکرها و هدف آنها است، این افراد وقت و انرژی زیادی در جهت شکستن کپچاها صرف می کنند. موفقیت آنها این معنی است که ماشین ها پیچیده تر شده اند. هر بار که انسانی سعی می کند به یک ماشین بیاموزد چگونه می توان یک کپچاها را شکست، ما یک قدم به هوش مصنوعی نزدیک تر شده ایم.

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

اما در مورد مدیران وب سایت ها چه؟ آنها ممکن است فلسفه فون آن را به هیچ روی جذاب نپندارند. چون ضرر اصلی متوجه آنهاست. از دید آنها، هنوز هم باید با یک مشکل بزرگ برخورد کنند: اسپمر ها و هکرها. افرادی که وب سایتی را اداره کرده یا رای گیری آنلاین دارند، باید آگاه باشند که چندین نمونه از سیستم کپچاها دیگر موثر نیستد. باید قبل از انتخاب هر سیستم کپچا کمی بر روی برنامه های کاربردی کپچا که هنوز قابل اعتماد هستند، تحقیق شود. البته به روز نگه داشتن اطلاعات خود درباره کپچاهای مورد اطمینان یا هک شده هم اهمیت ویژه ای دارد. اگر یک سیستم کپچا شکست بخورد، مدیر ممکن است نیاز به حذف کد از سایت خود و جایگزین کردن آن با یک نسخه دیگر داشته باشد.

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

در نهایت، ممکن است به نقطه ای برسیم که کامپیوتر ها و انسان یک پازل را مانند هم و به یک شیوه درک کنند. اگر این اتفاق بیافتد ، تست هایی مانند CAPTCHA دیگر غیر قابل استفاده خواهند شد. تا آن زمان، ما فقط باید چشممان را باز کنیم (و یا به خوبی گوش دهیم) را با تا بتوانیم کد کپچای درست را پیدا کرده و در کادر وارد کنیم.

Captcha چیست و چگونه عمل می کند؟ - لوگکت


ادامه مطلب

سرچشمه : نگهبان


منتشر شده بوسیله سرویس خودکار 'شبکه انتشار' لوگکت

Similar Threads: