Home Previous Up Next4.10 حماية الخصوصية بالتوقيع الرقمي والتشفير.
حول
المحتويات
مشاريع
ثواب
مقالات
تنزيل
English

4.10 حماية الخصوصية بالتوقيع الرقمي والتشفير.

محتويات هذا الفصل:

4.10.1. مقدمة.

تدعم منظمة غنو حقوق الأفراد في حرية التعبير عن الرأي، وحرية توزيع وتعديل البرمجيات، وحق الحصول على حماية للخصوصية (مثل حرمة البيوت). على الرغم من أن الإسلام كفل للإنسان حق الحصول على الخصوصية وحرم التجسس، إلا أن السعودية (إلى جانب الدول التالية: روسيا، روسيا البيضاء، بورما، الهند، إندونيسيا، "إسرائيل" ، كزاخستان، باكستان) تمنع استيراد أو استعمال التشفير دون الحصول على إذن مسبق (رخصة) من الحكومة (أو على الأقل هكذا كانت عند كتابة كتيّب غنو لمكتبة السي في 2 من أيار 2001)، وعلى العكس تماماً تمنع بعض الدول (مثل الولايات المتحدة) تصدير خوارزميات وبرمجيات التشفير، الكثير من هذه الأخيرة تستثني البرمجيات التي يتوفر الكود المصدري لها للعموم كبرامج غنو. بسبب التغيّر المستمر في حالة القوانين فإنه يصعب عمل إحصائية محددة عن القوانين المرتبطة بالتشفير، لهذا عليك أن تتأكد من القوانين في بلدك قبل استعمال برمجيات التشفير، يمكنك أن تبدأ بقراءة الدراسة التي قام بها Bert-Japp Koops التي تجدها في http://cwis.kub.nl/~frw/people/koops/lawsurvy.htm.

تعتبر PGP أي خصوصية جيدة جداً Pretty Good Privacy أحد أهم طرق حماية البيانات الشخصية الخاصة أو فحص سلامة التوقيع الرقمي digital signatures (لسبب ما يسميه الإعلام التوقيع الإلكتروني) باستخدام خوارزميات موثوقة وآمنة إلى حد بعيد، أقتبس من The GNU Privacy Handbook ما يلي: "إن طرق التشفير الحالية مثل '3DES' و Blowfish و IDEA كلها تستخدم مفاتيح ذات 128-بت، التي تسمح ب 2128 مفتاحاً ممكناً من بين 2128 مفتاحاً وهو رقم من 39 منزلة!). وهذا كم كبير بل وكبير جداً، حتى لو جمعت كل الحواسيب الموجودة على هذا الكوكب للزمها أكثر من عمر الكون لإيجاد ذلك المفتاح المطلوب". ويعد GPG حارس الخصوصية من غنو GNU Privacy Guard أحد أفضل تطبيقات معايير OpenPGP سابقة الذكر، أقتبس من كتيّب GPG ما يلي: "تحديداً، يطبق GnuPG العديد من الأجزاء 'الاختيارية' من المعايير، على سبيل المثال فهي تدعم مقاطع RIPEMD/160 hash وضغط ZLIB (...) على سبيل المثال في وقت كتابة هذه الكتيّب لا يوجد أي إصدار آخر من PGP يدعم خوارزميات تشفير BLOWFISH". إذا كانت قوانين بلادك تسمح لك باستعمال أنظمة PGP التجارية فإنها بالتأكيد تسمح لك باستعمال GPG، وإلا فإنها قد تسمح وقد لا تسمح. إذا كان التشفير وحده الممنوع ربما يمكنك استعمال GPG للتوقيع وفحص التواقيع الرقمية (تتفاوت الدول في المنع، فبعضها تمنع الاستيراد من الأساس وبعضها يمنع الاستعمال وبعضها يمنع بث مواد مشفرة). يتوفر GPG للعديد من الأنظمة فهو غير محصور بنظام غنو/لينكس لمزيد من التفاصيل انظر www.GnuPG.org.

4.10.2. توليد زوجا المفاتيح.

تعتمد الحماية على وجود ملفان عام وخاص (سري وعلني) يسميان زوجا المفاتيح، لتوليدهما استعمل '--gen-key' ثم اتبع التعليمات، أولاً حدد نوع المفاتيح (كلا، لم أخطئ بعدم استعمالي للمثنى) التي تريد توليدها

bash$ gpg --gen-key
gpg (GnuPG) 0.9.4; Copyright (C) 1999 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)
   (4) ElGamal (sign and encrypt)
Your selection? 1
يفترض أن تختار زوجا مفاتيح DSA وزوجا مفاتيح "الجمال" ElGamal معاً، إلا إذا كانت بلادك تمنع التشفير وتريد فقط توليد DSA للتوقيع فقط (الخيار الثاني)، حدد حجم مفتاح DSA بين 512-بت و 1024-بت و"الجمال" أكبر من 768-بت قدر ما تريد (لا معنى للزيادة على 2048-بت)، ربما من الأفضل أن تقبل الاقتراح التلقائي ب 1024-بت، حدد فترة الصلاحية على شكل عدد (0 لتكون دائمة) يمثل الأسابيع أو الأشهر أو السنوات تبعاً للاحقة المستخدمة من بين 'w' أو 'm' أو 'y' على الترتيب، أو بالأيام إذا لم تضف لاحقة. بعدها سيسألك عن معرّف للمفتاح مكوّن من اسمك الحقيقي الكامل Real Name (ادخله ثم ENTER) ثم بريدك الإلكتروني ثم تعليق comment يمثل العمل الذي تستخدم التوقيع من أجله، ثم يعرض كل ذلك على صورة الاسم الحقيقي ثم بين أقواس هلالية التعليق ثم بين أقواس زاوية البريد الإلكتروني أي
Real name (Comment) <email>
وأخيراً وبعد أن تتأكد من أن هذا ما تريد وتوافق حدد جملة السر (كلمة سر طويلة) تستخدم لحماية المفتاح الخاص ليكون أملك الأخير لو سرق هذا الملف بأنه لن يوقع باسمك، حيث يسأل عنها في كل مرة يستعمل المفتاح الخاص (ما يحدث فعلياً تحت السطح أن المفتاح الخاص الحقيقي هو الآخر يحفظ مشفراً بتشفير متماثل symmetric cipher وجملة السر هذه هي التي تفكه)، يمكنك اختيار جملة سر معقدة بطريقة مشابهة لما تحدثنا عنه في بند 4.9.1 من فصل إدارة النظام أو أن تكون أصعب مما يمكن لإنسان إدخاله وذلك بتوليدها عشوائياً وحفظها في ملف على قرص flash disk بطريقة مشابهة لما ناقشاه في بند 4.8.9 من فصل إدارة الأقراص. يفترض أن تحافظ على سرية مفتاحك الخاص بحيث تضمن أنك وحدك من يقدر على قراءته، ولأنه توقيعك الرقمي عليك حفظ نسخة احتياطية منه في مكان آمن (مثلاً حيث تضع جواز سفرك أو مجوهرات زوجتك.
 تحذير

إذا كنت تريد نقل ملفات سرية (المفاتيح الخاصية أو شهادة الإبطال) من جهاز(قرص أو قسم) إلى آخر، تذكر أن تقوم بذلك عن طريق نسخ الملف إلى الهدف ثم تمزيق الملف الأصلي دون رجعة بواسطة الأمر "shred" وليس نقل الملف بواسطة "mv" أو مجرد جره فاسقاطه أو نسخ فلصق، نفس الشيء ينطبق على حذف الملف الذي يجب أن يتم بتمزيقه بواسطة "shred" وليس "rm" أو من الواجهة باختيار "send to trash" أو بالضغط على DEL أو SHIFT+DEL.

وبعد كل هذا تستطيع البدء باستعمال GPG ولكن هناك إجراء احترازي fail-safe يجب أن تقوم به، ماذا لو ضاع المفتاح الخاص، ماذا لو سرق (يجب أن تعتمد على قوة جملة السر) ماذا لو نسيت جملة السر أو حدث أي شيء آخر بحيث أصبح المفتاح الخاص بلا فائدة، الحل لكل ذلك هو أن تعمل شهادة إبطال (الآن وأنت لا تزال تملك كل شيء)
bash$ gpg --output revoke.asc --gen-revoke mykey
احفظها في مكان آمن لا يصله أحد (يقترح كتاب 'The GNU Privacy Handbook' أن تطبعها ثم تضعها في مغلف مختوم في الخزنة الخاصة بصنوق الودائع)

 تحذير

إذا كانت المخرجات المتولدة سرية (مثل شهادة الإبطال) ترسل لجهاز الخرج القياسي (الشاشة) تذكر أن شخصاً ما يمكن أن يراقبك عن بعد عبر إكس أو VNC أو عن قرب بعينيه!

بعض أوامر GPG تحتاج أن نمرر لها معرف للمفتاح (رمزنا له باسم 'mykey' في المثال الأخير)، يمكن استعمال أي جزء من معرّف المستخدم (مثل بريده) أو استعمال المعرّف الست-عشري الذي يظهر عند عرض المفاتيح بواسطة "gpg --list-keys" ، في المثال التالي (المأخوذ من The GNU Privacy Handbook) يكون معرّف DSA للمفتاح العام الخاص ب Alice هو "0xBB7576AC" وحجمه 1024-بت.
bash$ gpg --list-keys
/users/alice/.gnupg/pubring.gpg
---------------------------------------
pub  1024D/BB7576AC 1999-06-04 Alice (Judge) 
sub  1024g/78E9A8FA 1999-06-04
السطر الذي يله في المخرجات يمثل مفتاح "الجمال" الإضافي subordinate ElGamal key، أما المفاتيح السرية الخاصة فهي لا تظهر هنا بل عند استعمال "--list-secret-keys".
 تلميح

يقترح كتاب The GNU Privacy Handbook أن تخزن نسخة احتياطية من المفتاح الخاص على وسيط محمي من الكتابة في مكان آمن. مثلاً، يمكنك أن تضعه على قرص مدمج ثم تودعه في خزنة الودائع لدى بنك في ظرف مختوم.

4.10.3. تبادل المفاتيح.

لتتمكن من فحص صحة توقيع رقمي لشخص آخر أو أن ترسل له بيانات مشفرة يجب أن تمتلك المفتاحه العام (العلني)، فقط من يمتلك المفتاح الآخر (الخاص أي السري) هو من يمكنه أن يوقع أو يفك البيانات المشفرة بالمفتاح العام المقابل، هذا يعني أن المفاتيح العامة يجب أن تنشر للآخرين، يمكن أن يتم ذلك بواسطة مرفقات رسالة في البريد الإلكتروني أو بوضعه على أحد خادمات المفاتيح مثل 'certserver.pgp.com' أو 'www.keyserver.net' ويكفي وضعه على أحدها لأنها تحافظ على تحديث بعضها البعض. لنشر مفتاحك العام المشار له ب 'mykey' على ذلك الخادم استخدم
bash$ gpg --keyserver certserver.pgp.com --send-key mykey
ولتحصل على المفتاح العام استعمال "--recv-key" متبوع بالمعرّف الست-عشري على الشكل التالي:
bash$ gpg --keyserver certserver.pgp.com --recv-key 0xXXXXXXXX
إذا نزّلت ملف المفتاح العام من الإنترنت أو مرفقات بالبريد يمكنك أن تضيفه إلى سلسلة المفاتيح المحفوظة داخل GPG بواسطة "gpg --import file.gpg".

يمكن أن يكون المفتاح العام الذي حصلت عليه موقع ذاتياً self-signed فقط، أي لا يوجد شخص آخر عليه الذي يدعي أنه صاحبه هو الذي يشهد على صحته، لا أحد يدعم هذا الإدعاء عبر توقيه الرقمي، عليك التحقق من أنه صاحبه الحقيقي من خلال بصمة المفتاح التي تعرضها بواسطة "--fingerprnt"، وذلك بالاتصال مع صاحبه الأصلي ومطابقتها بأية طريقة (وجهاً لوجه، عبر الهاتف، عبر موقع الويب ...إلخ) طالما أنك متأكد أنك تتعامل مع صاحب المفتاح الحقيقي، إذا كان هذا حصل التطابق يمكنك أن تشهد أنت على صحته بتوقيعك بواسطة "--sign-key hiskey" فلا يعود مجرد مفتاح موقع ذاتياً، الخيار "--check-sigs" يعمل على فحص وعرض التواقيع التي تشهد على صحة هذا المفتاح جربها يجب أن تشاهد نفسك إضافة للتوقع الذاتي.

4.10.4. التحقق والتوقيع.

الكثير من الناس يستخدم هذه الميّزة لإرسال رسال إلكترونية موقعة ليعرف المستلم أنك حقاً من أرسل له الرسالة وليس أي شخص آخر، الكثير من برامج البريد MUA مثل Ximian Evlution و 'balsa' و 'kmail' و Mozilla Messenger و Mozilla ThunderBird تدمج وظائف GnuPG بحيث تصل إليها بسهولة عبر الواجهة الرسومية GUI، ولكن أستعمال GnuPG عبر أداة سطر الأوامر يوفر المزيد من المزايا والخيارات، مثلاً فحص سلامة التوقيع عندما تملك حساب لدى بريد مجاني لا يدعم برتوكولات البريد عن بعد.

إذا رغبت في توقع رسالة (أي ملف) استعمال "--sign" أو "--clearsign" متبوعة باسم الملف الذي تريد توقيعه، مخرجات الأول تكون عبارة عن رموز ثنائية (ورموز غير قابلة للطباعة) binary لهذا في حالة الرسال قد تفضل الخيار الثاني أي التوقيع النصي clear text signature (لكلاهما نفس القوة)، يمكنك تحويل مخرجات 'gpg' إلى ملف (مثل 'file.asc') بدلاً من الخرج القياسي بواسطة '-o' أو '--output' ثم إرسال محتويات ذلك الملف وذلك بلصق المخرجات في موقع الويب الخاص بخدمة البريد (المجاني) أو تمررها عبر أنبوب إلى برنامج إرسال البريد بواسطة بروتوكول SMTP.

bash$ gpg --output file.sig --sign file.txt
bash$ gpg --output file.asc --clearsign file.txt
الملف الناتج يحتوي الملف الأصلي والتوقيع معاً، عليك تعديله/تحريره لفصل الملف الأصلي يمكن أن تتم يدوياً في حالة التوقيع النصي clearsign، أو أن تطلب من gpg القيام بذلك خصوصاً في حالة sign. لهذا يفضل بعض الناس ما يسمى بالتوقيع المنفصل Detached signatures' حيث يحفظ التوقيع في ملف منفصل، ونرسل الملفين (الوثيقة والتوقيع) معاً (مثلاً يمكن أن يرسل التوقيع كملف في مرفقات الرسالة)
bash$ gpg --output file.txt.sig --detach-sig file.txt
الملف الناتج "file.txt.sig" لا يصلح إلا كتوقيع للملف "file.txt" وأي تعديل في أيهما سوف يفسده ويظهر عند التحقق. إذا كنت تفضل التوقيع النصي clear text ASCII-armored format أضف الخيار '--armor' كما يلي
bash$ gpg --output file.txt.asc --armor --detach-sig file.txt
حالياً ينشر استخدام التواقيع المنفصلة في التحقق من سلامة التنزيل downloads (مثلاً، توقع أغلب التوزيعات صور ISO images لأقراصها بهذه الطريقة) حيث تجد ملف '.asc' أو '.sig' مقابل لكل ملف يمكن تنزيله، هذه الطريقة أفضل من مجرد md5sum. في جميع الحالات يلزم المفتاح الخاص (السري) لعمل التوقيع لهذا يسألك البرنامج عن عن جملة السر passphrase، إذا كان هناك أكثر من مستخدم (أكثر من مفتاح خاص) حدد الذي تريد بواسطة '-u'.

إذا حصلت على ملف موقع وتريد فحص التوقيع استعمال الخيار '--verify' متبوعة بملف التوقيع المنفصل (إن وجد) ثم الملف الموقع

bash$ gpg --verify file.txt.sig file.txt
إذا حصلت على الوثيقة والتوقيع معاً في ملف واحد (أو أنه ولّد بواسطة '--sign' أو '--clearsign') استعمل '--decrypt' للاستخراج الوثيقة الأصلية دون التوقيع:
bash$ gpg --output file.txt --decrypt file.sig

4.10.5. التشفير وفك التشقير.

التشفير المتناظر يستعمل لحماية سرية بيانات بواسطة جملة سر (وليس زوجا مفاتيح) أي أن الطرفين (من يشفر ومن يفك التشفير لهما نفس الصلاحية) كل ما يلزم للتشفير أو لفك الشيفرة هو جملة السر (لا يوجد تبادل مفاتيح)، إذا عرفت جملة السر يمكنك أن تفك التشفير والحصول على الملف الأصلي. لتشفر ملف بهذه الطريقة استعمل '--symmetric' كما يلي:

bash$ gpg --output file.gpg --symmetric file
Enter passphrase:
ليس بالضرورة أن تكون جملة السر هي نفسها المستخدمة لحماية مفتاحك الخاص (ويجب أن لا تكون كذلك) التشفير المستخدم تلقائياً هو CAST5 ولكن يمكنك اختيار خوارزميات أخرى (مثل 3DES و Blowfish و IDEA) تحددها بواسطة '--cipher-algo' لتحصل على قائمة بها استعمل '--version'. الفرق بين التشفير عبر GPG وعبر جهاز الحلقة المفرغة encrypted loop back device (عبر crypto kernel module في نواة لينكس) بالأمر losetup التي ناقشناها في البند 4.8.9 هو أن الأخيرة تتم في الوقت الحقيقي داخل الذاكرة (لا وجود للملفات دون تشفير فهي تفك في الذاكرة وتظهر كجهاز وهمي) وهذا أفضل إذا كان الملف سيستعمل على نفس الجهاز، ولكن GPG أكثر فائدة عند حفظ بياناتك غير المشقرة على جهاز ونقلها مشفرة إلى جهاز آخر (مثلاً بين البيت والعمل) لكل منهما إصدار مختلف لنواة نظام التشغيل أو حتى أنظمة مختلفة بل وحتى فروقات في العتاد في ترتيب مختلف لل endian حيث يفك تشفيرها على الطرف الآخر، أي أن التشفير لحماية النقل وهنا لا نأخذ بعين الاعتبار احتمال أن يسطو شخص على الجهاز(الذي يحتوي البيانات غير مشفرة) بشكل مادي لكننا نحمي نقل البيانات بين طرفين يثق كل منهما بالآخر.

التشفير غير المتناظر أو تشفير المفتاح العام لا يمكن اختراقه بواسطة هجوم القاموس (التخمين)، حتى يتم فك تشفير ملفات مشفرة بهذا الأسلوب عليك أن تمتلك المفتاح الخاص (السري) الذي لا يتم تداوله قط. ولأن هناك العديد من طرق التشفير المتناظر أقوى من طرق المفتاح العام، يستخدم GPG طرق هجينة hybrid تطبق الطريقتين على نفس الملف. لتشفير ملف بحيث يقرأه فقط الطرف الآخر، تحتاج أن يكون المفتاح العام للطرف الآخر، موجوداً في سلسلة المفاتيح لديك (أي imported) وحدد من هو من بينهم بواسطة '--recipient' كما يلي

bash$ gpg --output file.gpg --encrypt --recipient hiskey file
حتى أنت أي من قام بالتشفير لا يمكنك فكه فقط من يمتلك المفتاح الخاص المقابل للمفتاح العام الذي حددته ب recipient هو من يمكنه فك التشفير

إذا حصلت على ملف مشفر بأي طريقة يدعمها GPG (سواء أكانت متشابهة symmetric أو هجينة hybrid) كل مما عليك استعمال "--decrypt" كما يلي:

bash$ gpg --output file --decrypt file.gpg
سوف تسأل عن جملة السر في النوعين (سواء أكانت متشابهة symmetric أو هجينة hybrid)، ولكن في الحالة الثانية يجب أن تمتلك المفتاح الخاص (السري) لتتمكن من فك التشفير.

4.10.6. اختصارات.

كأي أداة من غنو يوجد الكثير من الخيارات المختصرة في GPG تسهل عليك استعماله مثلاً بدلاً من الخيار "--output" يمكن أن نستعمل "-o"، هذه قائمة ببعض الختصارات وما يقابها:

-a	--armor
-b	--detach-sign
-c	--symmetric
-e	--encrypt
-i	--interactive (the opposite of --batch)
-o	--output file
-q	--quiet (the opposite of -v)
-r	--recipient name
-s	--sign
-u	--local-user name
-v	--verbose

المحتويات
حقوق النسخ والملكية الفكرة
ما هو لينكس؟
كيف تركب نظام لينكس؟
حقوق النسخ المرفوعة
وثائق التخويف

عرب-آيز
مجتمع لينكس العربي
موسوعة ثواب
موسوعة ويكيبيديا
تعريف البرمجيات الحرة
تعريف مفتوحة المصدر
LinuxToday
Linux.org
Linux.com
SlashDot
FreshMeat
LWN.net
توزيعات لينكس
النسخة الإسلامية لأوبنتو
عَرَبيان
جواثا (أول مسجد في أوروبا)
المزيد من التوزيعات هنا

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

 

ننصح باستخدام متصفحات الوب الحرة، جرب ثعلب النار الآن

يمكنك الحصول على الكثير من البرامج الحرة عالية الجودة من هنا مجاناً
proud to be 100% Microsoft FREE GNU FDL
التدخين حرام

كن كحامل المسك ولا تكن كنافخ الكير

Generously Hosted by www.JadMadi.net

Previous Up 4.10 حماية الخصوصية بالتوقيع الرقمي والتشفير. Next
Copyright © 2007, Muayyad Saleh AlSadi