منهج نواة تقنية الجلسة السابعة

من ويكي أضِف
مراجعة 19:13، 8 أبريل 2021 بواسطة صبري (نقاش | مساهمات) (تعديل طفيف 2)
(فرق) → مراجعة أقدم | المراجعة الحالية (فرق) | مراجعة أحدث ← (فرق)
اذهب إلى التنقل اذهب إلى البحث

الهدف من الجلسة

  • التعرف علي مفهوم المستخدم user في نظم التشغيل متعددة المستخدمين.
  • التعرف علي محتويات قاعدة بيانات المستخدمين Passwd, Shadow.
  • التعرف علي مبدأ التشفير encryption.
  • التعرف علي بعض طرق كسر التشفير.
  • التعرف علي طريقة و سلوك انشاء / تغيير / الغاء مستخدم.

محتوي الجلسة

إدارة المستخدمين user management

عرض محتويات قاعدة بيانات المستخدمين Passwd, Shadow

التشفير

1 ما هو التشفير encryption ؟

2 كيف يتم تشفير كلمة مرور المستخدم في أنظمة يونكس القديمة (يتم تشفير كلمة المرور مع نفسها كمفتاح)

3 من طرق كسر تشفير كلمة السر

3.1 الهجوم الواسع broad force attack

3.1.1 تصنيفات المشاكل (قابلة للحل ، مستعصية على الحل ، غير قابلة للحل حسابيًا)(tractable, intractable, computationally unsolvable)

3.2 الهجوم القاموسي The dictionary attack

3.2.1 تاريخيًا ، أتاح وجود كلمة المرور المشفرة في ملف passwd الفرصة لإجراء هجوم على القاموس لتحديد كلمات مرور المستخدم ، ولحل هذه المشكلة ، تم إنشاء مفهوم ملف الظل shadow وتخزين كلمة المرور في ملف الظل لمنع هجمات القاموس The dictionary attack.

4 خوارزميات التجزئه Hashing

Solt /etc/group useradd /etc/skel usermod userdell /etc/login.defs

طريقة التقديم

  • كل مستخدم يتم تمييزة بإسمه و وقمه التعريفي (id)
  • يسأل الميسر المشاركين, ما المعلومات التي أحتاج تخزينها عن المستخدم
  • قاعدة بيانات بها المستخدمين الأساسية وهي مخزنة في /etc/passwd
  • يعرض الميسر الملف بالأمر cat /etc/passwd
  • المعلومات التي يخزنها النظام عن المستخدم root كمثال
    • root: اسم مستخدم الحساب.
    • x: تعبير مُرمّز للدلالة على معلومات كلمة المرور والتي يتم الحصول عليها من ملف etc/shadow/.
    • 0: هوية المستخدم أو رقم ID الخاص به وهو مُعرفّه على نظام التشغيل. المستخدم الجذر يملك رقم ID مساويًا للصفر على الدوام.
    • 0: هوية المجموعة أو رقم ID الخاص بالمجموعة التي ينتمي لها المُستخدم بشكل افتراضي. كذلك فإن رقم ID لمجموعة الجذر هو 0 دومًا.
    • root: حقل الملاحظات، يُستخدم هذا الحقل لوصف المستخدم أو وظيفته، كما يمكن أن يشمل معلومات الاتصال به أو وصف الخدمة التي أُنشئ من قبلها.
    • root/: الدليل الرئيسي، للمستخدمين القياسيين غالبًا ما يكون هذا الدليل هوhome/username/، أما للمستخدم الجذر فهو root/.
    • bin/bash/: يضمّ هذا الحقل مسار الصدفة شِل shell الخاصة بالمستخدم أو الأمر الذي سيُنفّذ عقب ولوج المستخدم. cat
  • يوضح الميسر أن هذا المكان هو الافتراضي لكن يمكن تخزينها علي أي قاعدة بيانات من أي نوع
  • المعلومات تنفصل عن بعضها بعلامة :
  • يسأل الميسر كيف اضع كلمة السر مشفرة وفي نفس الوقت أتاكد ان كلمة السر صحيحة
  • ومن هنا يتم توضيح معني التشفير وفك التشفير
  • التشفير ما هو الا عملية رياضية
  • كلمة السر هي مجموعة من المحارف وتمثل في النهاية بارقام, يتم عليها عمليات رياضية لتشفيرها
  • يجب ان اجد عملية رياضية عكسية لفك التشفير,
  • كان التشفير عن طريق التعمية, دوال التشفير الحديثة تعتمد علي مفتاح تشفير وهو عبارة عن مجموعة أرقام
  • يسأل الميسر المشاركين كيف أفك التشفير لو لم يتوافر مفتاح التشفير؟
  • يتم طرح فرضية تجربة كل الاحتمالات, ويثبت انها مستحيله علي 128 بت لانها 2 أس 128 وهو وقت اكبر من عمر الكون
  • أي ان تكلفة الوقت مستحيلة
  • يقارن الميسر بين أنواع المشاكل (tractable,intractable,computationally)
  • رجوعا للسؤال,كيف افك التشفير لو لم يتوافر مفتاح التشفير؟
  • تم تشفير كل اسم مستخدم بتشفير باستخدام كلمة السر كمفتاح تشفير,
  • يسأل الميسر ما عيوب هذة الطريقة؟
  • 1- لو اثنين من المستخدمين لهم نفس كلمة السر فمن الممكن معرفة كلمة سر مستخدم بمعرفة كلمة سر الاخر,
  • 2- قدرة العقل البشري علي التذكر محدودة, عادة يختار كلمة منطوقة ولها علاقة بمعلومات شخصية, فبالتالي لا احتاج تجربة كل الاحتمالات, يستخدم Dictionary attack
  • نظم اللينوكس واليونكس حل هذة المشكلة بانه يعطل عملية المحاولات بحيث الامر يستغرق وقت كبير ويمكن ملاحظة محاولات الاختراق.
  • وصولاً للحقل الثالث, user ID
  • وهو تعريف للمستخدم للنظام عن طريق رقم
  • يسأل الميسر, كم محاولة يحتاجها النظام للتأكد من اسم مستخدم معين, الاجابة بالعرض انها محاولات كثيرة, لكن للتعرف علي رقم يحتاج وقت اقل بكثير
  • يوضح ال shells المسماة nologin و false ومهمتها منع اي مستخدم من استخدام اسماء المستخدمين المخصصة للنظام
  • يوضح الميسر ان كلمات السر يتم تخزينها في ملف /etc /shadow
  • يجرب الميسر فتح ملف ال shadow بالمستخدم العادي فيفشل
  • يجرب الميسر فتح الملف بمستخدم root ويتم عرضه
  • الحقل الاول بة أسم المستخدم بغرض ربط الملف بملف passwd
  • الحقل الثاني كلمة السر
  • يطلب الميسر من المشاركين ما هي محتويات الحقول من الثالث حتي العاشر
  • نقرأ ال man page لملف shadow
  • يسأل الميسر كيف أحمي كلمة السر من ال Administrator
  • يتم شرح فكرة ال hashing
  • ال hashing هو عملية رياضية
  • هل يمكن ان يكون نفس ال hash لكلمتي سر
  • يتم اضافة 4 محارف عشوائية علي كلمة السر (salt) قبل ال Hashing فبالتالي لو أن شخصين استخدموا نفس كلمة السر فال hashing مختلف.
  • ما مشكلة استخدام vi وادخال بيانات المستخدم بنفسي ؟
  • في حالة وجود اكثر من administrator فمن الممكن ان يلغي احدهم ادخالات الاخر race condition.

التدريب

  • يطلب الميسر من المشاركين فتح man usermod و man useradd والتجربة بأنفسهم.