Kerberos Authentication Service

كيفكم أحبابي .. إشتقت لكم كثيرا بعد غياب دام لأسبوعين بسبب إنشغالي و الحالة النفسية اللذان و ما زلت على نفس الحال إلا أن الله قد أعانني في هذا الموضوع و أرسل لي صديق مخلص إسمه م/إسلام فقد أعانني كل العون في هذا الموضوع فجزاه الله عني خير الجزاء

لندخل في الموضوع…

مقدمة

الكيربروس هو عبارة عن Authentication Service أو خدمة خاصة بمصداقية الأطراف تم تطويره من قبل معهد MIT

لكى نفهم كيف يعمل الكيربروس وفائدته دعنا نفترض شبكة من مستخدمى الكمبيوتر الذين يستخدمون بعض الخدمات الموجودة على سيرفرات داخل الشبكة (مثلاً File Sharing Server أو E-mail Server). بالطبع ليست جميع الخدمات متاحة لكل الافراد ولكن هذه السيرفرات عليها تحديد اذا كان المستخدم له الحق فى استخدامها ام لا.

للأسف السيرفر نفسه لا يمكن الاعتماد عليه فى تحديد احقية المستخدم فى استخدام الخدمة ام لا. بمعنى اخر هناك ثلاث مشاكل:

1- قد يستخدم احد اليوزرز سيرفر له access عليه فى الدخول منه الى سيرفر اخر.

2-قد يقوم احد اليوزرز بتغيير الـ IP لاحد السيرفرات فتذهب اليه الrequests بدلا من السيرفر الاصلى.

3-قد يقوم احد اليوزرز بالتصنت على الشبكة ويقوم بحفظ الـ Password ثم يقوم باستخدامها فى وقت اخر.

(فى اى من الحالات السابقة قد يتاح ل user ليست له صلاحية (privilege) فى الدخول على سيرفر معين).

وبدلاً من تحميل نظام حماية (Authentication protocol) ومنه ال منفصل على كل سيرفر، يقدم الكيربروس نظام حماية مركزى يخدم الشكبة بأكملها وظيفته أنه يـ authenticate الـ users للـ servers والـservers للـ users

الكيربروس يعتمد على نظام التشفير المتماثل (symmetric) ولا يقوم باستخدام ال public key encryption

و هناك اصدارين من الكيربروس مستخدمين هما : كيربروس 4 وكيربروس 5. بسبب تعقيد الاصدار الخامس سوف نقوم بشرح كيربروس 4 حيث انه يحتوى على جميع الاساسيات ثم نقوم بالقاء نظرة على التعديلات التى تمت فى الاصدار الخامس

إذا كانت مجموعة من المستخدمين (المخصص لهم اجهزة كمبيوتر) ليس لهم أى اتصال بين هذه الاجهزة ، إذا يمكن حماية الملفات الخاصة بكل مستخدم إذا تمت حماية اجزة الكمبيوتر نفسها (physical protection) لانه ليس هناك اى اتصال بين الاجهزة وبعضها.

أما إذا كان هناك سيرفر يقدم خدمة معينة لهذه الاجهزة المتصلة بهذا السيرفر فيجب على السيرفر ان يقدم الحماية المناسبة لل users المتصلين بهم.

فى الوقت الحالى ،  هناك أنظمة أكثر شيوعاً لتحقيق الحماية لشبكة كمبيوتر مكونة من مجموعة من المستخدمين ومجموعة من السيرفرات

1- الاعتماد على كل جهاز عميل فى التحقق من شخصية مستخدميه ويكون على كل سيرفر التحقق من اسم المستخدم الذى يقوم بالدخول.

2- يتطلب من كل جهاز عميل ان يقوم بتعريف نفسه للسيرفر ولكن الوثوق فى الجهاز العميل فى التحقق من مستخدميه.

3- يتطلب من كل مستخدم ان يعرف نفسه لكل خدمة Service يستخدمها ويتطلب من كل server ان يعرف نفسه للusers.

بالنسبة لشركة او مؤسسة واحدة قد يكفى استخدام اى من الحلين الاولين. لكن فى بيئة اكبر يجب استخدام الحل الثالث لحماية المعلومات الخاصة بكل مستخدم وحماية الservers من الاختراقات. ومن هنا يستخدم الكيربروس السيناريو الثالث فى حماية الشبكة.

Kerberos 4

الاصدار الرابع من الكيربروس يستخدم نظام الDES فى التشفير. دعنا نتخيل سيناريو التحقق من المستخدم فى ابسط حالاته. فى شبكة غير مدعمة باى نظام حماية ، اى يوزر يستطيع الدخول على اى سيرفر ويستخدم اى خدمة يقدمها هذا السيرفر، وبالتالى اى مخترق يستطيع ان يظهر كأنه يوزر على الشبكة وبالتالى يدخل على خدمات الشبكة، للتغلب على هذه المشكلة ، يكون هناك سيرفر خاص بالـ authentication يسمى AS أو AuthenticationServer و الشكل القادم يوضح خطوات التحقق من ان اليوزر له الحق فى الدخول على السيرفر.

هذا السيرفر هو المسئول عن التحقق من اليوزرز داخل الشبكة، ويكون به جميع اسماء المستخدمين وكلمات المرور الخاصة بهم وأيضا صلاحيتهم. أيضا به Encryption Key خاص بكل سيرفر داخل الشبكة هذا الkey يكون معروف بينه وبين السيرفر بحيث اذا اراد ان يرسل رسالة لسيرفر معين دون ان يستطيع احد اخر قراءتها تكون هذه الرسالة مشفرة بالkey الخاص بهذا السيرفر وكما قلنا ان الكيربروس 4 يستخدم ال DES فى التشفير فإن الkey المستخدم فى التشفير هو نفسه الkey المستخدم فى فك التشفير.

