کپچا چیه و چرا بهش نیاز داریم؟

تصویر محمدحسن محمودی

محمدحسن محمودی

 با گسترش اینترنت خطر ربات‌ها به وجود آمد. CAPTCHA که مخفف (Completely Automated Public Turing test to tell Computers and Humans Apart) است، به عنوان یک اقدام متقابل برای تمایز بین کاربران واقعی انسانی و ربات‌ها معرفی شد. این مقاله به بررسی نحوه عملکرد کپچا‌ها، مشکلات طراحی یک کپچا‌ موثر می پردازد تا در عین محافظت از حریم خصوصی ما، یک قدم جلوتر از ربات ها بمانند.

کپچا‌ها ما را از چه چیزی محافظت می کنند؟

کپچا‌ ها بخش مهمی از امنیت اینترنت هستند که ما را از تهدیدهایی مانند موارد زیر محافظت می کنند:

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

انواع کپچاها

انواع مختلفی از کپچا‌ وجود دارد که هر کدام نیازمند به تعامل خاصی است که انجام آن برای انسان آسان است اما برای یک ربات تقریبا غیرممکنه! این کپچاها بر پایه روش‌های مختلف تعامل کاربر ساخته می‌شوند که در زیر به برخی از این حالات می‌پردازیم:

captcha-types

  • مبتنی بر متن: در این حالت حروف و اعداد در شکل‌های متفاوت را نمایش می‌دهد که باید شناسایی و تایپ کنید. اعوجاج‌ها به گونه‌ای ایجاد می‌شوند که تشخیص آن توسط ربات‌ها دشوارتر شود، اما انسان‌ها می توانند با سهولت نسبی متوجه حروف شوند.
  • مبتنی بر تصویر: یک سری عکس به شما نشان داده می‌شود و از شما می‌خواهد آنهایی را انتخاب کنید که با یک توضیح خاص مطابقت دارند (به عنوان مثال، “انتخاب همه تصاویر با چراغ راهنمایی”).
  • مبتنی بر عملیات‌های ریاضی: در این حالت مسائل ریاضی ساده‌ای را نشان می‌دهند که باید آنها را حل کنید، مانند جمع یا تفریق.
  • مبتنی بر تعامل با کاربر: در این حالت کاربر نیازمند به انجام کارهایی مانند کشیدن و رها‌کردن آیتم‌ها یا دنبال کردن یک دستورالعمل ساده، برای مثال، «فلش رابه سمت راست بکشید».
  • مبتنی بر صوت: معمولا این حالت برای کمک به افراد کم‌بینا در حل چالش‌ها ارائه می شود. برای مثال شمابه صوتی که  یک سری حروف یا اعداد را می‌گوید، گوش می دهید و سپس آنها را تایپ می کنید.

در معماری کپچا‌ها نکته مهمی که وجود دارد که، توسعه‌دهندگان باید چالش‌هایی را طراحی کنند که برای مهاجمان دشوار و پرهزینه باشد، در حالی که حل آن‌ها برای کاربران عادی نسبتاً ساده باشد.

کپچاها چگونه کار می کنند؟

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

به عنوان مثال، جریان کلی برای یک کپچا‌ی مبتنی بر متن چیزی شبیه به این خواهد بود:

captcha-operation

ربات‌ها می توانند در اینجا وارد شوند و تصویر کپچا‌ را که سرور تولید می‌کند به ورودی متن ترجمه کنند. به همین دلیل است که کپچا‌های مبتنی بر متن پیشرفت کردند و الگوهای دشوارتری برای حل دارند، که اغلب حتی برای انسان‌ها دشوار است.

آینده کپچاها

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

ابتدا می‌توانیم با به حداقل رساندن تعداد کپچا‌ برای کاربران واقعی، به بهبود قابلیت استفاده و دسترسی کمک کنیم. این کار با استفاده از پروتکل‌هایی مانند Privacy Pass امکان‌پذیر است. به این شکل که به کاربرانی که قبلاً کپچا‌ را در جای دیگری تکمیل کرده‌اند اجازه دهد برای مثال از یک کپچا‌ در وب‌سایت دیگری صرف نظر کنند. این کار بدون اطلاع از وب‌سایت‌های بازدید شده قبلی انجام می‌شود. پس چرا محبوبیت بیشتری ندارد؟ متأسفانه اجرای فعلی این پروتکل نیاز به استفاده از اکستنشن‌های مرورگر دارد که در همه مرورگرها در دسترس نیستند و همچنین توسط همه کاربران قابل نصب نیستند.

علاوه بر آن، ما به سیستم‌هایی نیاز داریم که با تهدید هوش مصنوعی مقابله کنند و در عین حال کپچا‌ را برای انسان‌ها سخت نکنند چرا که تحقیقات اخیر نشان داده است که ربات‌ها در حل بسیاری از سیستم‌های کپچا‌ از انسان‌ها دقیق‌تر هستند!

جمع‌بندی

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

منبع: proton.me

 

ارسال دیدگاه