قفل در اصطلاح عامیانه کلامی آشناست و از آن برای حفاظت از اشیا مختلف استفاده می شود.
اما مفهوم قفل در دنیای کامپیوتر و عالم نرم افزار، چیست ؟
امروزه برای جلوگیری از استفاده غیرمجازا ز برنامه ها ویا تکثیرغیرقانونی آنها، اصطلا حا به آنها قفل می زنند.
اما این قفل گذاری چگونه صورت می گیرد ؟
قفل گذاری کلا به دو روش نرم افزاری و سخت افزاری انجام می شود که ذیلا به تشریح آن می پردازیم.
قفل سخت افزاری ( Hardware lock )
چنانچه ازسخت افزارخاصی برای قفل گذاری استفاده شود، به آن قفل سخت افزاری می گوییم. این قفلها بعضی به صورت یک رابط، بر روی پورت پارالل سیستم نصب می شوند که البته هر دو نوع آن عملکرد مشابه دارند.
بخش اصلی قفل، از یک حافظه قابل پاک شدن تشکیل شده که با توجه به نوع و حجم آن، دارای عملکردی متفاوت می باشد و عمدتا به یکی از دو روش زیر عمل می کند:
الف) روش اول قفل گذاری به این صورت است که تولید کننده نرم افزار یک یا چند بایت از اطلاعات را در قفل نوشته و برنامه در هنگام اجرا آن را چک می کند. در صورتیکه قفل وجود داشته باشد، برنامه به کار خود ادامه می دهد و اگر قفل وجود نداشته باشد و یا اطلاعات خوانده شده از روی قفل صحیح نباشد، برنامه متوقف شده و با اعلام خطا، از اجرای صحیح، سرباز می زند.
این نوع قفل ها دارای ساختاری ساده، حافظه ای در حد چند بایت، و قیمتی ارزان هستند.
استفاده از این قفل ها بسیار ساده بوده و نیاز به تخصص خاصی ندارد،تنها کافیست که نرم افزار ویژه قفل را ( که توسط شرکت تولید کننده قفل ارائه شده ) اجرا نمود.
در ابتدا که قفل فاقد اطلاعات است، اول یک کلمه دلخواه، به عنوان کلمه عبور درخواست کرده و سپس با توجه به نوع قفل، یک یا چند کلمه اطلاعات را دریافت و در حافظه قفل ثبت کنید. در دفعات بعد می بایست کلمه عبوری که اولین بار ثبت شده، وارد شود تا بتوان به اطلاعات درونی قفل دسترسی داشت. البته بعد از ورود به برنامه این کلمه قابل تغییر است.
در هر صورت، پس از ثبت اطلاعات در قفل، تولید کننده نرم افزار، اطلاعات ثبت شده در یک برنامه چک می کند که نحوه چک کردن اطلاعات، با توجه به نوع قفل متفاوت است.
در بعضی فقط اطلاعات درون قفل چک می شود و در بعضی دیگر، در مرحله اول وجود قفل چک شده و در مرحله بعدی، اطلاعات درون آن چک می شود.
ب) روش دیگر قفل گذاری به این صورت است که تولید کننده نرم افزار، بخش کوچکی از برنامه را در حافظه قفل قرار می دهد که در این حالت، چنانچه قفل وجود نداشته باشد برنامه به هیچ وجه، قادر به اجرا و ادامه کار نخواهد بود.
این نوع قفل ها، دارای ساختاری کمی پیچیده، حافظه ای بعضا تا چند کیلو بایت، و قیمتی نسبتَََا گران هستند.
استفاده از این قفل ها، به سادگی نوع قبلی نیست. البته نحوه کلی کار مشابه روش قبلی است.
با اجرای نرم افزار ویژه قفل و وارد نمودن کلمه عبور، باید نام فایلی را که می خواهیم بر روی آن قفل بزنیم، مشخص کنیم، تا بخشی از آن در قفل ثبت گردد.
البته در بعضی دیگر از این نوع قفل ها، که حفاظت بیشتری را انجام می دهند، می بایست توسط تولید کننده نرم افزار دقیقا کنترل شود که چه بخش هایی از فایل باید در قفل ثبت گردد که ابته انجام این کار نیاز به تخصص و تجربه کافی دارد، چرا که بعضا ممکن است که خطا در انجام کار، باعث بروز اشکال در برنامه تولیدی بشود.
چون با این کار در واقع بخشی از برنامه در قفل ثبت می گردد، واضح است که هر قفل فقط برای یک نسخه از برنامه می تواند مورد استفاده قرار بگیرد و به همین علت کاربرد این قفل، کمتر است.
ضمنا نوع دیگری از قفل ها هستند که هر دو روش فوق استفاده می کنند، اما طرفدار چندانی ندارند.
قفل نرم افزاری (Software Lock)
چنانچه از روش ها و ترفند های نرم افزاری، برای قفل گذاری استفاده شود، به آن قفل نرم افزاری می گوییم. قفل های نرم افزاری دارای تنوع بیشتری بوده و بعضا از لحاظ طراحی و اجرا سلیقه ای و ابتکاری می با شند.
اما می توان نحوه عملکرد اکثر آنها را، توسط یکی از 3 روش ذیل، تشریح نمود:
الف) محدودیت در تعداد کپی(Copy Limited)
در این حالت برنامه نصب کننده نرم افزار، فضای مشخصی در دیسک را با روش خاصی مرمت کرده، و تعداد مجاز نسخه برداری را در آن درج می کند. بدین طریق با هر بار کپی کردن برنامه، یک واحد از این عدد کم می شود و هنگامی که تعداد مجاز آن به صفر رسید، دیگر نمی توان برنامه را بر روی سیستم نصب نمود.
حال ممکن است این سوال مطرح شود که مگر نمی توان پس از نصب برنامه، از آن پشتیبانی(Back Up) گرفته و سپس از نسخه پشتیبان نیز، بر روی سیستم دیگری استفاده نمود؟
پاسخ منفی است. زیرا هنگام نصب، اطلاعاتی راجع به سخت افزار سیستم که می تواند مثلا شامل نوع قطعات و یا شماره سریال قطعات باشد، در جایی، در محدوده قفل ذخیره می شود و از این پس هر بار در هنگام اجرای برنامه، این اطلاعات به دقت چک می شود و در صورت هرگونه تغییر، برنامه اجرا نمی شود.
ب) استفاده از دیسکت، در هنگام اجرای برنامه (Disk Required)
در این حالت، دیسکت مورد نظر، یا به روش خاصی فرمت می شود و سپس در هنگام اجرا، اطلاعات روی آن بررسی می شود، و یا اینکه قسمتی از دیسکت را بصورت فیزیکی و عمدی خراب می کنند و در اینجا، در واقع همان صدمه ای که به عمد، بر سطح دیسکت وارد شده است، به عنوان قفل و محافظ نرم افزار عمل می کند.
از این پس برای انتقال برنامه از یک سیستم به سیستم دیگر، این فلاپی مانند قفل سخت افزاری عمل می کند و می بایست مختصات آن توسط برنامه تایید شود و چنانچه این فلاپی در درایو نباشد، برنامه اجرا نخواهد شد.
قفل سی دی (اجرا از روی سی دی)
با متداول شدن سی دی ویا لوح فشرده، روش جدیدی در قفل گذاری ابداع شد و آن اجرای برنامه از روی سی دی است.
در این حالت برنامه هنگام اجرا، به سی دی رجوع کرده و نقاط خاصی از آن را چک می کند. این نقاط بخش هایی هستند که به صورت فیزیکی علامت گذاری شده اند ودر واقع به نوعی صدمه دیده اند و معمولا این خرابی با تابش اشعه لیزر انجام می شود.
به این ترتیب به اصطلاح نقاط معینی از سی دی لیزرسوز می شود. این نقطه یا نقاط، به عنوان قفل سی دی عمل می کند و از عمل تکثیر یا کپی برداری و همچنین استفاده غیر مجاز از آن جلوگیری به عمل می آورد.
در خاتمه سوالی که در مورد سه روش فوق الذکر مطرح است، این است که آیا می توان قبل از نصب، از دیسکت ها و سی دی های قفل گذاری شده کپی تهیه کرد و سپس آنها را نصب کرد؟
پاسخ منفی است، زیرا همانگونه که اشاره شد، یا بخشی از دیسکت و یا تمامی ان، به روش خاصی فرمت می شود که قابل کپی برداری نیست و یا اینکه محل ونقاطی که بر روی دیسکت و یا سی دی، به صورت فیزیکی و عمدی صدمه دیده اند، اجازه کپی برداری را نمی دهند و مانع از انجام این کار می شوند.