การเปิดตัว OpenSSL 4.0.0
(github.com/openssl)- รีลีสขนาดใหญ่ที่มาพร้อม ฟีเจอร์ใหม่จำนวนมากและการเปลี่ยนแปลงที่ไม่เข้ากันย้อนหลัง
- รองรับ ECH(Encrypted Client Hello, RFC 9849) ในตัว ทำให้ไม่จำเป็นต้องมีการติดตั้งแยกต่างหากเพื่อปกป้องความเป็นส่วนตัวของไคลเอนต์ TLS
- ลบโค้ดของ SSLv2 Client Hello, SSLv3 และ engine ออกทั้งหมด ตอกย้ำการยุติการรองรับโปรโตคอลแบบเลกาซีอย่างชัดเจน
- เพิ่มการรองรับลายเซ็น SM2 (
sm2sig_sm3), การแลกเปลี่ยนกุญแจ (curveSM2) และกลุ่มโพสต์ควอนตัมcurveSM2MLKEM768บนพื้นฐานของ RFC 8998 - เพิ่มความสามารถด้านคริปโตใหม่ เช่น cSHAKE(SP 800-185), ไดเจสต์ ML-DSA-MU, SNMP KDF และ SRTP KDF
- รองรับการเจรจาแลกเปลี่ยนกุญแจ FFDHE ตาม RFC 7919 ใน TLS 1.2
- ระหว่างติดตั้งโมดูล FIPS สามารถใช้ตัวเลือก
-defer_testsเพื่อ เลื่อนการรันทดสอบตัวเองของ FIPS ได้ - ปรับ API ให้ทันสมัยด้วยการเพิ่ม ตัวกำกับ
constให้กับซิกเนเจอร์ของฟังก์ชัน API จำนวนมาก และทำASN1_STRINGให้เป็นแบบ opaque - แนะนำให้แทนที่ฟังก์ชัน deprecated เช่น
X509_cmp_time()ด้วยX509_check_certificate_times() - เมื่อใช้
PKCS5_PBKDF2_HMACกับ FIPS provider จะมีการ บังคับตรวจสอบค่าขั้นต่ำ และเสริมรายการตรวจสอบเพิ่มเติมสำหรับการตรวจสอบ CRL - จัดระเบียบฟีเจอร์เลกาซีครั้งใหญ่ เช่น custom
EVP_CIPHER,EVP_MD,EVP_PKEYmethods ที่เลิกใช้แล้ว, ฟังก์ชัน SSL/TLS เวอร์ชันคงที่, สคริปต์c_rehash,BIO_f_reliable()และอื่น ๆ - ถอด เป้าหมายการบิลด์ Apple รุ่นเก่า เช่น
darwin-i386,darwin-ppcออก - รองรับการเลือกเชื่อมลิงก์ VC runtime แบบ static/dynamic บน Windows
- รีลีสครั้งนี้ถือเป็น จุดเปลี่ยนของ OpenSSL ในการเสริมความปลอดภัยและความเข้ากันได้ตามมาตรฐาน
2 ความคิดเห็น
เหมือนเพิ่งเมื่อวานตอนที่ยังใช้ 1.1.1 อยู่เลย
ความคิดเห็นจาก Hacker News
มีการแสดงความยินดีที่ในที่สุดก็เพิ่มการรองรับ Encrypted Client Hello(ECH) แล้ว
อ้างถึง บทความสถานะของ SSL stack จากบล็อก HAProxy พร้อมเน้นว่า ตอนนี้ ไม่ควรใช้ v3 แล้ว
ก่อนหน้านี้ถ้าใช้ OpenSSL ก็ถูกบังคับให้การทำ QUIC ต้องใช้สแตกของ OpenSSL ไปด้วย
QUIC เป็นโปรโตคอลที่นำความสามารถของ TCP มาสร้างใหม่บน UDP และเป็น รากฐานของ HTTP/3
แต่ถึงจะไม่ชอบการทำ QUIC ของ OpenSSL ก็ไม่มีทางเลือกอื่น
ตัวอย่างเช่น ถ้า curl ลิงก์กับ OpenSSL, curl ก็ต้องใช้ QUIC ของ OpenSSL โดยอัตโนมัติด้วย
พร้อมยกตัวอย่างว่า Daniel Stenberg แห่ง curl เคยเขียน บทความบล็อกเชิงวิจารณ์ เกี่ยวกับเรื่องนี้
ในคำถามที่ถามถึงสถานะปัจจุบันของ OpenSSL มีการกล่าวว่า หลังเหตุการณ์ Heartbleed ในอดีต ด้านความปลอดภัยดีขึ้นอย่างมากแล้ว
แต่มีคนจำนวนมากประเมินว่า คุณภาพซอฟต์แวร์ กลับถดถอยลง
การออกแบบของ OpenSSL 3.0 ถอยหลังในด้านประสิทธิภาพ และโปรเจ็กต์สำคัญอย่าง pyca/cryptography ก็กำลังมี ความเคลื่อนไหวเพื่อหาทางแทนที่ OpenSSL
การทำงานหลักของ OpenSSL 3 ช้ากว่า 1.1.1 มาก พร้อมอ้างถึง บทวิเคราะห์ SSL stack ของ HAProxy และ แถลงการณ์จากทีม Python cryptography
อธิบายว่า OpenSSL 3 เปลี่ยนหลายองค์ประกอบให้เป็นแบบไดนามิกจนมีการใช้ lock อย่างฟุ่มเฟือย และ API ก็เปลี่ยนไปใช้รูปแบบ OSSL_PARAM ทำให้ประสิทธิภาพลดลงและโค้ดซับซ้อนขึ้น
มีการกล่าวว่าเมื่อเทียบกับ OpenSSL 3 แล้ว การเปลี่ยนผ่านครั้งนี้เป็นไปอย่าง ราบรื่นมาก
บน Fedora นอกจากการถอด “Engines” ออกแล้ว ก็แทบไม่มีปัญหาใหญ่ และ dependency ส่วนใหญ่ถูกแก้ไขได้
มีการชี้ว่าขั้นตอน opt-out แบบทำด้วยมือกำลังกลายเป็นจุดเสียดทานที่ใหญ่ขึ้นเรื่อย ๆ
พร้อมวิจารณ์ความจริงที่ว่าต้องรอให้ชุมชนต่อต้านก่อน ค่าเริ่มต้นถึงจะถูกปรับปรุง และย้ำว่า ความเชื่อใจสร้างยาก แต่เสียได้ง่าย
มีการตอบแบบติดตลกว่า ดูเหมือนจะปล่อยออกมาให้ตรงจังหวะ “suckerpinch video”
ในมุมของคนที่ไม่ใช่ผู้เชี่ยวชาญ มองว่าการเปลี่ยนแปลงครั้งนี้ดูเป็น การเก็บกวาดที่เรียบร้อยดี แต่การทำให้ความเข้ากันได้พังลงก็ยังเป็นภาระเสมอ
พร้อมนึกถึงว่า OpenSSL 3.x ไม่ได้เป็นที่รักมากนัก
กังวลว่าการอัปเกรดเมเจอร์เวอร์ชันจะทำให้ช้าลง แต่จาก benchmark จริงพบว่าค่าเฉลี่ยมี ประสิทธิภาพลดลงราว 10% เท่านั้น
พร้อมเสริมว่าเมื่อมองในระดับสภาพแวดล้อมอินเทอร์เน็ตโดยรวม ก็ไม่ใช่ปัญหาใหญ่นัก
ยินดีกับการที่ในโค้ดมีการใช้ const มากขึ้น
ในสภาพแวดล้อมแบบ embedded มักต้องเติม const เองบ่อย ๆ และชอบทิศทางที่ตอนนี้เริ่มใส่มาให้เป็นค่าเริ่มต้น
ปิดท้ายด้วยมุกล้อเลียน โดยจินตนาการถึง เสียงกรีดร้องของผู้ดูแลแพ็กเกจในดิสโทรลินุกซ์