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