
OpenSSL 1.0.1g 7 Apr 2014
Copyright (c) 1998-2011 مشروع OpenSSL 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 - حزمة تشفير DES من EAY والمعروفة باسم libdes والتي كانت متداولة
على الإنترنت لعدة سنوات، ثم أعاد ترخيصها كجزء من 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
النصي-الثنائي الذي يدعم التشفير بمفتاح خاص. وبرنامج لتوليد طلبات
شهادات 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
لتثبيت هذه الحزمة على أحد مشتقات 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 للحصول على معلومات حول الاشتراك). إذا كنت ترغب في إرسال تصحيح، فأرسله إلى [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". يمكنك توليدها مثل هذا: