
مجموعة أدوات مفتوحة المصدر تنفّذ بروتوكولات SSL/TLS ومكتبة تشفير كاملة القوة تتضمّن التشفير، وفك التشفير، وإدارة الشهادات، ودوال التجزئة.
OpenSSL 1.0.1g 7 Apr 2014
Copyright (c) 1998-2011 The OpenSSL Project Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson جميع الحقوق محفوظة.
مشروع OpenSSL هو جهد تعاوني لتطوير مجموعة أدوات قوية، بجودة تجارية، كاملة الميزات، ومفتوحة المصدر، تنفّذ بروتوكولات Secure Sockets Layer (SSL v2/v3) وTransport Layer Security (TLS v1) بالإضافة إلى مكتبة تشفير عامة كاملة القوة. يُدار المشروع بواسطة مجتمع عالمي من المتطوعين الذين يستخدمون الإنترنت للتواصل والتخطيط وتطوير مجموعة أدوات OpenSSL ووثائقها ذات الصلة.
يستند OpenSSL إلى مكتبة SSLeay الممتازة التي طوّرها Eric A. Young وTim J. Hudson. تُرخَّص مجموعة أدوات OpenSSL بموجب ترخيص مزدوج (ترخيص OpenSSL بالإضافة إلى ترخيص SSLeay)، مما يعني أساسًا أنك حر في الحصول عليها واستخدامها لأغراض تجارية وغير تجارية طالما استوفيت شروط كلا الترخيصين.
تتضمن مجموعة أدوات OpenSSL ما يلي:
libssl.a: تنفيذ لبروتوكولات SSLv2 وSSLv3 وTLSv1 والكود المطلوب لدعم كل من SSLv2 وSSLv3 وTLSv1 في خادم وعميل واحد.
libcrypto.a: أمور التشفير العامة وX.509 v1/v3 اللازمة لـ SSL/TLS ولكنها ليست في الحقيقة جزءًا منطقيًا منه. يتضمن إجراءات لما يلي:
التشفيرات
libdes - حزمة تشفير DES libdes الخاصة بـ EAY والتي كانت متداولة على
الإنترنت لعدة سنوات، ثم أعاد ترخيصها كجزء من SSLeay. تتضمن
15 'وضعًا/تنويعًا' من DES (إصدارات بمفاتيح 1 و2 و3 من ecb
وcbc وcfb وofb؛ وpcbc وصيغة أكثر عمومية من cfb وofb) بما
في ذلك desx في وضع cbc، ونسخة سريعة من crypt(3)، وإجراءات
لقراءة كلمات المرور من لوحة المفاتيح.
تشفير RC4،
تشفير RC2 - 4 أوضاع مختلفة: ecb وcbc وcfb وofb.
تشفير Blowfish - 4 أوضاع مختلفة: ecb وcbc وcfb وofb.
تشفير IDEA - 4 أوضاع مختلفة: ecb وcbc وcfb وofb.
ملخصات الرسائل
خوارزميات ملخص الرسائل MD5 وMD2 مع تنفيذات سريعة،
وخوارزميات ملخص الرسائل SHA (SHA-0) وSHA-1،
وملخص رسائل MDC2. وهو تجزئة مبنية على DES شائعة الاستخدام
على البطاقات الذكية.
المفتاح العام
تشفير/فك تشفير/توليد RSA.
لا يوجد حد لعدد البتات.
تشفير/فك تشفير/توليد DSA.
لا يوجد حد لعدد البتات.
تبادل المفاتيح/توليد المفاتيح عبر Diffie-Hellman.
لا يوجد حد لعدد البتات.
شهادات X.509v3
ترميز/فك ترميز X509 إلى/من ASN1 الثنائي وترميز ASCII-ثنائي
قائم على PEM يدعم التشفير بمفتاح خاص. برنامج لتوليد طلبات
الشهادات RSA وDSA ولتوليد شهادات RSA وDSA.
الأنظمة
إجراءات المغلف الرقمي المعتادة وترميز base64. وصول بمستوى
أعلى إلى التشفيرات وملخصات الرسائل بالاسم. يمكن تحميل تشفيرات
جديدة في وقت التشغيل. نظام BIO للإدخال/الإخراج وهو تجريد
إدخال/إخراج بسيط غير محظور (non-blocking). الطرق المدعومة حاليًا
هي: واصفات الملفات، والمقابس، وقبول المقابس، والاتصال عبر المقابس،
ومخزن الذاكرة، والتخزين المؤقت، وعميل/خادم SSL، ومؤشر الملف،
والتشفير، وملخص الرسائل، واختبار عدم الحظر، واللاشيء (null).
هياكل البيانات
نظام تجزئة ينمو ديناميكيًا.
مكدس بسيط.
محمّل إعدادات يستخدم صيغة مشابهة لملفات MS .ini.
openssl: أداة سطر أوامر يمكن استخدامها من أجل: إنشاء معاملات مفاتيح RSA وDH وDSA إنشاء شهادات X.509 وCSRs وCRLs حساب ملخصات الرسائل التشفير وفك التشفير باستخدام التشفيرات اختبارات عميل وخادم SSL/TLS التعامل مع البريد الموقّع أو المشفّر عبر S/MIME
تحتفظ شركات مختلفة ببراءات اختراع مختلفة لخوارزميات مختلفة في مواقع مختلفة حول العالم. أنت مسؤول عن ضمان أن استخدامك لأي خوارزميات قانوني من خلال التحقق من وجود أي براءات اختراع في بلدك. يحتوي الملف على بعض براءات الاختراع التي نعرفها أو التي يُشاع بوجودها. هذه ليست قائمة نهائية.
تمتلك RSA Security براءات اختراع برمجية على خوارزمية RC5. إذا كنت تنوي استخدام هذا التشفير، فيجب عليك الاتصال بـ RSA Security لمعرفة شروط الترخيص. صفحة الويب الخاصة بهم هي http://www.rsasecurity.com/.
RC4 هي علامة تجارية لـ RSA Security، لذا ربما ينبغي استخدام هذا التصنيف فقط بإذن من RSA Security.
خوارزمية IDEA مسجلة كبراءة اختراع من قبل Ascom في النمسا وفرنسا وألمانيا وإيطاليا واليابان وهولندا وإسبانيا والسويد وسويسرا والمملكة المتحدة والولايات المتحدة الأمريكية. يجب الاتصال بهم إذا كان سيتم استخدام تلك الخوارزمية؛ صفحة الويب الخاصة بهم هي http://www.ascom.ch/.
تمتلك NTT وMitsubishi براءات اختراع وبراءات قيد الانتظار على خوارزمية Camellia، لكنهما تسمحان باستخدامها مجانًا دون الحاجة إلى اتفاقية ترخيص صريحة: http://info.isl.ntt.co.jp/crypt/eng/info/chiteki.html
لتثبيت هذه الحزمة على أحد اشتقاقات Unix، اقرأ ملف INSTALL. لمنصة Win32، اقرأ ملف INSTALL.W32. لأنظمة OpenVMS، اقرأ INSTALL.VMS.
اقرأ التوثيق في مجلد doc/. إنه تقريبي إلى حد ما، لكنه يسرد الدوال؛ ستحتاج على الأرجح إلى النظر في الكود لمعرفة كيفية استخدامها. اطلع على البرامج النموذجية.
بالنسبة لبعض المنصات، توجد بعض المشاكل المعروفة التي قد تؤثر على المستخدم أو مؤلف التطبيق. نحاول جمعها في doc/PROBLEMS، مع أفكار حالية حول كيفية حلها في مستقبل OpenSSL.
راجع موقع OpenSSL الإلكتروني www.openssl.org للحصول على تفاصيل حول كيفية الحصول على دعم فني تجاري.
إذا كانت لديك أي مشاكل مع OpenSSL، فيرجى اتخاذ الخطوات التالية أولاً:
- تنزيل أحدث لقطة (snapshot) من ftp://ftp.openssl.org/snapshot/
لمعرفة ما إذا كانت المشكلة قد عولجت بالفعل
- إزالة إصدارات ASM من المكتبات
- إزالة أعلام تحسين المترجم (compiler optimisation flags)
إذا كنت ترغب في الإبلاغ عن خطأ (bug)، فيرجى تضمين المعلومات التالية في أي تقرير خطأ:
- على أنظمة Unix:
تقرير الاختبار الذاتي المُولَّد بواسطة 'make report'
- على الأنظمة الأخرى:
إصدار OpenSSL: مخرجات 'openssl version -a'
اسم نظام التشغيل، الإصدار، منصة العتاد
تفاصيل المترجم (الاسم، الإصدار)
- تفاصيل التطبيق (الاسم، الإصدار)
- وصف المشكلة (الخطوات التي تعيد إنتاج المشكلة، إذا كانت معروفة)
- تتبّع المكدس (Stack Traceback) (إذا كان التطبيق يُحدث core dump)
أبلغ عن الخطأ إلى مشروع OpenSSL عبر متتبّع الطلبات (Request Tracker) (http://www.openssl.org/support/rt.html) بالبريد إلى:
لاحظ أنه لا ينبغي استخدام متتبّع الطلبات للمساعدة العامة أو استفسارات الدعم. مجرد أن شيئًا ما لا يعمل بالطريقة التي تتوقعها لا يعني بالضرورة أنه خطأ في OpenSSL.
لاحظ أن البريد المرسل إلى [email protected] يُسجَّل في قاعدة بيانات متتبّع الطلبات المتاحة للقراءة العامة ويُعاد توجيهه إلى قائمة بريدية عامة. يمكن إرسال البريد السري إلى [email protected] (مفتاح PGP متاح من خوادم المفاتيح).
يتم تنسيق التطوير على القائمة البريدية openssl-dev (راجع http://www.openssl.org للحصول على معلومات حول الاشتراك). إذا كنت ترغب في تقديم تصحيح (patch)، فأرسله إلى [email protected] مع وضع النص "[PATCH]" في الموضوع. يرجى التأكد من تضمين شرح نصي لما يفعله التصحيح.
إذا كنت غير متأكد مما إذا كانت ميزة ما ستكون مفيدة لمجتمع OpenSSL العام، فيرجى مناقشتها على القائمة البريدية openssl-dev أولاً. قد يكون هناك شخص يعمل بالفعل على الشيء نفسه، أو قد يكون هناك سبب وجيه لعدم تنفيذ تلك الميزة.
يجب أن تكون التصحيحات محدّثة قدر الإمكان، ويفضَّل أن تكون مستندة إلى Git الحالي أو إلى آخر لقطة. يجب أن تتبع أسلوب الترميز الخاص بـ OpenSSL وأن تُجمَّع دون تحذيرات. يمكن استخدام بعض أهداف تطوير الفريق الأساسي لأغراض الاختبار (debug-steve64، debug-geoff وغيرها). يُجمَّع OpenSSL على العديد من المنصات المتنوعة: حاول التأكد من استخدامك لميزات محمولة فقط.
ملاحظة: لأسباب قانونية، لا يمكن قبول المساهمات من الولايات المتحدة إلا إذا تم إرسال إشعار TSU ونسخة من التصحيح إلى [email protected] (المعروفة سابقًا باسم BXA) مع نسخة إلى منسّق طلبات التشفير ENC؛ يرجى أخذ بعض الوقت للاطلاع على http://www.bis.doc.gov/Encryption/PubAvailEncSourceCodeNofify.html [كذا] و http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (قسم EAR 740.13(e)) للحصول على التفاصيل. إذا كان "كود مصدر التشفير الخاص بك كبيرًا جدًا بحيث يتعذر إرساله كمرفق بريد إلكتروني"، فسيسعدهم استلامه بالفاكس بدلاً من ذلك؛ ونأمل أن تكون لديك خطة اتصالات بعيدة المدى رخيصة.
الصيغة المفضلة لدينا للتغييرات هي مخرجات "diff -u". يمكنك توليدها على النحو التالي: