15-04-2021, 06:00 AM
(آخر تعديل لهذه المشاركة : 05-04-2024, 02:51 PM بواسطة ehab85.
تعديل السبب: اضافة روابط جديدة للصور والمزيد من التوضيح للخوارزميات والادوات.
)
الدرس الثالث- أ
7 - ادوات التشفير وفك التشفير.
نتيجة تعرض البرامج الى عملية Reskin و cracking و decompiler و disassembler لجأ اصحابها الى تشفيرها (encryption) لحماتها من الـ cracker والوصول الى source code او التعديل عليه، وكذلك يقوم الـ Hackers بتشفير برامجهم (الضارة) لمنع محللي البرامج من تفكيكها ومعرفة آلية عملها وتعقيد عملية التحليل الاستقصائي لها، ويوضع كود فك التشفير الذاتي وكذلك فك الضغط الذاتي في (PE header)، ويستخدم لتشفير الكود المصدري أو إخفاءه أو تعديله عدة برامج منها:
وظائف واستخدامات أدوات حماية البرامج:
Themida و Enigma Protector و Flare و mrip و PC Guard و Armadillo و ASProtect و PECRYPT32 و CodeCrypt و tElock و NFO و PCPEC و PELOCKnt و PE-PROTECT و PE-Encrypter و VGCrypt و PE password protector و PE-Lock و LameCrpyt.
ملاحظة: ادوات التشفير سالفة الذكر جميعها تهدف للحماية من قرصنة البرامج والهندسة العكسية باخفاء الكود المصدر للبرنامج وجعله صعب التحليل او التعديل، وهي تدعم أنظمة تشغيل Windows و Linux و macOS وتستخدم خوارزميات تشفير واحدة او متعددة من خوارزميات: Blowfish او RC4 او AES او Twofish او Serpent او CAST-128 او RSA و MD5.
معلومة: محللي البرامج والهاكرز المحترفين قادرون على استخدام أدوات متقدمة لتحليل الرأس البرمجي وفك تشفير البيانات.
ما الفرق بين التشفير والحزم والضغط ؟
Compression: هي عملية ضغط البيانات لتقليل حجمها وتوفير مساحة التخزين أو تحسين كفاءة النقل عبر تقليل استهلاك النطاق الترددي (Bandwidth) عند عملية ارسال البيانات في شبكة الانترنت.
الضغط يحول البيانات من شكلها الاصلي الى شكل أخر، ويمكن استعادة شكل البيانات الاصلي بسهولة عن طريق وضع دالة function في الـ Header تقوم بعملية فك ضغط البرنامج تلقائيا عند التشغيل (self-decompressing).
خوارزميات ضغط الملفات؟
Packing: عملية حزم البرامج، هي عبارة عن ضغط او دمج الملفات التنفيذية مثل: EXE و DLL و SYS و SCR بما فيهم من اكواد او بيانات او كليهما، حيث يتم حزم الملف بطريقة تجعله أكثر صعوبة في التحليل أو التعديل بالاضافة الى تحسين أداء الملف التنفيذي. هذا قد يتضمن ضغط البيانات، ولكنه قد يتضمن أيضاً خطوات أخرى مثل التشفير أو التعتيم (Obfuscation) حيث توفر بعض ادوات Packers ميزات حماية إضافية مثل التشفير، لكن هذه الميزات ليست مضمونة بشكل كامل
encryption: وتسمى ايضاً Protection وهي عملية تشفير البيانات، بشكل معقد ليصعب قراءتها ويتطلب فك تشفيرها معرفة مفتاح التشفير، ولكن يمكن للخبراء الوصول الى المفتاح، ويمكن فك تشفير البرنامج بشكل تلقائي عن طريق وضع دالة function في الـ Header تقوم بعملية فك تشفير البرنامج تلقائيا عند التشغيل (self-decrypting).
ملاحظة: قد تستخدم تقنيات packing و encryption و compression معًا. فعادتاً ما يتم تشفير الملف المضغوط (packed) او (compressed)، ويمكن القيام بعكس ذلك وهو ضغط الملف المشفر ولكن عادتاً ما يزداد حجم الملف باستثناء اذا استخدمت ASCII armor وفي packing لم تستخدمها فمن المحتمل ان يكون هناك زيادة معتدلة في الحجم وهناك برامج تقوم بالضغط والتشفير معاً مثل: PGP/GPG.
NeoLite هي أداة تستخدم لضغط وتقليل حجم ملفات التنفيذ وتحسين أداء البرامج وتشفيرها وتوفير تأمين إضافي. وتعتمد على خوارزمية الضغط والتشفير المخصصة التي تستخدمها للحفاظ على سرية البرنامج.
ينقسم التشفير الى:
أ- التشفير المتماثل: اقل تعقيداً واقل اماناً وسريع لاننا نستخدم فيه مفتاح واحد لتشفير البيانات وفك تشفيرها.
ب: التشفير الغير متماثل: اكثر تعقيداً واكثر اماناً لاننا نستخدم فيه مفتاح خاص للتشفير ومفتاح عام لفك التشفير.
ج: التشفير في اتجاة واحد (التجزئة): حيث يتم انشاء شفرة تابثة (Hash key) وبطول معين لكل خوارزمية مهما كان حجم البيانات ولا يمكن اعادة البيانات المشفرة الى اصلها.
خوارزميات التشفير المتماثل:
هو نظام تشفير يستخدم مفتاحاً واحداً فقط لتشفير وفك تشفير البيانات. ويجب أن يتشارك جميع الأطراف الذين يرغبون في التواصل مع بعضهم البعض نفس المفتاح وهذه قائمة ببعض انواعها:
XOR: هي عملية منطقية (Boolean) تستخدم على نطاق واسع في التشفير حيث تقارن بين بتين من البيانات وتنتج 1 إذا كانا مختلفين و 0 إذا كانا متطابقين وتستخدم هذه العملية في العديد من خوارزميات التشفير مثل RC4 و AES.
خوارزميات التشفير الغير متماثل:
هو نظام تشفير يستخدم مفتاحين مختلفين: مفتاح عام ومفتاح خاص. يستخدم المفتاح العام لتشفير البيانات، بينما يُستخدم المفتاح الخاص لفك تشفيرها. يمكن لأي شخص الحصول على المفتاح العام، ولكن لا يمكن لأحد فك تشفير البيانات دون استخدام المفتاح الخاص.
خوارزميات التجزئة (Hashing)؟
تستخدم في عملية البحث وتخزين البيانات مثل كلمات السر وفي المصادقة (التوقيع الرقمي او البصمة الالكترونية) للتأكد من الهوية او التأكد من عدم تغيير الملفات والبيانات والتلاعب بها وتنتج خورازميات التجزئة كود يسمى (Hash key) يكون بحجم تابث من 128 بت إلى 512 بت حسب نوع الخوارزمية المستخدمة.
7 - ادوات التشفير وفك التشفير.
نتيجة تعرض البرامج الى عملية Reskin و cracking و decompiler و disassembler لجأ اصحابها الى تشفيرها (encryption) لحماتها من الـ cracker والوصول الى source code او التعديل عليه، وكذلك يقوم الـ Hackers بتشفير برامجهم (الضارة) لمنع محللي البرامج من تفكيكها ومعرفة آلية عملها وتعقيد عملية التحليل الاستقصائي لها، ويوضع كود فك التشفير الذاتي وكذلك فك الضغط الذاتي في (PE header)، ويستخدم لتشفير الكود المصدري أو إخفاءه أو تعديله عدة برامج منها:
وظائف واستخدامات أدوات حماية البرامج:
Themida و Enigma Protector و Flare و mrip و PC Guard و Armadillo و ASProtect و PECRYPT32 و CodeCrypt و tElock و NFO و PCPEC و PELOCKnt و PE-PROTECT و PE-Encrypter و VGCrypt و PE password protector و PE-Lock و LameCrpyt.
ملاحظة: ادوات التشفير سالفة الذكر جميعها تهدف للحماية من قرصنة البرامج والهندسة العكسية باخفاء الكود المصدر للبرنامج وجعله صعب التحليل او التعديل، وهي تدعم أنظمة تشغيل Windows و Linux و macOS وتستخدم خوارزميات تشفير واحدة او متعددة من خوارزميات: Blowfish او RC4 او AES او Twofish او Serpent او CAST-128 او RSA و MD5.
معلومة: محللي البرامج والهاكرز المحترفين قادرون على استخدام أدوات متقدمة لتحليل الرأس البرمجي وفك تشفير البيانات.
ما الفرق بين التشفير والحزم والضغط ؟
Compression: هي عملية ضغط البيانات لتقليل حجمها وتوفير مساحة التخزين أو تحسين كفاءة النقل عبر تقليل استهلاك النطاق الترددي (Bandwidth) عند عملية ارسال البيانات في شبكة الانترنت.
الضغط يحول البيانات من شكلها الاصلي الى شكل أخر، ويمكن استعادة شكل البيانات الاصلي بسهولة عن طريق وضع دالة function في الـ Header تقوم بعملية فك ضغط البرنامج تلقائيا عند التشغيل (self-decompressing).
خوارزميات ضغط الملفات؟
- Huffman Coding
- LZ77
- Deflate : هي أحدى خوارزميات ضغط البيانات بدون فقدان فيها ويستخدم مزيجاً من ترميز LZ77 و Huffman.
- Lempel-Ziv-Storer-Szymanski (LZSS).
Packing: عملية حزم البرامج، هي عبارة عن ضغط او دمج الملفات التنفيذية مثل: EXE و DLL و SYS و SCR بما فيهم من اكواد او بيانات او كليهما، حيث يتم حزم الملف بطريقة تجعله أكثر صعوبة في التحليل أو التعديل بالاضافة الى تحسين أداء الملف التنفيذي. هذا قد يتضمن ضغط البيانات، ولكنه قد يتضمن أيضاً خطوات أخرى مثل التشفير أو التعتيم (Obfuscation) حيث توفر بعض ادوات Packers ميزات حماية إضافية مثل التشفير، لكن هذه الميزات ليست مضمونة بشكل كامل
encryption: وتسمى ايضاً Protection وهي عملية تشفير البيانات، بشكل معقد ليصعب قراءتها ويتطلب فك تشفيرها معرفة مفتاح التشفير، ولكن يمكن للخبراء الوصول الى المفتاح، ويمكن فك تشفير البرنامج بشكل تلقائي عن طريق وضع دالة function في الـ Header تقوم بعملية فك تشفير البرنامج تلقائيا عند التشغيل (self-decrypting).
ملاحظة: قد تستخدم تقنيات packing و encryption و compression معًا. فعادتاً ما يتم تشفير الملف المضغوط (packed) او (compressed)، ويمكن القيام بعكس ذلك وهو ضغط الملف المشفر ولكن عادتاً ما يزداد حجم الملف باستثناء اذا استخدمت ASCII armor وفي packing لم تستخدمها فمن المحتمل ان يكون هناك زيادة معتدلة في الحجم وهناك برامج تقوم بالضغط والتشفير معاً مثل: PGP/GPG.
NeoLite هي أداة تستخدم لضغط وتقليل حجم ملفات التنفيذ وتحسين أداء البرامج وتشفيرها وتوفير تأمين إضافي. وتعتمد على خوارزمية الضغط والتشفير المخصصة التي تستخدمها للحفاظ على سرية البرنامج.
ينقسم التشفير الى:
أ- التشفير المتماثل: اقل تعقيداً واقل اماناً وسريع لاننا نستخدم فيه مفتاح واحد لتشفير البيانات وفك تشفيرها.
ب: التشفير الغير متماثل: اكثر تعقيداً واكثر اماناً لاننا نستخدم فيه مفتاح خاص للتشفير ومفتاح عام لفك التشفير.
ج: التشفير في اتجاة واحد (التجزئة): حيث يتم انشاء شفرة تابثة (Hash key) وبطول معين لكل خوارزمية مهما كان حجم البيانات ولا يمكن اعادة البيانات المشفرة الى اصلها.
خوارزميات التشفير المتماثل:
هو نظام تشفير يستخدم مفتاحاً واحداً فقط لتشفير وفك تشفير البيانات. ويجب أن يتشارك جميع الأطراف الذين يرغبون في التواصل مع بعضهم البعض نفس المفتاح وهذه قائمة ببعض انواعها:
- DES
- Blowfish
- Twofish
- RC4
- AES
XOR: هي عملية منطقية (Boolean) تستخدم على نطاق واسع في التشفير حيث تقارن بين بتين من البيانات وتنتج 1 إذا كانا مختلفين و 0 إذا كانا متطابقين وتستخدم هذه العملية في العديد من خوارزميات التشفير مثل RC4 و AES.
خوارزميات التشفير الغير متماثل:
هو نظام تشفير يستخدم مفتاحين مختلفين: مفتاح عام ومفتاح خاص. يستخدم المفتاح العام لتشفير البيانات، بينما يُستخدم المفتاح الخاص لفك تشفيرها. يمكن لأي شخص الحصول على المفتاح العام، ولكن لا يمكن لأحد فك تشفير البيانات دون استخدام المفتاح الخاص.
- Elliptic Curve Digital Signature Algorithm (ECDSA):
- Rivest-Shamir-Adleman (RSA)
- Pretty Good Privacy (PGP)
خوارزميات التجزئة (Hashing)؟
تستخدم في عملية البحث وتخزين البيانات مثل كلمات السر وفي المصادقة (التوقيع الرقمي او البصمة الالكترونية) للتأكد من الهوية او التأكد من عدم تغيير الملفات والبيانات والتلاعب بها وتنتج خورازميات التجزئة كود يسمى (Hash key) يكون بحجم تابث من 128 بت إلى 512 بت حسب نوع الخوارزمية المستخدمة.
- ASH - ASH-1. ASH-2. ASH-3
- RIPEMD-160
- BLAKE2
- MD5