
مكتبة تشفير مفتوحة المصدر شاملة تنفّذ بروتوكولات SSL/TLS، والتشفير المتماثل وغير المتماثل، وملخصات الرسائل، والشهادات الرقمية، والبنية التحتية للمفاتيح العامة X.509.
OpenSSL 1.0.1g 7 أبريل 2014
حقوق الطبع والنشر (c) 1998-2011 مشروع OpenSSL حقوق الطبع والنشر (c) 1995-1998 إريك أ. يونغ، تيم ج. هدسون جميع الحقوق محفوظة.
مشروع OpenSSL هو جهد تعاوني لتطوير مجموعة أدوات قوية، بمستوى تجاري، كاملة الميزات، ومفتوحة المصدر تنفّذ بروتوكولات طبقة المقابس الآمنة (SSL v2/v3) وأمن طبقة النقل (TLS v1) بالإضافة إلى مكتبة تشفير عامة قوية بالكامل. يُدار المشروع من قبل مجتمع عالمي من المتطوعين الذين يستخدمون الإنترنت للتواصل والتخطيط وتطوير مجموعة أدوات OpenSSL و وثائقها ذات الصلة.
يعتمد OpenSSL على مكتبة SSLeay الممتازة التي طوّرها إريك أ. يونغ وتيم ج. هدسون. مجموعة أدوات OpenSSL مرخّصة بموجب ترخيص مزدوج ( ترخيص OpenSSL بالإضافة إلى ترخيص SSLeay)، وهو ما يعني أساساً أنك حر في الحصول عليها واستخدامها لأغراض تجارية وغير تجارية طالما أنك تستوفي شروط الترخيصين معاً.
تتضمن مجموعة أدوات OpenSSL:
libssl.a: تنفيذ SSLv2 وSSLv3 وTLSv1 والكود المطلوب لدعم كل من SSLv2 وSSLv3 وTLSv1 في خادم وعميل واحد.
libcrypto.a: مكونات التشفير العامة وX.509 v1/v3 اللازمة لـSSL/TLS ولكنها ليست جزءاً منطقياً منه فعلياً. ويتضمن إجراءات لما يلي:
التشفيرات
libdes - حزمة تشفير DES الخاصة بـ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 الثنائي وترميز PEM
النصي-الثنائي القائم على ASCII والذي يدعم التشفير باستخدام
مفتاح خاص. برنامج لتوليد طلبات شهادات RSA وDSA
وتوليد شهادات RSA وDSA.
الأنظمة
إجراءات المغلف الرقمي العادية وترميز 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
لتثبيت هذه الحزمة على اشتقاق من يونكس، اقرأ ملف INSTALL. بالنسبة لمنصة Win32، اقرأ ملف INSTALL.W32. بالنسبة لأنظمة OpenVMS، اقرأ INSTALL.VMS.
اقرأ التوثيق في مجلد doc/. إنه خام إلى حد ما، لكنه يسرد الدوال؛ وربما يتعين عليك النظر إلى الكود لمعرفة كيفية استخدامها. انظر إلى البرامج النموذجية.
بالنسبة لبعض المنصات، هناك بعض المشكلات المعروفة التي قد تؤثر على المستخدم أو مؤلف التطبيق. نحاول جمعها في doc/PROBLEMS، مع أفكار حالية حول كيفية حلها في مستقبل OpenSSL.
راجع موقع OpenSSL الإلكتروني www.openssl.org للحصول على تفاصيل حول كيفية الحصول على دعم فني تجاري.
إذا كانت لديك أي مشكلات مع OpenSSL فيرجى اتخاذ الخطوات التالية أولاً:
- قم بتنزيل اللقطة الحالية من ftp://ftp.openssl.org/snapshot/
لمعرفة ما إذا كانت المشكلة قد عولجت بالفعل
- قم بإزالة إصدارات ASM من المكتبات
- قم بإزالة أعلام تحسين المترجم
إذا كنت ترغب في الإبلاغ عن خطأ برمجي فيرجى تضمين المعلومات التالية في أي تقرير عن خطأ:
- على أنظمة يونكس:
تقرير الاختبار الذاتي الناتج عن '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 للحصول على معلومات حول الاشتراك). إذا كنت ترغب في تقديم تصحيح، فأرسله إلى [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". ويمكنك توليدها على النحو التالي: