یکی از مسائلی که تولید کنندگان نرم افزار در کشور با آن روبرو هستند آن است که به دلیل ضعف قوانین کپی رایت (حقوق مولف) باید خود راسا از نرم افزار خود مراقبت کنند و برای محافظت از آن چاره ای بیاندایشند.
بحث مراقبت از نرم افزار شامل اقداماتی است که از دستکاری و یا کپی برداری غیر قانونی در مقابل افراد مجاز و یا غیر مجاز جلوگیری می کند. به عبارت دیگر به این می پردازیم که:
- چگونه نرم افزار از اجزاء خود به صورت یکپارچه مراقبت نماید. (مبحث جامعیت (Integrity) از عوامل کیفی نرم افزار)
- افراد غیر مجاز نتوانند به درون نرم افزار نفوذ کنند (مبحث امنیت (Security) نرم افزار)
- افراد مجاز قادر نباشند با اقدامات غیر مسؤولانه و یا ورود اطلاعات غلط، به بخشی از سیستم آسیب برسانند. (مبحث توانمندی و یا استحکام (Robustness) نرم افزار)
- نتوان نرم افزار را بدون اجازه مالک آن کپی کرد و از آن استفاده مجدد داشت (رعایت Copy Right نرم افزار)
سه مورد اول جزء طبیعاتی است که یک نرم افزار تجاری باید به آنها مجهز باشد (عواملی که یک سیستم تجاری را از یک سیستم دانشگاهی یا آزمایشی جدا می کنند) اما همانگونه که گفتم ، آخری به ضعف قانون و یا ضعف اجرای قانون رعایت حقوق مولف بر می گردد.
هر تولید کننده ای با توجه به نوع محصولی که تولید می کند، فنآوری مورد استفاده، دانش و تجربه و قیمت نرم افزار، روشی را برای مدیریت مراقبت از نرم افزار خود به عنوان یک سرمایه خود بکار می گیرد. از قفل های نرم افزاری گرفته، تا قفل های سخت افزاری، رمزگذاری فایل ها، مخفی سازی اطلاعات حساس، استفاده از بمب های منطقی (Logical Bomb) ، قفل گذاری روی CD ، استفاده از مبحث Licensing یا لیسانس نرم افزار، ثبت وقایع، تهیه مداوم نسخه های پشتیبان یا Mirror از اطلاعات و یا برنامه ها، انواع قفل های تلفنی ، اینترنتی، فایل های کد کلید ، توکارکردن نرم افزار ها در داخل سخت افزارها، کارتهای هوشمند، مدیریت کاربران قوی، تغییر دوره ای رمز عبور، مکانیسم های تشخیص اثر انگشت، انواع سیستمهای هشدار دهنده سرقت و نفوذ (Hack) و یا حمله (Attack) و .....
اینکه شما از کدام استفاده می کنید همانطور که گفتم به شما و نوع و قیمت محصولتان بسته است.
در این نوشته می خواهم شروع کننده نظریه ای باشم که شاید بتوان در آینده آن را تکمیل کرد و به عنوان یک روش در محافظت از نرم افزارها بکار گرفت. آن اینکه از روی حیات وحش الگو گرفت، اینکه جانوران مختلف از خود چگونه مراقبت می کنند و در مقابل دشمنان خود چگونه ایستادگی نشان می دهند، آن را الگو بگیریم و با توجه به نرم افزار و ماهیت آن (و شناسایی عوامل آسیب رسان به آن) ، نرم فزار در موقع خطر به همان شکل از خود واکنش نشان دهد. بگذارید مثالهای ذکر کنم:
-لاکپشت: یک لاک سخت دارد و چند جای سوراخ برای خروج دست و پا و سرش، هر وقت خطری احساس کند، داخل آن لاک می رود.(لاک پشت که دیده اید!؟) خوب ما هم ترم افزاری بسازیم که در موقع دسترسی غیر مجاز، کپی کردن غیر قانونی و یا احساس خطر برای آسیب، خود را در داخل یک لایه محافظ (بخوانید Firewall) مخفی کند و اجازه همه دسترسی ها را قطع کند تا شرایط به شکل عادی تبدیل شود. برای مثال نوع برخورد دستگاه های پرداخت پول (ATM) و یا وب سایت های امنیتی را مشاهده کنید. به محض احساس خطر، خود را از کار انداخته، ورودی ها و خروجی های سیستم را غیر فعال می کنند.
-خارپشت: که در هنگام خطر ، خارهای پشتش (برخلاف سطح شکمی ضعیف و قابل نفوذش) به دردش می خورد و آن را به سمت عامل خطر پرتاب می کند. استفاده از بمب های منطقی، ویروس های هدفمند و یا آسیب زدن به سیستم عامل و یا �?ایل های کاربر سرقت کننده اطلاعات ایده جدیدی نیست، به نظر شما شبیه خارپشت نیسند اینگونه نرم افزارها.
-راسو (؟) : جانور شناس نیستم، اما فکر می کنم یک نوع راسو یا چیز شبیه آن است که به محض دیدن خطر، بوی بدی از خود متصاعد می کند! نمی شود نرم افزاری ساخت که اگر غیر مجاز کپی شد و یا نفوذی در آن صورت گرفت چنین واکنشی نشان دهد (منظورم آن نیست که بوی بد بدهد!) برای مثال نسخه های Shareware نرم افزار ها را نگاه کنید، پس از مدتی آنقدر ضدحال می زنند که ترجیح می دهید یا از شرشان خلاص شوید و یا بخریدشان، آنقدر اعلان های مختلف، فرمهای مختلف، کند شدن سیستم و .... می دهند که شما مجبورید این روش را خاتمه دهید. یک کم غلیظش کنید، می شود همان راسوی قصه ما.
-مارمولک: مشهور است که مارمولک در هنگام خطر دم خود را قطع می کند و فرار می کند. مهاجم گول می خورد که به هدف رسیده است، غافل از آنکه آن دم تله است و سمی و با خوردن آن .... می شود نرم افزاری ساخت که دزد را گول بزند، مثلا اجازه بدهد از نسخه قفل شکسته استفاده کند و یا تا حدی دسترسی غیر مجاز را فراهم کند اما در پس زمینه مانند یک اسب تروا (Trojan Horse) کاری کند و سازنده را مطلع سازد و یا خرابکاری نماید.
....
زیاد است از این دست، شاید سعی کردم یک نوشته یا یک کتاب بنویسم در این مورد، اینکه چطور از دیدن برنامه های رازبقا در توسعه نرم افزار تاثیر بگیریم ...!
باز هم در این مورد -محافظت از نرم افزار- خواهم نوشت.
همین!