إذا لكى يقوم أحد الclients بالدخول على Server معين يتم ذلك كالتالى

أولاً يقوم ال client بارسال رسالة إلى الAS يطلب تصريح بالدخول إلى السيرفر V هذه الرسالة تتكون من الآتى

IDc + Pc + IDv

حيث أن

الـ IDc هو اسم اليوزر وال Pc هى الباسوورد الخاصة بهذا اليوزر وال IDv هو اسم السيرفر V

عندما تصل هذه الرسالة إلى الـ AS يقوم بالتحقق من

أ‌- أن اسم اليوزر والباسوورد صحيحتين (حيت أنه AS يحتوى على جميع اليوزرز وكلمات المرور الخاصة بهم)

ب‌- أن هذا اليوزر له الحق فى الدخول على السيرفر V

إذا تحقق الشرطين السابقين يقوم الAS بارسال تصريح (Ticket) للـ Client وهذا التصريح يحتوى على الآتى

IDc + ADc + IDv

حيث أن الـ ADc هو عنوان الclient داخل الشبكة. ولكن هذا التصريح يكون مشفر باستخدام الـ key المتفق عليه بين الAS والسيرفر V وذلك حتى لا يستطيع الclient التغيير فى هذا التصريح وأيضا هذا التصريح يحتوى على عنوان الclient حتى لا يستخدم هذا التصريح مرة اخرى من اى جهاز اخر ويكون مقصورا على الجهاز الذى تم الطلب منه (client computer)

بمجرد وصول التصريح (Ticket) إلى الclient يقوم بارسال هذا التصريح مصحوبا باسم اليوزر إلى السيرفر V كالآتى:

IDc + Ticket

فيقوم السيرفر V عنذ استقباله للتصريح بفكه باستخدام الkey المتفق عليه بينه وبين ال AS ويقوم بالتأكد من أن اسم المستخدم المرفق IDc هو نفسه الاسم الموجود بالتصريح فإذا كان صحيحا يقوم بالسماح لهذا المستخدم بالدخول إلى السيرفر

دعنا نقوم بتلخيص السيناريو السابق…

(1) C >> AS : IDc + Pc + IDv

(2) AS >> C : Ticket: Ekv(IDc + ADc + IDv)

(3) C >> V : IDc + Ticket

حيث أن ال Kv هو ال Key المستخدم بين الAS والسيرفر V

بهذا لم ينتهى الكيربروس بل هناك الكثير من الثغرات فى هذا النظام التى نود التعرف عليها وكيف تم حلها فى الكيربروس الجديد

10 آراء على “Kerberos Authentication Service

  1. ماشاء شرح جميل و واضح جداً , سؤال خارج النص
    ألم تلاحض أنو ليس هناك مدونات مختصة بل الشبكات غير مدونتك و مدونتي ؟ عجبي أين هم مهندسو الشبكات ؟

  2. حياك الله يا مصطفى أنا معك يا أخوي في نقطه ندره المدونات المتخصصه لكن أنا جذب إنتباهي مدونه الأ بروكين بروكسي
    مدونته تقنيه و جيده فعلا لأنه أيضا يعمل في مجال الشبكات
    سأعطيك الرابط
    تفضل أخوي
    http://br0ken.wordpress.com/

    أعتذر لكل الزوار إذا رأوا أي شي غريب في الكلام و هذا لسبب لا أعلمه فيعلم الله إني تعبت تعب شديد في هذا الموضوع بسبب ماكان يحدث أثناء كتابته من خروج حروف و رموز لا أعرف سببها و الأن كلمه كيربروس تظهر في الأعلى

  3. im really not fiend the suitable words to thank u
    really thank u
    u sir explain that complex item with very simple awesome way
    we wait more from u sir
    again thank u
    thats really help me to get the idea
     

  4. free_soul أهلا بك أخي و لا شكر على واجب حفظك الله ,, فقط كل ما أتمناه هو أن تستفيد فعلا و أن تدعو لي

    نورتني

  5. جزاك الله خيرا اخي الكريم مشكور كتير علي الشرح الوافي والمبسط.
    حقيقه شرح جميل وهو بالضبط ما كنت ابحث عنه

  6. السلام عليكم يعطيك العافية وانا والله معجب بمدونتك ياريت كنت أعرفها من زمان ^_^
    عملية الاتصال ما بين AS  & client  هل تكون مفتوحة الزمن يعنى  الاخ سيرفر V  هل   ينتظر فترة زمنية معينة او الوقت يكون مفتوح !!!  أظن بدون تحديد فترة زمنية لذلك  نعطى فرصة لل hacker  بتخمين او تجريب اى خدع لمحاولة الدخول  .
    وللمرة الثانية مشكوريييييييييييييييييين  على المدونة الحلو وانشالله من الزوار الدائمين  

  7. بصراحة  ابغى شرح عملية التوقيع الالكترونى بستخدام RSA    والله يعطيكم العافية يا رب  لان بصراحة  حب أتعرف على الفكرة

  8. bonjour
    merci pour votre conseil a proposer je demande la configuration de server kerberos sous lunix
    avec remerciment

  9. شرح جميل
    جزاك الله خيرا

  10. جزاكم الله الف خير شرح ممتاز جدا ومفيد احسنتم وبارك الله فيكم .. اذا ممكن شرح عن ban logic ولكم منا كل الاحترام والتقدير

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *