Security and Internet Functions

تحياتي للجميع

تعرفنا علي الانواع المختلفة من قواعد البيانات في لغة البرمجة رينج Ring ونظرا لضرورة حماية تلك القواعد والبيانات المختلفة ضد الهاكرز Hackers  فسوف نتعرف سويا من خلال مقالة اليوم علي أنواع مختلفة سواء  Algorithms أو دوال تستخدم في تطبيق الحماية وذلك باستخدام  مكتبة جاهزة خاصة بال SSL في  لغة البرمجة رينج.

Ring programming language for Hashing, Encryption & Decryption

يستخدم ال SSL في لغة Ring في التشفير وكذلك فك التشفير وأيضا في ايجاد قيم ال Digests أو الرسالة الناتجة من دوال ال Hash والتي تستخدم في الحماية أو عمل خصوصية مثل خصوصية للدخول  Login أو تصريح الدخول لل  Roots ولحماية الملفات.

ملحوظة مهمة قبل البدء في موضوع ال Hashing & Encryptions

التشفير يعتبر وسيلة اخفاء المعلومات حتى لا ترى البيانات بشكل صحيح، وهو يحتاج مفتاح key أو باسورد معين أو تحتاج لطريقة معينة سرية  حتى تسترجع البيانات. بينما ال Hashing هو وسيلة لحفظ البيانات بشكل غير قابل للاسترجاع ابداً ، فالتشفير تستطيع استرجاع البيانات باستخدام الطريقة المقابلة لفك التشفير ، بينما الHashing لا يمكنك على الاطلاق.

فبالنسبة لاستخدامات ال Hashing :

  • اختبار تكامل البيانات وهذا يسمى Integrity:

مثال:

عندما تقوم بتحميل بعض البرامج من الانترنت سوف تجد بجانب زر التحميل الهاش لذلك الملف حتى بعدما تقوم بتحميله يمكنك ان تتأكد من صحة الملف وأنه وصل لك كما في الموقع عن طريق رقم الهاش الذي تم حسابه للملف.

مثال علي ذلك:

عند فتح موقع لتحميل سيرفر ما مثل هذا الموقع :

https://www.openoffice.org/download/index.html

تلاحظ اسفل التحميل التالي: Signatures and hashes: KEYS , ASC , MD5 , SHA256

نقوم بتحميل أي نوع من أنواع ال SSL  المختلفة ونقوم بفتحها عن طريق ال notepad ونقوم بمقارنة ال Strings المحملة مع الناتجة من دوال ال Hash من نفس النوع المختار من ال SSL للملف الذي قمنا بتحميلة وعند التطابق يتنبين لنا صحة الملف كما سنتعرف معا في مقالة اليوم.

ملحوظة:هناك بعض المواقع المسؤلة عن رفع الملفات واستخراج ال hashes لها وعمل مقارنة بال hashes الموجودة مع الملف قبل تنزيلة ومن أمثلة تلك المواقع الموقع التالي:http://onlinemd5.com

  • تخزين البيانات بشكل غير قابل للاسترجاع

مثال:

تخزين كلمات السر في القاعدة على شكل Hashing والسبب أنه اذا حصل اختراق للقاعدة فسوف يتم جلب كل الباسوردات بسهوله، وبالتالي اي مستخدم يسجل لديك سوف تخزن باسورده كهاش، وعندما يسجل دخول سوف تأخذ الباسورد وتحسب الهاش فاذا تطابق مع ما يوجد في القاعدة فسوف تتأكد من صحة الباسورد وبالتالي تسمح له بالدخول وسوف نتعرف علي ذلك في تطبيقات الويب.

ويمكن عن طريق مكتبة ال SSL في لغة الرينج تشفير البيانات أو كلمة السر الخاصة بالدخول أو تطبيق الخصوصية علي ملفات.

 

 

كيفية تطبيق دوال ال SSL:

1-أولا يجب عليك استدعاء مكتبة ال ssl وهي “openssllib.ring

2-ثم بعد ذلك نبدأ استخدام دوال ال SSL التالية:

 

  • MD5
  • SHA1
  • SHA256
  • SHA512
  • SHA384
  • SHA224
  • Encrypt
  • Decrypt
  • Randbytes

 

ويمكنك الاطلاع علي المفاهيم الاساسية  لتلك الدوال من هنا

كما يمكنك الاطلاع علي أمثلة توضيحية لاستخدام الدوال من الموقع الرسمي للغة

MD5() Function:

MD5(cString) ---> String contains the MD5 hash of the string cString

SHA1() Function:

SHA1(cString) ---> String contains the SHA1 hash of the string cString

SHA256() Function:

SHA256(cString) ---> String contains the SHA256 hash of the string cString

SHA512() Function:

SHA512(cString) ---> String contains the SHA512 hash of the string cString

SHA384() Function:

SHA384(cString) ---> String contains the SHA384 hash of the string cString

SHA224() Function:

SHA224(cString) ---> String contains the SHA224 hash of the string cString

Encrypt() Function:

يتم التشفير باستخدام ال Blowfish algorithm

Encrypt(cString, cKey, cIV) ---> Encrypted string

Decrypt() Function:

Decrypt(cCipher, cKey, cIV) ---> Decrypted string

Randbytes() Function:

(Randbytes(nSize) ---> String contains random bytes (bytes count = nSize

مثال توضيحي باستخدام مكتبة “OpenSSLLib”

2.jpg

الكود

ملحوظة:

تم تعريف تلك الدوال أيضا في مكتبة “stdlib.ring” عن طريق Class باسم security فمن الممكن عمل Object من Class    ال security  ثم استخدام الدوال داخل ال Object باستخدام مكتبة ال  “stdlib.ring”.

نفس المثال السابق باستخدام مكتبة “stdlib.ring”

3.PNG

الكود

 Decrypt & Encrypt

تعطي security أعلي من دوال ال hash فمثلا عند تخزين الباسورد في قاعدة البيانات يفضل تخزينة بال encrypt & decrypt & Blowfish.

مثال توضيحي:

6.jpg

 

كود1

كود2

وهناك دوال اخري تستخدم مع الانترنت وتحتاج لاستدعاء مكتبة أخري وهي: “internetlib.ring” 

"load "internetlib.ring

ثم نستخدم دوال الانترنت التالية:

  • Download
  • SendEmail

download() Function

عند عمل Download نكون متصلين بالانترنت وعن طريقها يمكن قراءة أي موقع وعمل أي processing.

Download(cURL) ---> String contains the server response

SendEmail() Function

(SendEmail(cSMTPServer,cEmail,cPassword,cSender,cReceiver,cCC,cTitle,cContent

مثال توضيحي:

11.PNG

الكود

 

وأيضايمكن استدعاء مكتبة “stdlib.ring”  واستخدام تلك الدوال داخل Object من Class باسم “internet”. كما في هذا المثال:

33.PNG

الكود

مثال اخر علي استخدام دوال ال ssl بمكتبة ال STDLIB:

capture3.jpg

للاطلاع علي المقالات الاخري من هنا

تستطيع الاطلاع علي المشاريع مفتوحة المصدر من الموقع  GitHub
الموقع الرسمي للغة  http://ring-lang.net

والي اللقاء

Advertisements

اترك رد

إملأ الحقول أدناه بالمعلومات المناسبة أو إضغط على إحدى الأيقونات لتسجيل الدخول:

شعار وردبرس.كوم

أنت تعلق بإستخدام حساب WordPress.com. تسجيل خروج   /  تغيير )

Google+ photo

أنت تعلق بإستخدام حساب Google+. تسجيل خروج   /  تغيير )

صورة تويتر

أنت تعلق بإستخدام حساب Twitter. تسجيل خروج   /  تغيير )

Facebook photo

أنت تعلق بإستخدام حساب Facebook. تسجيل خروج   /  تغيير )

Connecting to %s