OpenSSL 3.0.0 cryptographic library جو رليز

ٽن سالن جي ترقي ۽ 19 ٽيسٽ رليز کان پوءِ، OpenSSL 3.0.0 لائبريري SSL/TLS پروٽوڪول ۽ مختلف انڪرپشن الگورتھم جي نفاذ سان جاري ڪئي وئي. نئين برانچ ۾ اهي تبديليون شامل آهن جيڪي API ۽ ABI سطح تي پسمانده مطابقت کي ٽوڙينديون آهن، پر اهي تبديليون اڪثر ايپليڪيشنن جي آپريشن تي اثرانداز نه ٿينديون جن کي OpenSSL 1.1.1 مان لڏڻ لاءِ ٻيهر تعمير جي ضرورت هوندي آهي. OpenSSL 1.1.1 جي پوئين شاخ سيپٽمبر 2023 تائين سپورٽ ڪئي ويندي.

نسخي نمبر ۾ هڪ اهم تبديلي روايتي "Major.Minor.Patch" نمبرنگ جي منتقلي جي ڪري آهي. ورجن نمبر ۾ پهريون عدد (ميجر) هاڻي صرف ان صورت ۾ تبديل ٿيندو جڏهن مطابقت API/ABI سطح تي ٽوڙي ويندي، ۽ ٻيو (مائنر) تبديل ٿيندو جڏهن ڪارڪردگي API/ABI کي تبديل ڪرڻ کان سواءِ وڌي ويندي. ٽيون عدد (پيچ) ۾ تبديلي سان اصلاحي تازه ڪاريون ڏنيون وينديون. نمبر 3.0.0 1.1.1 کان پوءِ فوري طور تي OpenSSL لاءِ في الحال ترقي يافته FIPS ماڊل سان اوورليپ کان بچڻ لاءِ چونڊيو ويو، جنهن لاءِ 2.x نمبرنگ استعمال ڪيو ويو.

پروجيڪٽ لاءِ ٻي اهم تبديلي ڊبل لائسنس (OpenSSL ۽ SSLeay) کان Apache 2.0 لائسنس جي منتقلي هئي. اڳوڻو مالڪي وارو OpenSSL لائسنس ورثي واري Apache 1.0 لائسنس جي متن تي ٻڌل هو ۽ OpenSSL لائبريريون استعمال ڪرڻ وقت مارڪيٽنگ مواد ۾ OpenSSL جو واضح ذڪر گهربل هو، انهي سان گڏ هڪ خاص نوٽيس جيڪڏهن OpenSSL کي پراڊڪٽ جي حصي طور مهيا ڪيو ويو هو. انهن گهرجون پراڻي لائسنس کي GPL سان ناانصافي ڪيو، ان کي GPL-لائسنس ٿيل منصوبن ۾ OpenSSL استعمال ڪرڻ ڏکيو بڻائي ڇڏيو. هن غير مطابقت جي چوڌاري حاصل ڪرڻ لاء، جي پي ايل پروجيڪٽ کي مخصوص لائسنس جي معاهدي کي استعمال ڪرڻ تي مجبور ڪيو ويو جنهن ۾ GPL جي مکيه متن کي هڪ شق سان شامل ڪيو ويو جيڪو واضح طور تي ايپليڪيشن کي OpenSSL لائبريري سان ڳنڍڻ جي اجازت ڏني وئي ۽ ذڪر ڪيو ويو ته GPL جون گهرجون پوريون نه ٿيون. OpenSSL سان ڳنڍڻ لاء لاڳو ڪريو.

OpenSSL 1.1.1 برانچ جي مقابلي ۾، OpenSSL 3.0.0 ۾ 7500 کان وڌيڪ تبديليون شامل ڪيون ويون جن ۾ 350 ڊولپرز پاران تعاون ڪيو ويو. OpenSSL 3.0.0 جي مکيه جدت:

  • هڪ نئون FIPS ماڊل تجويز ڪيو ويو آهي، جنهن ۾ cryptographic algorithms جو نفاذ شامل آهي جيڪي FIPS 140-2 سيڪيورٽي معيار سان تعميل ڪن ٿا (ماڊل لاءِ سرٽيفڪيشن جو عمل هن مهيني شروع ٿيڻ وارو آهي، ۽ FIPS 140-2 سرٽيفڪيشن ايندڙ سال متوقع آهي). نئون ماڊل استعمال ڪرڻ تمام آسان آهي ۽ ان کي ڪيترن ئي ايپليڪيشنن سان ڳنڍڻ ڪانفيگريشن فائل کي تبديل ڪرڻ کان وڌيڪ ڏکيو نه هوندو. ڊفالٽ طور، FIPS ماڊل بند ٿيل آهي ۽ ان کي فعال ڪرڻ لاءِ فعال-fips اختيار جي ضرورت آهي.
  • libcrypto پلگ ايبل فراهم ڪندڙن جي تصور کي لاڳو ڪري ٿو، جنهن انجڻ جي تصور کي تبديل ڪيو (انجن API کي ختم ڪيو ويو آهي). مهيا ڪندڙن جي مدد سان، توھان شامل ڪري سگھوٿا پنھنجي الگورتھم جي عملن لاءِ اھڙن عملن لاءِ جيئن انڪرپشن، ڊيڪرپشن، ڪيئي جنريشن، MAC حساب ڪتاب، ٺاھڻ ۽ ڊجيٽل دستخطن جي تصديق. اهو ممڪن آهي ته ٻنهي کي ڳنڍڻ ۽ اڳ ۾ ئي سپورٽ ٿيل الگورتھم جا متبادل لاڳو ڪرڻ (ڊفالٽ طور، OpenSSL ۾ ٺهيل مهيا ڪندڙ هاڻي هر الگورٿم لاءِ استعمال ڪيو ويندو آهي).
  • سرٽيفڪيٽ مئنيجمينٽ پروٽوڪول (RFC 4210) لاءِ سپورٽ شامل ڪئي وئي، جيڪو CA سرور کان سرٽيفڪيٽن جي درخواست ڪرڻ، سرٽيفڪيٽن کي تازه ڪاري ڪرڻ، ۽ سرٽيفڪيٽن کي رد ڪرڻ لاءِ استعمال ڪري سگھجي ٿو. CMP سان ڪم ڪرڻ نئين openssl-cmp يوٽيليٽي استعمال ڪندي ڪيو ويندو آهي، جيڪو پڻ CRMF فارميٽ (RFC 4211) کي سپورٽ ڪري ٿو ۽ HTTP/HTTPS (RFC 6712) ذريعي درخواستون موڪلي ٿو.
  • HTTP ۽ HTTPS پروٽوڪول لاءِ هڪ مڪمل ڪلائنٽ لاڳو ڪيو ويو آهي، GET ۽ POST طريقن جي حمايت ڪندي، ريڊائريڪشن جي درخواست، پراکسي ذريعي ڪم ڪرڻ، ASN.1 انڪوڊنگ ۽ ٽائيم آئوٽ پروسيسنگ.
  • هڪ نئون EVP_MAC (ميسيج آٿنٽيڪشن ڪوڊ API) شامل ڪيو ويو آهي ته جيئن ٺٺوليون داخل ڪرڻ جي نئين عمل کي شامل ڪرڻ آسان بڻائي سگهجي.
  • چاٻيون پيدا ڪرڻ لاءِ هڪ نئون سافٽ ويئر انٽرفيس تجويز ڪيو ويو آهي - EVP_KDF (Key Derivation Function API)، جيڪو KDF ۽ PRF جي نئين عملن جي اضافي کي آسان بڻائي ٿو. پراڻي EVP_PKEY API، جنهن جي ذريعي اسڪرپٽ، TLS1 PRF ۽ HKDF الگورتھم موجود هئا، EVP_KDF ۽ EVP_MAC APIs جي چوٽي تي لاڳو ٿيل هڪ پرت جي صورت ۾ ٻيهر ٺهيل آهي.
  • TLS پروٽوڪول تي عمل درآمد ڪرڻ جي صلاحيت مهيا ڪري ٿي TLS ڪلائنٽ ۽ سرور کي استعمال ڪرڻ جي لينڪس ڪنيل ۾ ٺاهيل آپريشن کي تيز ڪرڻ لاءِ. لينڪس ڪرنل پاران مهيا ڪيل TLS لاڳو ڪرڻ کي فعال ڪرڻ لاء، توهان کي "SSL_OP_ENABLE_KTLS" اختيار يا "enable-ktls" سيٽنگ کي فعال ڪرڻ گهرجي.
  • نئين الگورتھم لاء سپورٽ شامل ڪئي وئي:
    • اهم نسل الگورتھم (KDF) آھن ”اڪيلو قدم“ ۽ ”SSH“.
    • نقلي داخل ڪرڻ وارا الگورتھم (MAC) آهن "GMAC" ۽ "KMAC".
    • RSA Key Encapsulation Algorithm (KEM) "RSASVE".
    • انڪرپشن الگورٿم "AES-SIV" (RFC-8452).
    • EVP API ۾ شامل ڪيل ڪالون inverse ciphers لاءِ سپورٽ سان AES الگورٿم استعمال ڪندي ڪنجيز کي انڪرپٽ ڪرڻ لاءِ (Key Wrap): “AES-128-WRAP-INV”، “AES-192-WRAP-INV”، “AES-256-WRAP- INV"، "AES-128-WRAP-PAD-INV"، "AES-192-WRAP-PAD-INV" ۽ "AES-256-WRAP-PAD-INV".
    • EVP API ۾ ciphertext borrowing (CTS) algorithms لاءِ سپورٽ شامل ڪئي وئي: “AES-128-CBC-CTS”, “AES-192-CBC-CTS”, “AES-256-CBC-CTS”, “CAMELLIA-128-CBC -CTS""، "CAMELLIA-192-CBC-CTS" ۽ "CAMELLIA-256-CBC-CTS".
    • شامل ڪيل سپورٽ CAdES-BES ڊجيٽل دستخطن لاءِ (RFC 5126).
    • AES_GCM لاڳو ڪري ٿو AuthEnvelopedData (RFC 5083) پيرا ميٽر انڪريپشن ۽ ڊيڪرپشن کي فعال ڪرڻ لاءِ تصديق ٿيل ۽ انڪرپٽ ٿيل پيغامن جي AES GCM موڊ استعمال ڪندي.
  • PKCS7_get_octet_string ۽ PKCS7_type_is_other افعال عوامي API ۾ شامل ڪيا ويا آھن.
  • PKCS#12 API PKCS12_create() فنڪشن ۾ استعمال ٿيل ڊفالٽ الگورتھم کي PBKDF2 ۽ AES سان تبديل ڪري ٿو، ۽ MAC کي ڳڻڻ لاءِ SHA-256 الگورتھم استعمال ڪري ٿو. ماضي جي رويي کي بحال ڪرڻ لاء، "-وراثت" اختيار مهيا ڪيو ويو آهي. PKCS12_*_ex، PKCS5_*_ex ۽ PKCS8_*_ex، جهڙوڪ PKCS12_add_key_ex().PKCS12_create_ex() ۽ PKCS12_decrypt_skey_ex().
  • ونڊوز پليٽ فارم لاءِ، SRWLock ميڪانيزم استعمال ڪندي ٿريڊ سنڪرونائيزيشن لاءِ سپورٽ شامل ڪئي وئي آهي.
  • شامل ڪيو ويو نئون tracing API، enable-trace parameter ذريعي.
  • EVP_PKEY_public_check() ۽ EVP_PKEY_param_check() افعال ۾ سپورٽ ڪيل ڪنجين جي حد کي وڌايو ويو آھي: RSA, DSA, ED25519, X25519, ED448 ۽ X448.
  • RAND_DRBG سبسسٽم کي هٽايو ويو آهي، EVP_RAND API سان تبديل ڪيو ويو آهي. FIPS_mode() ۽ FIPS_mode_set() افعال ختم ڪيا ويا آھن.
  • API جو هڪ اهم حصو متروڪ ڪيو ويو آهي - پروجيڪٽ ڪوڊ ۾ غير معمولي ڪالون استعمال ڪرڻ جي نتيجي ۾ تاليف دوران ڊيڄاريندڙن جو نتيجو ٿيندو. جنهن ۾ گهٽ-سطح APIs شامل آهن جيڪي الگورتھم جي ڪجهه عملن سان جڙيل آهن (مثال طور، AES_set_encrypt_key ۽ AES_encrypt) کي سرڪاري طور تي ختم ٿيل قرار ڏنو ويو آهي. OpenSSL 3.0.0 ۾ سرڪاري مدد ھاڻي صرف اعليٰ سطحي EVP APIs لاءِ مهيا ڪئي وئي آھي جيڪي انفرادي الگورتھم جي قسمن کان خلاصيون آھن (ھن API ۾ شامل آھن، مثال طور، EVP_EncryptInit_ex، EVP_EncryptUpdate، ۽ EVP_EncryptFinal افعال). ختم ٿيل APIs کي ھٽايو ويندو ھڪڙي ايندڙ وڏي رليز ۾. ورثي واري الگورتھم جو نفاذ، جهڙوڪ MD2 ۽ DES، EVP API ذريعي دستياب آهن، هڪ الڳ "وراثت" ماڊل ڏانهن منتقل ڪيو ويو آهي، جيڪو ڊفالٽ طور تي غير فعال آهي.
  • دستاويزن ۽ ٽيسٽ سوٽ کي خاص طور تي وڌايو ويو آهي. برانچ 1.1.1 جي مقابلي ۾، دستاويزن جو حجم 94٪ وڌايو ويو آهي، ۽ ٽيسٽ سوٽ ڪوڊ جي سائيز 54٪ وڌي وئي آهي.

جو ذريعو: opennet.ru

تبصرو شامل ڪريو