# โอเพนเอสเอสแอล
โอเพนเอสเอสแอล  เป็น ไลบรารี ซอฟต์แวร์สำหรับแอปพลิเคชันที่ให้การสื่อสารที่ปลอดภัยผ่าน เครือข่ายคอมพิวเตอร์ ป้องกันการดักฟัง และระบุบุคคลที่ปลายอีกด้านหนึ่ง เซิร์ฟเวอร์ อินเทอร์เน็ต ใช้กันอย่างแพร่หลาย รวมถึง เว็บไซต์ ที่ใช้ เอชทีทีพีเอส เป็นส่วนใหญ่

โอเพนเอสเอสแอลมีการใช้งานโปรโตคอล SSL และ TLS แบบโอเพ่นซอร์ส ไลบรารี หลัก ซึ่งเขียนด้วย ภาษาซี ใช้ฟังก์ชัน การเข้ารหัส ขั้นพื้นฐานและมีฟังก์ชันยูทิลิตี้ต่างๆ มี Wrappers ที่อนุญาตให้ใช้ไลบรารีโอเพนเอสเอสแอลในภาษาคอมพิวเตอร์ที่หลากหลาย

OpenSSL Software Foundation (OSF) เป็นตัวแทนของโครงการโอเพนเอสเอสแอล ในความสามารถทางกฎหมายส่วนใหญ่ รวมถึงข้อตกลงใบอนุญาตผู้ร่วมให้ข้อมูล การจัดการการบริจาค และอื่นๆ OpenSSL Software Services (OSS) ยังเป็นตัวแทนของโครงการ OpenSSL สำหรับสัญญาการสนับสนุนอีกด้วย

โอเพนเอสเอสแอลพร้อมใช้งานใน ระบบปฏิบัติการ แบบยูนิกซ์ ส่วนใหญ่ (รวมถึง ลินุกซ์, แมคโอเอส และ เบิร์กลีย์ซอฟต์แวร์ดิสทริบิวชัน), ไมโครซอฟท์ วินโดวส์ และ OpenVMS

 ประวัติโครงการ 
โครงการ OpenSSL ก่อตั้งขึ้นในปี 1998 เพื่อมอบชุดเครื่องมือเข้ารหัสฟรีสำหรับโค้ดที่ใช้บนอินเทอร์เน็ต มีพื้นฐานมาจากการแยก SSLeay โดย Eric Andrew Young และ Tim Hudson ซึ่งยุติการพัฒนาอย่างไม่เป็นทางการเมื่อวันที่ 17 ธันวาคม 1998 เมื่อ Young และ Hudson ทั้งคู่ไปทำงานให้กับ RSA Security สมาชิกผู้ก่อตั้งครั้งแรก ได้แก่ Mark Cox, Ralf Engelschall, Stephen Henson, Ben Laurie และ Paul Sutton

 การเปิดตัวเวอร์ชัน 

+ การเปิดตัวเวอร์ชันของ OpenSSL  เวอร์ชัน  วันที่เปิดตัวครั้งแรก  หมายเหตุ  เวอร์ชันย่อยสุดท้าย   Official start of the OpenSSL project 0.9.1c (23 December 1998)   Successor of 0.9.1c 0.9.2b (6 April 1999)   Successor of 0.9.2b 0.9.3a (27 May 1999)   Successor of 0.9.3a 0.9.4 (9 August 1999)    Successor of 0.9.4 0.9.5a (1 April 2000)   Successor of 0.9.5a 0.9.6m (17 March 2004)   Successor of 0.9.6m 0.9.7m (23 February 2007)   Successor of 0.9.7m 0.9.8zh (3 December 2015)   Successor of 0.9.8n 1.0.0t    Successor of 1.0.0h
 Supported until 31 December 2016
 RFC 6520 TLS/DTLS heartbeat support
 SCTP support
 RFC 5705 TLS key material exporter
 RFC 5764 DTLS-SRTP negotiation
 Next Protocol Negotiation
 PSS signatures in certificates, requests and certificate revocation lists (CRL)
 Support for password based recipient info for CMS
 Support TLS 1.2 and TLS 1.1
 Preliminary FIPS 140 capability for unvalidated 2.0 FIPS module
 Secure Remote Password protocol (SRP) support 1.0.1u    Successor of 1.0.1l
 Supported until 31 December 2019 (Long Term Support)
 Suite B support for TLS 1.2 and DTLS 1.2
 Support for DTLS 1.2
 TLS automatic elliptic curve (EC) selection
 API to set TLS supported signature algorithms and curves
 SSL_CONF configuration API
 TLS Brainpool support
 ALPN support
 CMS support for RSA-PSS, RSA-OAEP, ECDH and X9.42 DH
 FIPS 140 support 1.0.2u    Successor of 1.0.2h
 Supported until 11 September 2019
 Support for BLAKE2 (RFC 7693)
 Support for ChaCha20-Poly1305 (RFC 7539)
 Support for X25519 (RFC 7748)
 Support for DANE and Certificate Transparency
 Support for CCM Ciphersuites
 Support for extended master secret
 SSLv2 removed
 Kerberos ciphersuite support removed
 RC4 and 3DES removed from DEFAULT ciphersuites in libssl
 Remove DSS, SEED, IDEA, CAMELLIA, and AES-CCM from the DEFAULT cipherlist
 40 and 56 bit cipher support removed from libssl
 FIPS 140 support removed 1.1.0l    Successor of 1.1.0i
 Supported until 11 September 2023 (Long Term Support)
 Support for TLS 1.3
 Support for SHA-3
 Support for X448 and Ed448 (RFC 7748)
 Support for SipHash
 Support for ARIA
 Support for multi-prime RSA (RFC 8017)
 Support for SM2, SM3 and SM4
 Heartbeat removed
 QNX support removed 1.1.1w (11 September 2023)    Supported until 7 September 2026 (Long Term Support)
 Relicensed to the Apache License 2.0
 FIPS 140-2 support re-added. Ongoing development.(EOL 2026-09-07)   Supported until 14 March 2025
 FIPS 140-3 compliance.
 Performance enhancements. Ongoing development.(EOL 2025-03-14) 

 ช่องโหว่ที่เป็นที่รู้จักกันกว้างขวาง 

 ฮาร์ตบลีด 

thumb|โลโก้ของบั๊กฮาร์ตบลีด

OpenSSL รุ่น 1.0.1 ไปจนถึง 1.0.1f มีบั๊ก ในระบบของส่วนขยาย Heartbeat Extension ในตัว TLS  ช่องโหว่นี้สามารถทำให้เปิดเผยข้อมูลในหน่วยความจำได้มากถึง 64กิบิไบต์ในแต่ละ heartbeat . การอ่านหน่วยความจำของเซิร์ฟเวอร์สามารถเปิดช่องโหว่ให้ผู้ไม่หวังดีกอบโกยข้อมูลละเอียดอ่อน รวมไปถึงกุญแจส่วนตัวด้วย

เชิงอรรถ