.:: منتديات العاصفة ::.  

العودة   .:: منتديات العاصفة ::. > عالم البرمجة والمبرمجين > منتدى لغة السي c/c++

إضافة رد
 
أدوات الموضوع انواع عرض الموضوع
قديم 09-03-2007, 02:37   #1
.:: عضو قدير ::.
 
الصورة الرمزية romansy
 
تاريخ التسجيل: Jul 2003
الدولة: السودان
المشاركات: 1,053
مقدمه في التشفير | Cryptography | الجزء الاول

مقدمه في التشفير | Cryptography | الجزء الاول
مقدمه التشفير Cryptography الجزء الاول

بسم الله الرحمن الرحيم .....

هل تريد حمايه ملفاتك وبياناتك من المتطفلين ؟
هل تريد الحفاظ على اسرارك وملفاتك من ايدي العابثين ؟
هل تريد ارسال رسائل غير مقروءه من الجميع باستثناء الشخص الذي تريد ؟
هل تريد تشفير ملفاتك من ايادي ابناء اختك الصغار ؟
هل تريد تشفير رسائلك من كبرى الحكومات والمخابرات ووكالات الامن ؟


اذا هذه الدروس موجهه لك ، انت مقدمه التشفير Cryptography الجزء الاول

في البدايه احب ان انوه هنا ، الى ان الموضوع كبير جدا جدا ، وسوف يقسم الى عده اجزاء حتى يسهل متابعته وقرائته ..


الجزء الاول ، موجه للجميع ، مستخدمين ، مبرمجين ، مطورين ، وحتى زبائن تريد ان تشتري احد برامج التشفير ... فهنا سوف يكون الموضوع بشكل عام دون الدخول في التفاصيل الرياضيه والخوارزميات ، وبدون كتابه برامج باحد لغات البرمجه ، فقط الغرض هو توضيح المفهوم العام لهذا العلم الواسع General Concept ، بالطبع سنتناول الطرق الحديثه والمستخدمه حاليا ولن نتطرق الى الطرق القديمه والتي عفا عليها الدهر ..

الجزء الثاني ، موجه للطلبه و للباحثين في هذا المجال ، والمهتمين بدراسه تاريخ التشفير ، والطرق القديمه التى استخدمت في ذلك الوقت ، وطرق كسرها وما الى ذلك Classical Methods .. وايضا سنطبق برامج على هذه الطرق القديمه بشكل سريع ،

الجزء الثالث ، موجه للمبرمجين والمطورين ، الذين يريدون استخدام هذه التقنيات في برامجهم ، واستخدام خوارزميات (مثلا DES,AES,RSA,etc ) مع الشرح التفصيلي لهذه الخوارزميات ، وايضا الى استخدام المكتبات الجاهزه التي تخفي الكثير من التعقيد وتسهل الامر كثيرا ...

بالطبع ، انا لست خبيرا في هذا المجال ، ولكني احاول باذن الله تقديم ما استطيع ، واذا كان لدى احدكم اي معلومات او اي اضافات يريد ان يضيفها ، فبمرحب به بكل تأكيد .. :مقدمه التشفير Cryptography الجزء الاول :

احب ان اضيف ايضا ، انه هناك اسس يجب اتباعها في حال اردت اتباع الطريق الصحيح لان تصبح احد مكتشفين هذه الخوارزميات (او مكتشف الثغرات بها) ان يكون لديك معلومات في المجالات التاليه ، نظريه الاعداد Numbers Theory ، نظريه المعلومات Information Theory ، والتى تتطلب كتاب خاص لكل واحده مقدمه التشفير Cryptography الجزء الاول
.. على العموم نحن بالطبع على قد حالنا و نمد ارجلنا على قد لحافنا :;) ...

وهذه الكتب والمراجع التي باذن الله تؤهلك لدخول هذا العلم من اوسع ابوابه :
Handbook of Applied Cryptography by :Alfred J. Menezes
Cryptography: Theory and Practice by Douglas Stinson
Applied Cryptography, by Bruce Schneier
RSA Security’s Official Guide to Cryptography by : Steve Burnett and Stephen Paine (المرجع الاساسي للجزء الاول ) .

نبدا حاليا الجزء الاول ، وعسى ان نتنهي منه في اسرع وقت ، وقد يأخذ حوالى 4 الى 6 جلسات (او مواضيع) .. حتى نكون انتهينا من اغلب النقاط الموجهه للجميع ...


نبدأ على بركه الله ،،،


لماذا بالتشفير ؟
مقدمه التشفير Cryptography الجزء الاول

قد تتسأل اخي الكريم وتقول " انا لا احتاج للهذه الدروس ، ببساطه ، لانه ليس لدى اي شيء لاخفيه ، ولا داعي لهذه الحمايه" ؟

حسنا اخي ، لكن دعنا نشاهد ملفاتك الطبيه ، او كشف حساباتك في احد البنوك ، او حافظه نقودك ، او دعني استخدم رقم(الهويه) الجواز الخاص بك ، او على اقل تقدير دعني استخدم الباسورد الخاص بدخول المنتدى ، او البريد الخاص بك ..

المقصد هنا ، اننا جميعا لدينا معلومات بحاجه الى ان تبقى سريه عن الجميع ، بالتأكيد ستشعر بعدم الارتياح مثلا في حاله عرفنا كلنا بمواعيد زياراتك للطبيب ، ما هي الادويه والعلاجات التي تستخدمها ، ما هى الامراض المصاب بها (عافانا الله واياكم) .. سبب اخر نحن نريد الحفاظ على تلك المعلومات من المخترقين ، تخيل احدهم سرق الباسورد الخاص بك في المنتدى ودخل بحسابك وبدا يسب ويعلن في الاعضاء ماذا سيكون موقفك ، بالتأكيد اهون من الذي تم استخدام بطاقته الائتمانيه وسرقه مبلغ 1000$ مقدمه التشفير Cryptography الجزء الاول .

الشركات ايضا لديها العديد من الاسرار (الاستراتيجيات ، تفاصيل المنتجات ، معلومات الموظفين ، نتائج ابحاث سريه ) ، وحتى الشركات النصابه "وهم كثر" تريد الحفاظ على هذه النشاطات الدنيئه بعيدا عن الاعين ، كل هذه الشركات (بغض النظر عن شرعيتها) تريد ان تحفظ معلوماتها بعيدا الناس (قد يكونوا منافسين ، مخترقين "هاكر ام كراكر") .

ملاحظه :
بعض الناس يعتقد اعتقاد خاطئ وهو ان الهاكر Hacker هو الشخص المضر ، الحقيقه هي انه هذا الهاكر هو الشخص المحترف وذا خبره طويله في جميع المجالات المختصه بالحاسب ، وهناك من يستخدم هذه الخبره فيما يضر (ولديه اسبابه) ، وهناك من يستخدمها فيما ينفع !!

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


نعود الى التشفير ، ونترك صاحبنا الهكر ريثما ينتهي من عمليات التدمير:مقدمه التشفير Cryptography الجزء الاول

الان وقبل الدخول في اعماق التشفير ، علينا معرفه بعض الامور بشكل سريع ،،



الحمايه المقدمه من قبل نظام التشغيل :
مقدمه التشفير Cryptography الجزء الاول

في الماضي كانت عمليه الحمايه بسيطه جدا ، فقط كل ما عليك هو ان تضع ملفاتك في الدرج ثم اغلاق باب المكتب بالمفتاح !! واذا كنت تريد حمايه اكثر يمكنك الاستعانه "بطبله كبيره" والسلام .. لكن حاليا الامر اختلف بشكل كبير ، فالملفات اصبحت تحفظ في الجهاز والهارديسك والسي دي CD وغيرها ، السؤال هو كيف يمكن حمايه الهادريسك ؟

وهنا يأتي دور نظام التشغيل ، اغلب نظم التشغيل تقدم نوع من الحمايه وتسمى الصلاحيات permissions والتى تسمح لمستخدمين معينين الدخول الى النظام ، وذلك عن طريق اجراء الدخول (نافذه login) ، وفي حاله ادخال اسم المستخدم والباسورد الصحيحين يتم الدخول الى النظام ، وحتى بعد الدخول في حاله حذفت ملف معين فانه نظام التشغيل ينظر اولا هل انت من لك الصلاحيه لحذف هذا الملف وفي حاله النفي فانك لن تستطيع حذف الملف ابدا .

(طبعا مستخدمين انظمه Unix-Like يعرفوا هذه التفاصيل بشكل كبير) ..

والشخص الذي يكون لديه الصلاحيه لفعل شيء هو المدير administrator او root ، وهو الذي يعطى الصلاحيات لباقي المستخدمين ، هو الذي يعطل الحسابات ، هو الذي يعطي الباسورد في حال فقد احدهم الباسورد الخاص به ، هو المدير بمعنى الكلمه ، ولكن root بعيده المعنىمقدمه التشفير Cryptography الجزء الاول ..

كيف يعرف نظام التشغيل ان الشخص الموجود هو المدير الفعلي ؟ عن طريق اسم المستخدم و الباسورد بالطبع ، لكن وبكل اسف الطرق لمراوغه النظام وكسر حمايه باسورد المدير اصبحت منتشره وبكثره ، في ويندوز xp home يكفي ان تدخل عن طريق الوضع الامن للدخول الى النظام !! وهناك الكثير من البرامج لكسر وتغيير الباسورد للاغلب الانظمه ..


كمخترق اريد ان ادخل الى النظام اول ما افكر فيه هو اسم المستخدم الذي يأتي مع النظام preset account ، بالاضافه الى ان اغلب الانظمه (مثلا ويندوز) يكون فيها اسم المستخدم الخاص بالمدير هو administator وبدون باسورد (وللاسف الكثير من المستخدمين يتركون هذ الحساب بدون تغيير) ، وفي هذه الحاله الدخول الى النظام امر في منتهى البساطه وسوف اشكر الشركه المنتجه على هذه الصنيعه التي لا تنسى:مقدمه التشفير Cryptography الجزء الاول

للاسف المستخدم طلع عامل حسابه ومغير الباسورد ، اذا سأبحث عن طريق اخر وهو البحث عن اسم المستخدم والباسورد يعني تخمينه ، في الافلام والمسلسلات الامر سهل للغايه ، دقيقه ويتم الكشف عن هذا الباسورد ويتم الدخول الى النظام مقدمه التشفير Cryptography الجزء الاول ، لكن الحقيقه تختلف كثيرا ، ربما اذا بحثت في المكتب تجد بعض الاوراق مكتوب عليها الباسورد (ايضا هذه في الافلام فقطمقدمه التشفير Cryptography الجزء الاول )

على العموم هناك طريقه تستخدمها الكثير من الجامعات والمؤسسات وهي اسم المستخدم هو نفسه اسم الباسورد ، وقد حصل هذا الامر معي في الجامعه ودخلت الى النظام;) ، كان اسم المستخدم والباسورد عباره عن اسم الشركه المصنعه للشاشه (مكونه من ثلاث حروف) ، اظن الشركه اسمها DTK ، (طبعا بعد العديد من المحاولات البائت بالفشل ، ولم انتبه الى انه الباسورد مكتوب في اسفل الشاشه ) .. المهم انكسر وخلاص مقدمه التشفير Cryptography الجزء الاول .

ايضا حاليا في الجامعه لدينا اغلب الاجهزه في المعمل يوجد بها باسورد على البيوس BIOS بالطبع لا استطيع فتح الجهاز بمفك ونزع البطاريه (فصل عطلول لو شافوني) ، لذلك قمت بالبحث عن طرق واخيرا توصلت الى برنامج مكتوب بالسي لمسح الباسورد ، وفي حال اشتغل بشكل صحيح سأضعه هنا في المنتدى ، متى يبدأ الفصل الدراسي الثاني حتى ابدأ في العمليات الارهابيه مقدمه التشفير Cryptography الجزء الاول ...

حسنا ، في حال اسم المستخدم لم يكن هو الباسورد ، ماذا افعل ؟ (مع الاخذ بالاعتبار اني اعرف اسم المستخدم) لا توجد طريقه الا بالتخمين حول الباسورد ، اسم الزوجه ، رقم الهاتف ، تاريخ الميلاد ، اسم الحبيبه مقدمه التشفير Cryptography الجزء الاول ، ممممم مشكله اليس كذلك ! بالطبع لا ، فهناك الكثير من البرامج تقوم بعمليات التخمين نيابه عنك password cracker ، وفي حاله الباسورد ضعيف ، سوف تدخل الى النظام في خلال دقائق ...

هناك برنامج اسمه l0phtCrack يستخدم من قبل مدراء الانظمه ، وظيفته تغيير الباسودرات المستخدمه في الشبكه ، (بالطبع في حال المدير يستطيع ذلك ، الكراكر يفعلها ايضا p) ..

(يمكنك البحث عن معلومات حول هذا البرنامج ، ودراسته في حال كان برنامج مفيد ، فانا بصراحه لم اتعامل معه من قبل ، اتمنى من الاخوه اذا لديهم اي معلومات حول هذا البرنامج مشاركتنا بها ) .


نوع اخر من انواع الهجوم هو تجاوز نظام التشغيل ، وهو يتطلب بعض الخبره في هذا المجال ، مثلا Data Recovery Attack ، وهنا سوف يقوم بقراءه الهارديسك بت بت وتجميعها لبناء الملف الاصلي ، وهذه البرامج الغرض منها ليس للهجوم ولكن الكراكرز هم الذين استفادوا منها فاغلب برامج استعاده البيانات يتم استخدامها من قبل المختصين في استرجاع البيانات ، مثلا خرب عليك النظام System Crash او حدث Bad Sector في الهادريسك الخاص بك ، كل ما عليك (في حال انك مستخدم) الذهاب الى خبراء استرجاع البيانات ، وهو سوف يستخدموا هذه البرامج لاستعاده بياناتك . نفس الامر سوف يقوم المخترق باستخدام هذه البرامج لتجاوز نظام التشغيل ..

بالمناسبه ، سمعت ايضا عن اجهزه معينه تسترجع البيانات حتى في حاله هناك اضرار بالغه في الهارديسك (حرائق ، سوائل) ، اتمنى في حال لدى احدكم اي معلومات عن هذا الامر او حتى عن البرامج المستخدمه ان يضعها لكي نستفيد منها ،،


نوع اخر من الهجوم وهو الهجوم على الذاكره Memory Reconstruction Attack ، في البدايه عندما نتعامل مع برنامج ما بالطبع سوف تكون جميع التعلميات موجوده في الذاكره ، وسوف تكون هناك اشاره في الموقع المحفوظ فيها تعليمات البرنامج ، وعندما نتنهى من البرنامج ونقوم باغلاقه ، فسوف يقوم مدير الذاكره في النظام بحذف هذه الاشاره دون حذف المحتوى الحقيقي لها ، بالطبع من الممكن ان يأتي اي برنامج اخر ويحل في نفس الموقع ويحذف تلك البيانات ، ومن الممكن ان تكون موجوده .. هجوم الذاكره يقوم بعمل مسح للذاكره وكتابه تلك البيانات التى لا توجد عليها اشاره ، (لا اعلم كم يتم تطبيق هذا الهجوم على ارض الواقع) ..

مشكله اخرى ، وهي الذاكره الظاهريه ، اغلب انظمه التشغيل تحتوي على Virtual Memory وهنا يتم استخدام الهادريسك كذاكره ، ومبدأ عملها في حاله امتلئت الذاكره يتم افراغ بعض من محتوياتها التى لم تستخدم من وقت طويل الى الهادريسك في مكان معين ، بعدها في حال طلبت تلك المواقع (التى اصبحت موجوده في الهارديسك) سوف يقوم نظام الذاكره بعمل تبديل Swap بين المحتويات ،، على العموم في عام 1999 قام احدهم بكتابه برنامج لمسح هذا المكان التي تحفظ فيه الذاكره وتمكن من ايجاد الباسورد الخاص به في احد البرامج .




اضافه الحمايه بواسطه التشفير
مقدمه التشفير Cryptography الجزء الاول

لجعل اسرارك اكثر امانا ، يجب عليك عدم الاعتماد على تلك الحمايه المقدمه من نظام التشغيل والافتراض بأن المخترق يعرف اساليب التراوغ والاختراق ، والاعتماد على التشفير ، وهو ببساطه تحويل النصوص المفهومه الى كلام غير مفهوم gibberish ،

مثل :
my name is wajdy , im a member in 3asfh fourm
تصبح :
kjdkp isjeu epdmp owdkl kldkl kqklq ds

وحتى لو استطاع المخترق بالوصول الى نظامك وكسره ، سوف يشاهد ملفك بالصوره السابقه وياكل المقلب ولن يحصل على شيء:D ..


يعني بالتشفير سوف تحصل على :

* الخصوصيه او السريه Privacy :
لن يستطيع احد قرائه ملفاتك السريه (وملفاتك الطبيه) ، الا من تريده انت فقط !

* تكامل البيانات Data Integrity :
ويعني التأكد من ان رسالتك لم تتغير (قام احدهم بتغيير شيء ما) اثناء ارسالك للرساله

* التحقق Authentication :
التحقق من الشخص الفلاني هو الشخص الذي تريده لقرائه الرساله ،

* عدم الانكار nonrepudiation :
مصطلح غريب قليلا مقدمه التشفير Cryptography الجزء الاول ، ولكن الفائده هنا جعل الشخص المرسل للرساله الالتزام وعدم انكار انه هو الشخص المرسل للرساله ،


بالطبع قد تكون الصوره مشوشه لديك قليلا الان ، لكن لا تخف ، باذن الله سوف تذهب خلال الجلسات والمواضيع القادمه .

انتهت المقدمه .........

المره القادمه باذن الله ، سوف نتناول اول واهم الامور وهي Symmetric key Cryptography (التشفير بالمفتاح المنتاظر) ـ وسوف يكون متوسط الطول قليلا ، يعني شدوا حليكم تمام ،
الى ان القاكم المره القادمه ، استودعكم الله ، الذي لا تضيع ودائعه
.
__________________
I Was here some days from 2003 to 2009

good bye
My_Blog

C++/Java Addict
romansy غير متصل   رد مع اقتباس
قديم 10-03-2007, 05:29   #2
.:: عضو قدير ::.
 
الصورة الرمزية romansy
 
تاريخ التسجيل: Jul 2003
الدولة: السودان
المشاركات: 1,053
موضوع التشفير بالمفتاح المتناظر | Symmetric Key Cryptography

[ALIGN=CENTER]التشفير بالمفتاح المتناظر | Symmetric Key Cryptography
[/ALIGN]


وصلنا في الجلسه السابقه الى ان التشفير هو عباره عن تحويل المعلومات المفهومه الى معلومات غير مفهومه Gibbrish ، والعمليه العكسيه فك التشفير ، هي عمليه تحويل المعلومات الغير مفهومه الى معلومات مفهومه ، جميل ، جميل ...

النوع الاول من انواع التشفير هو: التشفير بالمفتاح المنتاظر ، وهنا سوف نستخدم مفتاح مع خوارزميه (هناك الكثير) لتشفير المعلومات ، وسوف نستخدم نفس المفتاح ونفس الخوارزميه لفك التشفير ،


ولنضرب مثال بسيط يوضح العمليه ،،

الاخ محمد هو مندوب مبيعات في احد الشركات الكبرى ، وقد وصلته رساله من مدير قسم المبيعات الاخ علي ، هذه الرساله تحتوي على معلومات سريه جدا خاصه بالاسعار الجديده للمنتجات وبعض الامور الخاصه في الشركه ،

الان اخونا محمد هو والمدير علي يريدان الحفاظ على هذه الرساله السريه لديهما فقط ، فما هو السبيل لذلك ؟ قد يستطيع الاخ محمد حفظ الرساله لديه في المكتب في الدرج ، او ربما يحفظ تلك الرساله في رأسه ، لكن للاسف الرساله طويله جدا ، وهو يحتاج اليها في عمليه البيع لان بها اسعار المنتجات ... (لذلك يجب ان يحملها معه).

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

اخيرا قرر اخونا محمد تشفير تلك الرساله ، وبما انه لا يعرف اي شيئا في البرمجه قام بشراء برنامج من الاخ romansy يقوم بتشفير الرساله ، هذا البرنامج بسيط في عمله User- friendly ويحتوي على ثلاثه ازرار واحد للتشفير، و واحد لفك التشفير ، و واحد لتحميل الملف من الجهاز .. وبكل بساطه لكي يعمل يقوم محمد بتحميل الملف (الرساله) ، والضغط على زر التشفير Encryption وبعدها تتحول الرساله الى كلام غير مفهوم (مشفر) ... وفي حال حصل المخترق على تلك الرساله الناتجه فبالتأكيد لن يفهم شيء ..




الان اذا اراد اخونا محمد فك الشتفير (العمليه العكسيه) كل ما عليه هو تحميل الرساله المشفره وبعدها الضغط على زر فك الشتفير ، وترجع الرساله الى حالتها الاصليه ..

المشكله الحقيقه هنا ، في حال حصل المخترق على برنامج التشفير هذا (بتاع romansy) هنا كل ما على المخترق تحميل الملف المشفر وضغط زر فك الشتفير وبعدها يحصل على الرساله !! من الممكن ان تقول "كيف يستطيع الحصول على برنامج التشفير
" ، الجواب بالتأكيد هو سيحصل عليه ، اذا كنت تستطيع اخفاء هذا البرنامج فلماذا لا تخفى الرساله من الاصل ، ولا تحتاج لبرنامج romansy ولا بطيخ ..

بالتأكيد اخونا محمد لا يستطيع اخفاء هذا الملف ، اذا ما العمل اذا ؟؟ مممم بالتأكيد هو يحتاج الى شيء اضافي ، الا وهو المفتاح السري Secret Key ..

قام الاخ محمد بابلاغ romansy وقد تم اضافه خاصيه ادخال المفتاح ، اممم الان البرنامج لكي يعمل يجب ان يقوم الاخ محمد بتحميل الملف (الرساله) الى البرنامج ، ويدخل المفتاح سري (اي رقم يحفظه تماما) بعدها يضغط على زر التشفير ، والناتج هو الملف المشفر (الغير مفهوم) ..

في حال اراد الاخ محمد بالقيام بالعمليه العكسيه ، كل ما عليه تحميل الملف المشفر الى البرنامج ، وادخال الرقم السري الذي استخدمه للتشفير ، والضغط على زر فك التشفير ، والناتج هو الملف الاصلي (او الرساله) ..




الان في حال اخونا المخترق حصل على البرنامج والرساله المشفره واراد القيام بالعمليه العكسيه ، هو للاسف لا يملك المفتاح السري ، وسوف يكتب ويخمن ووو وفي كل مره يكتب مفتاح سري خاطئ سوف يكون هناك ناتج غير مفهوم (مسكين ) ..



وهكذا ، اي احد لن يستطيع الحصول على الرساله الاصليه الا بعد كتابه المفتاح السري ، واذا ادخل المفتاح الخاطئ سوف يكون الناتج غير مفهوم ابدا ،وحتى لو كان هذا المفتاح الخاطئ اقل من المفتاح السري برقم واحد او حتى بنص رقم ..


[ALIGN=CENTER]بعض الفلسفه والمصطلحات
[/ALIGN]

طريقه التشفير السابقه التي استخدمناها تسمى (التشفير بالمفتاح المنتاظر او المتماثل Symmetric key Cryptography ) والبعض يسميها Secret key Cryptography ، ايضا اسم (التشفير التقليدي Conventional Encryption ) ، لكن نحن ناخذ المصطلح الاول فقط ..

(بالنسبه الى علم التشفير هناك الكثير من المصطلحات لها نفس المعنى وتؤدي بك في النهايه الى ان يتشفر عقلك ايضا من كثرها ، على العموم سأحاول وضع الاغلب والاشهر هنا ، لكي اذا اراد احدكم فتح احد الكتب او المراجع تكون تلك المصطلحات مفهومه وغير مشفره ) ..

في حال اردت ان تحول المعلومات المفهومه الى غير مفهومه تسمى العمليه تشفير Encryption
في حال اردت ان تحول المعلومات الغير مفهومه الى مفهومه تسمى العمليه فك التشفير Decryption

للتشفير او فك التشفير ، يجب ان تتبع خوارزميه Algorithm معينه ، الخوارزميه هي مجموعه خطوات مرتبه بطريقه معنيه تؤدي هدف معين ، بالطبع مفهوم الخوارزميه مفهوم لدى اغلب المبرمجين ، وتستطيع تطبيق الخوارزميه باي لغه برمجه ، المهم في التشفير الخوارزميه ممكن ان تكون علميه رياضيه معقده للغايه وممكن ان تكون عمليه جمع بتات او عمليه XOR ،، (في اغلب الخوارزميات التعامل بيكون على حسب البت bit ، لذلك سوف تستخدم عمليات الـ Bitwise operation وهي موجوده في سي و سي++ وجافا واسمبلي (طبعا) ، وسوف نتطرق لها باذن الله بالتفصيل عندما يحين وقتها ) .. - بالمناسبه ممكن ان تستخدم تعليمات الاسمبلي داخل السي او السي++ في حال اردنا التعامل بطريقه low level زي المحترفين ، سنضيف مثال لذلك باذن الله- .


البيانات (او الرساله) التى نريد اجراء عمليه التشفير عليها تسمى (النص الواضح plaintext او النص الاصلي cleartext) ..
البيانات بعد التشفير تسمى (النص المشفر ciphertext) ...
الخوارزميه هي التي تقوم بالتشفير ، وتحتاج الى مفتاح ، قد يكون رقم او مكون من عده ارقام .
لدينا ايضا صديقنا المخترق attacker ، وهو الذي نخاف منه ، ونشفر حتى لا يطلع عليها ، وهدفه هو التخريب او السرقه او التلاعب بمشاعرنا ..

العلم الذي يستخدم لكسر الخوارزميات وايجاد نقط الضعف بها يسمى Cryptoanalysis والشخص الذي يقوم بهذا العلم يسمى cryptanalyst ، ( لا توجد لدى ترجمه موثوقه لهذا المصطلح ، لذلك سأتحفظ عنه وسأذكره باللغه الانجليزيه) .

كل الخوارزميات يمكن ان تكسر وتخترق ، لكن الشيء الجيد هو انه اذا كانت الخوارزميه قويه ، قد يأخذ وقت الكسر وقتا طويلا جدا ، عندها تكون النتيجه too late . لذلك الـ cryptanalyst يقوموا يايجاد نقاط الضعف التي تساعد اي شخص باختراق تلك الخوارزميات في اسرع وقت !! والمخترق بالتأكيد يقوم باستخدام النتائج الخاصه بالـ cryptanalyst وايضا لديه العديد من الطرق والادوات الخاصه .

اذا النتيجه هي ان الـ cryptographer هو الذي يطور انظمه التشفير ، الـ cryptanalyst يقوم بايجاد نقاط الضعف فيها وهي خدمه عظيمه للمشفرين ، حيث انهم يكتشفوا الثغرات وينشورها للجميع ، بعكس المخترق الذي يكشف الثغره ويحتفظ بها لنفسه لاجل الاختراق .



[ALIGN=CENTER]ما هو المفتاح ، وما هي اهميته
[/ALIGN]

[B]في التشفير بالمفتاح المتناظر Symmetric المفتاح الذي يستخدم للتشفير هو نفسه الذي يستخدم لفك التشفير ، ومن هنا جائت كلمه المتناظر(أو المتماثل) ، يعني هو نفسه من الطرفين ، الصوره التاليه توضح العمليه :[/B]






لاحظ انه في حاله شفرت الرساله بخوارزميه معينه (مثلا DES) ومفتاح معين (مثلا 10) ، الان في حاله فك التشفير يجب ان استخدم نفس الخوارزميه ونفس المفتاح والا فلن احصل على النص الاصلي .


ما هي اهميه المفتاح ؟؟؟

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

قد يسأل احدكم سؤال "حسنا ، لماذا لا اخترع خوارزميه وابقيها سريه عن الجميع وبهذا لا يعرفها المخترق وبالتالي لا احتاج الى مفتاح" ؟؟

سؤال جيد ، ولكن له عده مشاكل ، اولا لان المخترقين دائما يكسروا ويخترقوا الخوارزميه (سنشاهد بعد قليل بعضا من الامثله الواقعيه) ، ثانيا ، في حال انك لم تكن خبير في التشفير ولا تستطيع تطوير خوارزميه خاصه بك (مثل اخونا محمد) يجب في تلك الحاله ان تثق بالشركه المنتجه للبرنامج (الخوارزميه) الذي تستخدمه (في هذه الحاله يجب ان تثق ب romansy) ؟ هل يستطيع احدكم ان يمنح شركه ما كل هذه الثقه (حتى لو كانت ملك ل romansy ) ؟ بالطبع لا وألف لا...

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

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

ايضا في حال استخدمت مفتاح تشفيرلكل رساله ، في حال تم كسر احد المفاتيح ، فان باقي الرسائل تكون سريه وغير مكشوفه ، على العكس اذا استخدمت خوارزميه من تطويرك وتم كشفها فان كل الرسائل سوف تنكشف ايضا .



[ALIGN=CENTER]
نظره تاريخيه ، المخترقين وراك وراك ، والزمن طويل
[/ALIGN]

السؤال السابق نطرحه مره اخرى ، "في حال شفرت الرساله بخوارزميه لا يعرفها احد ، واذا استخدمت مفتاح فلن ابلغ احد بطول المفتاح " هل تكون الرساله امنه ؟...

وهناك ثلاثه اجوبه ،،

الجواب الاول : هم دائما يعرفون الخوارزميه :
المخترقين سوف يعرفوا الخوارزميه مهما فعلت ، ولا اي واحد في تاريخ التشفير تمكن من ابقاء خوارزميته سريه ، لطالما تمكن الجواسيس في الحرب كشف الخوارزميات سواء باستخدام عمليات رياضيه او اجهزه لكسر الشفرات ، او حتى يوظفوا جواسيس لدى العدو ، او يسرقوا الخوارزميه ، او يسرقوا الجهاز المستخدم للتشفير (هناك العديد من الاجهزه الخاصه للتشفير) ،

في الحرب العالميه الثانيه ، تمكن الجنود البولنديين من سرقه الجهاز الالماني الذي كان الالمان يستخدموه للتشفير (اسمه Engima) وتم بيعه للبرطانيين (الحلفاء) وبعدها تمكن هؤلاء الحلفاء من كسر اغلب الرسائل الالمانيه !!

وبدون اي سرقه ، فان الـ cryptanalysts يستطيعوا ببساطه كسر الشفرات ، ففي الحرب العالميه الثانيه تمكن كاسري الشفرات الامريكيين (اسمهم Codebreaker) من معرفه طريقه عمل الجهاز المستخدم في التشفير لدى اليابانيين (بدون الحاجه الى سرقه الجهاز) .

مثال اخر ، هناك خوارزميه اسمها RC4 اخترعت من قبل شركه RSA في عام 1987 لكن لم تنشر ، كل الـ cryptanalysts والمشفرين اجمعوا في ذلك الوقت ان هذه الخوارزميه امنه جدا وتجعل البيانات سريه للغايه ، ولم تنشر تلك الخوارزميه لاغراض بيع برامج للتشفير (وليس لاغراض عسكريه) ، المهم في 1994 قام احد الهكرز بوضع الخوارزميه مشروحه بالتفصيل في الانترنت ! كيف عرف هذا الهكرز الخوارزميه ؟؟ بالتأكيد من خلال برامج الديبغر Dubbeger (وهي برامج تستخدم لفتح الملفات التنفيذيه وتتبعها سطر بسطر وتغيير الاكواد والكثير من الاومور التي يعرفها الهاكرز) . حاليا خوارزميه RC4 تستخدم كجزء من بروتوكول الـ SSL وهي من احد الخوارزميات التي تستخدم المفتاح المنتاظر للتشفير .

بعض الاحيان ممكن ان تبقى الخوارزميه سريه لبعض الوقت ، مثلا في الحرب العالميه الثانيه استخدم الامريكان لغه Navajo وطبعا اليابانيين لم يكونوا على علم بهذه اللغه ، لذلك الرسائل الامريكيه كانت مشفره . لكن حاليا اغلب الجيوش تحتوي على فريق كامل من العلماء باستطاعتهم تعلم اي لغه مهما كانت ،،،



الجواب الثاني : لا تستطيع جنى المال من الخوارزميه السريه :

لانك في حال عملت برنامج وقمت بيبيعه فبالتأكيد سوف يقوم احد الهاكر باستخدام طرق الهندسه العكسيه والوصول الى خوارزميتك (كما حصل في الـ RC4) .

لذلك الخوارزميه التي طورتها سوف تستخدمها لنفسك انت وحبيبتك فقط ..


الجواب الثالث : الخوارزميات المعروفه هي اكثر امنا :

لانها تكون مثبته انها امنه من قبل جميع الـ cryptanalysts والمشفرين ، من الممكن ان هؤلاء cryptanalysts قد اقروا بعدم وجود ثغرات بخوارزميه معينه ، بعدها بفتره قمت انت بكشف ثغره فيها ، نعم ممكن ولكن احتمال ضعيف جدا جدا ...

في حال اقر الجميع بان الخوارزميه امنه ولا توجد ثغرات بها ، فان فرصه ايجاد ثغره ضيئله للغايه ..


[ALIGN=CENTER]

توليد المفتاح
[/ALIGN]

في التشفير المنتاظر ، المفتاح عباره عن رقم وطوله على حسب نوع الخوارزميه (64 بت مثلا) ، ويمكن توليده بصوره عشوائيه ، السؤال هنا كيف يتم توليد الارقام العشوائيه ؟

ااااااااااه الساعه الان 4 صباحا ... والظاهر اني لو تابعت الكتابه سوف يكون الشرح مشفر ايضا ولن يفهمه اي احد حتى لو كان Codebreaker ههههههههه

وللحديث بقيه ان شاء الله ...
__________________
I Was here some days from 2003 to 2009

good bye
My_Blog

C++/Java Addict
romansy غير متصل   رد مع اقتباس
قديم 12-03-2007, 02:09   #3
.:: عضو قدير ::.
 
الصورة الرمزية romansy
 
تاريخ التسجيل: Jul 2003
الدولة: السودان
المشاركات: 1,053

[ALIGN=CENTER]بسم الله الرحمن الرحيم .......



اولا اعتذر عن التأخير في اكمال الجلسه السابقه ، ويعلم الله اني مشغول جدا هذه الايام بالامتحانات ، ولكن سأضاعف الجهود قدر الامكان لكي ننتهي سريعا من الجزء الاول ،، وننتقل الى الثاني (باذن الله) .
[/ALIGN]

وصلنا المره السابقه الى كيفيه توليد الارقام العشوائيه ...

حسنا ، الارقام العشوائيه هي بكل بساطه ارقام (1،3،100،5) يتم اختيارها بشكل عشوائي .. اغلب المبرمجين يعرفون قيمه هذه الاعداد فهي تستخدم بكثر في عده نواحي مثل الالعاب Game ، نمذجه ومحاكاه الحاسب Simulation And Moduling والتشفير Cryptography وغيرها من المجالات ..

في التشفير ، اهم ما يجب ان يتوفر في هذه الاعداد هو ان لا تتكرر ابدا ، ايضا ان تتجاوز الاختبارات الاحصائيه ، الاختبارات الاحصائيه هي مجموعه اختبارات يتم تطبيقها على الاعداد (او العدد) لكي تعرف هل هي عشوائيه ام لا ..

لنفترض لدينا مجموعه من الاعداد (الف عدد مثلا) ، وقمنا بسؤال احد الذين يقومون بهذه الاختبارات "هل هذه الاعداد عشوائيه ام لا" ، كل ما يقومه هذا الشخص (الاحصائي) بالقيام بتحويل الاعداد اولا الى الترميز الثنائي Binary Format اي يقوم بتحويل الاعداد الى 0 و1 ، بعدها يقوم باجراء عده اختبارات على هذه الاعداد ، الاختبارات تكون عباره عن عده اسئله :
هل العدد 1 يظهر بنفس تكرار 0 ؟ ام اكثر ام اقل ؟
هل العددين 1و 0 يظهران بشكل محدد كل مره ؟ (مثلا تأتي 1 اولا بعدها 0) ؟
وغيرها من الاسئله ....



المهم ، بعدها في حال نجح الاختبار ، تكون الاعداد العشوائيه التي اعطيتها للاحصائي محتمله ان تكون عشوائيه !! لا نستطيع ان نقول هي عشوائيه بصوره مؤكده 100% .. لماذا ، سنعرف لاحقا ..



مولدات الارقام العشوائيه A Random Number Generator (اختصارا RNG ) :


عرفنا ان الاعداد العشوائيه هي اعداد تكون بصوره عشوائيه وغير مرتبه ، حسنا السؤال الذي يطرح نفسه : من اين يمكن الحصول على هذه الاعداد العشوائيه ؟؟

هناك مصدرين :
الاول هو لتوليد اعداد عشوائيه حقيقه او كامله RNG او True RNG ... وهنا في هذه الحاله سوف نستخدم اجهزه خاصه لتوليد الاعداد (تأخذ مدخل يتغير باستمرار) مثل قياس الظروف الجويه ، حساب سريان التيار الكهربائي وغيرها وهذه الاعداد بالطبع سوف تجتاز الاختبار الاحصائي ..

واذا طلبنا من هذه الاجهزه اعداد عشوائيه اخرى ، فلن نحصل على نفس الناتج ابدا ، ولذلك لان المخرج (الاعداد) تعتمد على مدخل غير ثابت (يتغير باستمرار) ، لذلك فإن الاعداد العشوائيه الناتجه من هذه الاعداد لا تتكرر ابدا ، ولهذه تسمى بالاعداد العشوائيه الصحيحه او الكامله ..

قرأت عن ان شركه Intel تقوم باستخدام RNG يوضع داخل النظام ويقوم بحساب الحراره او شيء مشابه ، وهو مصدر يتغير باستمرار ، ايضا هذا الجهاز لا يأتي مع اي معالج بنتيوم (الا مع الطلب) ، لكن يحتمل ذلك في السنوات المقبله . شركات اخرى مثل : nCipher, Chrysalis تبيع اجهزه تسمى cryptographic accelerators هذه الاجهزه تأتي بـ RNG .... (في الجلسه المقبله باذن الله ،سوف نتناول بعض من هذه الاجهزه) .


المصدر الاخر لتوليد الارقام العشوائيه هو Pseudo-Random Number Generator ...



الاعداد العشوائيه المزيفه A Pseudo-Random Number Generator (اختصارا PRNG)


من اين يمكننا الحصول على اعداد عشوائيه اذا كنا لا نملك هذه الاجهزه ، الجواب باستخدام مولد الاعداد المزيفه ، وهو عباره عن خوارزميه لتوليد هذه الاعداد "المزيفه" ، بالتأكيد كلمه "مزيفه" يسبب لك بعضا من الحيره ، واليك تفسيره ،

هنا اذا استخدمنا الخوارزميه وولدنا الاعداد (مثلا الف عدد) ، بعدها ذهبنا الى صديقنا الاحصائي وقمنا باختبار هذه الاعداد ، الناتج هو ان هذه الاعداد سوف تنجح ايضا في الاختبار !!

اعلم ان الحيره زادت ضعفين ، لا تقلق ..

الذي يجعل هذه الاعداد مزيفه هو انها تتكرر (والف خط تحتها) ... اذا شغلت مولد الاعداد المزيفه في جهازين مختلفين سوف يطلع بنفس الناتج ، اذا شغلت البرنامج بعد سنه سوف يطلع بنفس الناتج !!


لذلك قبل قليل قلنا (هل انت متذكر) ان النتيجه التي يخرج بها الاحصائي هي محتمله ان تكون عشوائيه وليس عشوائيه 100% ، (لأنها ممكن ان تتكرر -هذا في حاله اسخدمنا PRNG-) .

اذا الاحصائي يعطينا اجابه على انه الاعداد عشوائيه فقط ، ولكن هو لا يعرف هل هي تتكرر ام لا ... يعطينا فقط نصف الاجابه .


حسنا ، اذا كانت الاعداد في PRNG تتكرر ، اذا ما هو الشيئ الجيد فيها ؟؟
لانه بكل بساطه يمكنك ان تغير التانج عن طريق ما يعرف بالـ Seed (البعض يترجموها بالبذره) ، كما هو الحال مع RNG تأخذ المدخل من (قياس الظروف الجويه، التيار) فإن PRNG تأخذ المدخل (البذره Seed) . اذا غيرت المدخل Seed سوف تتغير المخرجات ، في الـ RNG المدخلات تتغيربنفسها بدون الحاجه اليك ، في PRNG يجب عليك ان تغير المدخل Seed في كل مره ادرت الحصول على عدد عشوائي ..


ما هي البذره او الـ Seed ؟؟
هذه البذره ممكن ان تكون مثلا الوقت (كل جزء من الالف من الثانيه millisecond ) ، او مثلا مدخل من الكيبورد ، او حركه من الماوس ، او موقع الماوس في الشاشه (عدد البكسلات من الجهه الافقيه والعاموديه) ، باختصار يعني لا يمكن توقع القيمه هنا ...



قد يأتي سؤال طاير الان في رأسك وتسأل "لماذا لا استخدم الـ Seed فقط بدون الـ PRNG" ؟؟؟
لسببين ، الاول هو الحاجه السرعه ، فجمع الـ Seed يأخذ وقت طويل نوعا ما ..

مثلا انت بحاجه الى عده الالاف عدد ، اذا استخدمنا الـ Seed فانه يأخذ قتا حتى يجمع الاعداد المطلوبه !! تخيل مثلا جمع الSeed كان عباره عن حركه للماوس (واخذ الموقع) ، هنا لكي نولد 1000 عدد فاننا بحاجه الى 1000 حركه ، مشوار طويل ...

ولكننا اذا استخدمنا الـ PRNG كل ما علينا هو ادخال Seed واحد (بطول 160 بت تقريبا) وبعدها نبدأ بتوليد الاعداد باستخدام هذا الSeed ، وسوف تخرج لنا الالاف من الاعداد في غضون ثواني ...

السبب الاخر هو الـ (الفوضى مصطلح بايخ ولكن الى الان لم اجد اي ترجمه له ، وهذه من رأسي) ) المصطلح بالانجليزي هو entropy ،
على العموم كلما زادت الفوضي entropy كلما كانت النتيجه اكثر عشوائيه ، والـ PRNG تقوم بأخذ الSeed وتبعد منه بعض البتات (بطريقه معينه لا اعلم تفاصيلها) وبعدها تصبح النتيجه فوضويه اكثر ..

ايضا اغلب الـ PRNG تستخدم مفهوم يسمى message digests (سنتحدث عنه بالفصيل ان شاء الله الجلسه البعد القادمه) على العموم فكرته بسيطه مثل الخلاط blenders ، الخلاط العادي الذي يستخدم في المطابخ يأخذ العديد من الاطمعه ويخلطها ويخرج الناتج خليط من الاطعمه التى دخلت ، و الـmessage digests تأخذ البتات ووتدخلهم هذا الخلاط ويخرج الناتج خليط بشكل عشوائي ..


سوف نأخذ بعضا من خوارزميات توليد الاعداد العشوائيه (في الجزء الثاني او الثالث )، ونقوم بتطبيقها ، بالمناسبه الدوال rand , random تولد اعداد مزيفه ، و على حسب ما قرأت انه random تولد اعداد اكثر عشوائيه ، لا ادري لماذا لكن سأبحث عنها باذن الله ..



الهجوم على البيانات المشفره Attacks on Encrypted Data


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

Attacks on Keys الهجوم على المفتاح :

هنا يقوم المخترق بتطيق هجوم يسمى القوه العنيفه brute-force attack وطريقته هو ان يجرب مفتاح مفتاح الى ان يصل الى المفتاح المطلوب ..

لنفرض ان المفتاح يقع في النطاق من 0 الى 100,000,000,000 (مائه بليون) ، اولا يقوم المخترق بادخال الرقم 0 الى خوارزميه فك التشفير ويقوم بادخال الرساله المشفره ايضا ، بعدها ينظر الى النتيجه هل هي معقوله او مفهومه ، اذا كانت الاجابه نعم فاذا المفتاح هو 0 ، اما اذا كانت الاجابه بـ لا ، فيقوم بتجربه المفتاح 1 و بعدها 2 و100 و ... 100,000,000,000.



(تذكر ان الخوارزميه تقوم بعملها بغض النظر هل المفتاح صحيح ام خاطئ ، وفي كل مفتاح خاطئ النتيجه تكون غير مفهومه ، لذلك يجب على المخترق النظر الى النتيجه في كل مره يجرب فيها مفتاح ، المخترق الذكي يكتب برنامج يقوم بفحص الرساله هل هي مفهومه (ضمن نضاق الاعداد الابجديه) ؟ نعم اذا ارسل هذا هو المفتاح ، اذا لأ جرب الرقم التالي ...


في حاله 100 بليون رقم ، قد يحصل المخترق على المفتاح من اول تجربه ، ويمكن من التجربه الاخيره ، على العموم في المتوسط قد يحصل عليه في 50 بليون محاوله ..

كم من الوقت تأخذ عمليه تجربه 50 بليون مفتاح ؟ 3 سنوات؟3 شهور؟3 ايام ؟

لنفرض انك تريد الحفاظ على الرساله لمده 3 سنوات ، وان المخترق يستطيع محاوله 50 بليون مفتاح في 3 دقائق اذا عليك تكبير المفتاح وجعل المدى من 0 الى 100 بليون بليون بليون بليون بليون بليون (يالهي ) .. وهكذا يأخذ المخترق وقتا اطول حتى يجد المفتاح الصحيح ..

هذا المفهوم يعرف بـ حجم المفتاح Key Size ، النقود تقاس بقيمتها ، الذهب بالوزن ، المفتاح في التشفير يقاس بعدد البتات bits ، والمفاتيح تكون عاده بطول 40 bit او 56 bit او 128 bit وهكذا ..
مدى الـ 40 بت هو من 0 الى 1 ترليون
مدى الـ 56 بت هو من 0 الى 72 كروليون quadrillion
مدى الـ 128 بت هو من 0 الى اااااااااااه احسن نقول 128 بت فقط

باختصار ، اذا كنت تريد ان تجعل عمل المخترق اكثر صعوبه ، قم بتكبير حجم المفتاح ، المفتاح الكبير يضمن لك حمايه اكبر ،،،

في عام 1997 ، تم كسر الـ 40 بت في ثلاث ساعات ، و تم كسر 48 بت في 280 ساعه ..
(كل بت زياده يأخذ ضعف المده السابقه ، مثلا 40 بت تأخذ 3 ساعات ، 41 بت تأخذ 6 ساعات ،وهكذا ) ..

في 1999 ، تم كسر 56 بت في 24 ساعه ( تم كسره من قبل Electronic Frontier Foundation وتم استخدام جهاز خاص فقط لكسر خوارزميه DES ).

بالطبع المخترق لن تكون لديه هذه الامكانيات وبالتالي سوف يأخذ وقتا اطول بكثير من الشركه السابقه ، ولكن نحن هنا نفترض ان المخترق عباره عن حكومه او الـ FPI ) .

حاليا 128 بت هو افضل حجم للمفتاح ،ربما في حال كسره سوف ننتقل الى 512 بت (وهو اكبر حجم للمفتاح ونظريا لا يمكن كسره بهذه الطريقه (brute-force attack) ابدا ).


ومن الممكن ان يقوم المخترق بالهجوم على المفتاح ولكن بطريقه اخرى ، وهي محاوله توليد PRNG بنفس البذره Seed التي قمت بادخالها في الـ PRNG . اذا استخدمت Seed صغير ، قد يقوم المخترق بتجربه رقم رقم الى ان يجد الSeed الصحيح (قد حصل هذا لشركه نت سكيب ، سأذكره بعد قليل) ، لذلك عليك عندما تختار Seed ان تختار واحد ممتاز ولا يمكن تخمينه ...




نظره تاريخيه : Netscape’s Seed


ان التشفير بالمفتاح المنتاظر هو احد مكونات SSL الذي اخترع من قبل العلماء في شركه نت سكيب (احد العلماء بل رئيس العلماء في فتره التسعينات هو العالم العربي المصري طاهر الجمل ، والذي اخترع الخوارزميه التي تعرف بـ ELGAMAL نسبه الى اسمه ، ساتكلم عنه فيما بعد) ، وفي وقت توليد الاتصال في SSL يجب ان يولد رقم عشوائي ، وقد استخدمت الشركه PRNG يجمع المعلومات (الوقت + رقم العمليه process ID ) واستخدم كبذره Seed للمولد PRNG .

بالنسبه الى process ID فيمكن الحصول عليه من خلال الدخول الى نفس الجهاز الذي ولده ، او يمكن تطبيق هجوم brute-force attack حيث طوله فقط 15 بت ..

اما بالنسبه الى الوقت ، استخدمت الشركه الثواني (وليس جزء من الالف من الثواني) ولذلك هناك 60 ثانيه فقط ،

على العموم في 1995 قام Goldberg and Wagner بايجاد الSeed وبالتالي ايجاد المفتاح في اقل من دقيقه ، سواء كان المفتاح 40 بت او 128 بت ، سوف يأخذ اقل من دقيقه !!

وقد قامت نت سكيب بعدها باضافه Seed جديد يعتمد على عده عوامل :
. mouse position, memory status, last key pressed, audio volume, and many others
وهكذا يصعب ايجاد الSeed ..




كسر الخوارزميه Breaking the Algorithm :

وهنا يعتمد على قوه ملاحظه وذكاء المخترق ، مثلا لاحظ ان رقم معين يظهر في مكان معين ، هنا يستطيع تخمين هذا العدد بعد تجربه العديد من المحاولات حتى يحصل على النص الاصلي ..




مثل تلك الخوارزميات الضعيفه يمكن ان تخترق وحتى لو كان حجم المفتاح كبير ،



[ALIGN=CENTER]اتوقف هنا ،، وسأعود قريبا باذن الله لتكمله باقي الجلسه ...

تبقى مفهومين مهمين جدا جدا وهما Block Cipher , Stream Cipher ..
وبعض النقاط حول DES,3DES,AES

وبعدها تنتهي الجلسه ....

والسلام عليكم .......
[/ALIGN]
__________________
I Was here some days from 2003 to 2009

good bye
My_Blog

C++/Java Addict
romansy غير متصل   رد مع اقتباس
قديم 13-03-2007, 09:46   #4
.:: عضو قدير ::.
 
الصورة الرمزية romansy
 
تاريخ التسجيل: Jul 2003
الدولة: السودان
المشاركات: 1,053
يضحك

بسم الله الرحمن الرحيم ...


[ALIGN=CENTER]بعد ان عرفنا ماهو التشفير بالمفتاح المتناظر واهميه المفتاح ، تبقى ان نعرف ماهي الخوارزميات التي تنطوي تحت هذا النوع من انواع التشفير (تذكر ان هناك نوعين ، الاول هو التشفير بالمفتاح المنتاظر، والثاني سنذكره لاحقا) ..

