
مكتبة تشفير للأغراض العامة ومجموعة أدوات SSL/TLS تنفذ الأصفار وملخصات وخوارزميات المفاتيح العامة وشهادات X.509 للاتصالات الآمنة.
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 هو جهد تعاوني لتطوير مجموعة أدوات مفتوحة المصدر قوية، بمستوى تجاري، كاملة الميزات، تنفّذ بروتوكولات طبقة المقابس الآمنة (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 ولكنها ليست في الواقع جزءًا منطقيًا منه. يتضمن إجراءات لما يلي:
التشفيرات
libdes - حزمة تشفير 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.
الملخصات
خوارزميات ملخص الرسالة 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 وهو تجريد بسيط غير مانع
للإدخال/الإخراج. الطرائق المدعومة حاليًا هي واصفات الملفات،
والمقابس، وقبول المقابس، واتصال المقابس، والمخزن المؤقت في الذاكرة،
والتخزين المؤقت، وعميل/خادم SSL، ومؤشر الملف، والتشفير، والملخص،
واختبار عدم الحظر، وnull.
هياكل البيانات
نظام تجزئة ينمو ديناميكيًا
مكدس بسيط.
محمّل إعدادات يستخدم صيغة مشابهة لملفات MS .ini.
openssl: أداة سطر أوامر يمكن استخدامها من أجل: إنشاء معاملات مفاتيح RSA وDH وDSA إنشاء شهادات X.509 وطلبات توقيع الشهادات (CSR) وقوائم إلغاء الشهادات (CRL) حساب ملخصات الرسائل التشفير وفك التشفير باستخدام التشفيرات اختبارات عميل وخادم 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'
اسم نظام التشغيل، الإصدار، منصة العتاد
تفاصيل المترجم (الاسم، الإصدار)
- تفاصيل التطبيق (الاسم، الإصدار)
- وصف المشكلة (الخطوات التي تعيد إنتاج المشكلة، إن كانت معروفة)
- تتبّع المكدس (Stack Traceback) (إذا كان التطبيق يُنتج core dump)
أبلغ عن الخطأ إلى مشروع 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". يمكنك توليدها على النحو التالي: