تشغل حماية البرمجيات اهتمام كلٍّ من القائمين على حماية الملكية الفكرية ومطوّري البرمجيات ومسوّقيها، فالبرمجيات منتج فكري رفيع المستوى يتعرض لعمليات النسخ والاستعمال دون إذن مطوّريها أو مالكيها، وتوصف هذه الممارسات عادة بتعبير «قرصنة البرمجيات».
ومما يزيد من خطورة ظاهرة قرصنة البرمجيات سهولةُ نسخها بالمقارنة مع المنتجات الفكرية الأخرى كالكتب والمجلات والموسوعات وغيرها. كما أن أثرها لا يقتصر على حرمان مالكي البرمجيات من العائدات التي يأملون الحصول عليها لقاء جهودهم في تطوير هذه البرمجيات، بل يتعدى ذلك ليؤدي في بعض الحالات إلى إفلاس شركات البرمجيات، أو لتصبح قرصنة البرمجيات أداة للتنافس غير العادل بين الشركات البرمجية وعقبةً في وجه تطوير صناعة البرمجيات عامة.
ولذلك تسعى الحكومات والمنظمات المهتمة بحماية الملكية الفكرية والشركات البرمجية إلى إيجاد السبل القانونية والتقنية لمنع قرصنة البرمجيات أو للحد منها على أقل تقدير.
ورغم تزايد الوعي لدى مستخدمي الحواسيب بالأضرار التي يسببها استخدام نسخ غير نظامية من البرمجيات إلا أن هذه الظاهرة ما تزال واسعة الانتشار.
سرقة البرمجيات
ثمة فئات كثيرة من طرائق القرصنة تختلف باختلاف الهدف منها وانعكاساتها الاقتصادية والأخلاقية، وأشهر هذه الفئات هي:
ـ شراء نسخة نظامية من البرمجيات وتحميلها على عدة حواسيب في الشركة أو لدى الأصدقاء والزملاء.
ـ استخدام نسخة نظامية من البرمجيات من قبل مستخدمين آخرين يتصلون عبر شبكة محلية أو واسعة.
ـ تزوير البرمجيات: نسخ البرمجيات على وسائط تخزين (أقراص مرنة أو ليزرية) تشبه من حيث المظهر الخارجي الوسائط الأصلية وبيع هذه النسخ المزوّرة.
ـ بيع البرمجيات التي يجري تسويقها عادة مدمجةً مع التجهيزات.
ـ تحميل الحواسيب المراد تسويقها ببرمجيات غير نظامية، واستعمال هذه العملية كوسيلة للتسويق.
ـ تأجير البرمجيات إلى أشخاص آخرين مدة محدودة من دون الحصول على إذن الشركة صاحبة البرمجيات.
قراصنة البرمجيات
يمكن تصنيف قراصنة البرمجيات ضمن الفئات الآتية:
ـ التجار الذين يبيعون تجهيزات حاسوبية محملة ببرمجيات غير نظامية.
ـ مجموعات المستخدمين الذين يقومون بنسخ البرمجيات وتداولها فيما بينهم لاستخداماتهم الخاصة.
ـ مزورو البرمجيات المحترفون الذين يحاولون الالتفاف على طرق الحماية.
ـ المنافسون الذين ينسخون أجزاء من البرمجيات لاستخدامها في بناء برمجيات أخرى منافسة.
ـ مواقع القراصنة على شبكة الإنترنت التي تقدم برمجيات غير نظامية للمتصلين بها.
ـ كل شخص ينسخ برمجيات شخص آخر من دون موافقة مسبقة.
مفهوم حماية البرمجيات
يُقصد بتعبير حماية البرمجيات كل الوسائل التي يستخدمها منتجو البرمجيات والقائمون على حماية الملكية الفكرية للتأكد من أن من يشتري منتجاً برمجياً سوف يستخدمه طبقاً للشروط التي تم توريد هذا المنتج البرمجي إليه.
تطور هذا المفهوم بدءاً من منع الاستخدام غير المشروع إلى زيادة العائدات وتشديد العقوبات وصولاً إلى إيجاد طرائق قانونية وتقنية متطورة لمنح الترخيص باستخدام المنتجات البرمجية وإدارة هذه التراخيص ومراقبة حسن استخدام البرمجيات وتطويرها وصيانتها وتحديثها عن بعد.
طرائق حماية البرمجيات
هناك طرائق كثيرة لحماية البرمجيات تتفاوت بدرجة كبيرة وفق أهمية المنتج البرمجي المطلوب حمايته وإمكانات اختراق هذه الطرائق التي مع تزايد تعقيدها، ما تزال قاصرة عن تأمين حماية كاملة للبرمجيات حيث يسعى القراصنة دائماً إلى إيجاد المنافذ ونقاط الضعف التي يستطيعون التسلل من خلالها لتجاوز طرائق الحماية.
ثمة نوعان من الإجراءات التي يمكن استخدامها لإلزام مستخدمي البرمجيات بالحصول على ما يحتاجون إليه من البرمجيات بالأساليب النظامية، يشمل النوع الأول إجراءات قانونية والثاني إجراءات تقنية.
الطرائق القانونية لحماية البرمجيات
تستخدم قوانين حماية الملكية الفكرية واتفاقيات ترخيص استخدام البرمجيات لمنع قرصنة البرمجيات. وتُعد قوانين حماية الملكية الفكرية من أهم الوسائل القانونية نظراً لتطبيقها في معظم دول العالم ولأنها توفر للشركات البرمجية وسيلة قانونية قوية لمعاقبة قراصنة البرمجيات.
تعتمد شركات البرمجيات عادة وسائل مكملة للطرائق القانونية مثل تطبيق أسعار خاصة بالمؤسسات التعليمية، والتسويق الكمي بأسعار مخفضة للمؤسسات الكبيرة، ومنح رخص استخدام مستقلة عن عدد المستخدمين، وإقامة حملات لتوعية مستخدمي البرمجيات بأهمية الحصول على نسخ أصلية ومخاطر استخدام النسخ المقرصنة. كما تلجأ إلى حملات التفتيش المفاجئ لاكتشاف نسخ البرمجيات غير النظامية المُستخدمة لدى المؤسسات والشركات.
الطرائق التقنية لحماية البرمجيات
تشمل هذه الطرائق كل البرامج والأجهزة التي تحول دون الاستخدام غير النظامي للبرمجيات. تطورت هذه الطرائق وانخفضت تكاليفها واتسع استخدامها نتيجة الحاجة المتزايدة لمواجهة عمليات قرصنة البرمجيات عامة والبرمجيات الضخمة خاصة.
تعتمد هذه الطرائق في الحماية على مبادئ علم التشفير (التعمية) وتطبق تقنيات كثيرة أهمها: إعداد أقراص تشغيل خاصة (ذات نسق غير معياري)، وضع مفاتيح وكلمات سر ينبغي أن يدخلها المستخدم ليتمكن من استخدام البرمجيات، وضع كلمات سر أو أرقام تسلسلية ضمن دارات خاصة مبيتة في الحواسيب، وضع كلمات سر أو برمجيات خاصة ضمن ذاكرات من النوع القابلة للقراءة فقط (ROM) read-only memory تتصل بإحدى بوابات الحاسوب dongle.
يمكن التمييز بين نوعين من التقانات المستخدمة في حماية البرمجيات : تقانات برمجية لا تستدعي استخدام أي أجهزة أو دارات إضافية، وتقانات تعتمد تجهيزات خاصة تُركب مع الحاسوب ليتمكن من تشغيل البرمجيات. وتُعد التقانات التي تستخدم تجهيزات خاصة أكثر ضماناً وأمناً في حين تُستخدم التقانات البرمجية كمساعد في تطبيق الطرائق القانونية.
يُستخدم عادة نوعان من الأجهزة الإلكترونية، يعتمد النوع الأول على ذاكرات القراءة القابلة للمحي وإعادة البرمجة كهربائياًEEPROM: electrical erasable programmed read-only memory لتخزين رموز خاصة يقرؤها البرنامج المُراد حمايته ويتأكد من مطابقة محتواها مع قيمة محددة قبل أن يتابع العمل. النوع الثاني يستخدم دارات متكاملة خاصة بالتطبيق المعلوماتي (ASIC) application specific integrated circuit تُصمَّم لتطبيق محدد ولا تتوافر في الأسواق التجارية. تصنَّع هذه الدارات من مكونات خاصة بالتطبيق وتُعد طريقة فعالة لحماية البرمجيات لأن تصميمها وطريقة تصنيعها يكونان معروفين فقط من قبل الشركة التي صنعتها. توصف دارات الحماية هذه عادة بأنها دارات ذكية لأنها تتضمن خوارزميات للتشفير وفك التشفير.
لحماية البرمجيات بوساطة تجهيزات، يجري تصميم البرنامج المطلوب حمايته بحيث يتأكد من وجود تجهيزات الحماية واحتوائها المفتاح الصحيح في أثناء طلب تنفيذه (في مرحلة الإقلاع)، وفي مدد زمنية مختلفة في أثناء التنفيذ (يُفضل هنا استخدام تابع عشوائي لتحديد هذه المدد الزمنية). يمكن تحقيق ذلك بإحدى الطريقتين الآتيتين:
ـ الطريقة الأولى وتشمل أسلوبين:
1- استخدام دارة الحماية للتشفير:
يرسل البرنامج رسالة (مجموعة من الرموز) إلى دارة الحماية التي تعالج الرسالة وتعيد رسالة ثانية إلى البرنامج الذي يقارن نتيجة المعالجة مع قيمة يتوقعها فإذا وجدها مطابقة تأكد من أن دارة الحماية موجودة وتتضمن خوارزمية التشفير.
2- استخدام دارة الحماية لفك تشفير تعليمات البرنامج نفسه:
توضع بعض تعليمات البرنامج بصيغة مشفرة غير قابلة للتنفيذ، وتُرسل هذه التعليمات إلى دارة الحماية التي تقوم بفك تشفيرها وإعادتها ليتمكن المعالج من متابعة التنفيذ.
ـ الطريقة الثانية أكثر أمناً من الأولى لأنها تجعل البرنامج المنسوخ عديم الفائدة من دون دارة الحماية، في حين قد يتمكن قراصنة البرمجيات من التدخل في رموز البرمجيات إذا لم تكن مشفرة وجعل البرنامج يتجاوز مرحلة التحقق من وجود دارة الحماية.