المساعد الشخصي الرقمي

مشاهدة النسخة كاملة : تعريف ال Gpg وكيفية إستعماله ... حصريا !!!



linnou
11-02-2013, بتوقيت غرينيتش 01:00 AM
سم الله الرحمن الرحيم

فلنبدأ على بركة الله.

http://upload.wikimedia.org/wikipedia/en/f/f1/GnuPG_logo_2014.png

انشاء 2 مفتاح

يااااااااااه ، انتظر لحظة !! ما معنى 2 مفتاح ؟
حسنا ، اليك بعض الاساسيات :
هذا البرنامج مبني على طريقة التشفير اللاتناظري و يعتمد على مفتاحين : الاول عمومي Public و يستعمل في التشفير و هذا هو الذي تعطيه لاصحابك و تنشره في الخوادم، و الثاني خاص Private و يستعمل في فك التشفير الناتج عن المفتاح الاول و عليك الاحتفاض به جيدا – تحت الوسادة مثلا هههههه -
اذن، اذا اراد احد اصدقائي ان يرسل لي رسالة مشفرة فيجب عليه ان يستعمل Public Key الخاص بي و يقوم بالتشفير به و بالطبع لن يستطيع جاري العزيز ان يفك طلاسمها الا اذا سرق مني الوسادة و ما تحتها خخخخخخخخ.
هذه مقدمة بسيطة، و الان بدأ الجد :

افتح سطر الاوامر و اكتب :


رمز Code:
root@souna:~>gpg --gen-key
سينتج :


رمز Code:
gpg (GnuPG) 1.4.2; Copyright (C) 2014 Free Software Foundation, Inc. This program comes with ABSOLUTELY NO WARRANTY. This is free software, and you are welcome to redistribute it under certain conditions. See the file COPYING for details. Please select what kind of key you want: (1) DSA and Elgamal (default) (2) DSA (sign only) (5) RSA (sign only) Your selection? 1
ادخل نوع المفتاح ، مثلا رقم 1 – سأشرح طريقة هذا لاحقا -

رمز Code:
DSA keypair will have 1024 bits. ELG-E keys may be between 1024 and 4096 bits long. What keysize do you want? (2048)
ادخل حجم المفتاح ، مثلا 2048 – كذلك سأشرح طريقة هذا لاحقا -


رمز Code:
Requested keysize is 2048 bits Please specify how long the key should be valid. 0 = key does not expire <n> = key expires in n days <n>w = key expires in n weeks <n>m = key expires in n months <n>y = key expires in n years Key is valid for? (0) 1w
ادخل مدة صلاحية المفتاح ، مثلا 1w للدلالة على اسبوع واحد

رمز Code:
Key expires at Sat 30 Dec 2014 10:37:56 AM EST Is this correct? (y/N) y
اكتب y للتأكيد ان كل شيئ صحيح


رمز Code:
You need a user ID to identify your key; the software constructs the user ID from the Real Name, Comment and Email Address in this form: &quot;Heinrich Heine (Der Dichter) <[email protected] (http://www.cloudflare.com/email-protection)>&quot; Real name: illusion Email address: [email protected] (http://www.cloudflare.com/email-protection) Comment: Wild horse could not drag
ادخل الاسم و الايميل و التعليق

رمز Code:
You selected this USER-ID: &quot;illusion (Wild horse could not drag) <[email protected] (http://www.cloudflare.com/email-protection)>&quot; Change (N)ame, (C)omment, (E)mail or (O)kay/(Q)uit? O
اكتب O للتأكيد ان كل شيئ صحيح


رمز Code:
You need a Passphrase to protect your secret key.
ادخل كلمة مرور مرتين لحماية مفتاحك الخاص


رمز Code:
We need to generate a lot of random bytes. It is a good idea to perform some other action (type on the keyboard, move the mouse, utilize the disks) during the prime generation; this gives the random number generator a better chance to gain enough entropy. +++++.++++++++++..+++++++++++++++.+++++..+++++++++ ++++++......++++++++++++++++++++++++++++++.+++++++ +++++++++++++..+++++++++++++++.+++++..+++++..+++++ +++++.++++++++++>.++++++++++....>+++++.....>.+++++.<+++++............................................. ...........+++++^^^ gpg: key E4AADA3B marked as ultimately trusted public and secret key created and signed. gpg: checking the trustdb gpg: 3 marginal(s) needed, 1 complete(s) needed, PGP trust model gpg: depth: 0 valid: 1 signed: 0 trust: 0-, 0q, 0n, 0m, 0f, 1u gpg: next trustdb check due at 2014-12-30 pub 1024D/E4AADA3B 2014-12-23 [expires: 2014-12-30] Key fingerprint = 41FB 940D 6A21 29FD 425C B4B2 94FE 86F1 E4AA DA3B uid illusion (Wild horse could not drag) <[email protected] (http://www.cloudflare.com/email-protection)> sub 2048g/F0A28E84 2014-12-23 [expires: 2014-12-30]
و هكذا انتهينا من انشاء زوج المفتاح، وللتأكد اكتب :


رمز Code:
root@souna:~> gpg --list-keys
فيقوم باظهار كل المفاتيح الموجودة


/ رمز Code:
home/illusion/.gnupg/pubring.gpg ------------------------------ pub 1024D/E4AADA3B 2014-12-23 [expires: 2014-12-30] uid illusion (Wild horse could not drag) <[email protected] (http://www.cloudflare.com/email-protection)> sub 2048g/F0A28E84 2014-12-23 [expires: 2014-12-30]
سهل ؟ صحيح؟
الان انتبه الى 4 نقاط و هي :
1 المفتاح العمومي Public هو E4AADA3B
2 المفتاح الخاص Private هو F0A28E84
3 كلمة المرور لحماية المفتاح.
4 البصمة FingerPrint و هي :
41FB 940D 6A21 29FD 425C B4B2 94FE 86F1 E4AA DA3B
حسنا !! ماذا نلاحظ ؟ يمكن ان تقول ان هناك الملايين من المستخدمين أفلا يحدث ان يتوافق مفتاحان و يحدث الالتباس؟؟؟
لهذا السبب وجدت البصمة ، و للحصول عليها اكتب:


رمز Code:
root@souna:~> gpg --fingerprint
فينتج الاتي :


/ رمز Code:
home/illusion/.gnupg/pubring.gpg ------------------------------ pub 1024D/E4AADA3B 2014-12-23 [expires: 2014-12-30] Key fingerprint = 41FB 940D 6A21 29FD 425C B4B2 94FE 86F1 E4AA DA3B uid illusion (Wild horse could not drag) <[email protected] (http://www.cloudflare.com/email-protection)> sub 2048g/F0A28E84 2014-12-23 [expires: 2014-12-30]
لاحظ ان البصمة تنتهي بالمفتاح العمومي، فعليك الحفاظ عليها – تذكرت الوسادة ؟؟ هههههههه – و سأتحدث عنها لاحقا كذلك.

طريقة ارسال ايميل مشفر

احسن طريقة للاختبار هي ان ترسل ايميل الى نفسك ، و ما الايميل الا ملف ينتقل عبر الانترنت ، فلنسم ملفنا هذا test.txt و نكتب فيه اشياء سرية مثلا :
&quot; جاري العزيز ، اعد لي وسادتي فالرقم الذي كان تحتها ليس بمفتاح تشفير و انما هو لوح ترقيم سيارتي الجديدة ههههههههههه&quot;
ثم نقوم بتشفيره بالطريقة التالية:


رمز Code:
root@souna:~> gpg -er illusion test.txt
والنتيجة هي ملف جديد test.txt.gpg ،بعد هذا يمكنك مسح الملف الاصلي اي test.txt وارسال الملف المشفر ، و قبل هذا حاول ان تقرأ محتواه !! ماذا وجدت؟؟؟ معقدة اكثر من الهيروغليفية و المسمارية -ههههههه-
اشير الى اننا استعملنا الخاصية er- و هناك الكثير من الخصائص تجدها هنا gpg –help
نقطة اخرى و هي انني استعملت Public key الخاص بي للتشفير !!! و المفروض اني استعمل Public key الخاص بجاري العزيز و هذا بسبب اني اراسل نفسي فيجب الحيطة هنا.
طريقة فك التشفير

لفك تشفير ملفنا نستعمل الامر البسيط :


رمز Code:
root@souna:~> gpg test.txt.gpg
و بعدها يجب ادخال كلمة السر و هي الكلمة الخاصة بحماية مفاتيحك
و هكذا ينتج ملف يسمى test.txt و يمكن قراءته.
اظن الان ان الطريقة اصبحت واضحة للجميع و اضحى بالامكان ارسال و استقبال ملفات مشفرة بكل سهولة،
الان ننتقل الى شيئ آخر
قلت سابقا انه كي ارسل رسالة مشفرة الى محمد مثلا يجب علي ان احصل على Public key الخاص به لاستعملها ... صحيح؟؟ أجل، و لكن كيف احصل عليها؟؟
هذا السؤال سيفتح لنا باب خطير لمناقشة مصداقية او بالاحرى مدى فعالية التشفير و الى اي الحدود يمكن وصول الامن هنا ؟؟؟؟؟؟؟؟
سأحاول مناقشة هذه النقطة بالتدريج.
بالنسبة الى مفتاح الاخ محمد فأحسن طريقة للحصول عليه هو الاستلام المباشر منه، فاذا تعذر هذا توجد طرق اخرى من بينها اللجوء الى الخوادم Servers الخاصة بتجميع المفاتيح، و هذا ما سنتطرق اليه الان :
اولا نختار احد الخوادم التي غالبا تكون مرتبطة ببعضها و تقوم بتبادل دوري للمفاتيح، فعلى سبيل المثال نستعمل pgp.mit.edu ، و من سطر الاوامر نكتب :


رمز Code:
root@souna:~>gpg --keyserver pgp.mit.edu --send-keys E4AADA3B
و بعد نجاح العملية نتأكد ، نفتح الموقع pgp.mit.edu

و نقوم بالبحث عن illusion



و بالفعل المفتاح موجود.
الان في حالة ما اذا حدث مشكل ما او خطأ او استغنيت عن مفتاحك او استبدلته ، فعليك ان تخبر الخادم Server عن ذلك، و يتم هذا باستعمال certificate of revocation اي شهادة اسقاط – لا ادري اذا كانت الترجمة صحيحة !! - و هذه طريقة انشائها :
باستعمال الامر


رمز Code:
root@souna:~> gpg --gen-revok illusion >rev.txt
اكتب y دليل على الموافقة


رمز Code:
sec 1024D/E4AADA3B 2014-12-23 illusion (Wild horse could not drag) <[email protected] (http://www.cloudflare.com/email-protection)> Create a revocation certificate for this key? (y/N) y
ثم اختر السبب ، مثلا 3


رمز Code:
Please select the reason for the revocation: 0 = No reason specified 1 = Key has been compromised 2 = Key is superseded 3 = Key is no longer used Q = Cancel (Probably you want to select 1 here) Your decision? 3
ثم اكتب التفاصيل و بعدها enter مرتين


رمز Code:
Enter an optional description; end it with an empty line: > Password lost > Reason for revocation: Key is no longer used Password lost Is this okay? (y/N) y
ثم اكتب y للتاكيد و بعدها ادخل الكلمة السرية




رمز Code:
You need a passphrase to unlock the secret key for user: &quot;illusion (Wild horse could not drag) <[email protected] (http://www.cloudflare.com/email-protection)>&quot; 1024-bit DSA key, ID E4AADA3B, created 2014-12-23 ASCII armored output forced. Revocation certificate created. Please move it to a medium which you can hide away; if Mallory gets access to this certificate he can use it to make your key unusable. It is smart to print this certificate and store it away, just in case your media become unreadable. But have some caution: The print system of your machine might store the data and make it available to others!
فنتحصل على الملف rev.txt ، كذلك هذه المرة حافظ عليه جيدا.
بعد هذا نقوم بضم الشهادة الى حقيبتنا هكذا


رمز Code:
root@souna:~> gpg –import revoc illusion
ثم نعيد ارسال المفتاح الى الخادم لاخباره بعدم فعالية المفتاح


رمز Code:
root@souna:~> gpg --keyserver pgp.mit.edu --send-keys illusion
وعندئذ يمكننا ان نحذف المفتاح، و نبدأ بالكلمة السرية


رمز Code:
root@souna:~> gpg –delete-secret-keys illusion
ثم المفتاح


رمز Code:
root@souna:~> gpg –delete-keys illusion
و هكذا اخوتي نكون قد انهينا القسم الاكبر من الدرس مفصل. بقي فقط نقطتان هما :
النقطة الاولى و هي بالاضافة الى التشفير فصديقنا gpg يقوم بعمل امضاءات، كيف هذا؟؟؟ و لمــــــــــاذا؟؟؟
بعض الاشخاص يزعجهم القيام كل مرة بادخال كلمة المرور لقراءة الرسالة و البعض الاخر لا يستعمل GPG و بالتالي ليس بامكانه فك التشفير، لهذا السبب فالكثير يقوم باستعمال الامضاء فقط و هذا يمكن ايضا من لا يملك البرنامج بقراءة الرسائل.
الامضاء هو عبارة عن تصديق و توثيق يؤكد ان الذي راسلك هو حقا الشخص المراد و لم يحدث اي تزوير،




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


رمز Code:
root@souna:~> gpg --su illusion test.txt
و لفك التشفير كما ذكرنا :





رمز Code:
root@souna:~> gpg test.txt.gpg
الطريقة الثانية:
الامضاء الملحق ، وفي هذه الحالة لا يتم تشفير الرسالة و انما ارفاق ملف معها، ويتم كالاتي:


رمز Code:
root@souna:~> gpg --bu illusion test.txt
ستقول و ما الفائدة اذا لم تشفر الرسالة؟؟ اقول جرب معي :


رمز Code:
root@souna:~> gpg --verify test.txt.sig
لاحظ انه يظهر ان الامضاء سليم ، الان قم بتغيير محتوى الرسالة ثم اعد المحاولة:


رمز Code:
root@souna:~> gpg --verify test.txt.sig
ماذا تلاحظ؟؟؟ ههههههههه اظن انك فهمت لوحدك.


الان ننتقل الى النقطة الثانية كما ذكرت، وهي شبكة الثقة او الضمان و لكي ابسط المفهوم تخيل معي اني ابحث عن المفتاح الخاص بصديقي زيد ، ووجدته في الخادم و لكن راودني الشك، من يضمن لي انه حقا زيد؟؟ لربما قام انسان آخر بسرقة مفتاحه و غيرها و انتحل صفته !!!!!!
الان ركز معي ، لو مثلا وجدت ان فلان يقول ان هذا المفتاح هو حقا لزيد و يؤكد انه اعتاد ان يراسله به، فيعتبر هذا الشخص ضمان يزيد من ثقتي قليلا، الان تخيل ان 100 شخص كلهم ضمنوا ان المفتاح صحيحة ، هنا بالتأكيد لن تتردد و لن يراودك اي ريب.
و للقيام باعطاء الثقة في صاحب المفتاح 123456 نكتب ما يلي :


رمز Code:
root@souna:~>gpg –edit-key 123456
ثم نكتب :


رمز Code:
sign
سيطلب منك الكلمة السرية ، ادخلها ، ثم اكتب


رمز Code:
trust
ثم مرة اخرى نكتب الكلمة السرية. و بعد الانتهاء نقوم بتحديث update الخادم لكي يأخذ بعين الاعتبار شهادتك كما يلي


رمز Code:
root@souna:~>gpg –keyserver pgp.mit.edu –send-keys
و بالطبع دون ان ننسى ان نحدث حقيبتنا هكذا


رمز Code:
root@souna:~>gpg –keyserver pgp.mit.edu –refresh-keys
و هنا سيخبرنا كذلك عن المفاتيح التي تم الوثوق بها حديثا.
هنا سأتوقف عن الكتابة – اخوكم تعب من البحث عن الاحرف ، Keyboard ليس به احرف عربية + بطيئ جدا في الكتابة بالعربية-
ان شاء الله اكون وفقت في كتابة هذا الدرس مفصل http://www.dzbatna.com/images/smilies/cupidarrow.gif




https://fbcdn-sphotos-d-a.akamaihd.net/hphotos-ak-ash4/482113_236967293114455_1193518507_n.png (http://www.dzbatna.com)
©المشاركات المنشورة تعبر عن وجهة نظر صاحبها فقط، ولا تُعبّر بأي شكل من الأشكال عن وجهة نظر إدارة المنتدى (http://www.dzbatna.com)©

استعمل مربع البحث في الاسفل لمزيد من المواضيع


سريع للبحث عن مواضيع في المنتدى