security in .net
سيكورتى يعنى حمايه
بس حمايه ايه بالظبط
كمبرمج بصمم برامج
مش المفروض برضك ان اليوزر هو اللى محتاج حمايه
لانى ببساطه ممكن اعمل برنامج يخربله الدنيا
ده سؤال شائع فى السيكورتى
اجابته عاوزه منظور تانى
وهيا ان المبرمج مسئول عن حمايه كوده
فرضا واحد عمل برنامج ممكن يمسح الهارد بس البرنامج ده trusted
انه مش هيعمل حاجه غير مثلا عن طريق الادمن بس
جه واحد تانى واستخدم المكتبه بتاعت البرنماج ده
تفتكروا هنحتاج للادمن فى الحاله ديه
تؤؤؤؤ خالصصصص
وراح عل اليوزر هارده
هتنتشر اشاعه ان البرنامج مش موثوق فيه
واى حد هيقول اسمه
هيلاقى الباقين علطول
يعععععععععععععععع
مش البرنامج اللى بيبوظ الجهاز
كده المبرمج خسر ثقه اليوزر فيه
واليوزر خسر جهازه
يبقى محتاجين حمايه ولا لا؟؟؟؟؟؟؟؟؟؟؟
المبرمج حمايته انه محدش يستخدم مكتبه برامجه بطريقه مش مظبوطه
واليوزر حمايته ان يكون فى ايده التحكم فى البرامج اللى بتشتغل عل جهازه
وده اللى الدوت نت بتعمله
بتدى الحمايه للمبرمج ولليوزر
عن طريق
1-تحدد ايه اللى ممكن البرنامج يعمله (صلاحيات البرنامج)
2-تحدد مين يقدر يتسخدم مكتبه مربمج تانى
3-تحدد مستوى الثقه فى البرنامج
وده من موقع مكروسوفت
فى الدوت نت فيه مفهومين للسيكورتى
Defines permissions and permission sets that represent the right to access various system resources.
Enables administrators to configure security policy by associating sets of permissions with groups of code (code groups).
Enables code to request the permissions it requires in order to run, as well as the permissions that would be useful to have, and specifies which permissions the code must never have.
Grants permissions to each assembly that is loaded, based on the permissions requested by the code and on the operations permitted by security policy.
Enables code to demand that its callers have specific permissions.
Enables code to demand that its callers possess a digital signature, thus allowing only callers from a particular organization or site to call the protected code.
Enforces restrictions on code at run time by comparing the granted permissions of every caller on the call stack to the permissions that callers must have
1-role access security(RAS)
2-code access security(CAS)
عاده بنسمع نصايح اننا نعمل اكونت تانى عل الجهاز غير الادمن ونشتغل بيه
طب ده ليه؟؟؟؟؟؟؟؟؟؟؟؟؟؟
لان اى برنامج بيتحددله صلاحيات من صلاحيات اليوزر اللى بيتسخدمه
يعنى
لو انا بشتغل باكونت الادمن
انا ممكن اعمل اى حاجه امسح ملف امسح هارد اكتب اقرى اى حاااااجه
طب لو عل اكونت تانى
بس مش مسموحلى غير انى اقرى املفات
هل هقدر اكتب نص حرف
ابداااااااااااااااااااااااااا
الاكونت بتاعى مفهوش الصلاحيه ديه يبقى بالتالى البرنماج برضك مفهوش الصلاحيه ديه
ديه الطريقه الشائعه للسيكورتى اللى هيا اسممها RAS
الطريقه التانيه وديه مستحدثه فى الدوت نت
وهيا صلاحيات البرنامج عل حسب البرنامج نفسه وديه مكونه من اكتر من جزئيه
اول جزئيه
permissions
كل خطوه بتتعمل فى الجهاز ليها صلاحيه معنيه
يعنى انى اقرى اكتب من ملف
اغير فى اعدادات الساعه
اخش عل الشبكه
الخ الخ الخ
كل واحده ليها صلاحيه
قالك ياسيدى احنا نحدد لكل برنامج الصلاحيات بتاعته
تخيل بقى حضرتك لما تمشى برنامج برنامج تحددله الصلاحيات
غباء مش كده؟؟؟؟؟؟
ام قايل احنا نجمع شويه صلاحيات جوه permission set
بحيث البرامج اللى عاوز ايلها صلاحيات متشابه هدلها ال set
مش فاضى انا امشى واحده واحده
هنا بقى هتظهر حاجه
لو عندى permission set1
فيه التصريح ده
IOpermission
وعندى
permission set2
registrypermission
وعندى برنامج عاوز فيه التصريحين
هعمل ايه؟
اقوم جامعهم عل بعض
set1+set2
قالك برضه
فيه برامج متشابهه ممكن تكون من نفس المبرمج
او اى حاجه تانيه
ام مقسم البرامج لمجموعات سماها
code groups
وقال عشان البرنامج ينتمى
لكود جروب معين لازم يكون معاه شرط العضويه membership conditions
حدد ال membership condition
لما تكون
1-zone
الزون يعنى الكود بدا ال exe بتاعه منين
الزون ممكن يكون
من الجهاز (my computer zone)
من الشبكه lan (intranet zone)
من النت (internet zone)
من موقع موثوق فيه (trusted site)
من موقع غير موثوق فيه (untrusted site)
وهو يعنى يفرق فى ايه الزون ده
يفرق جامد
ان ملف exe يشتغل من جهازك
هيكون زى ملف اشتغل لوحده كده من النت
ان شا الله
التكمله بعدين