Strong Name in C#.net

bitaroos

Member
سلام
(زبان C#.net)
دوستان امکانش هست یه توضیح مختصر از Strong Name اینجا بزارید!
یه توضیح کوچولو از نحوه عملکرد
یه توضیح کوچولو از کاربردش
میشه باهاش از نرم افزار مون محافظت کنیم؟

اگر یه مثال کاربردی ساده هم اینجا بزارید عالی میشه.

(اگر فارسی باشه خیلی بهتره)

سپاس
 

the_king

مدیرکل انجمن
سلام
(زبان C#.net)
دوستان امکانش هست یه توضیح مختصر از Strong Name اینجا بزارید!
یه توضیح کوچولو از نحوه عملکرد
یه توضیح کوچولو از کاربردش
میشه باهاش از نرم افزار مون محافظت کنیم؟

اگر یه مثال کاربردی ساده هم اینجا بزارید عالی میشه.

(اگر فارسی باشه خیلی بهتره)

سپاس

فرض کنید که یک برنامه دارید که برای تایید اعتبار کاربرش از دستگاه کارت خوان استفاده می کنه و برای برقراری ارتباط با دستگاه کارت خوان شما یک کتابخانه MySecurity.dll
دارید که برنامه به توابع اون فرضا CheckUser رجوع می کنه. اسم کتابخانه و اسم تابع چیزی نیست که نشه جعل کرد. هر کتابخانه همنامی که همون توابع رو داشته باشه
می تونه جایگزین بشه. حالا اگر کسی این کتابخانه MySecurity.dll رو با یک کتابخانه تقلبی و کرک شده عوض کنه برنامه شما متوجه نمیشه و بکارش ادامه میده.

Strong Name اسامی رو به یک امضاء مجهز می کنه که با کلید شخصی / عمومی برنامه نویس ایجاد شده و از سایر اسامی همنام قابل تشخیصه، این کتابخانه رو صرفا
برنامه نویس اش می تونه بسازه چون فقط اونه که کلید شخصی رو در اختیار داره. هر کسی که کلید عمومی رو داره می تونه از کتابخانه بصورت تایید اعتبار شده استفاده کنه.
برنامه از امضاء و کلید اصلی کتابخانه ای که به این طریق حفاظت میشه خبر داره و اگر کسی سعی کنه کتابخانه رو با یک نمونه جعلی تعویض کنه برنامه کتابخانه جعلی رو به رسمیت نمی شناسه.

اما این برای حفاظت از نرم افزار نیست، برای جلوگیری از جعل شدن بخش های مجزای یک نرم افزاره، برای اینه که اگه نرم افزار بخش های مختلفی داره، مطمئن شوید که چیزی این بین جعلی نیست.
وگرنه Strong Name نمی تونه از چیزی حفاظت کنه، جعل کردن اش خیلی مشکله اما حذف کردنش از یک فایل حفاظت شده دشوار نیست. شبیه هولوگرام روی یک جعبه می مونه، اعتبار
اون جعبه رو تایید می کنه، می توانید راحت بر چسب هولوگرام رو بکنید بندازید دور، اما نمی توانید جعل اش کنید.
 

جدیدترین ارسال ها

بالا