.

.

آشنایی با قفل های سخت افزاری و نرم افزاری

با توجه به افزایش نرم افزارها در سیستم های کامپیوتری و همچنین گسترش یافتن کپی های غیرمجاز، طراحان و مهندسین نرم افزار به دنبال راهی برای جلوگیری از این نوع تخلفات هستند که قفل های نرم افزاری نمونه ای از آنهاست و اینجاست که بحث قفل های سخت افزاری و نرم افزاری پیش می آید.
تعریف قفل‌های سخت افزاری 
Hardware lock
به هر برنامه‌ای که کنترل کپی آن از طریق سخت افزار اضافی قابل انجام می‌باشد، قفل سخت افزاری گویند.
تعریف قفل‌های نرم افزاری
Software Lock
به هر برنامه‌ای که کنترل کپی آن فقط از طریق نرم افزار و بدون نیاز به سخت افزار اضافی قابل انجام باشد، قفل نرم افزاری گویند.
  نایت اسکین

طریقه استفاده از قفل سخت افزاری

بخش اصلی قفل، از یک حافظه قابل پاک شدن تشکیل شده که با توجه به نوع و حجم آن، دارای عملکردی متفاوت می‌باشد و عمدتاً به یکی از دو روش زیر عمل می‌کند:

الف) روش اول قفل‌گذاری به این صورت است که تولید کننده نرم افزار یک یا چند بایت از اطلاعات را در قفل نوشته و برنامه در هنگام اجرا آن را چک می‌کند. در صورتیکه قفل وجود داشته باشد، برنامه به کار خود ادامه می‌دهد و اگر قفل وجود نداشته باشد و یا اطلاعات خوانده شده از روی قفل صحیح نباشد، برنامه متوقف شده و با اعلام خطا، از اجرای صحیح، سرباز می‌زند. این نوع قفل‌ها دارای ساختاری ساده، حافظه‌ای در حد چند بایت، و قیمتی ارزان هستند. استفاده از این قفل‌ها بسیار ساده بوده و نیاز به تخصص خاصی ندارد، تنها کافیست که نرم افزار ویژه قفل را که (توسط شرکت تولید کننده قفل ارائه شده) اجرا نمود. در ابتدا که قفل فاقد اطلاعات است، اول یک کلمه دلخواه، به عنوان کلمه عبور درخواست کرده و سپس با توجه به نوع قفل، یک یا چند کلمه اطلاعات را دریافت و در حافظه قفل ثبت کنید. در دفعات بعد می‌بایست کلمه عبوری که اولین بار ثبت شده، وارد شود تا بتوان به اطلاعات درونی قفل دسترسی داشت. البته بعد از ورود به برنامه این اطلاعات درونی قفل دسترسی داشت. البته بعد از ورود به برنامه این کلمه قابل تغییر است. در هر صورت، پس از ثبت اطلاعات در قفل، تولید کننده نرم افزار، اطلاعات ثبت شده در یک برنامه را چک می‌کند که نحوه چک کردن اطلاعات، با توجه به نوع قفل متفاوت است. در بعضی فقط اطلاعات درون قفل چک می‌شود و در بعضی دیگر، در مرحله اول وجود قفل چک شده و در مرحله بعدی، اطلاعات درون آن چک می‌شود.

 

ب) روش دیگر قفل‌گذاری به این صورت است که تولید کننده نرم افزار، بخش کوچکی از برنامه را در حافظه قفل قرار می‌دهد. در این حالت، چنانچه قفل وجود نداشته باشد برنامه به هیچ وجه، قادر به اجرا و ادامه کار نخواهد بود. این نوع قفل‌ها دارای ساختاری کمی پیچیده، حافظه ای بعضاً تا چند کیلو بایت، و قیمتی نسبتاً گران هستند. استفاده از این قفل‌ها، به سادگی نوع قبلی نیست.

البته نحوه کلی کار مشابه روش قبلی است. با اجرای نرم افزار ویژه قفل و وارد نمودن کلمه عبور، باید نام فایلی را که می‌خواهیم بر روی آن قفل بزنیم، مشخص کنیم، تا بخشی از آن در قفل ثبت گردد. البته در بعضی دیگر از این نوع قفل‌ها، که حفاظت بیشتری را انجام می دهند، می‌بایست توسط تولید کننده نرم افزار دقیقاً کنترل شود که چه بخش‌هایی از فایل باید در قفل ثبت گردد که البته انجام این کار نیاز به تخصص و تجربه کافی دارد، چرا که بعضاً ممکن است که خطا در انجام کار، باعث بروز اشکال در برنامه تولیدی بشود. چون با این کار در واقع بخشی از برنامه در قفل ثبت می‌گردد، واضح است که هر قفل فقط برای یک نسخه از برنامه می‌تواند مورد استفاده قرار بگیرد و به همین علت کاربرد این قفل، کمتر است. ضمناً نوع دیگری از قفل‌ها هستند که از از هر دو روش فوق استفاده می‌کنند، اما طرفدار چندانی ندارند. قفل‌های سخت افزاری با توجه به اضافه کردن یک سخت افزار جدید به کامپیوتر (اغلب از طریق ارتباط با پورت چاپگر) برنامه خود را کنترل می‌کنند. برنامه قبل از اجرا ابتدا با توجه به مراجعه به آدرس سخت افزار نصب شده (اضافه شده با استفاده از دستور Port) به سخت افزار مورد نظر خود مراجعه کرده و در صورت یافتن آن، تست‌های مختلف اعم از تست رمز، خواندن اطلاعات و... می‌تواند تصمیم گیری نماید.

 

طریقه استفاده از قفل نرم افزاری

با توجه به نوع کاربرد برنامه، اندازه، قابلیت کپی برداری از آن بر روی دیسک، تحت شبکه بودن برنامه و... می‌توانیم از انواع روش‌هایی که جهت حفاظت از نرم افزار در نظر داریم (و متعاقباً توضیح داده خواهد شد) استفاده کنیم. اما مساله قابل بحث این است که چگونه از یک قفل منتخب استفاده نمائیم؟ جواب این سوال متغیر و وابسته به شرایط زیر است می‌باشد:

الف: اعتقاد طراح نرم افزار به اینکه کاربر حتماً باید آن را خریداری نماید تا از امکانات آن مطلع گردد. در این حالت قفل نرم افزاری در ابتدای شروع به کار برنامه کنترل می‌گردد حتی طراح می‌تواند در مواقع حساس نیز قفل را مجدداً کنترل کند و یا در حالتی که طراح واقعاً سخت گیر باشد، می‌تواند در زمان های مشخصی از وجود قفل اطمینان حاصل نماید (مثلاً هر 4 ثانیه). البته در این حالت طراح باید روشی را که جهت کنترل قفل استفاده می کند، نیز در نظر بگیرد.

 

ب: اعتقاد طراح نرم افزار به این که کاربر می‌تواند از نرم افزار به عنوان نسخه نمایشی نیز استفاده کند. طراح در این حالت می‌بایست در مکان‌های خاصی از برنامه، قفل را کنترل کند. مثلاً در یک برنامه حسابداری می‌توان تمام بخش‌های سیستم را آزاد گذاشته (یعنی برنامه نیازی به قفل نداشته باشد) اما در صورتی که کاربر مایل به استفاده از امکانات گزارش گیری سیستم باشد، قفل نرم افزاری درخواست گردد.

مزیت این روش بر روش قبلی این است که دیگر نیاز به طراحی نسخه نمایشی جهت مشاهده کاربران وجود ندارد.

 

با توجه به افزایش نرم افزارها در سیستم های کامپیوتری و همچنین گسترش یافتن کپی های غیرمجاز، طراحان و مهندسین نرم افزار به دنبال راهی برای جلوگیری از این نوع تخلفات هستند که قفل های نرم افزاری نمونه ای از آنهاست

 

قبلا اشاره کردیم که قفل های سخت افزاری دارای مشکلاتی است:

* ساده ترین مشکل قفل های سخت افزاری گم شدن دستگاه کلید مخصوص یا فعال کننده است.

 

* در قفل های سخت افزاری از نشانه‌های غیرمتصل و نشانه هایی که از out-of-band استفاده می کنند، که در مقابل حملات آسیب پذیر هستند. در این نوع حمله، کسی که قصد سوء استفاده را دارد به عنوان یک عنصر میانی بین کاربر و سیستم اصلی قرار می گیرد و خود را به جای کاربر اصلی معرفی می کند.

 

در ادامه بحث در مورد قفل های نرم افزاری صحبت خواهیم کرد.

در برخی مواقع به کارگیری قفل های نرم افزاری بستگی به طراح نرم افزار دارد.

گاهی اوقات طراح نرم افزار بر این عقیده است که کاربر حتما باید برنامه را خریداری نماید تا از امکانات آن مطلع گردد.

در این حالت قفل نرم افزاری زمانی که برنامه می خواهد شروع به اجرا کند را بررسی می کند در حالتی که طراح سخت گیر باشد، می تواند در زمان های مشخصی از وجود قفل اطمینان حاصل نماید (مثلا هر 4 ثانیه یکبار)

در روش قفل سی.دی برنامه هنگام اجرا، به سی دی رجوع کرده و برخی از قسمت های خاص آن را چک می کند. این نقاط بخش هایی هستند که به صورت فیزیکی علامت گذاری شده اند و در واقع به نوعی صدمه دیده اند و معمولاً این خرابی با تابش اشعه لیزر انجام می شود. به عبارتی می توان گفت نقاط معینی از سی دی لیزر سوز می شود

ممکن است اعتقاد طراح نرم افزار به این باشد که کاربر می تواند از نرم افزار به عنوان نسخه نمایشی نیز استفاده کند.

طراح در این حالت می بایست در مکان های خاصی از برنامه قفل را کنترل کند. مثلا در یک برنامه حسابداری می توان تمام بخش های سیستم را آزاد گذاشته اما در صورتی که کاربر مایل به استفاده از امکانات گزارش گیری سیستم باشد قفل نرم افزاری در خواست گردد. مزیت این روش بر روش قبلی این است که دیگر نیاز به طراحی نسخه نمایشی جهت مشاهده کاربران وجود ندارد.

 

قفل های نرم افزاری دارای تنوع بیشتری هستند و نحوه عملکرد آن ها به سه روش بیان می شود:

1. محدودیت در تعداد کپی

زمانی که از این روش استفاده می شود برنامه نصب کننده نرم افزار، فضای مشخصی در دیسک را با روش خاصی عدد دهی می کند به این منظور که می توان تعداد مجاز نسخه برداری از برنامه  را در آن درج می کند. با این کار با هر بار کپی کردن برنامه، یک واحد از این عدد کم می شود و هنگامی که تعداد مجاز آن به صفر رسید، دیگر نمی توان برنامه را بر روی سیستم نصب نمود.

این مقدار با پشتیبانی گیری نیز تغییر نمی کند زیرا هنگام نصب، اطلاعاتی راجع به سخت افزار سیستم که می تواند در قفل ذخیره می شود و بعد از آن پس از هر بار اجرای برنامه، این اطلاعات به دقت چک می شود و در صورت هرگونه تغییر، برنامه اجرا نمی شود.

 

2. استفاده از دیسکت

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

از این رو برای انتقال برنامه از یک سیستم به سیستم دیگر، این دیسکت مانند قفل سخت افزاری عمل می کند و می بایست تمامی جزئیات آن توسط برنامه تایید شود و چنانچه این دیسکت در درایو نباشد، برنامه اجرا نخواهد شد.

3.قفل سی دی (اجرا از روی سی دی)

با گسترش استفاده از سی دی، روش جدیدی در قفل گذاری ابداع شد و آن اجرای برنامه از روی سی دی است.

در این حالت برنامه هنگام اجرا، به سی دی رجوع کرده و برخی از قسمت های خاص آن را چک می کند. این نقاط بخش هایی هستند که به صورت فیزیکی علامت گذاری شده اند و در واقع به نوعی صدمه دیده اند و معمولاً این خرابی با تابش اشعه لیزر انجام می شود. به عبارتی می توان گفت نقاط معینی از سی دی لیزر سوز می شود. این نقطه یا نقاط، به عنوان قفل سی دی عمل می کند و از عمل تکثیر یا کپی برداری و همچنین استفاده غیر مجاز از آن جلوگیری می کند.

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

 

4. قفل با استفاده از فرمت غیر استاندارد

این روش از جمله پر کاربردترین روش های قفل نرم افزاری است و از جمله دلایل اهیمت آن می توان به موارد زیر اشاره کرد:

- امکان استفاده از روش‌های متفاوت در این روش

- راحتی و سرعت زیاد به هنگام استفاده از آن

- وجود ضریب اطمینان بالا و انعطاف پذیری زیاد آن

- عدم وجود نرم‌افزار خاصی جهت باز کردن این نوع از قفل ها

سیستم عامل جهت دسترسی به اطلاعات یک دیسکت از فرمت خاصی استفاده می کند، اما اگر یه ترک به صورت غیر استاندارد فرمت شود، سیستم عامل دیگر توانایی استفاده از سکتورهای غیرمجاز را نخواهد داشت و بنابراین تمام نرمافزارهای سیستم عامل نیز از سکتورهای مخفی استفاده نکرده، در نتیجه امکان کپی برداری از آنها بسیار ضعیف است.

در این روش در صورتی که ترک آخر دیسک را مثلا به صورت یک سکتوری و با یک عدد خاص مانند 20 فرمت کنید، می توانید به نوعی قفل نرم افزاری ایجاد کنید چرا که جهت کنترل دیسکت می توانید به سکتور فوق مراجعه کرده و آن را کنترل و اجرای برنامه را بررسی کنید.

نظرات 0 + ارسال نظر
امکان ثبت نظر جدید برای این مطلب وجود ندارد.