OpenPGP هو معيار (Standard) تشفير مستخدم بشكل واسع لتشفير الملفات و الرسائل, و لتوقيعها إلكترونياً (Digital signing) يستخدم عدة طرق, من ضمنها طريقة المفتاح العام (Public-key cryptography).

[caption id="attachment_130785" align="aligncenter" width="575"]PGP diagram

الجزء النظري

نشأ معيار OpenPGP من برنامج PGP (Pretty Good Privacy), الذي كتبه Phil Zimmermann عام 1991, و وزعه مجاناً على الإنترنت مرفقاً بالـ Source-code. كان هدف Zimmermann توفير الحماية و الخصوصية للمستخدمين المعرضين للخطر على الإنترنت, نتيجة ً للتحرش أو التهديد الحكومي لهم. تعرض Zimmermann للمضايقة من قبل الحكومة الأمريكية, و فتحت تحقيقاً جنائياً لأنه خالف أمر منع تصدير الذخيرة بدون إذن, و الذي يعرف طرق التشفير التي تستخدم مفاتيحاً أكبر من 40-bit كذخيرة (لأن PGP استخدم مفاتيح حجمها 128-bit على الأقل). قام Zimmermann بإنشاء شركته, عام 1996 بعد إغلاق التحقيق لترعى البرنامج. قامت الشركة بالاندماج مع Viacrypt, و صار اسمها PGP Inc. بعد ذلك.

واجهت الشركة الجديدة بعض المشاكل مع شركة RSADSI التي قامت قبل دمج الشركتين بإعطاء Viacrypt رخصة ً لاستخدام RSA, و ادعت أن الرخصة لا تنطبق على الشركة المدمجة (قامت الشركة لاحقاً عام 2000 بنشر RSA كـ Public domain). لذا قام فريق العمل باعتماد خطة ٍ غير رسمية بعدم استخدام الخوارزميات (Algorithms) التي فيها صعوبات ترخيص. و عام 1997 تقدمت الشركة باقتراح لـ IETF بإنشاء معيار اسمه OpenPGP, و التصريح باستخدام اسم OpenPGP للمعيار و أي برنامج يلتزم به. جاء هذا بعد إنتشار PGP و رغبة كتاب البرامج بإنشاء برامج متوافقة مع PGP 5 (الذي نشره Zimmermann و فريقه, و ليس PGP Inc. و اسمه الأصلي PGP 3), مما دفع Zimmermann إلى القناعة بضرورة وجود معيار مفتوح لتشفير PGP.

قام Werner Koch عام 1999 بنشر برنامجه GnuPG (GNU Privacy Guard) المعروف اختصاراً بـ GPG, و هو جزء من مشروع GNU كبديل حر لـ PGP. يلتزم GPG بمعيار OpenGPG, و يمكن لكل البرامج التي تلتزم بالمعيار التعامل مع بعضها.

يجب تلخيص الأسماء المختلفة, لأنها تسبب الالتباس. PGP هو البرنامج الذي تملكه حالياً شركة Symantec, و منه اشتق OpenGPG؛ المعيار المفتوح للتشفير. GPG هو برنامج آخر يستخدم OpenGPG. يستخدم اسم PGP أحياناً للدلالة على نوع التشفير (الذي هو في أغلب الأحيان OpenGPG في الحقيقة).

كيف يعمل تشفير PGP؟

عالم التشفير علم يدعى Cryptography, و هو علم واسع يعتمد على المشاكل الرياضية التي لا يمكن حلها (عندما يقال لا يمكن حلها, يقصد بذلك لا تحل باستخدام الهاردويير المتوفر في وقت معقول. عندما يكتشف حل يسمى هجوماً “Attack”, حتى لو كان الحل نظرياً لا يمكن تطبيقه). لذا فهو يتطلب فهماً لعلم الرياضيات, و يعتمد مبادئ كثيرة لطرق التشفير المختلفة. لن أفصل في الـ Cryptography لأن هذا الموقع ليس موضعها, كما أنني لم أنهي فهم الـ Cryptography النظرية و لا أفهم المشاكل الرياضية المعقدة المستخدمة في كثير منها.

يقوم برنامج التشفير بعدة عمليات لا يراها المستخدم, و لكن ما يراه المستخدم هو كلمة السر, المفتاح السري, و المفتاح العام. هذه الجزئية أو الطريقة تدعى Public-key cryptography.

تعريفات

  • Cipher

[caption id="attachment_130786" align="aligncenter" width="266"]Euclid flowchart By Somepics (Own work) [CC BY-SA 4.0 (http://creativecommons.org/licenses/by-sa/4.0)], via Wikimedia Commons[/caption]

  • : النص أو البيانات المدخلة في الخوارزمية بغرض تشفيرها تدعى Plaintext, بينما يدعى المخرج المشفر بـ Ciphertext. إذا كان التشفير صحيحاً, و كانت الخوارزمية آمنة, فلن يفك Ciphertext إلى Plaintext إلا بالخطوات التي تحددها الخوارزمية لذلك.
  • Key: معطى يحدد قبل قيام الـ Cipher بالتشفير يحدد المخرج (يمكن أن يكون كلمة سر أو يحسب من كلمة سر, أو بيانات عشوائية محفوظة في ملف, إلخ. بدون المفتاح لا يمكن تنفيذ التشفير أو فكه. يقاس حجم المفتاح بالـ bit. حجم المفتاح الأكبر لا يعني بالضرورة زيادة الأمان. يقاس مدى أمان التشفير بالـ bit أيضاً, و هو أسرع طريقة معروفة (نظرياً أو مطبقة) لكسر التشفير حسب تعقيد الهجوم (Complexity) 2n (و يعني هذا أسرع من Brute force). و يقال في هذه الحالة أن قوة التشفير هي n-bit.
  • : يستخدم هذا الاسمان لتسهيل الفهم و الشرح في مجال التشفير. تكون Alice عادة ً هي المرسل, و Bob هو المستقبل.
  • Symmetric encryption: و تدعى أيضاً Symmetric-key cryptography, يمكن ترجمتها إلى التشفير المتماثل, و تعني أن نفس المفتاح المستخدم للتشفير يستخدم لفكه (مثل التشفير باستخدام كلمة سر, ثم فك التشفير بنفس الكلمة).
  • Asymmetric encryption: و تشتهر بـ Public-key cryptography (أو Pubkey اختصاراً), و هي عكس التشفير المتماثل. يكون للمستخدم (و اسمه Bob مثلاً) مفتاحاً عاماً (Public-key) يمكن للمستخدمين الآخرين (كـ Alice) تشفير الرسائل المرسلة إليه, ثم يستخدم Bob مفتاحه الخاص (Private-key) لفك تلك الرسالة (و لا يستطيع أحد فكها غيره, حتى من شفرها).
  • Hash function: تدعى بالعربية "دالة تشفيرية". تستخدم الدالة (Function) لحساب سلسلة من البيانات تعبر عن المدخل, و لكن لا يمكن استنتاج المدخل من خلالها. يسمى المخرج Hash, و هذا الـ Hash هو مجموعة من الحروف و الأرقام العشوائية و لا يمكن عكسها لحساب المدخل. لا يمكن أن يتطابق الـ Hash لرسالتين مختلفتين (مما يعني أن الـ Hash فريد). تستخدم للتحقق من صحة الرسائل (إذ أن أي تغيير في الرسالة سيغير الـ Hash), و للتحقق من كلمات السر (يفترض أن تستخدم كل المواقع و التطبيقات التي تخزن كلمات السر هذه الطريقة, و لكن لا يحدث هذا دائماً. إذ لا يجب أن يقوم الموقع بقراءة كلمة السر مباشرة من ملف أو قاعدة بيانات و يقارنها بكلمة السر المرسلة عبر الموقع, بل عند التخزين يجب أن يقوم بحساب و تخزين الـ Hash لها دون تخزين الكلمة نفسها, ثم عند إدخالها في المرات المقبلة يقوم الموقع بحساب الـ Hash للكلمة المدخلة و يقارن الناتج مع الـ Hash المخزن), و للتحقق من صحة الملفات (و يدعى الـ Hash في هذه الحالة Checksum), و غير ذلك. من الأمثلة المشهورة المستخدمة هي الـ Magnet URI في الـ P2P (و هو MD4 hash).

أمثلة:

Cipher: من أشهر الخوارزميات المستخدمة خوارزمية Rijndael المستخدمة في نظام AES. هناك أمثلة أخرى قوية مثل Twofish, Serpent, و RSA. من الأمثلة المكسورة RC4 و DES. Symmetric cryptography: نظام AES واحد منها, و كذلك Twofish, Serpent, Skipjack, Blowfish, و غيرهم. Public-key cryptography: تستخدم RSA, ElGamal, Diffie-Hellman (DH), كأمثلة مشهورة في PGP. Hash function: دالة MD5 و SHA-1 من أشهر الدالات, و لكنهما غير آمنين. من الأمثلة الأخرى SHA-2 و SHA-3.

[caption id="attachment_130787" align="aligncenter" width="740"]Cryptographic Hash Function By User:Jorge Stolfi based on Image:Hash_function.svg by Helix84 (Original work for Wikipedia) [Public domain], via Wikimedia Commons[/caption][caption id="attachment_130788" align="aligncenter" width="288"]Public-key-crypto-1 By KohanX [Public domain], via Wikimedia Commons[/caption][caption id="attachment_130789" align="aligncenter" width="525"]Public key encryption By No machine-readable author provided. Davidgothberg assumed (based on copyright claims). [Public domain], via Wikimedia Commons[/caption][caption id="attachment_130790" align="aligncenter" width="536"]Public key shared secret By No machine-readable author provided. Davidgothberg assumed (based on copyright claims). [Public domain], via Wikimedia Commons[/caption]

الجزء العملي

تريد Alice إرسال رسالة مشفرة إلى Bob. فتقوم في البداية بالبحث عن اسمه في الـ Key servers (هذه سيرفرات يمكن رفع المفاتيح العامة إليها للبحث عنها), و لكنها لا تجده. تقوم بطلبه من Bob, و لكن Bob ليس لديه واحداً.

على Bob إنشاء زوج مفاتيح (Key pair). يدعى بزوج مفاتيح, لأن المفتاح العام (Pubkey) يحتاج إلى مفتاح سري (Secret/Private key).

في شرحي سأستخدم gpg 2.1.10 على Linux, أو KGpg (و هو Front-end في KDE). و لكن الكلام ينطبق على أي برنامج يتبع OpenGPG. في ويندوز تستخدم حزمة Gpg4win للتسهيل على المستخدمين, بينما يمكن استخدام حزمة GPGTools في Mac OS X.

gpg --version

هذه صورة لمفتاح باسم Bob ArabHardware قمت بعمله لهذا الشرح, و رقمه (Key ID) هو 504FBE57. الـ ID هو رقم hex مكون من 16 خانة (ما يدعى بالـ Long ID), و لكن يستخدم النصف الثاني عادة ً (أي آخر 8 أرقام. ما يدعى بالـ Short ID).

KGpg - New pair

KGpggpg --list-keys

تظهر الصورتان بالأعلى تفاصيل المفتاح. هناك Subkey, و هو مفتاح يتبع المفتاح الأساسي, و يستخدم لفك التشفير. الهدف من الـ Subkey هو الحماية, لأنه يستخدم فقط لفك التشفير. فإذا سرق أو ضاع يمكن لمن بحوزته فك الرسائل المشفرة به, و ليس الرسائل المستقبلية بالمفتاح الجديد (و لكن هذا يعني أنه يجب على الآخرين الحصول على مفتاحك الجديد). المفتاح الأساسي يستخدم لـ Digital signing, أي تأكيد الهوية (للشخص, أو الملف, إلخ), و يمكن للمستخدمين توقيع مفاتيح بعضهم لتأكيد هوية حامل المفتاح و زيادة الثقة (و لهذا السبب يستخدم Subkey, لأن إنشاء مفتاح أساسي جديد يعني فقد كل التواقيع).

المفتاح العام متاح للجميع, و يمكن لأي شخص استخدامه لتشفير رسالة أو ملف مرسل لصاحبه. و هذا المفتاح العام الخاص بـ Bob:

-----BEGIN PGP PUBLIC KEY BLOCK----- Version: GnuPG v2

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 =QYie -----END PGP PUBLIC KEY BLOCK-----

تقوم Alice باستيراد مفتاح Bob إلى سلسلة مفاتيحها (Keyring) في البرنامج, ثم تقوم بتشفير الرسالة المراد إرسالها إليه. فتنتج رسالة مشفرة (في هذه الحالة الرسالة هي “ArabHardware”):

-----BEGIN PGP MESSAGE----- Version: GnuPG v2

hQEMA8BwTll9AXo4AQf/R0L6mXiioozn+cS86XudV2HGOsxqr17H9PLS9wkWsHeo Bcvsm7P4vkLP4NSLmL3OVKnIBZYtQP3jTfhCJcZemWTrK/Xkc8F1vyD72P3XVKkP qTdSldf6uhYxpVLgejRL3PNYfqdCf+SxcbyNn40CdNUs5Lyw8s37wGohiRp2jhMz MhxHRif6H7HJbJglXVOfsyxSoRchZkgD97YDZVi1ckvFqUjae1xi15itczYltrEu PlguuIbwpEO83lRWBrYbw+tqGwNTGu/ecziENJsCSyBw44NZyhDEl87oa661i9JC CAFuQEoKA7XyiIMpaW07L++3dV/r3SFQ+Q1SXx/nENJHAQou9iVYTJ+4ZpgvvS24 gHgyYeTvuP3O6bNXkJjjbUxu/EhRJFP8Gbu/v+Dt75Mq6REj5HHk4+U17kX/DsWh z+IKMCTjR4E= =LYbw -----END PGP MESSAGE-----

و ترسلها إليه. عندها يقوم Bob بفك تشفيرها في البرنامج باستخدام مفتاحه الخاص و كلمة السر, فتنتج الرسالة Plaintext.

يمكن لـ Bob أيضاً إرسال رسائل Plaintext و لكنها تحمل توقيعه, فيتمكن الناس من قراءتها, و في نفس الوقت التحقق من هوية مرسلها.

-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA256

ArabHardware -----BEGIN PGP SIGNATURE----- Version: GnuPG v2

iQEcBAEBCAAGBQJWhnPTAAoJEMBwTll9AXo4bvYH/3X8ACC9fimwZXW/2xJS2Fnr U+90Iak9vqaEJJddnSL4vypCVUmhX85Sbx0EFR6HQFCzsPQ7IP4AYPPZkqCxGHk7 hk83xz8LQrVhI30EA35l27rs1YCfXp2beY+NJkpKFuCQD5VWUZf8sS+xHrVkTt+B nVPigU7u7X73v1v6rTqG6+bHKX8VPXvl4Ux8U3h1xcPUtUjWmIzoJKttzAJoyM1e SgNT10dYPsNHoBiHXSAHJHQflU9F2QJi/i+rOiMORwCffxR2Jx5wpFDoxInZApmy 7RAH6/MR10Gfhe+2OhacgIkofVV164/CbR58iHf9duWaL/8MM1SenDedEEwTTzY= =Mu4x -----END PGP SIGNATURE-----

ما هو تاريخ الانتهاء؟ و ما هي شهادة الإبطال؟

يمكن وضع تاريخ انتهاء (Expiration date) للمفاتيح لا يمكن استخدامها للتشفير بعدها. في الوضع العادي, لن يحتاج المستخدم إلى وضع تاريخ انتهاء لمفتاحه. لتاريخ الانتهاء عدة أهداف, مثل الحد من الضرر في حال سرقة المفتاح و عدم إنشاء شهادة إبطال, أو لانتهاء الغرض من استخدامه بعد هذا التاريخ. في المفتاح المستخدم في هذا الشرح, وضع تاريخ انتهاء 31-01-2016.

شهادة الإبطال (Revocation certificate) هي شهادة يقوم صاحب المفتاح بإنشاءها ليقوم بإبطال مفتاحه في وقت لاحق. عند الرغبة بالإبطال, يقوم باستيراد الشهادة إلى سلسلة مفاتيحه, أو يقوم برفع الشهادة إلى سيرفر المفاتيح (Key server). هذه العملية تخبر من يبحث عن المفتاح أنه غير صالح.

ما هو Key server؟

سيرفر المفاتيح, أو Key server, هو سيرفر يقوم المستخدمون برفع مفاتيحهم عليه ليتمكن المستخدمون الآخرون من البحث عنها. هناك العديد من سيرفرات المفاتيح المشهورة, مثل pgp.mit.edu و keys.gnupg.net. تتواصل هذه السيرفرات مع بعضها, و تقوم بتبادل المفاتيح بينها. سيرفر المفاتيح أنشأ لحل مشكلة التوزيع, و لكن نشأت عنه مشاكل أخرى. فمثلاً لا يمكن حذف المفاتيح من السيرفر, و هذا يؤدي إلى تراكم المفاتيح, و ربما وجود أكثر من مفتاح لنفس الشخص لم تعد مستخدمة. كما أن السيرفرات عامة و متاحة للجميع, و لا توجد طريقة للتأكد من هوية صاحب المفتاح (فيمكن لـ Bob إنشاء مفتاح يحمل اسم Alice, و رفعه إلى السيرفر, و لن يستطيع السيرفر أو الناس معرفة إذا ما كان المفتاح لـ Alice فعلاً). حل هذه المشكلة هو ما يعرف بشبكة الثقة (Web of trust).

[caption id="attachment_130802" align="aligncenter" width="873"]Bob's key - MIT Key server [/caption]

ما هي Web of trust؟

على عكس منظومة الـ Public Key Infrastructure (PKI) التي تعتمد على جهة مركزية لإصدار المفاتيح و الشهادات و التحقق من صحتها (التي من أمثلتها المشهورة الشهادات المستخدمة في HTTPS), يعتمد OpenPGP على الثقة بين مستخدميه.

يمكن للمستخدمين توقيع مفاتيح بعضهم, بما يعني أن صاحب التوقيع يعرف صاحب المفتاح معرفة ً وثيقة و يثق به (و يعرف أن هذا المفتاح هو ملك له فعلاً), و مع الوقت يخلق هذا شبكة ً من المستخدمين الموثوق بهم.

[caption id="attachment_130805" align="aligncenter" width="964"]Linus Torvalds' key صورة للتواقيع على مفتاح Linus Torvalds[/caption]

توقيع الملفات

يمكن تشفير الملفات بـ OpenPGP, و يمكن أيضاً توقيعها فقط للتأكد من هوية مرسلها أو موزعها. تقوم بعض المواقع بإرفاق توقيع مع الملفات, بالإضافة إلى Checksum. يستخدم الـ Checksum للتحقق من سلامة الملف بعد التنزيل (أي أنه مطابق للملف على الموقع و لم يتعرض للتلف خلال النقل), ثم يمكن التحقق أنه فعلاً من الموقع أو الناشر من خلال التوقيع (مثل فكرة النص الموقع). طبعاً يتطلب هذا أن تستورد مفتاحه, ليكون هناك ما يمكن مقارنته بالتوقيع.

عند توقيع الملفات, يفضل أن ينشأ المستخدم Keypair جديد خاص بالتوقيع غير المستخدم للتشفير. استخدام نفس الزوج للتشفير و التوقيع غير آمن, كما أن مفتاح التوقيع يجب أن يحافظ عليه أكثر من مفتاح التشفير, لأنه أداة تأكيد هوية صاحب الملف.

gpg --verify

Gpg4win:

هذا هو الجزء الذي يهم معظم المستخدمين, و هو شرح استخدام OpenPGP, لأنه لا فائدة من معرفة التفاصيل و المعلومات التقنية بدون معرفة استخدام الأدوات.

اخترت Gpg4win لأن MS Windows أكثر أنظمة التشغيل استخداماً, و لأن حزمة Gpg4win أشهرها للنظام. تحتوي حزمة Gpg4win على برنامج GnuPG لويندوز, و برنامج Kleopatra كواجهة رسومية لـ GPG, و GPA و هو واجهة رسومية أخرى لـ GPG, بالإضافة إلى GpgOL (إضافة لبرنامج Outlook) و GpgEX (إضافة لـ IE), و Compendium (و هي الـ Manual). يمكن أيضاً تنزيل نسخاً من Gpg4win تحتوي على GPG فقط (تدعى Vanilla), أو مع بقية البرامج بدون Kleopatra و Compendium (و تدعى Light).

https://www.gpg4win.org

ما سيستخدمه المعظم هو Kleopatra, و هذا البرنامج بالأساس لـ Linux, و بالذات بيئات KDE. البرنامج هو نفسه على Windows و Linux.

Kleopatra

Kleopatra

عمل مفتاح جديد:

Kleopatra - new certificate

Kleopatra - new certificate

Kleopatra - new certificate

Kleopatra - new certificate

Kleopatra - new certificate

Kleopatra - new certificate

Kleopatra - new certificate

Kleopatra - new certificate

تصدير المفتاح:

Kleopatra - export pubkey

Kleopatra - export pubkey

Alice's pubkey

استيراد المفتاح في برنامج الشخص المرسل:

Kleopatra - Key import

Kleopatra - Key import

Kleopatra - Key import

Kleopatra - Key import

تشفير رسالة لإرسالها إلى Alice:

Plaintext

Kleopatra - encrypt

Kleopatra - encrypt

Kleopatra - encrypt

Kleopatra - encrypt

Kleopatra - encrypt

Kleopatra - encrypt

Kleopatra - encrypt

الرسالة المشفرة:

PGP encrypted

فك تشفير الرسالة من قبل Alice:

Kleopatra - decrypt

Kleopatra - decrypt

Kleopatra - decrypt

Kleopatra - decrypt

Kleopatra - decrypt

Files - encrypted & decrypted

Plaintext

لا يوجد خيار في Kleopatra (أو GPA) لإصدار شهادة إبطال. و لكن يمكن ذلك من خلال GPG في سطر الأوامر (الذي يثبت أيضاً في Windows) من خلال أمر gpg --gen-revoke.

Gpg4win - cmd

يجب التنبيه أن المفتاح السري و كلمة السر مطلوبان لإصدار شهادة إبطال أو فك التشفير, لذا يجب تصدير المفاتيح السرية أو نسخها قبل عمل Format مثلاً, أو أخذ نسخة احتياطية منها تحفظ في مكان آمن (إما لاستخدام المفتاح لفك التشفير على جهاز آخر, أو من أجل الاحتياط). على فرض أن أحداً استطاع الحصول على المفتاح السري, فلن يكون هذا مفيداً لفك تشفير الرسائل أو الملفات (أو توقيعها) إذا كانت كلمة السر طويلة و آمنة لا يمكن تخمينها.

مصادر إضافية للقراءة:

الخصوصية على الإنترنت.. ما تعنيه؟ وماذا تفعل لحمايتها؟ ج1الخصوصية على الإنترنت.. ما تعنيه؟ وماذا تفعل لحمايتها؟ ج2

The GNU Privacy Handbook Cryptography – Wikipedia Password strength – Wikipedia Elliptic curve cryptography – Wikipedia Diffie-Hellman key exchange – Wikipedia Taher Elgamal – Wikipedia Quantum cryptography – Wikipedia Post-quantum cryptography – Wikipedia Introduction to Modern Cryptography – Jonathan Katz, Yehuda Lindell OWASP [Bruce] Schneier on Security Bernstein vs. United States No Place to Hide: Edward Snowden, the NSA and the Surveillance State – Glenn Greenwald man gpg(1) Bombe – Wikipedia GPG for Journalists – Vimeo Encryption software – Wikipedia The Crypto Law Survey