الاثنين، ديسمبر 28، 2009

الكابشا

مصطلح الكابتشا والذي نستخدمه بكثرة عن التسجيل في موقع أو عند تحميل ملف أو عند ترك تعليق على موضوع ما او وضع توقيع في دفتر الزوار وكثيرا ما فشلت عملية إدخال أحرف الكابتشا وخصوصا في موقع الرابيدشير مما يتطلب منا إعادة المحاولة لحين ان يتم إدخال الأحرف المشوهة بالضبط.
في هذا المقال من كيف تعمل الأشياء سوف نقوم بشرح كل ما يتعلق بالكابتشا CAPTCHA ما هي وما الغرض منها وكيف تعمل وأنواعها وهل تم اختراقها أم لا؟
تعتبر الكابتشا نموذج فحص عليك اجتيازه قبل ان تحصل على خدمتك من موقع من مواقع الانترنت وهذا الفحص مصمم خصيصا لكي يتمكن هذا الموقع المقدم للخدمة من التفرقة بين الإنسان والحاسوب.
كلمة كابشتا CAPTCHA هي اختصار للجملة Completely Automated Public Turing Test to Tell Computers and Humans Apart والتي تعني فحص يفرق الإنسان عن الكمبيوتر، كما ويمكن أن تعرف على إنها Human Interaction Proof (HIP) أي دليل التفاعل الإنساني.
تستخدم الجوجل الكابتشا عن فتح حساب بريد الكتروني لديها
لماذا يحتاج أي منا ان يقوم بهذا الفحص ليتم التفرقة بينه وبين الكمبيوتر؟ هذا لان هناك أشخاص يحاولون دائما إثبات فشل أنظمة الكمبيوتر التي تشغل موقع على الانترنت، وهذا العبث قد يضر بمصالح ملايين المستخدمين والمواقع على الانترنت. على سبيل المثال خدمة البريد الالكتروني المجاني free e-mail تهاجم من قبل ملايين الطلبات الوهمية التي يرسلها برامج كمبيوتر تعمل تلقائيا بهدف إرباك هذه الخدمة وتحميل أنظمتها فوق طاقتها. البرامج الأوتوماتيكية تقوم بإرسال بريد مزعج spam mail إلى ملايين الأشخاص. لذا فان فحص الكابتشا يساعد على التعرف على ما اذا كان المرسل هو شخص ام هو برنامج كمبيوتر.
من الامور المهمة عن فحص الكابتشا هو ان الشخص الذي صمم هذا الفحص قد لا يصاب بالاحباط نتيجة لان احد قد خدع هذا الفحص. هذا لان فشل فحص الكابتشا يشير الى ان هناك شخص ما قد استطاع ان يعلم الكمبيوتر كيف يقوم بحل هذا الفحص. بمعنى اخر فشل فحص الكابتشا واختراقه دليل على تقدم الذكاء الاصطناعي.
تكنولوجيا الكابتشا CAPTECHA لها أساس تجريبي يعرف باسم Turing Test والذي يعرف بوالد الحوسبة الحديثة، حيث ان هذا الفحص مخصص للتعرف على قدرات ذكاء الكمبيوتر. هذا الفحص يحتاج من الكمبيوتر ان يقوم بالتفكير مثل الإنسان ليستطيع حله. فهذا الفحص يقوم باستجواب مشاركين احدهما الكمبيوتر والأخر إنسان مجموعة من الأسئلة، والمستجوب هنا لا يسمع ولا يرى المشاركين ولا يملك أي طريقة للتفرقة بين المشاركين. إذا كان المستجوب غير قادرا على التعرف على المشارك الكمبيوتر فان هذا المشارك يتجاوز فحص Turing test.
للمزيد من المعلومات حول Turing test
http://en.wikipedia.org/wiki/Turing_test
بالطبع، مع الكابتشا، فان الهدف هو تصميم فحص يستطيع الإنسان حله بسهولة في حين ان الآلة لا تستطيع. ومن المهم في تطبيقات الكابتشا ان يكون هناك أكثر من طريقة لعرضها. فمثلا إذا كانت الكابتشا تمثل صورة ثابتة لكل المستخدمين فان من السهل لمصممي السبام ان يقوم بعمل برنامج قادر على اختراق تلك الكابتشا.
ليست كل الكابتشا تتطلب أن تقوم بكتابة نص .
معظم ولكن ليس كل الكابتشا تعتمد على الفحص البصري. الكمبيوتر بالطبع يفتقد للطريقة التي يفكر بها البشر عندما يقوم بتحليل بيانات بصرية. فمثلا نحن عندما ننظر لصورة ما نلتقط التفاصيل الدقيقة بسرعة وبسهولة لا يستطيع الكمبيوتر ان يقوم بها. عقل الإنسان أحيانا يتصور أو يتخيل الأشكال والنماذج حتى لو لم تكن موجودة في الواقع، كما يمكننا ان نرى أشكال معينة في السحب أو نرى وجوه مرسومة على القمر. هذه الأشكال والرسومات التي نراها هي نتاج عمل الدماغ في محاولة ربط معلومات عشوائية بالأشكال والنماذج التي يراها.
تقوم الكابتشا بإظهار صورة او صوت في الغالب يكون مشوش، بحيث يصعب على الإنسان ان يحل شفرته. ولهذا فان كثير من أنظمة الكابتشا توفر إمكانية إعادة رسم الكابتشا أو توليد نماذج أخرى للمحاولة للحصول على صورة أوضح. كما يمكن ان تكون الكابتشا في صورة صوتية حيث تقوم الكابتشا بنطق مجموعة من الأحرف والأرقام مع وجود خلفية صوتية كضجيج للتشويش بحيث يصعب على برامج التعرف على الصوت من التقاط تلك الأحرف والأرقام.
من يستخدم الكابتشا
واحدة من استخدامات الكابتشا هو في نماذج استطلاعات الرأي التي تجرى على مواقع الانترنت، فاستطلاع الرأي قد يكون غير دقيق إذا لم يكن محمى بالكابتشا. على سبيل المثال في عام 1999 قام احد المواقع باستطلاع للرأي حول أفضل كلية تقدم برنامج في علوم الحاسوب. فقام طالبين من طلاب كليتين من الكليات المتنافسة بتصميم برنامج أطلقوا عليه اسم bots يقوم بالتصويت بطريقة اتوماتيكية لصالح كلياتهم، وكانت نتيجة استطلاع الرأي ان حصلت تلك الكليات على آلاف الأصوات في حين الأصوات التي حصلت عليها باقي الكليات لم تتجاوز المئات. ما نود ان نقوله هنا إذا كان بالإمكان ان يكون هناك برامج تقوم بالتصويت فكيف نثق بنتائج أي استطلاع رأي؟ إذا الكابتشا هنا سوف تساعد وتقف بالمرصاد لبرامج التصويت الأوتوماتيكي.
أيضا نماذج التسجيل بمختلف أنواعها تستخدم الكابتشا. على سبيل المثال كل أنظمة البريد الالكتروني المجاني مثل الياهو والهوتميل والجوجل ميل التي تتيح المجال لكافة الزوار بافتتاح حساب بريد الكتروني بدون أي تكاليف مادية. وللحصول على هذه الخدمة فان المستخدم عليه ان يوفر معلومات شخصية لإنشاء الحساب ولكن هذه المعلومات لا يتم التحقق منها حيث يمكنك ان تكتب أي اسم تشاء وتدخل بيانات غير حقيقية وفي النهاية تحصل على حساب بريد الكتروني باسم مستخدم وكلمة مرور. ولكن هذه الأنظمة تعتمد على الكابتشا CAPTCHA لمنع البرامج المتطفلة bots لإنشاء مئات الحسابات الالكترونية الوهمية واستخدامها في إزعاج المستخدمين.
تستخدم ياهو كابتشا الأحرف الانجليزية والأرقام عند إنشاء حساب بريد الكتروني لديها
كثير من مواقع الويب تستخدم أنظمة الكابتشا CAPTCHA خصوصا في دفتر الزوار وفي أنظمة التعليقات واذكر إنني كنت أعاني كثيرا من هجمات البرامج المتطفلة في موقع الفيزياء التعليمي وخصوصا على التعليقات على المواضيع حيث يتم إدراج عشرات التعليقات الغير مناسبة للمواضيع تحمل اغلبها دعايات لمنتجات ومواقع أخرى لتسويق سلعة معينة ولكن بتطبيق الكابتشا تم منع هذه الظاهر تماما.
فكرة إنشاء الكابتشا
إنشاء الكابتشا وتصميمها
الخطوة الأولى لإنشاء الكابتشا CAPTCHA هو ان يجب ان نعرف طريقة تحليل البيانات والمعلومات من قبل الإنسان ومن قبل الآلة. الآلة تتبع مجموع من التعليمات، فإذا فشلت تعليمة من التعليمات فان الآلة لا تستطيع الاستمرار في عملية التحليل وتتوقف. مصمم الكابتشا يأخذ نقطة الضعف هذه في الحسبان عند إنشاء فحص الكابتشا. على سبيل المثال، من السهل بناء برنامج يستطيع ان يقرأ معلومات الويب والتي تعرف بالميتاداتا metadata والتي لا تظهر للمستخدم، فان تصميم كابتشا تستخدم صور للميتاداتا فان كسرها سيكون سهلا للغاية.
نفس الشيء، لا ينصح بتصميم كابتشا تستخدم أحرف وأرقام واضحة بدون أي تشويه عليها فكثير من برامج الكمبيوتر تستطيع أن تتعرف على هذه الأحرف والأرقام والتي تعرف ببرامج Optical character recognition أو OCR.
ان الطريقة المستخدمة لتصميم الكابتشا هو ان تقوم بوضع الصورة (السؤال) والحل، وهذا يتطلب بناء قاعدة بيانات تخزن فيها الكابتشا والحل، فإذا ظهرت لك صورة محددة وقمت بإدخال الحل فان النظام سوف يتحقق من المعلومة المدخلة بمقارنتها بتلك المخزنة في قاعدة بياناته وبناء عليه يحدد لك إما الاستمرار أو إعادة الإدخال مرة أخرى. ويقول خبراء في شركة ميكروسوفت Kumar Chellapilla و Patrice Simard ان الكابتشا الجيدة والمقبولة للاستخدام هي التي يتمكن المستخدمين من حلها بنسبة 80% في حين ان نسبة اختراقها وحلها بواسطة برامج الهاكر في حدود 0.01%. كما ويجب ان تكون قاعدة بيانات الكابتشا لا تقل عن 10,000 خيار مختلف للكابتشا وإلا تمكن الهاكر من إيجاد جمع كل الاحتمالات واستخدام هجوم brute force لكسرها.
وبعض الأنظمة الأخرى تستخدم التوليد العشوائي للأرقام والحروف وهذه يصعب على برامج bots إن تخترقها وكلما زادت هذه الأرقام كلما كانت الكابتشا اقوي.
تظهر هذه الكابتشا 10 كلمات وتطلب منك ان تدخل ثلاثة منها فقط لاجتياز الفحص
الكابتشا والذكاء الصناعي
مبتكر الكابتشا Luis von Ahn من جامعة Carnegie Mellon في العام 2006 تحدث عن العلاقة بين الكابتشا CAPTCHA والذكاء الصناعي Artificial Intelligence (AI). لان الكابتشا هي الحاجز بين الهاكر والسبامر وأهدافهم، حيث ان هؤلاء الأشخاص يسخرون وقتهم وطاقتهم في محاولات لكسر الكابتشا. ان نجاحهم في كسر الكابتشا ينظر له بان الآلة تتطور وتصبح أكثر ذكاء (إذا صح التعبير). ففي كل مرة يتمكن شخص من تعليم الآلة كيف تتغلب على الكابتشا فإننا نتقدم خطوة للذكاء الصناعي.
الهاكرز تمكنوا من تعليم الكمبيوتر كيف يتعرف على النص في الصورة
وفي كل مرة يتم اختراق الكابتشا يتجه المبرمجون والمطورون مثل von Ahn إلى تطوير الكابتشا. فمع كل تقهقر للكابتشا هناك تقدم للذكاء الصناعي بمعنى انه مع كل خسارة هناك انتصار.
وهذا ينعكس علينا كمستخدمين لمواقع الويب حيث إن الكابتشا تتجه إلى أن تكون أكثر صعوبة وقد نصل لمرحلة تكون الكابتشا عبارة عن مسألة حسابية أو اختيار لأحرف معينة بلون معين أو عليها أشكال محددة. وقد نصل لمرحلة تكون فيها الكابتشا عبارة عن لغز يصعب على البعض منا حله وقد يتمكن الكمبيوتر من حله والتغلب علينا