پاسخ تمرین سری سوم امنیت شبکه – دانشگاه شهید بهشتی – نمیسال دوم ۹۵-۹۶

پاسخ تمرینات ‌Advanced Buffer Overflow & SandBoxing & Software Fault Isolation

استاد: دکتر مقصود عباسپور

کمک تدریس: جواد زندی

 

لطفا در ارسال تمرینات خود به نکات‌ مهم زیر توجه داشته باشید:

1- مهلت این سری تمرینات تا ۸اردیبهشت قبل از کلاس استاد درس می‌باشد.

2- برای دریافت پاسخ این تمرین به صورت فایل pdf روی لینک کلیک کنید.

3- نحوه تحویل تمرینات شما به دو صورت می‌تواند باشد:

الف) تمریناتی که به صورت سوالات تحلیلی و تعریفی و مسله ای است به صورت خوانا دستی روی کاغذ بنویسید و برگه خود را تحویل اینجانب دهید. در مورد برگه‌های تمرین خود دقت داشته باشید که حتما نام و شماره دانشجویی را بالای برگه‌ی خود بنویسید.

ب) سوالاتی از تمرین که شامل برنامه‌نویسی است: در این مورد باید متن برنامه ‌(source code) که حتما باید قابل اجرا باشد به همراه متعلقات لازم به ایمیل حل‌تمرین با درنظرگرفتن عنوان مناسب با فرمول [SecNet93B][hw3][student#][full name] ارسال کنید. همچنین به خاطر داشته باشید که درصورتی که قصد دارید چندین فایل برای حل تمرین بفرستید، ابتدا باید آنها را zip کنید و نام فایل زیپ شده را به فرمول فوق درآورید و سپس ضمیمه ایمیل کرده و ارسال کنید. درپایان اگر همه مراحل فوق را به درستی انجام دهید یک ایمیل تاییدیه دریافت تمرین از طرف سیستم به طور خودکار برای شما ارسال می‌شود.

4- همه‌ی دوستان دقت داشته باشند که تصمیم‌گیری در مورد تمرینات یکسان برعهده استاد درس خواهد بود و حل‌تمرین موظف به نوشتن گزارش تخلف و ارایه آن به استاد درس می‌باشد.

5- از آنجایی که پاسخ‌های شما بادقت صحیح‌می‌شود، ایده‌های‌خلاقانه و پاسخ‌های هوشمندانه در حل‌سوالات طبیعتا نمره‌ای فراتر از تمرین دارد.

6- در مورد تمرینات این سری تحویل‌ها با کمی جزیات همراه می‌باشد. لطفا در ارایه تمرینات خود به آنها توجه نمایید. این جزیات در خود سوال حتما قید خواهد شد.

برای مشاهده سوالات به ادامه مطلب بروید.

پاسخ تمرینات سری دوم امنیت شبکه-دانشگاه شهید بهشتی-نیمسال دوم ۹۵-۹۶

به نام خدا

تمرینات Buffer Overflow

استاد: دکتر مقصود عباسپور

کمک تدریس: جواد زندی

 

لطفا در ارسال تمرینات خود به نکات‌ مهم زیر توجه داشته باشید:

1-     مهلت این سری تمرینات تا ۴اردیبهشت می‌باشد.

2-     برای دانلود نسخه الکترونیکی PDF از لینک استفاده نمایید.

3-     نحوه تحویل تمرینات شما به دو صورت می‌تواند باشد:

الف) تمریناتی که به صورت سوالات تحلیلی و تعریفی و مسله‌ای است به صورت خوانا دستی روی کاغذ بنویسید و برگه خود را تحویل استاد درس دهید. در صورتی که مایل بودید می‌توانید تصویر مناسب از برگه تهیه کرده و در درس‌افزار بارگذاری نمایید.

ب) سوالاتی از تمرین که شامل برنامه‌نویسی است: در این مورد باید متن برنامه ‌(source code) که حتما باید قابل اجرا باشد به همراه متعلقات لازم در درس‌افزار با درنظرگرفتن عنوان مناسب با فرمول [SecNet95B][hw2][student#][full name] ارسال کنید. همچنین به خاطر داشته باشید که درصورتی که قصد دارید چندین فایل برای حل تمرین بفرستید، ابتدا باید آنها را zip کنید و نام فایل زیپ شده را به فرمول فوق درآورید.

4-     از آنجایی که پاسخ‌های شما بادقت صحیح‌می‌شود، ایده‌های‌خلاقانه و پاسخ‌های هوشمندانه در حل‌سوالات طبیعتا نمره‌ای فراتر از تمرین دارد.

برای مشاهده سوالات به ادامه مطلب بروید.

تمرین سری سوم امنیت شبکه – دانشگاه شهید بهشتی – نمیسال دوم ۹۵-۹۶

به نام خدا

تمرینات ‌سری سوم

استاد: دکتر مقصود عباسپور

کمک تدریس: جواد زندی

 

لطفا در ارسال تمرینات خود به نکات‌ مهم زیر توجه داشته باشید:

1-     مهلت این سری تمرینات ۷خرداد می‌باشد.

2-     برای دریافت این تمرین به صورت فایل pdf روی لینک کلیک کنید.

3-     نحوه تحویل تمرینات شما به دو صورت می‌تواند باشد:

الف) تمریناتی که به صورت سوالات تحلیلی و تعریفی و مسله‌ای است به صورت خوانا دستی روی کاغذ بنویسید و برگه خود را تحویل استاد درس دهید. در صورتی که مایل بودید می‌توانید تصویر مناسب از برگه تهیه کرده و در درس‌افزار بارگذاری نمایید.

ب) سوالاتی از تمرین که شامل برنامه‌نویسی است: در این مورد باید متن برنامه ‌(source code) که حتما باید قابل اجرا باشد به همراه متعلقات لازم در درس‌افزار با درنظرگرفتن عنوان مناسب با فرمول [SecNet95B][hw3][student#][full name] ارسال کنید. همچنین به خاطر داشته باشید که درصورتی که قصد دارید چندین فایل برای حل تمرین بفرستید، ابتدا باید آنها را zip کنید و نام فایل زیپ شده را به فرمول فوق درآورید.

4-     از آنجایی که پاسخ‌های شما بادقت صحیح‌می‌شود، ایده‌های‌خلاقانه و پاسخ‌های هوشمندانه در حل‌سوالات طبیعتا نمره‌ای فراتر از تمرین دارد.

5-     در مورد تمرینات این سری تحویل‌ها با کمی جزیات همراه می‌باشد. لطفا در ارایه تمرینات خود به آنها توجه نمایید. این جزیات در خود سوال حتما قید خواهد شد.

برای مشاهده سوالات به ادامه مطلب بروید.

پاسخ تمرین اول امنیت شبکه-نیمسال دوم ۹۵-۹۶

پاسخ تمرین اول درس امنیت شبکه-نمیسال دوم ۹۵-۹۶

به نام خدا

تمرینات Basic Cryptography

استاد: دکتر مقصود عباسپور

کمک تدریس: جواد زندی

 

لطفا در ارسال تمرینات خود به نکات‌ مهم زیر توجه داشته باشید:

1-     مهلت این سری تمرینات تا ۲۳اسفند می‌باشد.

2-     برای دریافت نسخهPDF  تمرین از لینک استفاده نمایید.

3-     نحوه تحویل تمرینات شما به دو صورت می‌تواند باشد:

الف) تمریناتی که به صورت سوالات تحلیلی و تعریفی و مسله‌ای است به صورت خوانا دستی روی کاغذ بنویسید و برگه خود را تحویل استاد درس دهید. در صورتی که مایل بودید می‌توانید تصویر مناسب از برگه تهیه کرده و در درس‌افزار بارگذاری نمایید.

ب) سوالاتی از تمرین که شامل برنامه‌نویسی است: در این مورد باید متن برنامه ‌(source code) که حتما باید قابل اجرا باشد به همراه متعلقات لازم در درس‌افزار با درنظرگرفتن عنوان مناسب با فرمول [SecNet95B][hw1][student#][full name] ارسال کنید. همچنین به خاطر داشته باشید که درصورتی که قصد دارید چندین فایل برای حل تمرین بفرستید، ابتدا باید آنها را zip کنید و نام فایل زیپ شده را به فرمول فوق درآورید.

4-     از آنجایی که پاسخ‌های شما بادقت صحیح‌می‌شود، ایده‌های‌خلاقانه و پاسخ‌های هوشمندانه در حل‌سوالات طبیعتا نمره‌ای فراتر از تمرین دارد.


 

سوالات مفهومي:

1-     پیاده‌سازی هر نوع مکانیزم امنیتی  و ارایه‌ی آنها به کاربران به نحوی که میزان خطر را به حداقل برساند، خدمات امنیتی نامیده می‌شود. شما در درس با چند نوع از خدمات امنیتی از جمله Confidentiality, Integrity, Availability, Authentication, Non-Repudiation آشنا شده‌اید. همچنین انواع تهدیدات را به دسته‌های Interception, Modification, Fabrication, Interruption‌ تقسیم بندی نمودیم. حال بگویید هرکدام از این تهدیدات علیه کدام سرویس ارایه‌شده از خدمات امنیتی می‌باشد؟ همچنین بگویید باتوجه به تهدید ذکرشده راه شما برای خنثی‌کردن تهدید موردنظر چیست؟

 

2-      با دسترسی به لینک از جزئیات در مورد نحوه عملکرد پیاده‌سازی DES آگاه شوید. اکنون به این پرسش پاسخ دهید که اصولا به چه دلیل در این الگوریتم از ماژول‌های S-Box  استفاده می‌شود؟

 

3-     در مورد مدهاي کاري رمزهاي متقارن به سؤالات زیر پاسخ دهید:

الف) اگر IV استفاده شده در مد کاري CBC همواره صفر باشد، چه مشکلی ایجاد می‌شود؟

ب) تفاوت عملیاتی اصلی میان دو مد کاري CBC و CTR در حالت رمزنگاري و رمزگشایی در چیست؟ شما در چه حالت‌هایی مدکاري CTR را به مد کاري CBC ترجیح می‌دهید؟

 

4-     حملات متداول برروی DES و AES در صورت موجود بودن شرح دهید.

 

5-     یک پروتکل تبادل پیام بین فرستنده‌یA وگیرنده‌یB راگام به گام توضیح دهیدکه درآن صرفا رسیدن یک پیام از A به B اهمیت دارد و محتوای پیام مهم نیست. در این پروتکل صرفا جنبه‌ی عدم انکار و هویت سنجی اهمیت دارد. این پروتکل باید در برابر حمله ی Man In The Middle مقاوم باشد. بنابراین با رسم شماتیک مناسب مراحل پروتکل را به درستی شرح دهید.

 

6-     فرض کنید قصد داریم پیامی که حاوی x بایت است را ارسال کنیم. با درنظرگرفتن الگوریتم RSA تمامی مراحل موردنیاز برای رمزگذاری و رمزگشایی را به طور کامل شرح دهید.

 

7-      فرض کنید ۲نفر A,B می‌خواهند قبل از تبادل پیام با یکدیگر، هویت یکدیگر را برای خودشان احراز کنند(یعنی A هویت فرد B را احراز شناسایی کند و برعکس) توضیح دهید با استفاده از سیستم رمزنگاری نامتقارن و مرکز صدور گواهی(CA) این امر چطور امکان پذیر است؟

 

8-     در درس آموخته‌اید که وجود یک کلید قوی نقش بسیار مهمی در تامین امنیت داده‌ها دارد. از طرفی دیگر می‌دانید که امروزه طول کلید مناسب برای الگوریتم RSA حدود ۲۰۴۸ بیت به بالاست. این درحالی است که طول کلید برای الگوریتم‌هایی همچون AES ۱۲۸ یا ۲۵۶ درنظر گرفته می‌شود. حال به سوالات زیر پاسخ دهید:

                                 I.            چه ارتباطی بین طول کلید و استحکام الگوریتم‌رمزنگاری وجود دارد؟

                               II.            پاسخ: هرچقدر طول کلید بیشتر شود، استحکام افزایش پیدا می‌کند. چون با افزایش طول کلید فضای کلید بزرگ‌تر می‌شود.

                   III.         اگر داده‌‌یP را یک‌بار با الگوریتم RSA رمزگذاری کنیم،  بدست می‌آید. همچنین اگر همان داده‌یP را با الگوریتم AES رمزگذاری کنیم،  بدست می‌آید. با فرض برابر بودن طول کلید در هر دو الگوریتم، نشان دهید کدام الگوریتم قوی‌تر است(اثبات علمی ریاضی نیاز نیست. مهندسی و استدلالی بحث کنید!)؟ حال که متوجه شدید الگوریتم ضعیف‌تر کدام است، بگویید چرا بازهم از الگوریتم ضعیف‌تردر عمل استفاده می‌شود؟

                            IV.            پاسخ: اثبات در کلاس.

                              V.            (امتیازی)ویژگی‌های یک کلید قوی در الگوریتم‌های RSA و AES چیست؟

پاسخ: اولا)در الگوریتم RSA  کلید باید حتما از دو عدد اول استفاده شود. اگر نشود و مثلا با ۵عدد اول باشد، از قضیه باقیمانده چینی مسله حل میشه (ضمن اینکه پیدا کردن کلیدهای کوچک راحت تر هم هست. هرچثدر تعداد اعداد اول زیاد بشه کوچک تر هم می‌شوند). دوما)دو عدد اول اگر نزدیک به هم باشند خیلی زود الگوریتم شکسته میشه. در الگوریتم AES بیت‌های کلید نباید هیچ‌گونه وابستگی داشته باشند. اگر وابستگی وجود داشته باشد، استحکام کاهش می‌یابد. به عنوان مثال نباید برای تولید کلید در این الگوریتم‌ها از روش‌های psudo random generator استفاده کرد.

 

9-     (امتیازی) آیا الگوریتم دیگری برای سیستم رمزنگاری نامتقارن به جز RSA وجود دارد؟ درصورتی که چنین الگوریتمی پیدا نمودید آن را از نظر استحکام و سرعت و امنیت نسبت به RSA مقایسه کنید. سپس مراحل رمزنگاری آن را به طور کامل شرح دهید.


 

سوالات برنامه‌نويسي:

         i.            در این قسمت قصد داریم تا الگوریتم‌های رمزنگاری موجود را با یکدیگر مقایسه کنیم. کتابخانه‌ی openssl در این تمرین بسیار راهگشا می‌باشد. درصورتی که با این بسته‌ی دوست داشتنی لینوکس آشنایی ندارید می‌توانید خودتان پیاده‌سازی‌های الگوریتم‌های DES, 3DES, AES و یک الگوریتم دیگر به دلخواه خودتان انتخاب نمایید (در صورتی که نمی‌خواهید از openssl استفاده نمایید، دقت داشته باشید که همه‌ی پیاده‌سازی‌ها باید دریک زبان و با یک کامپایلر، کامپایل شده باشد.)

مسله: فایل موجود در لینک را بارگیری نمایید و سعی کنید با یکی از دو تکنیک فوق(یا استفاده از openssl یا استفاده از برنامه پیاد‌سازی شده به زبان دلخواه خودتان) به روش‌های گفته شده رمزنگاری کنید. بنابراین برنامه‌ای به زبان C بنویسید که بتواند بتواند زمان مورد نیاز برای اینکار را اندازه گیری کند. زمان محاسبه شده را در تمرینات بنویسید و کد برنامه را مطابق با دستورالعمل قید شده ارسال فرمایید.

 

       ii.            مشابه تمرین فوق این‌بار قصد داریم تا چکیده پیام فایل موجود در پیوست را محاسبه کنیم. برای اینکار باید از الگوریتم‌های MD5, SHA1, SHA256 و یک الگوریتم به دلخواه خودتان انجام دهید. بنابراین برنامه‌ای به زبان C بنویسید که زمان محاسبه‌ی چکیده‌ی پیام را گزارش کند. زمان محاسبه شده را در تمرینات بنویسید و کد برنامه را مطابق با دستورالعمل قید شده ارسال فرمایید.