هناك نوعين من انواع التشفير بالمفتاح المنتاظر وهما :
* شفرات الكتل Block Cipher
* شفرات التدفق Stream Cipher

ماهما ، وما هي الطرق المستخدمه فيهما ، وماهو الافضل منهما ، ستعرف ذلك من خلال الفقرات القادمه ..
[/ALIGN]


شفرات الكتل Block Cipher


شفرات الكتل (كما هو واضح من اسمها) تعمل على Block (كتله) من البيانات في كل مره ، عندما تزود الخوارزميه (او برنامج التشفير) بالنص الاصلي هنا في هذا النوع يقوم بتقسيم النص الى عده من الكتل ، كل كتله حجمها يكون 64 بت واحيانا 128 بت (او 16 بايت) ، طبعا الحجم بيكون على حسب الخوارزميه المستخدمه




نأخذ مثال بسيط ...

لنفرض ان طول النص الاصلي 227 بايت ، والخوارزميه تأخذ 16 بايت في كل مره ، الان في في مرحله التشفير ، ندخل المفتاح ، والكتله الاولى (اول 16 بايت) ، ونبدأ عمليه التشفير ، والناتج هو نص مشفر بطول 16 بايت ايضا . بعدها نأخذ الكتله الثانيه (ثاني 16 بايت ) ،و نبدأ في عمليه التشفير ، والناتج هو ايضا نص مشفر بطول 16 بايت ، وهكذا ستستمر العمليه 14 مره (وهنا تكون شفرت 224 بايت من النص الاصلي) .

الان بقيه 3 بايتات ولكن الخوارزميه لا تعمل الا اذا كانت الكتله بطول 16 بايت .. اذا ما العمل ؟؟ هنا سوف تستخدم مفهوم جديد اسمه الحشو Padding وهو بكل بساطه يعمل على اضافه بايتات اضافيه الى الكتله الناقصه حتى تكتمل وتصبح بالحجم المطلوب .. وهناك عده طرق للحشو سوف نذكر اشهرها ، على العموم في حال استخدمنا اي طريقه يجب ان تكون مفهومه للشخص الذي نريده ان يفك تشفير الرساله اي يعرف هذه البايتات هي بايتات اضافيه .

الطريقه الاشهر للحشو .. هي ان نعرف اولا عدد البايتات التي سوف نضيفها الى الكتله الناقصه ، في المثال السابق كانت (13 بايت ) ، بعدها نقوم بتكرار هذا العدد في كل بايت في الكتله ، اي انه سنحشو العدد "13" ثلاثه عشر مره ..

في عمليه فك التشفير ، سننظر الى الكتله الاخيره ونرى ان كان هناك عدد ما يتكرر في كل خانه من خانات الكتله الاخيره ..

طبعا عند التشفير ، في حاله الكتله الاخيره تساوي 16 بايت فلا يوجد داعي للحشو (اصلا لا يوجد مكان للحشو).




المشكله في هذا النوع "شفره الكتل Block Cipher" هو انه في حاله كانت هناك كلمات تتكرر كثيرا في النص الاصلي ، فانها بعد التشفير سوف يكون النص المشفر متشابه ايضا ..

مثلا الاسم " wajdy essam " ظهر 3 مرات في مواقع مختلفه في النص الاصلي (او الرساله) . مثلا ظهر في الكتله الاولى (اول 16 بايت) والكتله الرابعه (رابع 16 بايت) والكتله العاشر(عاشر 16 بايت) .

الان عند التشفير ،
دخلت الكتله الاولى "Wajdy essam" وتتشفر الى "Selrurjgqm"
دخلت الكتله الرابعه "Wajdy Essam" وتتشفر الى "Selrurjgqm"
دخلت الكتله العاشره "Wajdy Essam" وتتشفر الى "Selrurjgqm"

امم هنا نلاحظ انه يمكن للمخترق معرفه ان الثلاثه "Selrurjgqm" هي عباره عن جمله واحده ، وهنا ممكن ان يكسهر بسهوله ،،

الحل لتجنب مثل هذا التكرار هو استخدام اساليب تسمى Mode Of Operation "انماط او اساليب العمليات" والبعض يطلق عليها FeedBack Modes . (سنتناول هذه الاساليب في الجزء الثاني باذنه تعالى) ..

على العموم اشهر هذه الاساليب هو cipher block chaining اختصارا (CBC) ، هنا في هذا النمط سوف نطبق العمليه XOR في النص الاصلي الحالى و النص المشفر السابق ..

كتله النص الاصلي الحالي XOR كتله النص المشفر السابقه وبعدها سوف نجري عمله التشفير ..

بالنسبه الى كتله النص الاول ، لن يكون هناك نص مشفر سابق لذلك سوف نطبق العمليه مع متغير اسمه initialization vector اختصارا IV .



وهكذا سوف ننهي مشكله تكرار البيانات بهذه الطريقه ..



شفره التدفق Stream Ciphers


النوع الثاني من انواع التشفير بالمفتاح المتناظر هو شفره التدفق ، وهنا سوف نتعامل مع بت بت او بايت بايت وليس كتله كتله ، وعمليه توليد المفتاح Key Stream من الممكن ان تعتمد على النص المشفر السابق ومن الممكن لأ (هناك نوعين من هذا النوع ، نوع متزامن ونوع غير متزامن ، سنتكلم عنهم فيما بعد) .




Block VS Stream من الافضل ؟


شفره التدفق هي اسرع بكثير من شفرات الكتل وعمليه كتابه برامج سهله واكودها اقل بكثير من الكتل ، واحد اشهر انواع شفرات التدفق RC4 وهي اسرع بكثير من اي نوع من انواع شفرات الكتل ، وتتطلب حوالى 30 سطر فقط في الكود . معظم شفرات الكتل تأخذ على الاقل 200-400 سطر .


شفرات الكتل من جهه اخرى تسمح باعاده استخدام المفتاح ، بعكس شفرات التدفق التى تستخدم المفتاح مره واحده فقط ، في الكثير من الاحيان يجب ان نشفر العديد من الاشياء بمفتاح واحد .

مثال ، شركه لديها قاعده بيانات ضخمه للعملاء تحتوي معلوماتهم من ارقام هواتف وبطاقات ائتمانيه وغيرها ، في حال استخدمت شفرات التدفق سوف تتطلب لكل مدخل (عميل) مفتاح خاص وهذا يتطلب مئات من المفاتيح وهو امر غير عملي ، اما في حاله استخدمت شفرات الكتل فإنها تشفر جميع البيانات باستخدام مفتاح واحد ، ولفك تشفير بيانات اي عميل نستخدم نفس المفتاح . عمليه اداره المفتاح اسهل بكثير في هذه الحاله .

لذلك في معظم قواعد البيانات يتم استخدام شفرات الكتل Block Cipher وايضا في برامج البريد الالكتروني ، وايضا في برامج تشفير الملفات .



Digital Encryption Standard


في بدايه السبيعنات تم معرفه انه اغلب الشفرات القديمه لم تعد مجديه وغير نافعه للتشفير ، ولهذا قرر علماء في شركه IBM بعمل خوارزميه جديده للتشفير تبنى على بنيه قديمه تسمى Lucifer (نسبه الى مخترعها Horst Feistel) ، ومن خلال مساعده وكاله الامن القومي NSA تم عمل خوارزميه DES .

DES هي احد شفرات الكتل Block Cipher ، وتأخذ مفتاح بطول 56 بت ، وتعمل على كتله طولها 64 بت . (سنتحدث عنها بالفصيل فيما بعد) .

وفي الثمانيات لم يتم اكتشاف اي ثغره في DES لذلك كانت اقوى الخوارزميات في ذلك الوقت ، ولكسر اي رساله مشفره بها لم يكن هناك الا استخدام هجوم الـ brute-force ، ولأن طول المفتاح 56 بت (مداه من 0 الى 72 كوارلديون) والاجهزه بطيئه للغايه ، فكانت عمليه الكسر تتطلب سنه كامله .

وفي 1999 وفي احد المؤتمرات تم كسر هذه الخوارزميه في 24 ساعه من قبل the Electronic Frontier Foundation .. اذا العالم يجب ان ينتقل الى خوارزميه اخرى !!



Triple DES


احد البدائل كانت خوارزميه Triple DES او البعض يسموها 3DES ، هي بكل بساطه DES ولكن ثلاثه مرات ، يعني سوف تدخل الكتله الاول (16 بايت) الى الخوارزميه بالمفتاح الاول ، والناتج سوف يدخل الى الخوارزميه مع المفتاح الثاني ، والناتج سوف يدخل مع المفتاح الثالث ...





هنا سوف نستخدم ثلاثه مفاتيح ، كل منها بطول 56 بت (اي كأنها 168 بت) ، قد تسأل وتقول "اذا كانت كسر مفتاح واحد يأخذ 24 ساعه ، اذا كسر ثلاثه مفاتيح سوف يأخذ 72 ساعه" هل هذا صحيح ؟

بالطبع لا ، واليك مثال بسيط ..

لنفترض ان المفاتيح الثلاثه A , b , c كل منها مداه من 0 الى 72 quadrillion ..
وأن المفتاح هو : A = 1 , B = 33,717, C = 1,419,222

الان المخترق سوف يجرب a=0 , b=0 , c=0 وهو ليس المفتاح الصحيح ..
بعدها سوف يجرب المفتاح a=1, b=0 , c=0 وهو ليس المفتاح الصحيح .. (مع العلم بأن الاول a صحيح) لكن كيف يعرف المخترق ذلك ؟ النتيجه لم تظهر صحيحه الا اذا كانت الثلاثه مفاتيح صحيحه والا فسوف يدور في حلقه مفرغه ..

على العموم 3DES لها مشكله وهي انها بطئيه جدا ، الـ DES العاديه هي بطيئه ، فما بالك بـ DES ثلاث مرات ، واغلب التطبيقات تتطلب السرعه في العمل ، وهذه الخوارزميه لا تنفع لانها بطيئه جدا !!

اذا العالم مره اخرى بحاجه الى خوارزميه !!


البدائل :


بعد مشكله البطئ في خوارزميه الـ 3DES
، اتجه العديد من الافراد والشركات لتطوير خوارزمياتهم الخاصه وكانت النتيجه ان هناك العديد من الخوارزميات الجيده والتي تأخذ مفاتيح متغير الطول (وليس ثابته الطول كما في DES ) ، من هذه الخوارزميات : RC2,RC5,IDEA,CAST,SAFER,BlowFish ..

هذه الخوارزميات بالرغم من قوتها لم تصبح واسعه الانتشار كما في DES و Triple DES .

اذا العالم بحاجه هذه المره الى مقياس او خوارزميه واسعه الانتشار كـ DES !!



Advanced Encryption Standard


نتيجه لهذا الامر قام المعهد الوطني للمعايير National Institute of Standards and Technology اختصارا NIST ، باستدعاء جميع المهتمين بهذا الامر وكلفت بكل منهم بعمل خوازرميته الخاصه وفي النهايه اقوى خوارزميه سوف تكون هي المقياس الجديد AES . وقد قدمت 15 خوارزميه (منها القوي ومنها الضعيف)

وفي 1999 قامت NIST باختيار افضل 5 خوارزميات بعد اجراء العديد من الاختبارات ، وقد جعلت الامر بالتصويت لافضل خوارزميه ، وفي 2000 تم اختيارخوارزميه Rijndael كالمقياس الجديد AES .



نهايه الجلسه


احد الامثله الواقعيه للتشفير بالمفتاح المتناظر هو في قواعد البيانات ، مثلا في اوراكل i8 يتم استخدام خوارزميه DES و 3DES ، ويتم التشفير عن طريق الامر (لغه PL/SQL) :
dbms_obfuscation_toolkit.DESEncrypt(input_string => plaintext,
key => keyData, encrypted_string => ciphertext);



[ALIGN=CENTER]وهكذا وصلنا الى نهايه هذه الجلسه التي اخذت بعضا من الوقت ، عسى ان تكونوا استفدتم منها ...


المره القادمه باذن الله سوف نناقش موضوع :
اداره المفتاح Symmetric-Key Management

والسلام عليكم ...
[/ALIGN]
__________________
I Was here some days from 2003 to 2009

good bye
My_Blog

C++/Java Addict
romansy غير متصل   رد مع اقتباس
قديم 29-03-2007, 02:18   #5
.:: عضو قدير ::.
 
الصورة الرمزية romansy
 
تاريخ التسجيل: Jul 2003
الدولة: السودان
المشاركات: 1,053
تعجب Symmetric-Key Management

[ALIGN=CENTER]بسم الله الرحمن الرحيم ..

Symmetric-Key Management
[/ALIGN]


توصلنا من خلال الجلسات السابقه الى أن التشفير بالمفتاح المتناظر يقوم بتشفير الرساله بمفتاح ما ، ثم يقوم بفك التشفير بنفس المفتاح ، لذلك عمليه الحفاظ على المفتاح امر في غايه الاهميه ، فاذا انكشف المفتاح انكشفت جميع الاسرار ، لذلك يجب حفظ المفتاح في مكان امن جدا ، عمليه الحفاظ على المفتاح تسمى بـ اداره المفتاح Symmetric-Key Management وهي موضوع حديثنا اليوم ...


لعلك الان تتسائل "اذا كان هناك مكان استطيع ان احفظ في المفتاح ، فلماذا لا احفظ الرساله في ذلك المكان ولا احتاج الى التشفير" ؟

في الحقيقه حفظ مفتاح التشفير (56 بت مثلا) يكون اسهل كثيرا من حفظ الرساله (بعض الاحيان حجمها يكون مئات من الميغا بايت MB) بالاضافه الى هناك حلول لحفظ المفتاح عن طريق حفظها داخل اجهزه صغيره مصممة لهذا الغرض .


Password-Based Encryption


ان المفتاح الذي كنا نستخدمه للتشفير وفك التشفير يسمى "بمفتاح الجلسه session key " ، وأحد الطرق لحمايه هذا المفتاح هي عن طريق تشفيره ايضا !! اي ان المفتاح (مفتاح الجلسه) يحتاج الى مفتاح اخر لكي يتم تشفيره .
هذه العمليه تسمى بالـ password-based encryption واختصارا PBE.

يعني مفتاح الجلسه session key هو المفتاح الذي نستخدمه في التشفير وفك التشفير
ومفتاح تشفير المفتاح key encryption key هو المفتاح الذي نستخدمه لتشفير مفتاح الجلسه ، واختصارا يسمى KEK .



الان بما ان المفتاح KEK (من الان وصاعدا نسميه بهذا الاسم) هو الذي يستخدم لتشفير وفك تشفير مفتاح الجلسه ، السؤال هل انا بحاجه الى حمايه هذا الـ KEK ؟
الجواب ، هو لأ ، عندما نريد ان نشفر المعلومات نقوم بتوليد هذا المفتاح (بأحد طرق توليد الارقام العشوائيه) بعدها نقوم باستخدامه ومن ثم نحذفه ، وفي حاله فك التشفير نقوم بتوليد هذا المفتاح مره اخرى ونستخدمه ومن ثم نحذفه ، وفي مرحله توليد هذا المفتاح يجب ان ندخل باسورد معين سواء في مرحله التشفير او فك التشفير ..

بصوره مبسطه ،
مفتاح الجلسه Session key هو الذي يشفر المعلومات ونقوم بتوليده عشوائيا ..
مفتاح الـ KEK هو الذي يشفر مفتاح الجلسه ونقوم بتوليده عن طريق password-based encryption اختصارا PBE ..

ويتم توليد الـ KEK :
1- ادخال باسورد
2- استخدام اي طريقه لتوليد ارقام عشوائيه لتوليد الـ salt (الملح) !!
3- ندخل الباسورد والملح مع بعض داخل الخلاط blender والناتج هو خليط من البتات العشوائيه ، لقد تطرقنا في احد الجلسات السابقه عن الـ blender وسوف نتحدث عنه بالتفصيل الجلسه الاخيره باذنه تعالى ..
4- نأخذ ما يكفي من الخليط السابق ونضعه داخل المفتاح KEK ، وبعدها نستخدم الـ KEK لتشفير مفتاح الجلسه ثم نحذف هذا الـ KEK ، ونحتفظ بالملح ..
5- الان تم تشفير الرساله ، ويجب ان تحفظ الملح لانه سوف يستخدم في فك التشفير .

ما هو هذا الملح ، بالتأكيد هو ليس الذي تستخدمه في الطعام ، وسوف نتطرق له بعد قليل ..

الان لفك التشفير :
1- ندخل الباسورد الذي ادخلناه في عمليه التشفير
2- نأتي بالملح الذي احتفظنا به في مرحله التشفير
3- ندخل الملح والباسورد في نفس الخلاط الذي استخدمناه في عمليه التشفير ، في حال اختلف احدهم سوف يكون الناتج عباره عن KEK خاطئ .. وفي حال كانوا صحيحين فالناتج هو الـ KEK الصحيح .
4- نستخدم الـ KEK لفك مفتاح الجلسه ، وبعدها نستخدم مفتاح الجلسه لفك تشفير الرساله ..


وانتهت الخطوات ..





دعنا نوضح بعضا من النقاط والاسئله التي ربما جائت في بالك ..

Mixing Algorithms and KEK
لماذا نخلط بين الباسورد والملح ؟ لماذا لا يكون الباسورد هو الـ KEK ؟
الجواب ،
لان الباسورد لا يحتوي على الكثير من الفوضي Entropy (هل تتذكر هذا المصطلح) لذلك هو غير كافي ابدا ، فهنا نستخدم هذه الخوارزميه للخلط بين الملح والباسورد وبذلك النتيجه اكثر عشوائيه ..

The Necessity of Salt
ما اهميه هذا الملح ؟

هذا الملح ببساطه يستخدم لمنع محاولات تخمين الباسورد ، لانه في حاله استخدمنا الباسورد فقط كKEK فان المخترق بامكانه ان ينشئ قاموس به كل اغلب الباسوردات والمفاتيح وبعدها بيدأ في البحث عن الباسورد الخاص بك لكي يعرف الـ KEK . (هذا الهجوم يعرف بـ dictionary attack).

لكن اذا استخدمنا الملح ، فان المخترق لكي يعرف الـ KEK يجب في البدايه ان يعرف هذا الملح للباسورد الفلاني هل هو صحيح ام لأ ، اذا كان غير صحيح يقوم بتجربه ملح اخر في نفس الباسورد السابق ، اذا كان غير صحيح يقوم بجربه ملح اخر في نفس الباسورد ، بعدها يغير الباسورد ويجرب الاملاح مره اخرى !!
وهكذا يكون الامر طويل جدا جدا جدا ..





الان وبعد تشفير مفتاح الجلسه باستخدام مفتاح KEK ، هل تعتبر في امان كامل من جميع الهجمات ؟
بالطبع لا ، لان المخترق بإمكانه عمل هجوم على المفتاح KEK (هجوم القوه العنيفه Brute Force Attack ) ويقوم بتجربه مفتاح مفتاح الى ان يصل الى المطلوب ..

او بإمكانه عمل هجوم على الباسورد (هجوم القوه العنيفه Brute Force Attack ) ويقوم بادخال الباسورد والملح في الخلاط ، بعدها يأخذ الناتج KEK ويفك تشفير مفتاح الجلسه وبعدها يفك تشفير البيانات ، واذا لم يصلح الباسورد يقوم بتغييره واختيار واحد اخر .

قد تبدو العمليه طويله ، لكن في الحقيقه اساليب هجوم Brute Force قد تأخذ اساليب متطوره ، مثلا عمل البرنامج بالتوازي in parallel وهنا سوف يستفيد من عمل المعالج بشكل كبير ، ايضا من الممكن ان يعمل اكثر من جهاز في عمليه الكسر ..

ايضا من الممكن ان يقوم المخترق باستخدام هجوم القاموس dictionary Attack وهنا يقوم بعمل قاعده بيانات لاغلب الباسوردات في جميع اللغات ، بعدها يقوم بتجربه هذه الباسوردات .. وهذا الهجوم بالطبع اسرع من هجوم الـ Brute Force لانه يكون محدود على مجموعه من الباسوردات (كم بليون باسورد فقط ) .

لذلك في مرحله اختيار الباسورد يجب اختيار باسورد قوي مثل :
14G:c*%3wM*-l6g]_Bnp? d86

الباسورد السابق جيد جدا ويصعب تخمينه ، لكن من هو هذا البطل الذي يستطيع ان يحفظ مثل هذا الباسورد ؟؟ على العموم اذا كانت لديك القدره في حفظ مثل هذا الباسورد ، فلن تكون لديك اي مشكله بعد الان ..

والتوصيات والمقالات بشأن اختيار كلمات السر هي كثيره ، واشهر الخطوات هي ان يكون مكون من عده ارقام وحروف بشكل مختلط وعلى اقل تقدير 10 حروف .. ايضا استخدام باسورد مختلف لكل حساب ، وعدم استخدام كلمات معروفه مثل الاسماء والارقام ...


واذا واجهتك مشكله في اختيار الباسوردات ، فهناك الكثير من البرامج لتوليد كلمات السر ، وهي منتشره كثيرا في الانترنت ، على العموم سنقوم باذن الله بكتابه احد هذه البرامج Password Generators في الجزء الثاني او الثالث باذن الله .



اجهزه حفظ المفاتيح Hardware-Based Key Storage


لقد رأينا قبل قليل ان احد طرق حفظ المفتاح هو استخدام الـ PBE ، احد الحلول الاخرى هي استخدام اجهزه خاصه لحفظ المفاتيح ، بعض هذه الاجهزه صغير جدا ويسمى Token ، وبعضها كبير ويسمى crypto accelerators.

الToken بعض الاحيان تكون بطاقه بلاستيكيه ، او بطاقه ذكيه (تحتوي على جهاز داخلها) ، او حتى خاتم صغير ، او جهاز يوصل بفتحه USB ، هذه الـ Token تحتوي على معالج صغير بداخلها ، وذاكره صغير الحجم طبعا المواصفات بينها تختلف على حسب الشركه المصنعه لها ، بعض هذه الToken يأتي بذاكره كبيره مثل نوع اسمه : 1970s era PC .






الميزه الاساسيه في هذه الـ Token هو ان المخترق لا يستطيع الوصول الى اليها ، وحتى ان استطاع سرقه احدها فانها تتطالب بباسورد ورقم PIN ، وفي حال اخطأ المخترق ادخال الرقم عده مرات سوف يبدأ نظام الحذف تلقائي .. يعني يصعب جدا اختراقها (اذا ما كان مستحيل ) .

احد الاستخدامات الاخرى لهذه الـ Token بالاضافه الى حفظ المفاتيح ، هي حفظ الباسوردات ، مثلا كان لديك عده باسوردات لعده مواقع ، للايميل والشات والمنتدى وكل باسورد مختلف عن الاخر ، اسهل طريقه هي حفظ هذه الباسوردات داخل الـ Token ، وعندما تريد الدخول مثلا الى بريدك قم بتركيب جهاز الـToken بعدها تأخذ الباسورد المطلوب..


Crypto Accelerators


الاجهزه الكبيره التي تستخدم في عمليه حفظ المفاتيح تسمى بـ crypto accelerators ، هذه الاجهزه لها ميزه جيده جدا ، وهي تحتوي على معالج ذكي خاص بها ، في حال تم سرقه احد هذه الاجهزه وقام المخترق بمحاوله فتح الجهاز او استخدام اي طريقه من طرق استعاده البيانات ، فيقوم المعالج بحذف جميع البيانات والمفاتيح .



ايضا هذه الاجهزه تأتي بمولدات للاعداد العشوائيه الصحيحه RNG (راجع الجلسات السابقه) وبعضها يأتي مولدات لاعداد عشوائيه مزيفه PRNG ، لكن تكون تهيئه الـ Seed من المصنع (لكنها في النهايه Pesudo ).



Biometrics


الاجهزه السابقه التى ذكرناها سواء Token او crypto accelerators تعتبر خيار ممتاز في عمليه حفظ المفاتيح والباسوردات ، لكن في الحقيقه هذه الاجهزه لا تكفي لضمان الامن التام ، وبالذات في الجهات التي يراد الحفاظ على المعلومات بصوره تامه ، لان هذه الاجهزه قد تسرق ويسرق الباسورد وبعدها يصل المخترق الى البيانات ،،

لذلك تم اختراع الـ Biometrics وهي عده طرق تستخدم للتأكد من الشخص الذي يحاول الوصول الى البيانات هو الشخص المسموح له ، مثلا جهاز التأكد عن طريق بصمه الاصبع ، وطبعا من المستحيل ان تكون هناك بصمتين متشابهتين (حتى في التوائم) ، بعض هذه الاجهزه تستطيع معرفه الاصبع هل هو من انسان حي ام من انسان ميت او اصبع مقطوع !

ايضا هناك اجهزه لمسح شبكيه العين ، واجهزه للتعرف على نبره الصوت ، واجهزه للتعرف عن طريق الـ DNA وغيرها ، على العموم هذه الاجهزه غير منتشره بشكل كبير (حاليا) بسبب تكلفتها العاليه ، وايضا بسبب انها غير موثوقه بشكل اكيد ، يعني مثلا اذا اصيب الاصبع بجرح هل يستطيع الجهاز التعرف عليه ، في حال استخدام نبره الصوت واصيب الشخص بنوبه برد او التهاب في الحلق ، هل يستطيع الجهاز التعرف على الصوت !

بالتأكيد مع تطور العلوم وخاصه الذكاء الاصطناعي فانه قد يأتي يوما يتم زرع جهاز كمبيوتر شخصي داخل دماغ اي انسان ويكون التعرف عن طريق قرائه هذا الجهاز !! (قد قرأت من فتره عن امر مشابه من شركه مايكروسوفت ) ..

ومايزال العلم يتطور ويتطور ، ونحن نتراجع الى الخلف والخلف !!



[ALIGN=CENTER]اخيرا ،،

من احد الاستخدامات الواقعيه لـ PBE هي في برامج تشفير الملفات ، حيث يطلب من الباسورد ومن ثم يقوم البرنامج بباقي العمليات في الخفاء (الخلط بين الملح والباسورد) ، واحد اشهر هذه البرامج هو برنامج الـ PGP وهو الذي كتبه Phil Zimmerman ، يمكنك البحث عنه في انترنت .

وبهذا وصلنا الى نهايه هذه الجلسه التي تعمدت ان تكون بسيطه ومختصره باكبر شكل ممكن ، وذلك لغرض تسريع الدورس وحتى ننتقل الى الجزء الثاني ..

تبقت جلستان
الاولى عن : The Key Distribution Problem and Public-Key Cryptography
والثانيه عن : The Digital Signature and Message Diagest

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

سأعود في تاريخ 4-4-2007 ان أحيانا الله ، وذلك نظرا لظروف الامتحانات ادعوا لي بالتوفيق والنجاح !! .

والسلام عليكم !![/ALIGN]
__________________
I Was here some days from 2003 to 2009

good bye
My_Blog

C++/Java Addict
romansy غير متصل   رد مع اقتباس
قديم 13-04-2007, 01:09   #6
.:: عضو قدير ::.
 
الصورة الرمزية romansy
 
تاريخ التسجيل: Jul 2003
الدولة: السودان
المشاركات: 1,053
رايق .......

[ALIGN=CENTER]The Key Distribution Problem and Public-Key Cryptography

السلام عليكم ورحمه الله وبركاته ،،
[/ALIGN]


اهلا مجددا ، في دروسنا السريعه والتي قاربت على الانتهاء ، وهذا الأمر يبشر بالخير ، لانه حاليا بدأ الكسل يدب فيني خاصه انه هذه الدروس نظريه بحته ، لذلك سأحاول ان انتهي منها بأسرع شكل ممكن ، حتى تنفتح الشهيه مره اخرى في الجزء الثاني ، والذي يحتوي على بعضا من البرامج (سي++ ، جافا) .

الجلسه السابقه عرفنا بعضا من اساليب حمايه المفتاح (مفتاح الجلسه) ، ويكون اما عن طريق تشفيره مره اخرى (PBE) ، أو عن طريق تخزين المفتاح في احد الأجهزه الخاصه لذلك Token ، الى هنا الأمر تحت السيطره ، لكن ماذا اذا اردنا ان نرسل المفتاح الى شخص اخر حتى يقوم بفك تشفير الرساله التي سوف ارسلها له ( تذكر ان التشفير بالمفتاح المتناظر ، المفتاح نفسه يقوم بالتشفير وفك التشفير) .

بعباره مبسطه ، في حال قمت بتشفير رساله ما بهذا المفتاح المتناظر ، بعدها ارسلت الرساله الى الشخص الذي اريد ، في حال وصلت الرساله للشخص هذا سوف تكون غير مفهومه وذلك لان المفتاح الذي يفك التشفير معي والى الان لم ارسله للشخص المراد ، ايضا في حال كان هناك مخترق ووصلت الرساله اليه بطريقه ما (سواء قامب اختراق جهاز الشخص الذي ارسلت له الرساله ، او قام بالتقاط الرساله اثناء ارسالها ) المهم سوف تكون الرساله ايضا غير مفهومه لانه لا يملك المفتاح .

اذا السؤال هنا ، كيف يمكن ان ارسل المفتاح بطريقه امنه الى الشخص الذي اريد ، وفي نفس الوقت لا يستطيع المخترق الحصول عليه ؟؟

هذه المشكله تسمى بمشكله ارسال المفتاح Key Distribution Problem ، والتي بسببها تم اختراع الطريقه الاخرى في التشفير وهي "التشفير بالمفتاح غير المتناظر Asymmetric key Cryptography .

قبل الخوض في التشفير بالمفتاح غير المتناظر وجدت بعضا من الحلول التي قد تكون مناسبه لحالتك (اي قد تستطيع الاكتفاء بها) ، هذه الطرق هي
- ارسال المفتاح قبل عمليه الارسال
- استخدام طرف ثالث موثوق Trusted Third Party (اختصارا TTP) .


نبدأ بالحل الاول : ارسال المفتاح قبل عمليه الارسال ،
وهنا في هذه الحاله يجب ان اقوم بارسال المفتاح الى الشخص المراد قبل ان ابدأ في ارسال الرساله ، ولكن بالطبع يجب ان اتأكد ان الاتصال امن حتى ارسل المفتاح وانا مطمئن انه لا يوجد احد غير الشخص المراد ارسال المتفاح اليه ،

حسنا أأمن طريقه لارسال المفتاح ، هي القيام بإعطاء المفتاح للشخص وجها بوجه ، اي ان اذهب الى مكتبه او بيته ، بعدها اقوم بتوليد المفتاح واحفظ نسخه في جهازي ، ونسخه في جهاز الشخص المراد . هكذا اكون متأكد انه المخترق لا يستطيع معرفه المفتاح لانه حاليا لا يوجد (الا اذا كان واضع بعضا من برامج التروجان keylogger وبهذا قد يعرف المفتاح ، لكن نستبعد هذا الامر بفرض انه اجهزتنا محميه من التروجنات) .

الان عندما اريد ان ارسل رساله ما لصديقي ، اقوم بتشفير الرساله بالمفتاح المتناظر ، وارسلها له وسوف يقوم بفك تشفيرها بالمفتاح المتناظر الذي اعطيته اياه اثناء اللقاء .

حسنا ، ماذا لو كان الشخص في بلد بعيد او على اقل تقدير لا استطيع اللقاء به ؟
بالطبع لن ارسل المفتاح عن طريق الانترنت لانها شبكه غير محميه واحتمال تواجد المخترق لالتقاط المفتاح كبير جدا ، اذا ما الحل في هذه الحاله ؟

هنا اقوم بتشفير المفتاح المتناظر عن طريق الـKEK (طبعا لازم ادخل باسورد معين) ، بعدها اقوم بارسال المفتاح الناتج الى صديقي عن طريق الانترنت ، في حال حصل المخترق على المفتاح المشفر فإنه لايستطيع الحصول على مفتاح الجلسه لانه بكل بساطه يوجد باسورد ، ايضا صديقي نفس الحاله يجب ان يحصل على الباسورد حتى يفك تشفير المفتاح وبالتالي يفك تشفير الرساله ، كيف يمكن ان ارسل الباسورد ؟؟

هنا وبكل بساطه يمكنك ارساله عن طريق مثلا الهاتف ، وهكذا لن يحصل عليه المخترق . اذا كنت تعتقد انك مراقب بكل الوسائل الممكنه (الهاتف ، الانترنت ، المقابله الشخصيه) فبتأكيد هذه الطريقه لن تصلح لك ويجب ان تحل المشكله بطريقه اخرى !


ايضا في حال كان ارسال المفتاح قبل الارسال مناسب لك ، ماذا اذا كنت تريد ارسال المفتاح الى عده اشخاص بدلا من شخص واحد ؟

همممممم العمليه سوف تتشعب كثيرا ، في حال نحن اثنين سوف يكون هناك لقاء واحد (او اتصال واحد) ، في حال كنا ثلاثه سوف نحتاج الى لقائين (اذهب انا الى الشخص الاول ونولد مفتاح ، بعدها اذهب الى الشخص الثاني واعطيه المفتاح) ، في حال كنا اربعه فسوف نحتاج الى سته لقائات ، بشكل عام :
مجموعه من الاشخاص مكون من n عدد ، اذا يحتاجون الى (n^2-n) / 2) لقاء ..

مثلا 10 اشخاص ، 100-10 = 90 ، 90/2 = 45 ، اذا نحتاج الى 45 لقاء .

احد المشاكل ايضا في حال تمكن المخترق من كسر رساله والحصول على المفتاح ، سوف يكون بامكانه كسر جميع الرسائل .. (في حال كان طول المفتاح 128 بت والخوارزميه جيده ، فانه لن يمكن كسر المفتاح بسهوله)

اذا هذا الحل مناسب اذا كانت عمليه الارسال بسيطه (بين شخصين او ثلاثه مثلا) ، واذا كانت ايضا عمليه الارسال عبر الهاتف امنه .

غير ذلك سوف نلجأ الى الحل الثاني، و هو :
استخدام طرف ثالث في العمليه TTP
، دعنا نوضح الامر بمثال بسيط . لنفرض محمد يريد ان يرسل رساله لعلي ، والطرف الثالث هو سامي ..

الان في البدايه يذهب محمد الى الطرف الثالث سامي ويقوم سامي بتوليد مفتاح KEK ويقوم بتخزين المفتاح في جهازه ، واعطاء نسخه من الـ KEK الى محمد .
يأتي علي ايضا الى الطرف الثالث سامي ، ويقوم بتوليد مفتاح KEK ويخزنه في جهازه ، ويعطي على نسخه من المفتاح .

هنا عندما يريد محمد ارسال رساله الى علي ، يقوم محمد بطلب مفتاح الجلسه من الطرف الثالث سامي ، يقوم سامي بتشفير مفتاح الجلسه بالمفتاح KEK الذي قام بتوليده هو و محمد في البدايه ، ويقوم بارسال المفتاح المشفر الى محمد ، ويقوم بتشفير مفتاح الجلسه ايضا مره اخرى ولكن بمفتاح علي ويقوم بارساله الى علي .



هنا في هذه العمليه سامي هو الوسيط بين الاثنين ، هو الوحيد الذي يمللك مفتاح الجلسه ، وهو الوحيد الذي يمكنه قراءه الرسائل ، لذلك يجب ان يكون طرف موثوق ، والا سوف تنكشف كل الرسائل ..

ولأن الطرف الموثوق قد يكون غير موجود بالنسبه لاغلبنا فهذا الحل غير مجدي للكثير منا ، ويجب ان نحل المشكله بطريقه افضل ..

ومن هنا جائت الطريقه الاخرى للتشفير وهي التشفير بالمفتاح الغير منتاظر Asymmetric key Cryptography ، بالمناسبه اغلب الكتب تسمى هذه الطريقه باسم اخر وهو التشفير بالمفتاح العام (او المعلن) Public-Key Cryptography ، على العموم الاسمين يؤديان نفس الغرض .


Public-Key Cryptography and the Digital Envelope
التشفيربالمفتاح العام ، والظرف الرقمي .




في السبعينيات تم اختراع تلك الطريقه ، وهي تستخدم مفتاحين ، مفتاح عام للتشفير ، ومفتاح خاص لفك التشفير ، مثلا اذا اراد محمد ارسال رساله مشفره لعلي باستخدام التشفير بالمفتاح الغير متناظر (او المعلن او العام) ، يقوم محمد بأخذ المفتاح العام من علي ، وبعدها يقوم بتشفير الرساله بهذا المفتاح ، بعدها يقوم بارسال الرساله الى علي الذي يقوم بفك التشفير بالمفتاح الخاص به ..

المفتاح العام يكون معروف للجميع واي شخص يستطيع الحصول عليه (هو يستخدم فقط للتشفير)
المفتاح الخاص يكون غير معروف (معروف لشخص واحد) وهو يستخدم لفك التشفير ...

ولكي نكون اكثر صوابا ، فان المفتاح العام يستخدم لتشفير مفتاح الجلسه ؟؟ ما هذا الكلام !! دعنا نعيد المثال مره اخرى ...

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



لماذا قمنا بتشفير الرساله بخوارزميه التشفير بالمفتاح المتناظر ؟
ولذلك بسبب السرعه والاداء ، فالتشفير بالمفتاح المتناظر اسرع بكثير من التشفير بالمفتاح الغير متناظر ،
التشفير بالمفتاح المتناظر يشفر 50 MB في الثانيه الواحده
التشفير بالمفتاح غير المتناظر يشفر 20-200 KB في الثانيه (لاحظ الفرق !!) .

لذلك يستخدم المفتاح المتناظر لتشفير الرساله ، ويستخدم المفتاح الغير متناظر(العام) لتشفير المفتاح المتناظر ،
العمليه السابقه تسمى بالظرف الرقمي Digital Envelope .


ومن احد اشهر خوارزميات هذا النوع :
RSA
ECDH - Elliptic Curve Diffie-Hellman
Algmal (نسبه الى طاهر الجمل)
(الشرح التفصيلي لهذه الخوارزميات سوف يكون في الجزء الثالث) .



The Digital Signature and Message Diagest
التوقيع الرقمي وخلاصات الرسائل (الهاش) .




نأخذ مثال بسيط لكي يوضح الغرض من التوقيع الرقمي ،

صديقنا محمد لديه مفتاحين ، احدهما مفتاح عام والاخر مفتاح خاص (التشفير بالمفتاح غير المتناظر)



الان هو يريد ارسال رساله لاحد اصدقائه ، كل ما عليه ارسال المفتاح العام (يكون موجه للجميع) ، اما المفتاح الخاص فيحتفظ به لنفسه ، المفتاح العام يستخدم للتشفير والخاص لفك التشفير .



في حاله اراد محمد ارسال رساله الى علي وكان يريد ان استخدام التوقيع الرقمي (الذي عن طريقه يستطيع علي التأكد من ان محمد هو مرسل الرساله ، ايضا يمكن معرفه اي تغيير حصل على الرساله اثناء ارسالها) ، كل ما على محمد هو ان يأخذ الرساله ويدخلها الى احد الدوال الهاشيه (مثل md5 و SHA-1 وغيرها) لكي يخرج الناتج (يسمى بالهاش او message diagest) .



بعد ذلك يقوم محمد باخذ هذا الهاش ويقوم بتشفيره باستخدام المفتاح الخاص به ، وهكذا يحصل محمد على التوقيع


الان يقوم محمد باضافه التوقيع الى الرساله التي يريد ارسالها .. ويرسلها الى الاخ علي .


وصلت الرساله الى علي ، يقوم علي (او البرنامج الذي يستخدمه) بفك تشفير التوقيع (الناتج هو الهاش) باستخدام المفتاح العام لمحمد ، في حال انفك بشكل صحيح ، يكون علي قد عرف ان المرسل هو محمد وليس اي احد اخر ..
ايضا يقوم بتطبيق الداله الهاشيه (التي طبقها محمد) على الرساله ، في حال تساوت مع الهاش ، اذا يكون علي قد عرف ان الرساله لم تتغير اثناء ارسالها ..



وهكذا نكون قد وصلنا الى نهايه هذا الجزء الاول ، عسى ان تكونوا ان استفدتوا منه سواء حاليا ام مستقبلا ، واعذروني على التقصير ،ولا تنسوني من دعوه صالحه ...

بالمناسبه هناك بعض المواضيع لم نتطرق لها مثل
coding وهو عمل مثلا لغه غير معروفه وتكون جميع كلمات هذه اللغه في كتاب معين Code Book واستخدمت هذه الطريقه منذ الاالاف السنين

Steganography هو اخفاء نص داخل صوره او ملف صوتي .. (قد نتعرض له بشكل مستقل) .

تشفير البيانات في انترنت وبروتوكلات مثل SSL وغيرها من المواضيع الخاصه بمواقع الويب .

والسلام عليكم ورحمه الله وبركاته .
:rolleyes:
__________________
I Was here some days from 2003 to 2009

good bye
My_Blog

C++/Java Addict
romansy غير متصل   رد مع اقتباس
قديم 10-08-2007, 07:37   #7
.:: عضو قدير ::.
 
الصورة الرمزية romansy
 
تاريخ التسجيل: Jul 2003
الدولة: السودان
المشاركات: 1,053


UP

سنبأ بالجزء الثاني قريبا ...

هيا أين أنتم يا CodeBreakers

تحياتي
__________________
I Was here some days from 2003 to 2009

good bye
My_Blog

C++/Java Addict
romansy غير متصل   رد مع اقتباس
قديم 11-08-2007, 05:28   #8
:: عضو خبير ::
 
الصورة الرمزية مهندس أحمد فؤاد
 
تاريخ التسجيل: Jun 2007
الدولة: في أرض الله (مصر أم الدنيا)
المشاركات: 450
نحن هنا ومتابعين جزاك الله كل خير
ولكن سؤال يااخي رمانسي هل الموضوع منقول ولا كل هذه المعلومات عندك
__________________

اللهم اني أصبحت أشهدك و أشهد حملة عرشك انك أنت الله لا إلاه إلا أنت وحدك لا شريك لك و أن محمدا عبدك و رسولك عدد خلقك و زنة عرشك و مداد كلماتك

مهندس أحمد فؤاد غير متصل   رد مع اقتباس
قديم 11-08-2007, 08:03   #9
.:: عضو قدير ::.
 
تاريخ التسجيل: Jul 2004
الدولة: NORWICH - UK
المشاركات: 1,317
لاااااا إله الا الله ..
السموحة يا أستاذ لم انتبه للموضوع إلا الآن ...
والله مجهود كبير جداً .. لي عودة ان شاء الله عما قريب فقط انتهي من الامتحانات
وان شاء الله سأعود لقراءة الموضوع من جديد ..

جزاك الله خير يالغالي ..
__________________
ماجددج غير متصل   رد مع اقتباس
قديم 11-08-2007, 08:45   #10
.:: عضو قدير ::.
 
الصورة الرمزية romansy
 
تاريخ التسجيل: Jul 2003
الدولة: السودان
المشاركات: 1,053

اهلا بالشباب

كما ذكرت في البدايه

اقتباس:
وهذه الكتب والمراجع التي باذن الله تؤهلك لدخول هذا العلم من اوسع ابوابه :
Handbook of Applied Cryptography by :Alfred J. Menezes
Cryptography: Theory and Practice by Douglas Stinson
Applied Cryptography, by Bruce Schneier
RSA Security’s Official Guide to Cryptography by : Steve Burnett and Stephen Paine (المرجع الاساسي للجزء الاول ) .
لاحظ السطر الاخير

الموضوع من الكتاب السابق وطبعا الترجمه ليست حرفيه وانما اتعبت ترتيب المواضيع وترتيب الصور

بالنسبه للجزء الثاني فراح يستفيد منه الجميع لانه هو البدايه الحقيقيه في موضوع التشفير وسندرس في البدايه الطرق القديمه ونطبق بعض من البرامج ب c , java وانتو جماعه الفيجول بيسك حولو تلك البرامج الى لغتكم ايضا

بالمناسبه الموضوع ده تم نقله من غير علمي الى منتديات المشاغب وطبعا كعاده الذين ينقلوا المواضيع لم يذكر المصدر

تحياتي والقاكم قريبا ان شاء الله
__________________
I Was here some days from 2003 to 2009

good bye
My_Blog

C++/Java Addict
romansy غير متصل   رد مع اقتباس
قديم 19-08-2007, 02:55   #11
:: عضو محترف ::
 
الصورة الرمزية TheXGhost
 
تاريخ التسجيل: Jan 2005
الدولة: لاإله إلا الله محمد رسول الله
المشاركات: 975
السلام عليكم
تسلم اخوي , على الدرس الجميل ,

لم استط ان اقرأه كله , من شدة النعاس ,
لكن باذن الله لي عودة ,
__________________



حان الاوان للهجوم من جديد <<< فهل من مجيب ؟؟
http://www.3asfh.net/vb/showthread.php?t=46674
بدأ المسير الى الهدف والحر ان بدا المسير فلن يكل و لن يقف


عاجل ::: اعلان مهم !!
www.xxx.xx =========> DDOS Attack

ارجو من الاخوان الذين قاموا بلاشتراك
بالموضوع المذكور اعلاه ,
اضافة الايميل للمراسلة عليه باوقات الهجوم
و الاستعداد أو من خلال الموقع التالي :
www.al-jinan.org
http://www.mslamh.jeeran.com/
[email protected]
[email protected]
بدأ العد التنازلي للعمل .....

لا اله الا الله محمد رسول الله
.: الله اكبر والعزة لله :.
TheXGhost غير متصل   رد مع اقتباس
قديم 21-08-2007, 12:28   #12
:: عضو خبير ::
 
الصورة الرمزية مهندس أحمد فؤاد
 
تاريخ التسجيل: Jun 2007
الدولة: في أرض الله (مصر أم الدنيا)
المشاركات: 450
بصراحة معلومات جميلة جدا جدا ... انا قرأت جزء من المووضع وان شاء الله هكمله للنهاية
جزاك الله كل خير ورحم الله والديك وجعل الله مثواك الجنة وجعله في ميزان حسناتك
وصلي الله على محمد وعلى اله وصحبه وسلم
__________________

اللهم اني أصبحت أشهدك و أشهد حملة عرشك انك أنت الله لا إلاه إلا أنت وحدك لا شريك لك و أن محمدا عبدك و رسولك عدد خلقك و زنة عرشك و مداد كلماتك

مهندس أحمد فؤاد غير متصل   رد مع اقتباس
قديم 29-08-2007, 04:31   #13
:: عضو محترف ::
 
الصورة الرمزية TheXGhost
 
تاريخ التسجيل: Jan 2005
الدولة: لاإله إلا الله محمد رسول الله
المشاركات: 975
السلام عليكم و رحمة الله و بركاته


اخوي , ياريت لو تكمل بقية الدسور في اقرب وقت , و الله لهم قيمة كبيرة عندي , لاني باذن الله احاول اتعلم كسر التشفير ,
لا تبخل علينا , الله يكرمك ,
__________________



حان الاوان للهجوم من جديد <<< فهل من مجيب ؟؟
http://www.3asfh.net/vb/showthread.php?t=46674
بدأ المسير الى الهدف والحر ان بدا المسير فلن يكل و لن يقف


عاجل ::: اعلان مهم !!
www.xxx.xx =========> DDOS Attack

ارجو من الاخوان الذين قاموا بلاشتراك
بالموضوع المذكور اعلاه ,
اضافة الايميل للمراسلة عليه باوقات الهجوم
و الاستعداد أو من خلال الموقع التالي :
www.al-jinan.org
http://www.mslamh.jeeran.com/
[email protected]
[email protected]
بدأ العد التنازلي للعمل .....

لا اله الا الله محمد رسول الله
.: الله اكبر والعزة لله :.
TheXGhost غير متصل   رد مع اقتباس
قديم 29-08-2007, 07:15   #14
.:: عضو قدير ::.
 
الصورة الرمزية romansy
 
تاريخ التسجيل: Jul 2003
الدولة: السودان
المشاركات: 1,053
ولا يهمك أخي الغالي ،

باذن الله ، غدا سوف يكون الدرس الاول في الجزء الثاني ،

وشكرا للحضور ،

الى اللقاء.
romansy غير متصل   رد مع اقتباس
قديم 29-08-2007, 08:49   #15
:: عضو محترف ::
 
الصورة الرمزية TheXGhost
 
تاريخ التسجيل: Jan 2005
الدولة: لاإله إلا الله محمد رسول الله
المشاركات: 975
تسلم و الله انتظرك على احر من الجمر
و على فكرة , ياريت لو تنزل الدروس في كتاب pdf
لانه بصراحة من اقوى الدروس في العاصفة
و لا تنزعج من قلة من يقراها فهي تهم بعض من يهتم بامن المعلومات , و على فكرة في امريكا يوجد فقط 5 مدارس تدرس هذا الموضوع , كتخصص , و هي محتكرة بشكل رهيب , ففي الاغلب يتم اختيار النخبة للعمل في NSA...و قليل هم الذين تسنح لهم الفرصة للعمل في NSA .و التمكن من الاطلاع على الامكانيات المتوفرة..
أخوي , لا تنزعج ممن ينقلون الموضوع من غير ذكر المصدر , فهم كالحمار يحمل اسفارا , اغلبهم لا يفقهون ما ينقلون الا ما رحم ربي ...
و السلام عليكم
__________________



حان الاوان للهجوم من جديد <<< فهل من مجيب ؟؟
http://www.3asfh.net/vb/showthread.php?t=46674
بدأ المسير الى الهدف والحر ان بدا المسير فلن يكل و لن يقف


عاجل ::: اعلان مهم !!
www.xxx.xx =========> DDOS Attack

ارجو من الاخوان الذين قاموا بلاشتراك
بالموضوع المذكور اعلاه ,
اضافة الايميل للمراسلة عليه باوقات الهجوم
و الاستعداد أو من خلال الموقع التالي :
www.al-jinan.org
http://www.mslamh.jeeran.com/
[email protected]
[email protected]
بدأ العد التنازلي للعمل .....

لا اله الا الله محمد رسول الله
.: الله اكبر والعزة لله :.
TheXGhost غير متصل   رد مع اقتباس
إضافة رد

مواقع النشر (المفضلة)

أدوات الموضوع
انواع عرض الموضوع

تعليمات المشاركة
لا تستطيع إضافة مواضيع جديدة
لا تستطيع الرد على المواضيع
لا تستطيع إرفاق ملفات
لا تستطيع تعديل مشاركاتك

BB code is متاحة
كود [IMG] متاحة
كود HTML معطلة
Trackbacks are متاحة
Pingbacks are متاحة
Refbacks are متاحة

الانتقال السريع


الساعة الآن 04:56


Powered by vBulletin® Version 3.8.7
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
SEO by vBSEO ©2011, Crawlability, Inc.