مضى على الشبكة و يوم من العطاء.
  • تحذير: يجب على كل روّاد الشبكة تشغيل برامج الاختراق داخل الأنظمة الوهمية وهي بهدف التعلم وحماية الأعضاء والتوعية بها

الجواب على سؤال ليش ما بنقدر نعمل decrypt لل one way hash

3b0-0d3b0-0d is verified member.

{ || مشرف قسم CTF || }
.:: طاقم المشرفين ::.

السمعة:

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

أول شيء يجب أن تُفرق بين عملية الـ hashing وعملية الـ Encryption

الهاش ( Hashing ) :
هو عملية رياضية تأخذ البيانات وتحولها لسلسلة طويلة وثابتة الطول.

التشفير ( Encryption ) :
عملية تحويل البيانات من صيغة قابلة للقراءة إلى صيغة مشفرة تحتاج إلى مفتاح لفكها.

الآن لما تحكي انك بتحول الهاش لسلسلة ثابتة وطويلة ؛ فالهاش بفقد جزء من المعلومة الأصلية
يعني أول سبب للإجابة على السؤال هو أن الهاش بفقد بعض التفاصيل الدقيقة بالبيانات

ثاني شغلة العملية نفسها غير قابلة للعكس
يعني الهاش بقوم بعملية رياضية صعبة بتعتمد تحول البيانات بطريقة معينة صعبة العكس

ثالث شغلة شغلة التصادم او اسمها Collisions

اعطي مثال عليها حتى توضح :
عندك مثلا نظام تشفير بخلي الهاش 4 خانات يعني أي شيء تقوم بإدخاله بتخليه 4 خانات
فمثلًا عندك مستخدين الأول حط الباسورد
password
بعد ما يحصل الهاش بعطيك قيمة
abcd
والثاني حطها
123456789
بعد ما تطبق الهاش بعطيك
abcd
الفكرة انو كل واحد استخدم كلمه مرور معينة، لكن لما تم تطبيق الهاش اعطاك نفس الباس
( عشان هيك بستخدموا ال سولت او الملح عشان ما يصير في تصادم بالهاشات)

طيب بتحكيلي هذا الشيء ايش علاقته بأني بقدرش اعمل ديكريبت او فك للهاش ؟ هذا الاشي كمان بصعب وبزيد تعقيد انك تعكس تشفير الهاش

باختصار الهاش الواحد مصمم لعملية غير قابلة للعكس
 
التعديل الأخير بواسطة المشرف:
اعتقد انه قصدك بالعنوان ليش ما بنعمل decrypt ؟
😄
 
ثاني شغله العمليه نفسها غير قابله للعكس
يعني الهاش بقوم بعمليه رياضيه صعبه بتعتمد تحول البيانات بطريقه معينه صعبه العكس
معلش محتاج توضيح اكتر … يعني هي عملية غير قابلة للعكس نهائيا : عشان كده بنستخدم ال brute-force

ولا هي ممكن العكس ولكن صعب فبنختار بديل اسهل لحل الهاش ؟؟؟؟
 
  • Like
التفاعلات: BAYAN
@alTair اعتقد ان العملية مقرونة بالرياضيات وعشان تفهم الموضوع اكثر ف كلشي مشروح هون
838_2.png
تعريف بِمفهوم الـ Hashing Hashing
cherry_blossom
بسم الله الرحمن الرحيم
cherry_blossom
رح أشرح بشكل مُبسَّط عن مفهوم ال Hashing : تخيلوا معي قبل كل شي انه انا مثلا عندي ساعة غالية علي وبحبها ، وانا حاسه انه في شخص بستخدمها وبلبسها بدون علمي وبس يخلّص برجعها ، فخلص فكرت وقررت انه لازم اتأكد هل فعلاً في شخص بستخدمها بدون علمي او انا غلطانه ، حتى اتأكد قررت احطها بعلبتها وبمكان معيّن وبطريقة معيّنة مثلا اني اخليها لجهة معينه واحط إشارة على مكانها بالضبط بحيث لو تغير مكانها لو واحد سنتمتر او تغير اي شي على الطريقة اللي حطيتها فيها اذًا بكون فعلًا فيه شخص عبث فيها ولو ما تغير شي معناها ماحد استخدمها. اذًا انا عملت حركة معينه ماحد بعرفها غيري حتى اتأكد هل فعلا حد عبث فيها من وراي او لأ … وتقريبا هيك فكرة الـ Hashing فمن خلاله بتأكد لو فيه اي حدا عبث بالداتا، خلونا نفهم كيف يعني وشو معناه خطوة بخطوة.
yellow_square
تعريف الـ Hashing . نتفق على اول شغلة ، وهي انه عملية ال Hashing هي عبارة عن تحويل ال كلام ل شكل آخر تماما وشكل غير مفهوم بالنسبة لاي شيء بالدنيا يعني بحوله لكلام غريب ، • طيب ليه شو الفكرة ؟ ببساطة الفكرة انه انا بدي احافظ على المعلومة هاي من اي تعديل بالدنيا واتأكد انه مافيه اي انسان يقدر يغير عليها ابدا. طيب كيف بتم ؟ بمسكوا الكلام بعملوا عليه عمليات وحسابات معيّنة بتحول لشي آخر تماما ولا اي حد بالدنيا بقدر يفهم شو الكلام الاصلي اللي كان مكتوب ولا بقدر يرجعه زي ما كان ف من هون اذا بندرك انه عملية الـ Hashing هي عملية لا يمكن عكسها ويطلق عليها مصطلح one-way يعني خلص بجهة وحده وهي انه بس بتشفر هاي الداتا والنص بس ما بتقدر ترجعها زي ما كانت ابدا ، مُستحيل تقدر تعكس اللي انعمل عليها ( irreversible ).
memo
نشوف مثال: ابسط الموضوع الكم بمثال تمام، لو اجيت انا حكيت الكم اني عملت معادلة طلع جوابها الرقم 1000 ؟ مين بقدر يعرفلي شو المعادلة هاي؟ شو العمليات الحسابية والارقام اللي ركبناها مع بعض وشكلت عنا الرقم 1000 ? كل حد رح يحكي شكل وكل حد رح يخطر بباله معادلة غير اعطتنا هالرقم مثلا : 100 x 10 = 1000 200 + 200 + 600 = 1000 ومعادلات لا حصر لها ، ف اذا الرقم 1000 هاد انا مستحيل اقدر اعكسه واعرف شو المعادلة اللي اعطتني هاد الرقم … وهاد بالضبط اللي بصير ب حالة ال Hashing .
yellow_square
أنواع الـ Hashing طيب تعالوا نحكي حكي علمي سليم منطقي
teacher
، في عنا عدة انواع من ال Hashing ( بنقدر نعتبرهم خوارزميات او احكوا عنهم معادلات رياضية عشان برضه تفهموا اكتر) ، كل نوع منهم بشتغل ب طريقة معينه وحسابات معينه حتى يقدر يشفر الداتا غير عن النوع التاني ، بس وين الغريب بالموضوع ؟؟ انه برضه كل نوع منهم اله طول محدد ؛ يعني لو شفرت كلمة " بيان " او شفرت جريدة كاملة او شفرت مقال طويييلللل باستخدام نفس نوع ال Hashing متخيلين انه النتيجة بعد تشفيره واجراء كل العمليات هاي رح تكون انه نفس الطول بطلع الهم كلهم بغض النظر عن حجم وطول الكلام اللي كتبته ! ( بحولهم لكلام مشفر غير مقروء او مفهوم بس النص المشفر الناتج عن عميلة ال Hashing بكون بطول ثابت بغض النظر عن الكلام اللي لازم يحوله هلأ بتفهموا بمثال ) يعني الأخ مش مقصر مطبق مبدأ المساواة وماعنده حدا مميز او كبير.
diamonds
وقبل ما اعطي مثال تعالوا نتعرف بعض هالأنواع هاي وكل وحده كم الطول عندها … 1- MD5 ----> length 128 2- SHA 256 ----> length 256 3- SHA - 1 ----> length 160 4- SHA 512 ----> length 512
memo
وهلأ المثال تعالوا نجرب : ناخد مثلا اول نوع منه وهو ال MD5 ، كيف بدنا نشفر ؟ اكيد مو بحالنا او يدوي لا طبعا بس بنقدر نستخدم ادوات ونجرب نشفر فيهم او مثلا نروح على صديقنا Google نطلبه ببساطة بحث سريع مثلا Online text " Hashing " بطلع الك عدة مواقع ف انت جرّب ، شوفوا المثال التالي: جملة Hello I’m Bayan , Who are you ? بدي اشفرها باستخدام ال MD5 مرة وباستخدام ال SHA 1 مرة ، ونفس الشي كلمة Hi ونشوف هل فعلًا نفس الطول. :cherry_blossom:SHA1
cherry_blossom
Hi → 94dd9e08c129c785f7f256e82fbe0a30e6d1ae40 Hello I’m Bayan , Who are you ? → bb0598ac2facfe459f8119c79f2fc26ec099ec54 :cherry_blossom:MD5
cherry_blossom
Hi → c1a5298f939e87e8f962a5edfc206918 Hello I’m Bayan , Who are you ? → 5dd3f5cf1f34910549115ea576eb14f0 اتوقع واضح انه نفس الطول من الأرقام والحروف
tipping_hand_woman:t2
exclamation
exclamation
exclamation
طيب ضل معلومة لازم انوه عليها حتى ندرك كم انه عملية ال Hashing مهمه ولأي درجة بتحافظ على النص ( او نحكي البيانات بشكل ادق ) من العبث و التغيير والتخريب ، الا وهي ان اي تغيير بسيط على النص حتى لو بحرف او حتى بنقطة و مهما كان الكلام طويل ف اي تغيير رح يؤدي لتغيير شكل ال Hash للنص كامل ، وهون بنكتشف قديه ان ال هاش شيء محترم معطي قيمة للكبير وللصغير ؛ وبيحترم ابسط واصغر حد فيهم.
exclamation
exclamation
exclamation
memo
مثال : رح ناخد كلمة " Hi " ورح ناخد بعدها كلمة " HI " حرف الـ i مره سمول يعني حرف صغير ومره كابيتال يعني حرف كبير ركزوا
woman_technologist:t2
c1a5298f939e87e8f962a5edfc206918 → Hi bf8c144140b15befb8ce662632a7b76e → HI لاحظنا كيف تغيير حرف واحد غير الهاش كامل !
memo
memo
نجي ل امثلة وسيناريوهات على تطبيق الـ Hashing : ✓ مثلا بدي ارسل لصديقتي رسالة اوريها صورة الساعة الجديدة اللي جبتها وهالحكي كله عن طريق الانترنت ؛ وانا شاكة انه فيه شخص بده ياخد الرسالة وبغيّر عليها قبل ما تكمل طريقها و توصل صديقتي ، ف ببساطة بروح بمسك هالرسالة قبل ما ارسلها لصديقتي وبروح بعملها Hashing وبس توصل الرسالة لصديقتي بتعملها نفس الشيء Hashing وبقارن اللي طلع معي باللي طلع معها ولو تطابق ف خلص كله تمام ولو صار اختلاف ف بنعرف انه فيه شخص عبث بالرسالة هاي. ✓ كمان مثال ، بدي انزل ملف معيّن من الانترنت دخلت على الموقع الرسمي ولقيت موجود بجانبه الهاش الخاص فيه للملف ، ف لما ينزل عندي بروح بحسب الهاش الخاص فيه وبقارنه باللي على الموقع الرسمي حتى اتأكد انه فعلًا ماحدا عدل او حذف او ضاف عليه شي ؛؛؛؛؛ زي لما تنزلوا الكالي مثلا شوفوه بيطلع بجانبه الهاش الخاص فيه.
exclamation
exclamation
exclamation
هون رح احكي معلومة مهمه انه برضه كلمات السر بتكون مخزنة جوا سيرفر بحتوي على كل هاي البيانات ( بسميه قاعدة البيانات ) بحتوي اسم المستخدم وكلمة السر الخاصة فيه بس اكيد الموضوع مو بالسهولة هاي ف هون كمان اي كلمة سر بتتخزن جوا هاي الداتا بيس ف هي بنعمل عليها Hashing اول وبعدها بتخزن ناتج ال hashing بس (hash - value ) ولما انت مثلا جيت تسجل دخول لحسابك التويتر ببساطة بتدخل اليوزر الخاص فيك وبعدها الباسوورد بس اللي بصير خلف الكواليس من جهة السيرفر انه رح يمسك الباسوورد الخاص فيك ويعمل عليها عملية Hashing ويقارنها بقيمة الهاش اللي مخزنه عنده بقاعدة البيانات فلو تطابقت ف تمام يعني صح وبسمحلك تدخل ولو لأ ف بيعرف انه الباسوورد غلط وما بسمحلك تدخل ، يعني برضه حتى لو صار اختراق عليها ف أي شخص بوصل لقاعدة البيانات رح يلاقي فيها اسماء المستخدمين ( اليورزز ) وقيمة الهاش للباسوورد الخاصة بكل يوزر فبالتالي ما بيقدر يعرف شو هو الباسوورد ابدا. بس طبعا الهاكرز ناس فخمين يا جماعة ما بوفروا شي
tipping_hand_woman:t2
، ف بتلاقي مواقع اونلاين عندها داتا بيس فيها مجموعة كلمات كبيرة وبحسبوا الـ Hash لهاي الكلمات كلها وبخزنوا كل كلمة منهم وعندها الهاش الخاص فيها ، بتجي انت بتدخل الهاش اللي حصلت عليه بأي طريقة كانت بتكتبه بالموقع هذا ، لهون تمام ! **خلينا نشوف من جهة الموقع شو بصير بشكل مبسط ؛ ببساطة بروح يدور عنده بقاعدة البيانات اللي خزن فيها كمية كلمات كبيرة مع قيمة الهاش الها ، بس يلقى هاش مطابق للي ادخلته انت قبل على الموقع ، بشوف هالموقع شو الكلمة الخاصة فيه وبرجعلك ياها ؛ لكن زي ما اتفقنا ما بيقدر يعكس الهاش لو حصل عليه.
red_circle
مُلخّص الموضوع
red_circle
اذا اتفقنا انه :
ballot_box_with_check
ال Hashing عبارة عن عملية بتم فيها إجراء عمليات وحسابات بتتم على المدخلات الأصليه وبتحولها لصيغة غير مقروءه.
ballot_box_with_check
ال hashing لا يمكن عكسه ؛ اي لا يمكن استرجاع المدخلات الاصلية (irreversible / one way function)
ballot_box_with_check
ال Hashing اله انواع مختلفة وكل نوع بطول محدد وثابت لا يتغير مهما كان حجم المدخلات .
 
كل حد رح يحكي شكل وكل حد رح يخطر بباله معادلة غير اعطتنا هالرقم مثلا : 100 x 10 = 1000 200 + 200 + 600 = 1000 ومعادلات لا حصر لها ، ف اذا الرقم 1000 هاد انا مستحيل اقدر اعكسه واعرف شو المعادلة اللي اعطتني هاد الرقم
رابع مره اقرأ المثال لكن اول مره افهمه الصراحه 😇 :

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

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

@STORM هل كده فعلا فهمت صح ولا في خلل عندي ؟؟؟
 
التعديل الأخير:
مية بالمية صح
حتى مثلا عندنا هون بالمنتدى، كلمات المرور مخزنات على شكل hash
حيث لو ان في هاكر استطاع الوصول لقواعد البيانات ما رح يقدر يعرف كلمات المرور الحقيقية
وهاذ حال باقي المواقع الالكترونية.
 
الله يجزيك الخير على هالمعلومة
ان شاء الله حقا رح نكون database
 

آخر المشاركات

فانوس

رمضان
عودة
أعلى