日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

openssl不是内部或外部命令_OpenSSL新架构蓝图

發(fā)布時間:2023/12/1 编程问答 57 豆豆
生活随笔 收集整理的這篇文章主要介紹了 openssl不是内部或外部命令_OpenSSL新架构蓝图 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

概述

日前OpenSSL官網(wǎng)公布了未來OpenSSL的架構(gòu)藍(lán)圖。作為戰(zhàn)略性的架構(gòu)目標(biāo),需要大量的版本迭代本文檔概述了OpenSSL戰(zhàn)略架構(gòu)。它需要多個版本的迭代從目前最新的版本1.1開始直到3.0甚至是4.0最終實(shí)現(xiàn)。由于版本架構(gòu)變動非常大,涉及大量的變化和迭代,力爭在OpenSSL 3.0.0版本中實(shí)現(xiàn)對絕大多數(shù)應(yīng)用程序的影響最小,并能高性能的編譯遷移。3.0后對目前版本的功能將通過API來實(shí)現(xiàn),現(xiàn)有引擎將不再支持。本文蟲蟲和大家一起來學(xué)習(xí)OpenSSL的現(xiàn)有架構(gòu)、存在問題,新架構(gòu)、特點(diǎn),實(shí)現(xiàn)等。

現(xiàn)有架構(gòu)

當(dāng)前版本OpenSSL提供的功能主要通過四個主要組件提供:

1. libcrypto加密庫。該庫提供了大量加密算法的實(shí)現(xiàn)。另外提供libssl和libcrypto使用支持服務(wù),以及CMS和OCSP等協(xié)議的實(shí)現(xiàn)。

2.引擎。 libcrypto的功能可以通過Engine API進(jìn)行擴(kuò)展。引擎是可動態(tài)加載的模塊,它們向libcrypto注冊并使用可用的鉤子來提供加密算法實(shí)現(xiàn)。通常這些hook由libcrypto提供的算法的替代實(shí)現(xiàn)(例如,用于實(shí)現(xiàn)算法的硬件加速),還包括默認(rèn)未在OpenSSL中實(shí)現(xiàn)的算法。引擎作為OpenSSL發(fā)行版的一部分提供,未實(shí)現(xiàn)的引擎則通過外部第三方提供。

3.libssl。該庫依賴于libcrypto并實(shí)現(xiàn)TLS和DTLS協(xié)議。

4.應(yīng)用程序。應(yīng)用程序是一組命令行工具,這些工具使用底層的libssl和libcrypto庫來提供一系列的加密和其他功能:

密鑰和參數(shù)的生成和檢查;

證書生成和檢查;

SSL/TLS測試工具集;

ASN.1檢查;

其他等。

現(xiàn)有架構(gòu)的特點(diǎn)和問題

目前版本的OpenSSL具有以下特征和問題:

1.EVP層

EVP在API級別提供與具體加密功能實(shí)現(xiàn)和打包分開的的高級抽象接口。

EVP層還提供復(fù)合操作,例如簽名和驗證的打包。一些復(fù)合操作也EVP級操作提供(例如HMAC-SHA256)。

EVP還允許使用算法無關(guān)的方式使用加密算法(例如,EVP_DigestSign適用于RSA和ECDSA算法)。

2.不支持FIPS140。

FIPS140只能在OpenSSL-1.0.2中使用,它早于目前架構(gòu),不兼容API或ABI。

架構(gòu)圖

現(xiàn)有的體系結(jié)構(gòu)是一個簡單的4級分層,底部為引擎層和算法層。 TLS層依賴于加密層,應(yīng)用程序依賴于TLS和加密層。

注意:圖中組件的存在并不表示該組件是公共API或旨在供最終用戶直接訪問或使用。

打包圖

以上的各層的功能和組件都被打包到了基礎(chǔ)庫(libcrypto和libssl)以及相關(guān)的引擎接口以及用于運(yùn)行各種應(yīng)用程序?qū)崿F(xiàn)的"openssl"命令行可執(zhí)行文件。打包圖如下所示。

新架構(gòu)

新架構(gòu)的特點(diǎn)

新架構(gòu)的的目的是優(yōu)化現(xiàn)有架構(gòu),新架構(gòu)由一下功能組成:

1、核心服務(wù)由應(yīng)用程序和應(yīng)用程序提供器使用的構(gòu)建塊組成。 (例如BIO,X509,SECMEM,ASN1等)。

2、提供器實(shí)現(xiàn)加密算法和支持服務(wù)。提供器由以下一個或多個功能的組合:

算法的加密子,例如如何加密/解密/簽名/哈希等

算法的序列化,例如如何將私鑰轉(zhuǎn)換為PEM文件。序列化當(dāng)前支持的格式或者不支持的格式的擴(kuò)展。

存儲加載后端。 OpenSSL目前有一個存儲加載程序,可以從文件中讀取密鑰,參數(shù)和其他項。提供器可以從另一個位置(例如LDAP目錄)加載加載器。

提供器可以是完全獨(dú)立的,也可以使用由不同提供器或核心服務(wù)提供的服務(wù)。

例如,應(yīng)用程序可以使用一個加密原子實(shí)現(xiàn)由硬件加速提供程序?qū)崿F(xiàn)的算法,但是其他程序提供的序列化服務(wù)把密鑰導(dǎo)出為PKCS#12格式。

程序默認(rèn)內(nèi)置一個提供器(包含由當(dāng)前OpenSSL加密算法實(shí)現(xiàn)的核心),但其他提供器可以在在運(yùn)行時動態(tài)加載。

舊提供器模塊將為較舊的算法(例如,DES,MDC2,MD2,Blowfish,CAST)提供加密實(shí)現(xiàn)。 OMC會發(fā)布一個策略,說明從舊提供器轉(zhuǎn)化到默認(rèn)提供器的時間和遷移方法。

FIPS提供器內(nèi)嵌的OpenSSL FIPS加密模塊可以在運(yùn)行時動態(tài)加載。

3、核心實(shí)現(xiàn)對默認(rèn)應(yīng)用程序提供器(和其他提供商)提供的服務(wù)器的訪問。提供器負(fù)責(zé)為Core提供服務(wù)和方法。

Core將實(shí)現(xiàn)基于屬性的查找功能,用于算法查找,例如通過"fips = true"或"keysize = 128,constant_time = true"這樣條件來搜索算法。

4、協(xié)議的實(shí)現(xiàn)。例如。 TLS,DTLS。

新架構(gòu)的特點(diǎn):

1、EVP層功能縮減,僅僅對提供器提供的服務(wù)進(jìn)行打包。大多數(shù)功能將直接調(diào)用,沒有或者很少的預(yù)處理和后處理。

2、將提供新的EVP API用來查找Core中提供給特定EVP調(diào)用的算法的實(shí)現(xiàn)。

信息將以與實(shí)現(xiàn)無關(guān)的方式在核心庫和提供者之間傳遞。

3、舊API將被刪除(例如繞過EVP層的底層API)。

4、OpenSSL FIPS加密模塊將由動態(tài)加載的提供器實(shí)現(xiàn),并且自包含,只依賴于核心提供的系統(tǒng)運(yùn)行時庫和服務(wù)。

5、其他接口也可能會隨著時間的推移而轉(zhuǎn)換到核心庫。

6、引擎功能由提供器取代。

架構(gòu)圖

OpenSSL新架構(gòu)圖如下圖所示。

上圖中顯示的組件如下:

1、應(yīng)用程層:命令行應(yīng)用程序,例如ca,ciphers,cms,dgst等

2、協(xié)議:提供根據(jù)標(biāo)準(zhǔn)協(xié)議在端點(diǎn)之間進(jìn)行通信的功能

TLS協(xié)議:所有支持的TLS/DTLS協(xié)議和支持基礎(chǔ)設(shè)施的實(shí)現(xiàn),例如:

SSLBIO:使用TLS進(jìn)行通信的BIO

Statem:TLS狀態(tài)機(jī)

RECORD:TLS記錄層

其他協(xié)議:

CMS:加密消息語法標(biāo)準(zhǔn)的實(shí)現(xiàn)

OCSP:在線證書狀態(tài)協(xié)議的實(shí)現(xiàn)

TS:時間戳協(xié)議的實(shí)現(xiàn)

支持服務(wù):用于支持協(xié)議代碼實(shí)現(xiàn)的組件

Packet:用于讀取協(xié)議消息的內(nèi)部組件

Wpacket:用于編寫協(xié)議消息的內(nèi)部組件

3、核心:這是將服務(wù)請求(例如加密)關(guān)聯(lián)到該服務(wù)的提供器的基礎(chǔ)組件。核心實(shí)現(xiàn)了提供器的注冊幾附屬參數(shù)的設(shè)置。它還支持通過對給定服務(wù)屬性進(jìn)行服務(wù)的搜索功能。例如,加密服務(wù)的屬性可能包括"aead","aes-gcm","fips","security-bits = 128"等。

4、默認(rèn)提供器:實(shí)現(xiàn)核心啟動時默認(rèn)注冊服務(wù)。

支持服務(wù)

低層實(shí)現(xiàn):這是實(shí)際實(shí)現(xiàn)加密算法的一組組件。

5、FIPS提供器:實(shí)現(xiàn)一組經(jīng)過FIPS驗證并可供核心使用的服務(wù)。包括以下支持的服務(wù):

POST:開機(jī)自檢

KAT:已知的答案測試

完整性檢查等等

6、舊提供器:提供通過EVP級API公開的舊算法的實(shí)現(xiàn),為向后兼容提供服務(wù)。

7、第三方提供器:不屬于OpenSSL發(fā)行版。第三方可以實(shí)施自己的提供者。

8、公共服務(wù):這部分構(gòu)成了應(yīng)用程序和提供器可用的構(gòu)建塊。 (例如BIO,X509,SECMEM,ASN1等)。

9、舊版API。 低層API。這里的特指老API,而不是算法本身。例如,AES不是老算法,但它還在老API中(例如AES_encrypt)。

打包圖

以上的架構(gòu)圖提供各種組件都會打包到一下文件,打包圖如下:

可執(zhí)行的應(yīng)用程序供用戶使用;

應(yīng)用程序使用的庫;

可動態(tài)加載的模塊供核心使用。

圖中涉及的包有:

Openssl可執(zhí)行文件。命令行應(yīng)用程序。

libssl。這包含與TLS和DTLS直接相關(guān)的所有內(nèi)容。它的內(nèi)容與現(xiàn)有架構(gòu)中的libssl大致相同,某些支持服務(wù)將移至libcrypto。

Libcrypto。該庫包含以下組件:

核心服務(wù)的實(shí)現(xiàn),例如:X509,ASN1,EVP,OSSL_STORE等

核心

與TLS或DTLS無關(guān)的協(xié)議

協(xié)議支持服務(wù)(例如Packet和Wpacket)

默認(rèn)提供程序,包含所有默認(rèn)算法的實(shí)現(xiàn)

Libcrypto舊程序。提供兼容老程序的底層API。這些APIS算法的實(shí)現(xiàn)可能來自任何提供器。

FIPS模塊。它包含F(xiàn)IPS提供器程序,該提供程序?qū)崿F(xiàn)一組經(jīng)過FIPS驗證并在核心中注冊的服務(wù)。

舊模塊。這包含舊版提供器程序。

總結(jié)

以上是生活随笔為你收集整理的openssl不是内部或外部命令_OpenSSL新架构蓝图的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。