سین هشتم
قفلهای نرم افزاری و سخت افزاری با توجه به فزونی نرم افزار در سیستمهای کامپیوتری از یک طرف و توانایی کنترل کپیهای غیرمجاز از طرفی دیگر دلیلی محکم جهت بررسی این شاخه از مهندسی نرم افزار میباشد. از آنجا که متأسفانه قانون Copyright در تمام جهان بجز ایران و چند کشور دیگر اجرا میگردد. بحث کنترل کپیهای غیرمجاز حساستر میشود. با توجه به کپیهای غیرمجازی که روزانه بصورت کاملاً عادی و بدون اطلاع سازنده آن صورت میگیرد، جلوگیری از این عمل و کنترل جدی آن امری ضروری و واجب به نظر میرسد. در این مقاله درباره شناخت انواع این قفلها و چگونگی اعمال آنها بر روی یک برنامه بحث خواهد شد. تعریف قفلهای سخت افزاری به هر برنامهای که کنترل کپی آن از طریق سخت افزار اضافی قابل انجام میباشد، قفل سخت افزاری گویند. تعریف قفلهای نرم افزاری به هر برنامهای که کنترل کپی آن فقط از طریق نرم افزار و بدون نیاز به سخت افزار اضافی قابل انجام باشد، قفل نرم افزاری گویند. طریقه استفاده از قفل سخت افزاری بخش اصلی قفل، از یک حافظه قابل پاک شدن تشکیل شده که با توجه به نوع و حجم آن، دارای عملکردی متفاوت میباشد و عمدتاً به یکی از دو روش زیر عمل میکند: الف) روش اول قفلگذاری به این صورت است که تولید کننده نرم افزار یک یا چند بایت از اطلاعات را در قفل نوشته و برنامه در هنگام اجرا آن را چک میکند. در صورتیکه قفل وجود داشته باشد، برنامه به کار خود ادامه میدهد و اگر قفل وجود نداشته باشد و یا اطلاعات خوانده شده از روی قفل صحیح نباشد، برنامه متوقف شده و با اعلام خطا، از اجرای صحیح، سرباز میزند. این نوع قفلها دارای ساختاری ساده، حافظهای در حد چند بایت، و قیمتی ارزان هستند. استفاده از این قفلها بسیار ساده بوده و نیاز به تخصص خاصی ندارد، تنها کافیست که نرم افزار ویژه قفل را که (توسط شرکت تولید کننده قفل ارائه شده) اجرا نمود. در ابتدا که قفل فاقد اطلاعات است، اول یک کلمه دلخواه، به عنوان کلمه عبور درخواست کرده و سپس با توجه به نوع قفل، یک یا چند کلمه اطلاعات را دریافت و در حافظه قفل ثبت کنید. در دفعات بعد میبایست کلمه عبوری که اولین بار ثبت شده، وارد شود تا بتوان به اطلاعات درونی قفل دسترسی داشت. البته بعد از ورود به برنامه این اطلاعات درونی قفل دسترسی داشت. البته بعد از ورود به برنامه این کلمه قابل تغییر است. در هر صورت، پس از ثبت اطلاعات در قفل، تولید کننده نرم افزار، اطلاعات ثبت شده در یک برنامه را چک میکند که نحوه چک کردن اطلاعات، با توجه به نوع قفل متفاوت است. در بعضی فقط اطلاعات درون قفل چک میشود و در بعضی دیگر، در مرحله اول وجود قفل چک شده و در مرحله بعدی، اطلاعات درون آن چک میشود. ب) روش دیگر قفلگذاری به این صورت است که تولید کننده نرم افزار، بخش کوچکی از برنامه را در حافظه قفل قرار میدهد. در این حالت، چنانچه قفل وجود نداشته باشد برنامه به هیچ وجه، قادر به اجرا و ادامه کار نخواهد بود. این نوع قفلها دارای ساختاری کمی پیچیده، حافظه ای بعضاً تا چند کیلو بایت، و قیمتی نسبتاً گران هستند. استفاده از این قفلها، به سادگی نوع قبلی نیست. البته نحوه کلی کار مشابه روش قبلی است. با اجرای نرم افزار ویژه قفل و وارد نمودن کلمه عبور، باید نام فایلی را که میخواهیم بر روی آن قفل بزنیم، مشخص کنیم، تا بخشی از آن در قفل ثبت گردد. البته در بعضی دیگر از این نوع قفلها، که حفاظت بیشتری را انجام می دهند، میبایست توسط تولید کننده نرم افزار دقیقاً کنترل شود که چه بخشهایی از فایل باید در قفل ثبت گردد که البته انجام این کار نیاز به تخصص و تجربه کافی دارد، چرا که بعضاً ممکن است که خطا در انجام کار، باعث بروز اشکال در برنامه تولیدی بشود. چون با این کار در واقع بخشی از برنامه در قفل ثبت میگردد، واضح است که هر قفل فقط برای یک نسخه از برنامه میتواند مورد استفاده قرار بگیرد و به همین علت کاربرد این قفل، کمتر است. ضمناً نوع دیگری از قفلها هستند که از از هر دو روش فوق استفاده میکنند، اما طرفدار چندانی ندارند. قفلهای سخت افزاری با توجه به اضافه کردن یک سخت افزار جدید به کامپیوتر (اغلب از طریق ارتباط با پورت چاپگر) برنامه خود را کنترل میکنند. برنامه قبل از اجرا ابتدا با توجه به مراجعه به آدرس سخت افزار نصب شده (اضافه شده با استفاده از دستور Port) به سخت افزار مورد نظر خود مراجعه کرده و در صورت یافتن آن، تستهای مختلف اعم از تست رمز، خواندن اطلاعات و... میتواند تصمیم گیری نماید. طریقه استفاده از قفل نرم افزاری با توجه به نوع کاربرد برنامه، اندازه، قابلیت کپی برداری از آن بر روی دیسک، تحت شبکه بودن برنامه و... میتوانیم از انواع روشهایی که جهت حفاظت از نرم افزار در نظر داریم (و متعاقباً توضیح داده خواهد شد) استفاده کنیم. اما مساله قابل بحث این است که چگونه از یک قفل منتخب استفاده نمائیم؟ جواب این سوال متغیر و وابسته به شرایط زیر است میباشد: الف: اعتقاد طراح نرم افزار به اینکه کاربر حتماً باید آن را خریداری نماید تا از امکانات آن مطلع گردد. در این حالت قفل نرم افزاری در ابتدای شروع به کار برنامه کنترل میگردد حتی طراح میتواند در مواقع حساس نیز قفل را مجدداً کنترل کند و یا در حالتی که طراح واقعاً سخت گیر باشد، میتواند در زمان های مشخصی از وجود قفل اطمینان حاصل نماید (مثلاً هر 4 ثانیه). البته در این حالت طراح باید روشی را که جهت کنترل قفل استفاده می کند، نیز در نظر بگیرد. ب: اعتقاد طراح نرم افزار به این که کاربر میتواند از نرم افزار به عنوان نسخه نمایشی نیز استفاده کند. طراح در این حالت میبایست در مکانهای خاصی از برنامه، قفل را کنترل کند. مثلاً در یک برنامه حسابداری میتوان تمام بخشهای سیستم را آزاد گذاشته (یعنی برنامه نیازی به قفل نداشته باشد) اما در صورتی که کاربر مایل به استفاده از امکانات گزارش گیری سیستم باشد، قفل نرم افزاری درخواست گردد. مزیت این روش بر روش قبلی این است که دیگر نیاز به طراحی نسخه نمایشی جهت مشاهده کاربران وجود ندارد. منبع: ماهنامه رایانه
Design By : Pars Skin |