OpenPGP
OpenPGP هو معيار مفتوح يصف تنسيق الرسائل (الملفات) الذي استخدمه برنامج Pretty Good Privacy (PGP) في الأصل، والذي طوره فيل زيمرمان عام 1991. [ 1 ] وتُعزز العديد من وثائق طلب التعليقات (Recommands) وظائفه، ومنها على سبيل المثال PGP/MIME الذي يُحدد استخدام OpenPGP في البريد الإلكتروني عبر MIME . [ 2 ] ويضمن تشفير OpenPGP التسليم الآمن للملفات والرسائل، بالإضافة إلى التحقق من هوية مُنشئ الرسالة أو مُرسلها باستخدام عملية تُسمى التوقيع الرقمي.
يتطلب استخدام OpenPGP للاتصالات مشاركة كل من المرسل والمستلم. كما يمكن استخدام OpenPGP لتأمين الملفات الحساسة عند تخزينها في أماكن معرضة للخطر مثل الأجهزة المحمولة أو في السحابة. [ 3 ]
يُعدّ OpenPGP جزءًا من معايير الإنترنت ويخضع لتطوير مستمر. توفر العديد من برامج البريد الإلكتروني أمانًا متوافقًا مع OpenPGP كما هو موضح في RFC 3156. المواصفة الحالية هي RFC 9580 (يوليو 2024)، وهي خليفة RFC 4880. يحدد RFC 9580 مجموعة من الخوارزميات المطلوبة، وهي X25519 و Ed25519 و SHA2-256 و AES-128 . بالإضافة إلى هذه الخوارزميات، يوصي المعيار باستخدام X448 و Ed448 و SHA2-384 و SHA2-512 و AES-256 . كما يدعم المعيار العديد من الخوارزميات الأخرى.
تصميم

يستخدم تشفير (Open)PGP سلسلة من عمليات التشفير ، بدءًا من التجزئة وضغط البيانات ، مرورًا بالتشفير المتناظر ، وصولًا إلى التشفير بالمفتاح العام ؛ حيث تستخدم كل خطوة إحدى الخوارزميات المدعومة . ويرتبط كل مفتاح عام باسم مستخدم أو عنوان بريد إلكتروني. عُرف الإصدار الأول من هذا النظام باسم " شبكة الثقة" تمييزًا له عن نظام X.509 ، الذي يعتمد على منهجية هرمية تستند إلى سلطة إصدار الشهادات ، والذي أُضيف لاحقًا إلى تطبيقات OpenPGP. تتضمن الإصدارات الحالية من OpenPGP خيارات عبر خادم إدارة مفاتيح آلي.
بصمة PGP
بصمة المفتاح العام هي نسخة مختصرة من المفتاح العام. ومن خلال هذه البصمة، يمكن لأي شخص التحقق من صحة المفتاح العام المقابل. ويمكن طباعة بصمة مثل C3A6 5E46 7B54 77DF 3C4C 9790 4D22 B3CA 5B32 FF66 على بطاقة عمل. [ 4 ] [ 5 ]
التوافق
مع تطور OpenPGP، تستطيع الإصدارات التي تدعم الميزات والخوارزميات الأحدث إنشاء رسائل مشفرة لا تستطيع أنظمة OpenPGP القديمة فك تشفيرها، حتى مع وجود مفتاح خاص صالح. لذلك، من الضروري أن يفهم الشركاء في اتصالات OpenPGP قدرات بعضهم البعض أو على الأقل يتفقوا على إعدادات PGP. [ 6 ]
انظر إلى قسم " سجل الإصدارات" أدناه للاطلاع على قائمة رموز الإصدارات.
السرية
يمكن استخدام برنامج PGP لإرسال الرسائل بسرية تامة. [ 7 ] ولتحقيق ذلك، يستخدم PGP نظام تشفير هجين يجمع بين التشفير المتناظر والتشفير بالمفتاح العام. تُشفّر الرسالة باستخدام خوارزمية تشفير متناظر، تتطلب مفتاحًا متناظرًا يُولّده المُرسِل. يُستخدم هذا المفتاح المتناظر مرة واحدة فقط، ويُسمى أيضًا مفتاح الجلسة . تُرسل الرسالة ومفتاح الجلسة الخاص بها إلى المُستقبِل. يجب إرسال مفتاح الجلسة إلى المُستقبِل لكي يتمكن من فك تشفير الرسالة، ولكن لحمايتها أثناء الإرسال، تُشفّر باستخدام المفتاح العام الخاص بالمُستقبِل. المفتاح الخاص بالمُستقبِل هو الوحيد القادر على فك تشفير مفتاح الجلسة واستخدامه لفك تشفير الرسالة بشكل متناظر.
التوقيعات الرقمية
يدعم برنامج PGP توثيق الرسائل عبر التوقيعات الرقمية للتحقق من إرسال الرسالة فعلاً من قِبل الشخص أو الجهة التي يُدّعى أنها المرسل. يستخدم المرسل برنامج PGP لإنشاء توقيع رقمي للرسالة باستخدام إحدى خوارزميات المفتاح العام المدعومة. وللقيام بذلك، يحسب PGP قيمة تجزئة (hash) من النص الأصلي، ثم يُنشئ التوقيع الرقمي من هذه القيمة باستخدام المفتاح الخاص بالمرسل.
شبكة الثقة
عند تشفير الرسائل والتحقق من التوقيعات، من الضروري التأكد من أن المفتاح العام المستخدم لإرسال الرسائل إلى شخص أو جهة ما يخصّ المستلم المقصود فعلاً. فمجرد تنزيل مفتاح عام من أي مصدر لا يضمن صحة هذا الارتباط، إذ يُمكن انتحال الهوية عمدًا أو سهوًا. منذ إصداره الأول، تضمّن برنامج PGP بنودًا لتوزيع المفاتيح العامة للمستخدمين ضمن " شهادة هوية "، والتي تُبنى بدورها تشفيرًا بحيث يسهل اكتشاف أي تلاعب (أو تشويه غير مقصود). مع ذلك، لا يكفي مجرد إنشاء شهادة يستحيل تعديلها دون اكتشاف ذلك، فهذا يمنع التلف فقط بعد إنشاء الشهادة، وليس قبلها. يجب على المستخدمين أيضًا التأكد، بطريقة ما، من أن المفتاح العام في الشهادة يخصّ فعلاً الشخص أو الجهة التي تدّعي ملكيته. يمكن توقيع مفتاح عام مُحدد (أو تحديدًا، معلومات تربط اسم المستخدم بالمفتاح) رقميًا من قِبل مستخدم طرف ثالث لإثبات الارتباط بين شخص ما (اسم المستخدم تحديدًا) والمفتاح. توجد مستويات متعددة من الثقة التي يمكن تضمينها في هذه التوقيعات. ورغم أن العديد من البرامج تقرأ وتكتب هذه المعلومات، إلا أن القليل منها (إن وجد) يدرج هذا المستوى من التصديق عند حساب مدى موثوقية المفتاح.
تم وصف بروتوكول شبكة الثقة لأول مرة من قبل فيل زيمرمان في عام 1992، في دليل برنامج PGP الإصدار 2.0:
مع مرور الوقت، ستجمع مفاتيح من أشخاص آخرين قد ترغب في تعيينهم كمُعرّفين موثوقين. سيختار كل فرد مُعرّفيه الموثوقين. وسيقوم كل فرد تدريجيًا بتجميع وتوزيع مجموعة من التوقيعات المُصدّقة من أشخاص آخرين مع مفتاحه، على أمل أن يثق أي شخص يتلقاه بتوقيع واحد أو اثنين على الأقل. سيؤدي هذا إلى ظهور شبكة ثقة لامركزية مقاومة للأخطاء لجميع المفاتيح العامة.
تتمتع آلية شبكة الثقة بمزايا تفوق نظام البنية التحتية للمفاتيح العامة المُدارة مركزياً ، مثل ذلك المستخدم في بروتوكول S/MIME، إلا أنها لم تُستخدم على نطاق واسع. إذ يتعين على المستخدمين قبول الشهادات والتحقق من صحتها يدوياً، أو قبولها ببساطة. ولم يُعثر حتى الآن على حل مُرضٍ للمشكلة الأساسية.
الشهادات
في مواصفات OpenPGP (الأحدث)، يمكن استخدام توقيعات الثقة لدعم إنشاء سلطات إصدار الشهادات . يشير توقيع الثقة إلى أن المفتاح ينتمي إلى مالكه المُعلن، وأن مالك المفتاح جدير بالثقة لتوقيع مفاتيح أخرى على مستوى أدنى منه. يُشابه توقيع المستوى 0 توقيع شبكة الثقة، حيث يتم فيه فقط التحقق من صحة المفتاح. أما توقيع المستوى 1، فيُشبه الثقة في سلطة إصدار الشهادات، لأن المفتاح المُوقع على المستوى 1 قادر على إصدار عدد غير محدود من توقيعات المستوى 0. ويُشابه توقيع المستوى 2 إلى حد كبير افتراض الثقة الذي يعتمد عليه المستخدمون عند استخدام قائمة سلطات إصدار الشهادات الافتراضية (مثل تلك المُضمنة في متصفحات الويب)؛ فهو يسمح لمالك المفتاح بجعل مفاتيح أخرى سلطات إصدار شهادات.
لطالما تضمنت إصدارات OpenPGP آلية لإلغاء شهادات المفاتيح العامة. ويتطلب فقدان المفتاح الخاص أو اختراقه هذه الآلية لضمان أمان الاتصالات للمستخدم. وهذا يُعادل تقريبًا قوائم إلغاء الشهادات في أنظمة البنية التحتية للمفاتيح العامة المركزية. كما تدعم الإصدارات الحديثة من OpenPGP تواريخ انتهاء صلاحية الشهادات.
إن مشكلة تحديد المفتاح العام بشكل صحيح على أنه يخص مستخدمًا معينًا ليست حكرًا على برنامج PGP. فجميع أنظمة التشفير التي تعتمد على المفتاح العام/المفتاح الخاص تعاني من المشكلة نفسها، وإن اختلفت أشكالها قليلًا، ولا يوجد حل مُرضٍ تمامًا لها. على الأقل، يترك نظام شبكة الثقة في OpenPGP للمستخدم حرية اختيار استخدام نظام المصادقة/التدقيق الخاص به، بينما لا تفعل ذلك معظم أنظمة البنية التحتية للمفاتيح العامة الأخرى، إذ تشترط بدلًا من ذلك قبول كل شهادة مصدقة من جهة إصدار شهادات مركزية على أنها صحيحة.
التطبيقات
طوّرت مؤسسة البرمجيات الحرة حزمة برمجيات خاصة بها متوافقة مع معيار OpenPGP تُسمى GNU Privacy Guard ، وهي متاحة مجانًا مع جميع شفرتها المصدرية بموجب رخصة جنو العمومية العامة ، ويتم صيانتها بشكل منفصل عن العديد من واجهات المستخدم الرسومية التي تتفاعل مع مكتبة GnuPG لوظائف التشفير وفك التشفير والتوقيع (انظر KGPG و Seahorse و MacGPG ). كما طوّر العديد من الموردين الآخرين برامج متوافقة مع معيار OpenPGP. يُطبّق GnuPG معيار RFC 4880، [ 8 ] ومؤخرًا معيار 4880bis. [ 9 ]
ينفذ PGP OpenPGP، لكن وثائق GnuPG تشير إلى عدد من الاختلافات عن المعيار في الإصدارين 6 و7. [ 8 ]
تُنفذ مكتبة RNP (التي يستخدمها Mozilla Thunderbird) RFC 4880 و 4880bis/LibrePGP، [ 10 ] و RFC 9580 (غير المعلن عنه على موقعها الإلكتروني، ولكنه متاح كخيار بناء). [ 11 ] [ 12 ]
لقد سمح تطوير مكتبة OpenPGP.js مفتوحة المصدر والمتوافقة مع OpenPGP، والمكتوبة بلغة JavaScript والمدعومة من قبل برنامج Horizon 2020 Framework التابع للاتحاد الأوروبي ، [ 13 ] للتطبيقات المستندة إلى الويب باستخدام تشفير PGP في متصفح الويب.
يُقدّم موقع OpenPGP.org قائمةً بالتطبيقات مع التركيز على الإصدار الحالي 6 (RFC 9580). [ 14 ] كما تُقدّم قائمةٌ أخرى في OpenPGP.dev، وهو كتابٌ إلكترونيٌّ يشرح RFC 9580. [ 11 ]
اندماج
قامت حزمة البرامج المكتبية مفتوحة المصدر LibreOffice بتطبيق توقيع المستندات باستخدام OpenPGP ابتداءً من الإصدار 5.4.0 على نظام Linux. [ 15 ]
يتم دعم مفاتيح PGP في Mozilla Thunderbird (مدمجة في الإصدار 78 وما بعده على أجهزة الكمبيوتر الشخصية، [ 16 ] ومع تطبيق OpenKeychain بدءًا من الإصدار 9 على نظام Android [ 17 ] )، و GitHub ، [ 18 ] و GitLab . [ 19 ]
تاريخ
طلبات التعليقات الخاصة بـ PGP
جاءت فكرة إنشاء OpenPGP بعد اندماج شركة PGP Inc. مع شركة Viacrypt عام 1996، حيث طعنت RSADSI في استمرار ترخيص RSA الخاص بشركة Viacrypt للشركة المندمجة حديثًا. تبنت الشركة معيارًا داخليًا غير رسمي أطلقت عليه اسم "PGP غير المقيد"، والذي "لا يستخدم أي خوارزمية ذات صعوبات ترخيص". نظرًا لأهمية تشفير PGP عالميًا، رغب الكثيرون في كتابة برامجهم الخاصة التي تتوافق مع PGP 5. اقتنع زيمرمان بأن وجود معيار مفتوح لتشفير PGP أمر بالغ الأهمية لهم ولمجتمع التشفير ككل. في أغسطس 1996، قام أتكينز وستالينغز وزيمرمان بتكليف فريق هندسة الإنترنت (IETF) بنشر RFC 1991 ، وهي وثيقة معلوماتية بعنوان "تنسيقات تبادل رسائل PGP". وصفت هذه الوثيقة إصدار PGP 2.x (إصدارات الحزم 2 و3). [ 20 ]
حددت مواصفات معاصرة، RFC 2015 الصادرة في أكتوبر 1996، PGP/MIME، وهي طريقة لتضمين رسائل PGP في البريد الإلكتروني.
مواصفات الإصدار 4
في يوليو 1997، اقترحت شركة PGP Inc. على فريق عمل هندسة الإنترنت (IETF) وضع معيار يُسمى OpenPGP. ومنحت الشركة فريق عمل هندسة الإنترنت الإذن باستخدام اسم OpenPGP لوصف هذا المعيار الجديد وأي برنامج يدعمه. وافق فريق عمل هندسة الإنترنت على الاقتراح وأسس فريق عمل OpenPGP . تُوِّج هذا الجهد بإصدار RFC 2440 في نوفمبر 1998، والذي وصف أيضًا التنسيق المستخدم في "PGP 3" الذي كان لا يزال في مرحلة النموذج الأولي (إصدار الحزمة 4). [ 21 ]
المعيار التالي، RFC 4880 الصادر في نوفمبر 2007، نقّح RFC 2440 دون تغيير رقم إصدار الحزمة (4). ويهدف إلى وصف PGP 5.x، وهو الإصدار المُعتمد من "PGP 3". [ 22 ]
تم أيضًا دمج التشفيرات الجديدة في OpenPGP خلال هذا الوقت في شكل RFCs 5581 ("تشفير الكاميليا في OpenPGP") و 6637 ("تشفير المنحنى الإهليلجي (ECC) في OpenPGP").
الانشقاق
منذ عام 2015، بدأ العمل في مجموعة عمل OpenPGP على وثيقة محدثة في مستودع يُسمى 4880bis، وهو مشروع بدأه فيرنر كوخ، مؤلف GnuPG. تصف هذه الوثيقة إصدارًا خامسًا من الحزمة. [ 23 ] وفقًا للجدول الزمني على موقع LibrePGP الإلكتروني، تم بالفعل تطبيق دعم "الإصدار الخامس" من 4880bis، كما هو مُعرّف في هذه المجموعة من المسودات، في أوائل عام 2018 في فروع تجريبية من RNP وGnuPG 2.3، وتم إصداره كشفرة برمجية جاهزة للاستخدام في GnuPG 2.0 في يوليو 2020. [ 24 ]
في يناير 2021، انتقلت مجموعة عمل OpenPGP إلى استراتيجية تحرير جديدة تميزت بوثيقة "تحديث التشفير" الجديدة، والتي تبدأ بنص 4880 وتُعدَّل عبر سلسلة من طلبات الدمج في المواصفات الجديدة. [ 25 ] في سبتمبر 2022، أنشأ كوخ مسودة draft-koch-openpgp-2015-rfc4880bis-00 كفرع منفصل عن مسودة تحديث التشفير . في قسم الملخص، وصف كوخ طلبات الدمج التي حدثت بعد تحديث التشفير بأنها "مُعدَّة مسبقًا بشكل أساسي من قِبل أحد الرؤساء"، وأن إعادة الهيكلة غير ضرورية نظرًا لأن مسودة draft-ietf-openpgp-rfc4880bis-10 كانت "جاهزة بشكل أساسي للمراجعة النهائية". [ 26 ]
في نوفمبر 2022، عدّل مشروع crypto-refresh صيغة توقيعه "الإصدار 5" لتجنب الخلط مع توقيع الإصدار 3، الذي كان أحد أوجه عدم التوافق الأولية مع "الإصدار 5" في فرع كوخ. [ 27 ] وفي فبراير 2023، أعاد crypto-refresh ترقيم "الإصدار 5" إلى "الإصدار 6" "لتجنب التعارض مع البرامج التي تستخدم نقطة ترميز الإصدار 5 دون الحصول على تسجيل لدى هيئة IANA"، في إشارة إلى البرامج التي تُطبّق "الإصدار 5" كما هو مُعرّف في الإصدار الأقدم 4880bis. [ 28 ] اندلع خلاف علني بين كوخ وفريق عمل OpenPGP في أواخر عام 2023، حيث أعاد كوخ تسمية إصداره من "4880bis" إلى LibrePGP وأعلن أن GnuPG لن يدعم المواصفات المستقبلية القائمة على crypto-refresh . ويرى كوخ أن نهجه التدريجي أكثر منطقية. [ 24 ]
تم نشر RFC 9580 ، النسخة النهائية من crypto-refresh ، في يوليو 2024.
سجل الإصدارات
| RFC# | عنوان | إصدارات الحزم | حالة |
|---|---|---|---|
| RFC 1991 | تنسيقات تبادل رسائل PGP | 2، 3 | أصبحت قديمة الطراز بحلول عام 2440 |
| RFC 2440 | تنسيق رسائل OpenPGP | 3، 4 | أصبحت قديمة الطراز بحلول عام 4880 |
| RFC 4880 | تنسيق رسائل OpenPGP | 3، 4 | تمت مراجعته بواسطة 4481 و6637؛ وأصبح قديماً بواسطة 9580 |
| RFC 5581 | تشفير الكاميليا في OpenPGP | 4 | أصبحت قديمة الطراز بحلول عام 9580 |
| RFC 6637 | تشفير المنحنى الإهليلجي (ECC) في OpenPGP | 4 | أصبحت قديمة الطراز بحلول عام 9580 |
| RFC 9580 | OpenPGP | 3، 4، 6 | حاضِر |
| RFC# | عنوان | حالة | ملحوظات |
|---|---|---|---|
| RFC 2015 | أمان MIME مع خصوصية جيدة جدًا (PGP) | تم التحديث بواسطة RFC 3156 | |
| RFC 3156 | أمان MIME باستخدام OpenPGP | حاضِر | يحدد أنواع المحتوى "application/pgp-encrypted" و "application/pgp-signature" و "application/pgp-keys". |
بالإضافة إلى ذلك، تتم الإشارة إلى OpenPGP (مع PGP/MIME) في العديد من المعايير المشتقة و/أو ذات الصلة، بما في ذلك منشور NIST الخاص 800-177 البريد الإلكتروني الجدير بالثقة .
الحوادث الأمنية
في أكتوبر 2017، تم الإعلان عن ثغرة ROCA الأمنية ، التي تؤثر على مفاتيح RSA المُولّدة بواسطة برنامج Infineon الثابت المعيب المستخدم في رموز Yubikey 4، والتي تُستخدم غالبًا مع OpenPGP. وقد وُجد أن العديد من مفاتيح PGP المنشورة مُعرّضة لهذه الثغرة. [ 29 ] تُقدّم Yubico استبدالًا مجانيًا للرموز المُتأثرة. [ 30 ]
في مايو 2018، تم اكتشاف ثغرة برمجية تُسمى EFAIL في بعض تطبيقات PGP/MIME منذ عام 2003. [ 31 ] [ 32 ] سمحت هذه الثغرة بإدخال محتوى قبل وبعد البريد الإلكتروني المُشفّر؛ وباستخدام بعض أكواد HTML، يُمكن إرسال النص الأصلي إلى خادم بعيد. [ 33 ] لم تُخالف هذه الثغرة مواصفات OpenPGP أو مواصفات PGP/MIME. [ 34 ]
الانتقادات
مع تطور علم التشفير، تعرضت أجزاء من برنامج OpenPGP لانتقادات بسبب قدمها:
- مفاتيح عامة كبيرة
- قد تتضمن المفاتيح العامة لبروتوكول OpenPGP (المفاتيح العامة) الكثير من المعلومات الإضافية؛ وتُضاف هذه الحقول عادةً لأسباب تاريخية. [ 35 ] على سبيل المثال، يتضمن المفتاح العام حقلاً لصورة هوية بصيغة JPEG ، يُقصد التحقق منها أثناء عمليات توقيع المفاتيح . [ 36 ]
- اعتاد برنامج OpenPGP استخدام خوارزمية RSA، التي تتطلب مفاتيح بطول آلاف البتات. ويتم التخفيف من هذه المشكلة باستخدام خيارات المنحنى الإهليلجي الأحدث المحددة في RFC 6137، ولكن استخدام مفتاح أصغر بآلاف البتات لا يُجدي نفعًا عند تضمين كيلوبايتات من المعلومات الإضافية. [ 35 ]
- نظرًا لأن المفاتيح العامة طويلة جدًا بحيث يصعب على الإنسان حفظها أو التحقق منها بصريًا أو نسخها ولصقها ببساطة (قارن بمفاتيح SSH العامة)، [ 37 ] فإن نقل المفاتيح والتحقق منها يعتمد على خوادم المفاتيح وبصمات المفاتيح. وقد أدت هذه العناصر المعقدة إلى ثغرات أمنية، مثل تضارب آخر 32 بت من البصمة، وعدم قيام GnuPG (سابقًا) بالتحقق من بصمة المفتاح المستلم فعليًا. [ 35 ]
- من العناصر الأخرى الشائعة، وإن كانت غير ضرورية، التوقيعات التي يضعها آخرون على المفتاح، والتي كان من المفترض استخدامها في شبكة الثقة كإثباتات على مطابقة المفتاح لهوية حامله المفترض. وقد سمحت خوادم المفاتيح تقليديًا بدمج هذه التوقيعات من الآخرين مع سجل المفتاح الموجود لديها، مما أتاح "هجومًا لتزوير التوقيعات" حيث يتم إرفاق عدد كبير من التوقيعات المزيفة بنسخة المفتاح الموجودة على خادم المفاتيح. وبذلك يصبح حجم المفتاح كبيرًا جدًا وبطيئًا للغاية في المعالجة. وقد وقع هجوم مماثل على المفاتيح العامة لمطوري برنامج GnuPG البارزين في عام 2019. [ 38 ]
- إدارة المفاتيح المعقدة
- يُتيح تصميم شبكة الثقة المُستخدم في PGP للمستخدم المشاركة الفعّالة في إدارة المفاتيح، على عكس أنظمة التشفير الشاملة الأكثر نجاحًا التي تُوفر إدارة مفاتيح شفافة . [ 35 ] وبسبب هذا التعقيد جزئيًا، تبقى مجموعة المفاتيح القوية في شبكة الثقة صغيرة، مما يُحد من قدرة أجزاء أخرى من الشبكة على التعرّف على المستخدمين الجدد. كما أن قاعدة المستخدمين الإجمالية صغيرة أيضًا، حيث لم يتم تحميل سوى 4 ملايين مفتاح إلى مجموعة خوادم مفاتيح PKS، مما يُحد من نطاق مستخدمي OpenPGP. [ 39 ]
- عمر المفاتيح طويل
- يشجع برنامج OpenPGP عادةً على استخدام مفاتيح عامة تدوم لفترة طويلة (سنة واحدة على الأقل). وهذا يعني أن المفتاح يكون عرضة لفترة أطول من احتمالية الكشف عنه، إذ أن أي انقطاع خلال هذه الفترة قد يؤدي إلى تسريبه. [ 37 ] [ 40 ] إضافةً إلى ذلك، ولأن المفتاح يبقى صالحًا لفترة طويلة، فإن PGP لا يوفر سرية تامة (والتي تتضمن التخلص من مفتاح التشفير لجعل الرسائل غير قابلة للقراءة). [ 35 ]
- الإعدادات الافتراضية القديمة
- يؤدي التوافق مع الإصدارات السابقة لمعيار OpenPGP إلى استخدام خيارات افتراضية ضعيفة نسبيًا لعناصر التشفير الأساسية ( تشفير CAST5 ، وضع CFB ، تجزئة كلمات المرور S2K). [ 37 ] كما يستخدم تشفير RSA تنسيق حشو مشابهًا جدًا للمخطط المعرض للاختراق من PKCS#1v1.5 (انظر PKCS 1 § الهجمات ). [ 35 ]
- تطبيقات غير آمنة
- عانت تطبيقات المستخدم النهائي الشائعة من ثغرات أمنية متنوعة، منها تجريد التوقيعات، وتخفيض مستوى التشفير، وتسريب البيانات الوصفية، والتي تُعزى إلى تعقيد المعيار. [ 41 ] يُعرف GnuPG، وهو التطبيق الأكثر استخدامًا، بسجله الحافل في قاعدة بيانات الثغرات الأمنية الشائعة (CVDs) . [ 37 ] في عام 2025، تم الكشف عن مجموعة من 14 ثغرة أمنية في تطبيقات OpenPGP خلال مؤتمر Chaos Communication Congress ، منها 11 ثغرة أثرت على GnuPG. وقد نشر موقع LWN.net تقريرًا عن ردود الفعل على عرض "gpg.fail" على القائمة البريدية oss-security . [ 42 ]
- تجربة مستخدم سيئة
- تُسهّل برامج البريد الإلكتروني التي تستخدم OpenPGP إرسال رسائل بريد إلكتروني غير مشفرة عن طريق الخطأ، ويعود ذلك جزئيًا إلى أن بروتوكول PGP/MIME مصمم للحفاظ على التوافق مع البريد الإلكتروني غير المشفر (في وضع التوقيع فقط). كما يسهل تشفير البريد الإلكتروني باستخدام مفتاح الشخص الخطأ. [ 35 ]
فيما يتعلق بالانشقاق
كما ذُكر سابقًا، قام فيرنر كوخ بتطوير نسخة معدلة من معيار OpenPGP إلى LibrePGP، مُدرجًا انتقاداته لـ RFC 9580 على موقعه الإلكتروني، بما في ذلك "زيادة عدد الخوارزميات" (إضافة خوارزميات جديدة مطلوبة)، وإزالة آلية توقيع اسم الملف الموجودة في الإصدار 4880bis، وإزالة علامتين من علامات البيانات الوصفية. [ 43 ] يتم تنفيذ LibrePGP بواسطة GnuPG وRNP، وهما من أوائل مطوري الإصدار 4880bis. وقد نشرت RNP بيانًا منفصلًا تُشيد فيه بتوجه LibrePGP. [ 44 ]
نشر أندرو غالاغر صفحة ويب عام 2024 تُفصّل هجومين نظريين وهجومًا عمليًا واحدًا على LibrePGP. يتضمن ذلك مشكلة التوافق بين الإصدارات المذكورة سابقًا، والتي تم إصلاحها في نسخة التحديث المُشفّر بعد الانقسام. [ 45 ] كما أثر هجوم نظري آخر على كلٍ من OpenPGP/LibrePGP القديم وCMS (جوهر S/MIME ). [ 46 ]
مراجع
- ↑ زيمرمان، فيليب ر. (1999). "لماذا كتبتُ PGP" . مقالات عن PGP . فيل زيمرمان وشركاؤه ذ.م.م. مؤرشف من الأصل في 24 يونيو 2018. تم الاطلاع عليه في 6 يوليو 2014 .
- ↑ "المواصفات المفتوحة للخصوصية الجيدة جدًا (openpgp)" . datatracker.ietf.org .
- ↑ جير، إريك (22 أغسطس 2014). "كيفية استخدام OpenPGP لتشفير رسائل البريد الإلكتروني والملفات في السحابة" . مجلة PC World . مؤرشف من الأصل بتاريخ 18 مايو 2018. تم الاطلاع عليه بتاريخ 1 مارس 2022 .
- ↑ فورلي، بول م. "مثال على مفتاح PGP العام" . توجد طرق مختصرة للإشارة إلى مفاتيح PGP. مؤرشف من الأصل في 21 ديسمبر 2018.
يمكنني طباعته على بطاقة عملي بدلاً من محاولة طباعة مفتاحي العام بالكامل.
- ↑ مارشيا هوفمان [@marciahofmann] (20 يناير 2015). "بطاقتي الشخصية الجديدة (مع صورة)" ( تغريدة ) . تم الاطلاع عليها في 30 يوليو 2020 - عبر تويتر .
- ↑ "دليل مستخدم PGP، المجلد الثاني: مواضيع خاصة" . web.pa.msu.edu . مؤرشف من الأصل في 6 نوفمبر 2020. تم الاطلاع عليه في 1 نوفمبر 2020 .
- ↑ أتكينز، د.؛ ستالينغز، و.؛ زيمرمان، ب. (أغسطس 1996). تنسيقات تبادل رسائل PGP . IETF . doi : 10.17487/RFC1991 . RFC 1991 .
- 1 2 "استخدام برنامج GNU Privacy Guard: خيارات الامتثال" . وثائق GnuPG 2.0 .
- ↑ "خيارات الامتثال (باستخدام GNU Privacy Guard)" . وثائق GnuPG، الإصدار الحالي (2.5.20) .
- ↑ شركة ريبوز "RNP" . RNP .
- 1 2 "2. نظرة عامة" . OpenPGP لمطوري التطبيقات .
- ↑ "rnp(v0.18.1)/CMakeList.txt" . GitHub .
option(ENABLE_CRYPTO_REFRESH "تفعيل دعم تحديث التشفير (الإصدار 6)")
- ↑ فريق OpenPGPjs. "OpenPGPjs" . مؤرشف من الأصل في 9 يوليو 2017. تم الاطلاع عليه في 2 يناير 2017 .
- ↑ "مكتبات/أدوات المطورين" . OpenPGP . 9 يونيو 2026.
- ↑ "دعم توقيع OpenPGP في LibreOffice" . مدونة ثورستن . 28 يوليو 2017. مؤرشف من الأصل في 1 نوفمبر 2017. تم الاطلاع عليه في 10 ديسمبر 2017 .
- ↑ "أصبح برنامج Thunderbird 78 أخيرًا مزودًا بتقويم مدمج ودعم OpenPGP" . LinuxReviews. 8 أكتوبر 2020. تم الاطلاع عليه بتاريخ 14 مايو 2025 .
- ↑ جاك والين (13 نوفمبر 2024). "كيفية إضافة دعم PGP على نظام أندرويد لتعزيز الأمان والخصوصية" . ZDNET . تم الاطلاع عليه بتاريخ 14 مايو 2025 .
- ↑ "استخدام مفاتيح GPG على GitHub: إنشاء وتحديث المفاتيح المنتهية الصلاحية" . Inspirezone. ١٨ أبريل ٢٠٢١. تم الاطلاع عليه بتاريخ ١٤ مايو ٢٠٢٥ .
- ↑ ماديسون مور (23 أغسطس 2025). "GitLab 9.5، وXcode 9، ومعيار IEEE للحوسبة الكمومية، وChrome Enterprise — ملخص أخبار SD Times: 23 أغسطس 2017" . SD Times . تم الاطلاع عليه بتاريخ 14 مايو 2025 .
- ↑ RFC 1991. IETF . doi : 10.17487 /RFC1991 .
- ↑ RFC 2440. IETF . doi : 10.17487 /RFC2440 .
- ↑ RFC 4880. IETF . doi : 10.17487 /RFC4880 .
- ↑ كوخ، فيرنر؛ كارلسون، برايان م؛ تسيه، رونالد هنري؛ أتكينز، ديريك؛ جيلمور، دانيال كان (31 أغسطس 2020). "تنسيق رسائل OpenPGP (مسودة-ietf-openpgp-rfc4880bis)" . فريق عمل هندسة الإنترنت.
- 1 2 إيدج، جيك (6 ديسمبر 2023). "انقسام في عالم OpenPGP [ LWN.net ] " . lwn.net . مؤرشف من الأصل في 22 فبراير 2024. تم الاطلاع عليه في 14 فبراير 2024 .
- ↑ ووترز، بول؛ هويغنز، دانيال؛ وينتر، جوستوس؛ يوتاكا، نيبي (يوليو 2024). "OpenPGP (draft-ietf-openpgp-crypto-refresh-00)" . فريق عمل هندسة الإنترنت.
- ↑ كوخ، فيرنر؛ كارلسون، برايان م؛ تسيه، رونالد هنري؛ أتكينز، ديريك؛ جيلمور، دانيال كان (30 مايو 2023). "تنسيق رسائل OpenPGP (draft-koch-openpgp-2015-rfc4880bis-00)" . فريق عمل هندسة الإنترنت.
- ↑ "التأكد من عدم تداخل تدفقات البيانات المُجزأة بين الإصدارات (!220) · طلبات الدمج · openpgp-wg / rfc4880bis · GitLab" . GitLab . 19 نوفمبر 2022.
- ↑ "استخدم الإصدار 6 بدلاً من الإصدار 5 للمفاتيح والتوقيعات وعمليات التشغيل الجديدة (40f05cda) · الالتزامات · openpgp-wg / rfc4880bis · GitLab" . GitLab . 4 فبراير 2023.
- ↑ نيميك، ماتوس؛ سيس، ماريك؛ سفيندا، بيتر؛ كلينك، دوسان؛ ماتياس، فاشيك (2017). "عودة هجوم كوبرسميث: التحليل العملي لمعاملات RSA شائعة الاستخدام" (ملف PDF) . مؤرشف (PDF) من الأصل بتاريخ 12 نوفمبر 2017.
- ↑ "برنامج استبدال يوبيكو" . مؤرشف من الأصل في 22 ديسمبر 2018. تم الاطلاع عليه في 13 يونيو 2018 .
- ↑ "ثغرات خطيرة في PGP وS/MIME قد تكشف رسائل البريد الإلكتروني المشفرة - قم بإلغاء التثبيت الآن [ مُحدَّث ] " . arstechnica.com . ١٤ مايو ٢٠١٨. مؤرشف من الأصل في ٥ أكتوبر ٢٠٢٤. تم الاطلاع عليه في ١٤ مايو ٢٠١٨ .
- ↑ "EFAIL" . efail.de . مؤرشف من الأصل بتاريخ 14 مايو 2018. تم الاطلاع عليه بتاريخ 18-05-2018 .
- ↑ "Efail: كسر تشفير البريد الإلكتروني S/MIME و OpenPGP باستخدام قنوات التسرب" (PDF) .
- ↑ ين، آندي (15 مايو 2018). "لا، برنامج PGP ليس معطلاً، حتى مع وجود ثغرات Efail" . بروتون . تم الاطلاع عليه بتاريخ 22 يناير 2025 .
- 1 2 3 4 5 6 7 غرين، ماثيو (13 أغسطس 2014). "ما المشكلة في PGP؟" . بعض الأفكار حول هندسة التشفير. مؤرشف من الأصل في 5 أكتوبر 2014. تم الاسترجاع في 19 ديسمبر 2016 .
- ↑ "دليل مستخدم جنوم" . documentation.suse.com . 18 يونيو 2026.
- 1 2 3 4 لاتاكورا (2019-07-16). "مشكلة PGP" . تم الاسترجاع في 2024-11-22 .
- ↑ "GNU Privacy Guard (GPG) | محاضرة | NSWI106 | D3S" . d3s.mff.cuni.cz .
- ↑ مارلينسبايك، موكسي (24 فبراير 2015). "جي بي جي وأنا" . مؤرشف من الأصل في 5 أكتوبر 2024. تم الاطلاع عليه في 21 يونيو 2020 .
- ↑ فالسوردا، فليبو (10 ديسمبر 2016). "مقال رأي: أُعلن استسلامي لـ PGP، وأنا أعمل في مجال الأمن السيبراني" . آرس تكنيكا . مؤرشف من الأصل في 17 يوليو 2019. تم الاطلاع عليه بتاريخ 17 يوليو
2019. بعد سنوات من محاولاتي مع GnuPG بمستويات متفاوتة من الحماس، توصلت إلى استنتاج مفاده أنه لا يستحق كل هذا العناء، وسأتخلى عنه - على الأقل فيما يتعلق بمفهوم مفاتيح PGP طويلة الأمد.
- ↑ "Efail: اختراق تشفير البريد الإلكتروني S/MIME وOpenPGP باستخدام قنوات تسريب البيانات" (ملف PDF) . مؤرشف (PDF) من النسخة الأصلية بتاريخ 26 يونيو 2019. تم الاطلاع عليه بتاريخ 17 يوليو 2019 .
- ↑ بروكماير، جو (21 يناير 2026). "ردود على gpg.fail" . LWN.net .
- ↑ "LibrePGP" .
- ↑ تسي، رونالد؛ أولشيفسكي، نيكولاي (22 يوليو 2024). "تدعم RNP بفخر LibrePGP" . RNP . تم الاسترجاع في 22 يناير 2025 .
- ↑ غالاغر، أندرو (11 سبتمبر 2024). "ملخص للمشاكل الأمنية المعروفة في LibrePGP" . تم الاطلاع عليه بتاريخ 22 يناير 2025 .
- ↑ سترينزكي، فالكو؛ روث، يوهانس (8 أبريل 2025). "هجمات تخفيض مستوى التشفير القديم ضد LibrePGP وCMS" . مجلة IACR للاتصالات في علم التشفير . 2 (1). doi : 10.62056/ayl86chdj .
روابط خارجية
- برامج التشفير
- OpenPGP
