اطلاعات آماری و دادهها، امنیت را برای ما به ارمغان آوردند. تصور کنید که اگر امنیت در حفظ اطلاعات وجود نداشت و هر کس به هر آماری دسترسی داشت چه بلایی برسر جامعه گذشته و حال میآمد.
در جنگ جهانی دوم اولین کامپیوترهای قابل برنامهنویسی (Colossus) برای رمزگشایی پیغامهای جنگ ساخته شد. از نظر پیدایش چنین تکنیکی جنگ جهانی بیفایده هم نبوده و برای جلوگیری از دزدیده شدن اطلاعات ارسالی جنگی چنین فناوری نصیب بشر شد.
«برنادر پارسن» مدیر ارشد بخش فناوری شرکت امنیت نرمافزار BeCryp، در این باره توضیح میدهد که دو روش اصلی رمزگذاری مجزا وجود دارد.
روش رمزنگاری متقارن که به دوران امپراطوری روم برمیگردد و رمزنگاری نامتقارن که قدمت چندانی ندارد. با افزایش درک عمومی نسبت به فعالیتهای رمزشناسی، الگوریتمهای زیادی مبتنی بر مسایل پیچیده ریاضی به این تکنولوژی وارد شد. درنتیجه برای رمزگشایی اینگونه الگوریتمها در اواسط دهه 70 و با ظهور کامپیوتر سرعت رشد الگوریتمها و رمزگشایی پیشرفت کرد و به تدریج استاندارهای این رشته به بازار معرفی شد.
با گذشت زمان روشهایی برای رمزگذاری و جلوگیری از استفاده غیرمجاز از مسائل مهم قلمداد شد و نتیجه آنرا در قالب قفلهای نرمافزاری و سختافزاری میبینیم .
واقعیت این است که اینگونه قفلها هیچ شباهتی با قفلهای ضد سرقت اتومبیل و منزل و یا صندوق پول ندارند اما وظیفه آنها یکسان است، جلوگیری از عدم دزدیده شدن و استفاده غیر مجاز. ناگفته نماند مطمئنا از همان آغاز رمزنگاری، افراد یا ابزارهای مبارز برای این تکنیکها پیدا شده است و پا به پای یکدیگر پیر شدهاند. به همین دلیل هم هست که هر بار مجبوریم روشهای جدید را تجربه کنیم یا بشنویم.
چه نوع قفلهای برای نرمافزار وجود دارد؟
قفلهایی که برای حفاظت نرمافزار استفاده میشوند به طور کلی به چند دسته تقسیم میشوند:
قفلهای سختافزاری
قفل سختافزاری، یک قطعه الکترونیکی سختافزاری است که به یکی از درگاه های (Port) کامپیوتر وصل میشوند ( LPT , COM , USB ) و نرمافزار در صورت وجود قفل شروع به کار میکند. شکستن اینگونه قفلها نسبت به قفلهای دیگر سختتر است. این گونه قفلها گران هستند و به دلیل قیمت بالایشان قابلیت استفاده در هر نرمافزاری را ندارند، زیرا در اکثر موارد قیمت قفل چندین برابر قیمت نرمافزار است.
همچنین شرکتی که از این گونه قفلها استفاده میکند هیچ اطلاعاتی از مشتری و کاربر نهایی دریافت نمیکند. از طرفی فروش آنلاین محصولاتی که از قفل سختافزاری استفاده میکنند محدود است زیرا تولیدکننده مجبور به ارسال فیزیکی قفل میباشد.
در واقع نحوه عملکر قفلهای سختافزاری به دو روش است:
- سازنده نرمافزار یک یا چند بایت از اطلاعات را در قفل سختافزاری (Dongle) نوشته و برنامه در هنگام اجرا شدن برنامه آن را چک میکند. در صورتی که قفل وجود داشته باشد، برنامه به کار خود ادامه میدهد در غیر اینصورت برنامه متوقف شده و با اعلام خطا، از ادامه کار باز میایستد. این نوع قفلها دارای ساختاری ساده، به همراه حافظهای در حد چند بایت، و قیمتی ارزان هستند. در بعضی از اینگونه قفلها فقط اطلاعات درون قفل چک میشود و در بعضی دیگر، در مرحله اول وجود قفل چک شده و در مرحله بعدی اطلاعات درون آن چک میشود.
- روش دیگر قفلگذاری این امکان را به سازنده برنامه میدهد تا بخش کوچکی از برنامه را در حافظه قفل قرار دهد، در این حالت چنانچه قفل وجود نداشته باشد برنامه به هیچ وجه قادر به اجرا نخواهد بود. این نوع قفلها، دارای ساختاری کمی پیچیدهتر از قفلهای دسته اول دارند و حافظهای بعضا بیشتر و قیمتی نسبتَََا گرانتر.
قفلهای روی CD
در این روش اطلاعات به صورت خاصی روی CD ذخیره میشوند که کپی CD به روشهای شناخته شده ممکن نباشد.
اینگونه قفلها ارزان هستند ولی به سادگی میتوان آنها را شکست (حتما با نرمافزارهایی مانند Clone CD آشنا هستید) . برای شکستن اینگونه قفلها حتی نیازی ندارید که متخصص کامپیوتر باشید. در واقع مسابقهای میان کسانی که اینگونه قفلها را تولید میکنند و کسانی که نرمافزارهای کپی CD را مینویسند در جریان است. اگر نسخه فعلی نرمافزار Clone CD شما بعضی CD ها را که از اینگونه قفلها دارند را کپی نمیکند، کافی است منتظر نسخه جدید آن باشید. مشکل دیگر قفلهای روی CD وابستگی آنها به CD میباشد. چون در این روش نمیتوان از CD کپی کرد، اگر CD خراب شود هیچ راهی به غیر از خرید دوباره نرمافزار نیست.
احتمال خراب شدن CD با گذشت زمان بسیار بالاست چون برای چک قفل برای هر اجرا نیاز به CD میباشد. به همین دلیل کاربران نهایی تمایلی به خرید محصولاتی که به این روش قفلگذاری شدهاند ندارند.
این قفلها نیز مانند قفلهای سختافزاری هیچ گونه اطلاعاتی از مشتری و کاربر نهایی دریافت نمیکند و از طرفی فروش آنلاین محصولاتی که از این قفلها استفاده میکنند محدود است زیرا تولید کننده مجبور به ارسال فیزیکی CD میباشد.
قفلهای نرمافزاری بر پایه DLL
استفاده از قفلهای موجود که بر پایه DLL هستند بسیار مشکل است و نیاز به برنامهنویسی و تغییر در کد برنامه دارد، در این روش قفلگذار با استفاده از یک زبان برنامهنویسی توابعی که مربوط به قفل است را از DLL فراخوانی مینماید.
در واقع مسئولیت اصلی راهاندازی و نصب اینگونه قفلها به عهده برنامهنویس است. برای نمونه استفاده کننده باید اطمینان حاصل کند که آیا DLL مورد استفاده عوض شده یا خیر. معمولا هکرها با عوض کردن DLL به راحتی قفل نرمافزار را باز میکنند. یکی دیگر از عیبهای مهم اینگونه قفلها این است که کد نرمافزار حتما باید موجود باشد.
شکستن اینگونه قفلها ساده است، زیرا کد ماشین نرمافزار و سایر منابع آن رمزنگاری نمیشود و به سادگی میتوان عمل مهندسی معکوس روی آن انجام داد و دستورات چک شدن قفل را حذف کرد، به گونهای که نرمافزار بدون قفل کار کند. همچنین برخی از منابع نرمافزار مانند عکسها، صدا ها و متن ها به سادگی قابل استخراج است.
قفلهای اینترنتی
در این روش نرمافزار به یک سایت در شبکه اینترنت وصل میشود و در صورت تایید کاربر توسط آن سایت، اجازه کار با نرمافزار به کاربر داده میشود. امروزه با فرا گیر شدن اینترنت، قفلهای اینترنتی به دلیل ارزانی و قابل اعتماد بودن جای خود را باز کردهاند. این قفلها در صورتی که به درستی استفاده شوند دارای امنیت بالا و قیمت ارزان میباشند. شکستن اینگونه قفلها بسیار مشکل است، البته به شرط آنکه از آنها به درستی استفاده شود. یکی دیگر از قابلیتهای اینگونه قفلها توانایی شناسایی کاربر است؛ تولیدکننده نرمافزار میتواند علاوه بر نام کاربر، اطلاعات شناسایی دیگری مانند سن، پست الکترونیکی و غیره را دریافت کنند، همچنین فروش آنلاین نرمافزار به هر جای دنیا به راحتی امکانپذیر است.