
مجموعة أدوات مفتوحة المصدر بمعايير صناعية تنفّذ بروتوكولات 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 الإصدار 1/3 المطلوبة من قبل 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 وهو تجريد بسيط غير حاجب للإدخال/الإخراج. الطرق المدعومة حاليًا هي واصفات الملفات، والمقابس (sockets)، وقبول المقابس، وربط المقابس، ومخزن الذاكرة المؤقت، والتخزين المؤقت، وعميل/خادم 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 فيرجى اتخاذ الخطوات التالية أولاً:
- نزّل اللقطة الحالية من ftp://ftp.openssl.org/snapshot/ لمعرفة ما إذا كانت المشكلة قد عولجت بالفعل
- أزل إصدارات ASM من المكتبات
- أزل خيارات تحسين المترجم
إذا كنت ترغب في الإبلاغ عن خطأ، فيرجى تضمين المعلومات التالية في أي تقرير خطأ:
- على أنظمة Unix:
تقرير الاختبار الذاتي الناتج عن 'make report'
- على الأنظمة الأخرى:
إصدار OpenSSL: ناتج 'openssl version -a'
اسم نظام التشغيل وإصداره ومنصة العتاد
تفاصيل المترجم (الاسم والإصدار)
- تفاصيل التطبيق (الاسم والإصدار)
- وصف المشكلة (الخطوات التي تعيد إنتاج المشكلة، إن كانت معروفة)
- تتبع المكدس (إذا كان التطبيق يُفرغ core)
أبلغ عن الخطأ إلى مشروع 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 [كذا] و http://w3.access.gpo.gov/bis/ear/pdf/740.pdf (القسم 740.13(e) من EAR) للحصول على التفاصيل. إذا كان "الكود المصدري للتشفير الخاص بك أكبر من أن يُرسل كمرفق بريد إلكتروني"، فسيكونون سعداء باستلامه عبر الفاكس بدلاً من ذلك؛ نأمل أن تكون لديك خطة اتصالات بعيدة المدى رخيصة.
صيغتنا المفضلة للتغييرات هي ناتج "diff -u". يمكنك توليدها مثل هذا: