الأحد، 17 يونيو 2018

الفرق بين الـ Authentication و الـ Authorization

كثير بنتلكم في مواضيع الامن المعلوماتي او حتى مواضيع البرمجة عن مصطلحين مهمات جدا جدا جدا وبدون هالمفهومين كان احنا بنشوف عالم رقمي متفلت تماما ما في أي ضوابط او شروط على المعلومات والكل بقدر يوصل لمعلومات الثاني بكل سهولة وبساطه من خلال البحث عنها فقط، تخيل انو "أحمد" دخل على الفيسبوك بالايميل والباسورد الخاصين فيه وقدر يقرأ الرسائل الخاصة بـ "أماني"، هالامر أكيد راح يكون مزعج، الاثنين معهم الصلاحيات الوصول لفيس بوك وأستخدام ميزة الرسائل وقرائتها ولاكن في شيء اضافي في خلفية النظام عزل حساب "احمد" عن حساب "أماني"،الاشي الي بتكلم عنه والي عمل عزل هم مصطلحين الـ "Authentication" و الـ "Authorization" .. للوهلة الاولى ولو اتروح اترجم هالمصطلحين راح تشوف انهم بعطو نفس المعنى تقريبا، وبالفعل الامر كذلك همه عندهم نفس الفكرة ولاكن اماكن ضبط ووضع كل مصطلح فيهم مختلف عن الاخر يعني اماكن طلب "Authentication" غير اماكن طلب "Authorization"

بس للأسف هدول المفهومين لغاية اليوم ولحظه ما زال في صعوبة بضبطهم في بعض الاحيان بسبب انهم متشابهات في المهام ولاكن يختلف مكان ضبطهم وترتيبهم، وهالامر برجع لثلاث أسباب :
  • الاول: عدم فهم هدول المصطلحين.
    • الثاني: ضبطهم ولاكن بشكل خاطئ.
      • الثالث: والي هو الاهم والاكثر انتشار تداخل وتعقيد تطبيق الويب.
      لهيك في البدايه خلينا نفهم المصطلحين:
      الـ Authentication هي مرحلة اثبات انك المستخدم X لحتى اروح على قاعدة البيانات واجبلك معلوماتك واستعرضلك ياها ولحتى أتاكد انو انت X بطلب منك الباسورد تبعك او بمعنى اخر تعمل مصادقة، بدون كلكعات تقنية كثيره وبشكل عام هاي بتمثل التصريح الاولي الي بسمحلك تستخدم اشي معين او تدخل لاشي معين يعني لحتى تثبت انو عندك صلاحية لدخول الاولي لنظام معين لازم يكون عندك Authentication ... مثلا لما بدك تدخل على منشئة حكومية بتمرر بطاقة على البوابة لحتى تدخل هذا بزبط الي اسمو Authentication وضربت هالمثال بشكل متعمد لحتى اكمل عليه .. تمام بعد ما دخلت على المنشئه الحكومية انا بكون عندي تخويلات معينه وشغل معين داخل هاي المشنئة مثلا مسموحلي ادخل مكتب رقم 13 وممنوع ادخل مكتب المدير رقم 1 هاي الامور تسمى Authorization يعني انا شو صلاحياتي داخل النظام بغض النظر كان نظام حاسوب او نظام غير حاسوبي باختصاار بدخل الموظف على المبنى ببطاقة وبدخل على مكتبة من خلال ادخال كلمة سر لباب المكتب او بصمة اصبع او او او ... فهيك انا تحكمت بنشاطة داخل المنشئه .. تخيل انو هالموظف قدر يدخل على غرفة زميلة او غرفة المدير هون راح نكون نحكي عن تجاوز الصلاحيات او التخويلات، وبصير من الممكن للموظف A يعمل سلوكيات بصفة الموظف B ويتم اتهام الموظف B لانو هاي الصلاحيات او التخويلات كانت في الاساس من صلاحيات وتخويلات الموظف B .. بطبع هاي مشكلة كبيرة بتم فيها التنكر بصفة شخص معين.
      في النظام الرقمي بتم ضبط هاي الصلاحيات ايضا يعني بس تدخل بقلك حط باسورد واسم مستخدم لحتى تثبت انو عندك صلاحية تدخل لنظام مثل بطاقة الموظف .. ولما تدخل على الموقع وبدك مثلا تنشر منشور بتلاقي انو المنشور بنزل بأسمك، وما حدا غيرك بقدر يعدل او يحذف المنشور لئنوا التخويلات الخاصة بالمنشور هاد ملكك انت ومن مهامك انت.
      المشكلة الثانية الي هي ضبطهم بشكل خاطئ او ترتيب خاطئ يعني بكون في ضبط لتخويلات الداخلية بس بتلاقي مثلا انو القيمة الخاصه بتخويل سهلة التخمين وبتوضع بنمط معين مش بشكل عشوائي هالاشي بتيح للمهاجم انو يوصل لتخويلات المستخدمين الاخرين مثلا بعد ما دخلت المنشئه لازم تحط رمز من اربع ارقام لتدخل على مكتبك سهل جدا حدا يراقبك ويوخد الرقم او يخمنو ويدخل على مكتبك او مثلا يكون رمز التخويل هوه رقمك الوظيفي الي ممكن في كثير من الناس بتعرفو وهالاشياء والمشاكل برضو بتم بالعالم الرقمي يعني التخويل الداخلي بكون بناء على الـ ID الخاص باليوز بدون الاعتماد على اي قيم ثانية يعني بكوون ادمن بمجموعه وبوصلني طلب من عضو تخيل انو شخص يوخد الــ ID تبع الادمن ويبعت request موافقة للفيس ويتم الموافقه بدون ما يثبت فعليا انو الادمن الحقيقي هو الي وافق "هالاشي صار فعليا وفي ثغره بلغت عنها من فتره من نفس هاي المشكلة في الفيسبوك بنشر تفاصيلها بس يتم الاصلاح".
      التعقيد هو شبيه تقريبا بالمشكلة الثانية مموقع مثل فيسبوك تويتر جوجل هي مواقع ضخمة وبتوفير ميزات كثيره وفيها تفاعل كثير بين اليوزر والسيرفر ملايين الطلبات بتمر يوميا بشبكات فيس بوك كلها بتم فرض تخويلات عليها وبعضها بتم نسيان فرض هاي التخويلات بسبب التشابك والتعقيد زي ما حكيت لانو كل طلب لازم تبعتو لازم يكون عليه تخويل يثبت انو عندك تخويل تتشوف هاي المعلومه او تسوي هالـ action
      أبرز المشاكل الخاصة Authorization بنشوفها بكثرة بالـ API لانو طريقة استلام المدخلات من المستخدم بتختلف شوي لهيك بعتمد المطور على اساس انو كان فارض تخويلات على تطبيق الويب انو هاي التخويلات راح تفرض بشكل تلقائي على تطبيق الهاتف وهالاشي غلط
      ملاحظه مهمة انا ما بحكي عن الصلاحييات الي بتم فرضها لكل مستخدم على قاعدة البيانات بحكي عن مشكلة مختلفه وفي فرق بين المشكلتين.
      بلخص كل اشي حكيتو هون بالمثال الاتي:
      موقع الجامعه:
      انت بتقدر تدخل عليه وتسجل دخول وتشوف جدولك او علاماتك وتنزل مواد
      المدرس بقدر يدخل على الموقع ويرفع علامات وغياب ومهام لطلاب
      انت والمدرس سجلتو دخول وهالاشي اسمو Authentication يعني معكم الصلاحية الوصول لنظام
      انت عندك تخويل لتعرض الجدول والعلامات وتنزل مواد وهالاشي اسمو Authorization وهاي بتكون Authorization التخويلات الخاصة بطالب والمدرس عندو تخويل يرفع علامات وغياب ومهام لطلاب وهالاشي هو الـ Authorization الخاصة بالمعلم .. الـ Authorization تبعت المعلم والطالب ترسل لقاعدة البيانات مع الـ ID اذا كانت صح قاعدة البيانات بترجع الصفحة المناسبة او بتنفذ التعديل اذا كان غلط بتحكيلك انت ما عندك Authorization عشان تسوي هسلوك


      خلاصة الخلاصة الـ Authentication دخول الى الموقع X



      الـ Authorization هل مسموحلك تعمل النشاط X ?




      ليست هناك تعليقات:

      إرسال تعليق