کپچا چیست و چه نقشی در امنیت سایت دارد؟
8 دقیقه
همه ما کاربران فضای وب تا به حال چندین بار به روش های مختلفی سعی کرده ایم ربات نبودن خود را ثابت کنیم. معمولا در زمان ورود یا ثبت نام در سایتی، با تصاویری رو به رو شده ایم که از ما خواسته شده شیر آتش نشانی، موتور سیکلت، اتوبوس مدرسه، درخت نخل، چراغ راهنمایی، خط عابر پیاده و تصاویری از این دست را انتخاب و تایید کنیم که انسان هستیم. یا حتی انجام عملیات ساده ی ریاضی، تایپ کردن یک عدد یا حروف رندوم و مخدوش شده و کلیکی ساده بر روی یک باکس هم، نوعی از همین اعتبار سنجی است که به طور کلی آن را کپچا می نامیم. در هنگام انجام این تست ها شاید به واژه CAPTCHA دقت کرده باشید و از خود بپرسید که چطور منجر به افزایش امنیت سایت می شود. این سرویس ابزاری برای شناسایی و تفکیک کاربر حقیقی و انسان از ربات ها و برنامه های مخرب است که به طور گسترده ای در در وب سایت های مختلف برای کاهش اسپم و هرزنامه، برای جلوگیری از ورود کدهای مخرب توسط ربات های خطرناک و مانند سدی در برابر نفوذ برنامه های هک، به کار می رود. در این مطلب، به سراغ ساختار و پایه ی مفهوم کپچا رفته ایم و نشان می دهیم، چه انواع و کاربردی در توسعه ی امنیت سایت ها دارند.
کپچا چیست؟
CAPTCHA که مخففCompletely Automated Public Turing test to tell Computers and Humans Apart است، روشی موثر برای تشخیص کامپیوتر و انسان از هم، محسوب میشود، به کارگیری از کپچا در هنگام طراحی سایت جهت تامین امنیت سایت امری مهم و ضروری است. در مدل های قدیمی تر آن، کاربران باید حروف و کاراکترهای خاصی که در یک تصویر به صورت هاشور خورده و پیچ و تاپ خورده نمایش داده می شود را تشخیص دهند. شناسایی این نوع متون از عهده ربات بر نمی آید. در صورتی که کاراکتر وارده با تصویر مطابقت نداشته باشد، کاربران مجدد تست می شوند و آزمایش هویت انسانی تکرار می شود. از این تست ها به صورت عمده در فرم های نظرسنجی، ثبت حساب کاربری و درگاه های پرداخت بانکی استفاده می شود.
اما به مرور زمان ربات های پیشرفته تر مجهز به سیستم های شناسایی این نوع کاراکترها شدن و تست های معمولی کپچا بخش زیادی از کارایی خود را از دست دادند. به همین منظور گوگل، فناوری reCAPTCHA را برای تمایز بین کاربران حقیقی و ربات ها ایجاد کرد، که در بخش مجزایی مفصل به آن می پردازیم.
کپچا چگونه کار می کند؟
کپچا یکی از راههای مدیریت فعالیت رباتها است و برای جلوگیری از ورود و آسیب ربات های مخرب به صورت کد توسعه پیدا می کنند و وابسته به توامندی انسان در تشخیص آن هاست. این کد ها لازم است یک بار برنامه ریزی شوند و بعد از آن به طور اتوماتیک، کاربران را در تست های رندوم شناسایی و از ربات ها تمییز می دهند. در ابتدا برای جلوگیری از نوشتن کامنت های متعدد توسط ربات های اسپم طراحی شد. زیرا هر ربات در هر دقیقه می تواند صد ها کامنت در سایت های مختلف بگذارد. از آنجایی که اکثر بات ها و نرم افزارهای کامپیوتری توانایی درک و تشخیص حروف درهم ریخته را ندارند، کپچا به کار گرفته شد. اما کاربر انسانی می تواند انواع فونت و رنگ ها را درک کند و تشخیص اعداد و حروف برایش ساده است. وارد کردن تعدادی حرف و عدد، اولین و ساده ترین راهکار برای جلوگیری از ربات ها حساب می شود. حتی اگر کاربر موفق نشود آزمون کپچا را به طور صحیح انجام دهد، سیستم به طور خودکار اعداد و حروف دیگری را به طور تصادفی نمایش خواهد داد. اما ربات ها با توجه عدم توانایی در تشخیص کاراکترهای نمایش داده شده، با هر بار وارد کردن اشتباه اعداد یا حروف، با یک فرم کپچای جدیدی رو به رو می شوند که مجددا باید اعداد تصادفی را وارد کنند. به این شکل احتمال ورود ربات ها تقریبا به صفر رسیده و از تعامل یا استفاده از سرویس موردنظر منع می شوند.
انواع مدل های reCAPTCHA
امروزه reCHAPTCHA در چند نوع متفاوت در سایتها استفاده میشود که از مرسوم ترین آن ها می توان به تشخیص تصویر، اعداد و حروف در هم ریخته، حل معادلات ساده ریاضی، تشخیص کلمات، چک باکس «من ربات نیستم» و ارزیابی های عمومی رفتار کاربر، اشاره کرد، که در ورژن های سه گانه reCAPTCHA به مرور توسعه و به کار گرفته شده اند. در ادامه به بررسی هر کدام از آن ها جداگانه می پردازیم.
reCHAPTCHA تشخیص تصاویر
در حالت شناسایی تصاویر، کاربر معمولا 9 یا 16 تصویر مربعی شکل را در کنار هم مشاهده می کند که در انواع متعددی هستند. به طور مثال 9 تصویر کوچک شده از یک عکس بزرگ تر را ببیند. یا ممکن است هر عکس با دیگری تفاوت داشته باشد و کاربر باید یک الگوی مشخص شده و مورد نظر آزمون را تشخیص دهد. مثلا عکس هایی که شامل گربه یا دیگر حیوانات، علایم راهنمایی رانندگی، درختان، وسائل نقلیه و هر سوژه دیگری باشد، را انتخاب کرده و صحت سنجی انجام شود. ممکن است گاهی تصاویر اشتباهی انتخاب شود که این احتمال خطا را هوش مصنوعی گوگل در نظر می گیرد و پاسخ کاربر را با اکثریت دیگر کاربرانی که تست را با تصاویر یکسانی انجام داده اند، تطبیق می دهد و هویت سنجی می کند. پیشرفته ترین کامپیوتر ها با قابلیت هوش مصنوعی قادر به تشخیص چنین الگوریتم هایی در تصاویر نیستند و فقط انسان با توجه به تعامل و شناخی که به طور رزمره با این تصاویر دارد قادر است این تست را انجام دهد. در نتیجه ربات های اسپمر از ورود به سایت و استفاده از خدمات محروم می شوند.
reCHAPTCHA حل معادله ساده ریاضی
با این که انجام یک جمع و تفریق، معادله ای بسیار ساده به نظر می آید، اما حل آن ها برای ربات ها بسیار مشکل است و از عهده آن بر نمی آیند. امروزه در سایت ها و سرویس های آنلاین زیادی از این نوع ریکپچا برای تشخیص هویت کاربر استفاده می شود.
reCHAPTCHA تشخیص کلمات
ریکپچاهای متنی مشابه همان روش سنتی کپچا برای تشخیص هویت کاربر است که تشکیل شده از تعدادی حرف و عدد خط خورده و محو است که باید در کادر مربوطه وارد شود. با این تفاوت که برای افرادی که مشکل بینایی دارند، امکان شنیدن صوتی کاراکتر ها و تغییر کلمات وجود دارد. اما همچنان مثل سابق، ساختار آن برای بسیاری از ربات های باهوش و پیشرفته قابل درک است و این نقطه ضعف اصلی این مدل است.
کادر انتخاب (Checkbox)
این ساده ترین روش برای کاربر است تا هویت انسانی خود را به گوگل و سرویس های استفاده کننده reCHAPTCHA ثابت کند. معمولا همه ما با تصویری که روی آن نوشته شده «من ربات نیستم (I'm not a robot)» رو به رو شده ایم و با کلیک کردن روی کادر آن، وارد سایت یا سرویس مورد نظر شده ایم. اما مکانیزم کارکرد و فرآیند آن فقط محدود به یک کلیک یا لمس ساده در کادر مشخص نیست؛ بلکه تمام رفتار هایی که منجر به کلیک کردن و زدن تیک می شود را بررسی می کند. ReCHAPTCH در روش کلیک روی کادر انتخابی، حرکت و جابه جایی نشانگر ماوس کاربر و نزدیک شدن آن به کادر مورد نظر را بررسی میکند. حتی دقیقترین رفتارهای انسانی، با کمی حرکت تصادفی در سطح ریز همراه میشود. درواقع حرکات ناخودآگاه بسیار کوچکی در حرکت کردن فلش ماوس دیده میشود که رباتها توان کپی برداری از این رفتارها را ندارند. اگر گوگل تشخیص دهد که حرکات ماوس شامل رفتارهای ناخوداگاه انسانی است، آزمایش را برا اساس کاربر انسانی پاس می کند. در غیر این صورت یک آزمایش اضافی دیگر به صورت تصویری برای کاربر ایجاد خواهد کرد. ناگفته نماند گوگل علاوه بر حرکات ماوس در بیشتر مواقع از تاریخچه و کوکی های ذخیره شده در مرورگر هم برای تشخیص کاربر انسانی استفاده می کند.
reCHAPTCHA با ارزیابی رفتار عمومی کاربر
این مدل یکی از جدیدترین روش های تشخیص انسان بودن کاربر است که در آخرین ورژن reCHAPTCHA عرضه شده است. این روش با تمرکز روی رفتار و تاریخچه تعاملی کاربر با محتوای موجود در فضای وب عمل می کند. این نسخه از ریکپچا در اکثر مواقع بدون ایجاد زحمتی اضافه برای کاربر انجام می شود و اگر رفتار مشوکی از کاربر سر نزند، بر اساس همان دیتاهای دریافت شده، قابلیت تمییز انسان و ربات را دارد. اگر امکان تشخیص کاربر انسانی با استفاده از فاکتورهای تست شده میسر نباشد، یک آزمایش مرسوم (معمولا به شکل تصویری) برای کاربر نمایش داده خواهد شد.
نقش کپچا در تامین امنیت سایت
اکر وب سایت ها و یا سرویس دهندگان خدمات آنلاین و حتی اپلیکیشن های موبایل در قسمت های حساس خود از CAPTCHA و reCHAPTCHA استفاده می کنند. در مواردی که رفتار کاربر مشکوک و مشابه ربات شود کد کپچا فعال و آزمون نمایش داده خواهد شد. مثلا اگر کاربری به طور مکرر روی یک صفحه ی خاص در وب کلیک کند یا مداوم از آن بازدید کند کپچا می تواند احتمال حمله داده و کاربر را هویت سنجی کند. همچنین در زمانی که از فیلترشکن در سرورهای متعدد و آیپی های متغیر، در بازه ای کوتاه استفاده می کنیم، ممکن است ریکپچا در گوگل فعال شود. یکی از گونه های حملات سایبری بروت فورس (Brute Force) نام دارد که با تلاش هایی مداوم و تکراری سعی بر هک رمز عبور دارد و ترکیبات مختلفی را برای ورود به سایت ها و سرویس های مبتنی بر وب امتحان می کند. کپچا می تواند به خوبی از این نوع حمله جلوگیری کند. یا یکی دیگر اقدامات اسپمی که ربات ها در یک سایت انجام می دهند ساخت میلیون ها اکانت در چند دقیقه است که با آزمون کپچا می توان از ان جلوگیری کرد. با این وجود باز هم برخی ربات ها و مجرمین سایبری با استفاده مزارع کلیک از موانع و سوالات امنیتی عبور می کنند. مزارع کلیک مکانی معمولا در کشورهای فقیر و جهان سومی هستند که صدها کارگر در ازای هزینه و دستمزدی پایین، چندین هزار آزمایش کپچا را به جای ربات ها انجام می دهند.
خلاصه
تا به اینجای مطلب از رایا پارس حتما با مفهوم CAPTCHA و reCHAPTCHA و نقش گسترده آن در تامین امنیت سایت و سرویس های پوشش دنده خدمات وب آشنا شده اید. کاربرد اصلی آن که برقراری تمایز بین کاربر انسانی و کامپیوتر ها می باشد به ما کمک می کند تا امنیت صفحات وب خود را تا حد زیادی تضمین کنیم. مزیت ها و جزئیات این سرویس به قدری زیاد است که در یک مطلب نمی توان به آن پرداخت و پیشنهاد می کنیم با ما در رایاپارس همراه باشید تا دیگر مطالب جذاب و آموزشی در خصوص کپچا را از دست ندهید. همچنین سوالات و بازخورد خود را در قسمت نظرات این مطلب در پایین صفحه با دیگر کاربران به اشتراک بگذارید.