經過三年的開發和19個試用版 最近宣布發布新版 OpenSSL 3.0.0 哪一個 有超過 7500 個變化 由 350 名開發人員貢獻,這也代表了版本號的重大變化,這是由於向傳統編號的過渡。
從現在開始,版本號中的第一個數字(主要)僅在 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 項目被迫執行特定的許可協議,其中 GPL 的正文補充了一個條款,明確允許應用程序鏈接到 OpenSSL 庫,並提到 GPL 不適用於綁定到 OpenSSL .
OpenSSL 3.0.0 中的新增功能
對於 OpenSSL 3.0.0 中提出的部分新穎性,我們可以發現 提出了一個新的 FIPS 模塊, 這 包括密碼算法的實現 符合 FIPS 140-2 安全標準(模塊認證過程計劃於本月開始,預計明年 FIPS 140-2 認證)。 新模塊更易於使用,連接到許多應用程序不會比更改配置文件更困難。 默認情況下,FIPS 處於禁用狀態,需要啟用 enable-fips 選項。
在 libcrypto 中實現了連接服務提供者的概念 它取代了引擎的概念(不推薦使用 ENGINE API)。 在供應商的幫助下,您可以為加密、解密、密鑰生成、MAC 計算、數字簽名的創建和驗證等操作添加自己的算法實現。
還強調的是 添加了對 CMP 的支持該 它可用於向 CA 服務器請求證書、更新證書和吊銷證書。 使用 CMP 是由新實用程序 openssl-cmp 完成的,該實用程序還實現了對 CRMF 格式的支持以及通過 HTTP / HTTPS 的請求傳輸。
還 已提出用於密鑰生成的新編程接口: EVP_KDF(密鑰派生函數 API),它簡化了新 KDF 和 PRF 實現的合併。 舊的 EVP_PKEY API(通過它提供 scrypt、TLS1 PRF 和 HKDF 算法)已被重新設計為在 EVP_KDF 和 EVP_MAC API 之上實現的中間層。
並在協議的執行中 TLS 提供了使用 Linux 內核中內置的 TLS 客戶端和服務器的能力 以加快操作。 要啟用 Linux 內核提供的 TLS 實現,必須啟用“SSL_OP_ENABLE_KTLS”選項或“enable-ktls”設置。
另一方面,提到 API 的很大一部分已移至棄用類別- 在項目代碼中使用已棄用的調用將在編譯期間生成警告。 這 低級 API 與某些算法相關聯 已被正式宣布過時。
OpenSSL 3.0.0 中的官方支持現在僅提供給高級 EVP API,這些 API 來自某些類型的算法(此 API 包括,例如,EVP_EncryptInit_ex、EVP_EncryptUpdate 和 EVP_EncryptFinal 函數)。 過時的 API 將在下一個主要版本之一中刪除。 通過 EVP API 提供的傳統算法實現(例如 MD2 和 DES)已移至單獨的“傳統”模塊,默認情況下該模塊處於禁用狀態。
終於 如果您有興趣了解更多信息, 您可以查看詳細信息 在下面的鏈接中。