
مكتبة تشفير متعددة الأغراض تنفّذ بروتوكولات SSL/TLS، وخوارزميات التشفير المتماثل وغير المتماثل، وملخصات الرسائل، وإدارة شهادات X.509 للاتصالات الآمنة.
OpenSSL 1.0.1g 7 Apr 2014
حقوق النشر (c) 1998-2011 مشروع OpenSSL حقوق النشر (c) 1995-1998 Eric A. Young, Tim J. Hudson جميع الحقوق محفوظة.
مشروع OpenSSL هو جهد تعاوني لتطوير مجموعة أدوات قوية واحترافية ومتكاملة الميزات ومفتوحة المصدر تنفّذ بروتوكولات طبقة المقابس الآمنة (SSL v2/v3) وأمن طبقة النقل (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 ولكنها ليست جزءاً منطقياً منه فعلياً. تتضمن إجراءات لما يلي:
الشفرات (Ciphers)
libdes - حزمة تشفير DES الخاصة بـ EAY والتي كانت متداولة
على الإنترنت لعدة سنوات، ثم أعاد هو ترخيصها
كجزء من SSLeay. تتضمن 15 'نمطاً/تنويعةً'
من DES (إصدارات بمفتاح واحد ومفتاحين وثلاثة مفاتيح من 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.
الملخّصات (Digests)
خوارزميات ملخّص الرسائل MD5 و MD2، بتنفيذات سريعة،
خوارزميات ملخّص الرسائل SHA (SHA-0) و SHA-1،
ملخّص رسائل MDC2. تجزئة قائمة على DES شائعة الاستخدام على البطاقات الذكية.
المفاتيح العامة (Public Key)
تشفير/فك تشفير/توليد RSA.
لا يوجد حد لعدد البتات.
تشفير/فك تشفير/توليد DSA.
لا يوجد حد لعدد البتات.
تبادل مفاتيح/توليد مفاتيح Diffie-Hellman.
لا يوجد حد لعدد البتات.
شهادات X.509v3
ترميز/فك ترميز X509 إلى/من ASN1 ثنائي وترميز
PEM القائم على ASCII-ثنائي والذي يدعم التشفير بمفتاح
خاص. برنامج لتوليد طلبات شهادات RSA و DSA
ولتوليد شهادات RSA و DSA.
الأنظمة (Systems)
إجراءات المغلف الرقمي العادية وترميز base64. وصول
عالي المستوى إلى الشفرات والملخّصات بالاسم. يمكن تحميل
شفرات جديدة في وقت التشغيل. نظام الإدخال/الإخراج BIO وهو تجريد
إدخال/إخراج بسيط غير محظور. الطرق المدعومة حالياً هي واصفات الملفات،
والمقابس، وقبول المقابس، واتصال المقابس، ومخزن الذاكرة، والتخزين المؤقت،
وعميل/خادم SSL، ومؤشر الملف، والتشفير، والملخّص، واختبار عدم الحظر
والعدم.
بنى البيانات
نظام تجزئة ديناميكي النمو
مكدس بسيط.
محمّل إعدادات يستخدم صيغة مشابهة لملفات 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 فيرجى اتخاذ الخطوات التالية أولاً:
- قم بتنزيل اللقطة الحالية من ftp://ftp.openssl.org/snapshot/
لمعرفة ما إذا كانت المشكلة قد عولجت بالفعل
- قم بإزالة إصدارات ASM من المكتبات
- قم بإزالة خيارات تحسين المترجم
إذا كنت ترغب في الإبلاغ عن خطأ، فيرجى تضمين المعلومات التالية في أي تقرير خطأ:
- على أنظمة Unix:
تقرير الاختبار الذاتي الذي يولده 'make report'
- على الأنظمة الأخرى:
إصدار OpenSSL: مخرجات 'openssl version -a'
اسم نظام التشغيل والإصدار ومنصة العتاد
تفاصيل المترجم (الاسم، الإصدار)
- تفاصيل التطبيق (الاسم، الإصدار)
- وصف المشكلة (الخطوات التي تعيد إنتاج المشكلة، إذا كانت معروفة)
- تتبع المكدس (إذا كان التطبيق يُحدث تفريغاً للنواة)
أبلغ عن الخطأ إلى مشروع OpenSSL عبر متتبع الطلبات (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 [sic] و http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (القسم 740.13(e) من EAR) للتفاصيل. إذا كان "كود مصدر التشفير الخاص بك كبيراً جداً بحيث لا يصلح كمرفق بريد إلكتروني"، فسيسعدهم استلامه عبر الفاكس بدلاً من ذلك؛ نأمل أن تكون لديك خطة مكالمات بعيدة المدى رخيصة.
الصيغة المفضلة لدينا للتغييرات هي مخرجات "diff -u". يمكنك توليدها على هذا النحو: