系统软件 应用软件 图形软件 行业软件 安全相关 网络软件 聊天软件 影音软件 教育教学 驱动工具 编程开发 插件下载 源码下载 APP电脑版 其他类别

OpenSSL

v1.2.1

OpenSSL

  • 软件大小:138.95 MB
  • 软件语言:简体中文
  • 软件授权:共享软件
  • 软件类型:编程开发
  • 软件平台:WinAll
  • 更新时间:2022-01-27 15:11
  • 星级评分:4级
  • 软件官网:https://www.downza.com/
好评:50%顶一个
坏评:50踩一个

OpenSSL简介

OpenSSL是一款用于传输层安全(TLS)和安接字层(SSL)协议的商业级且功能齐全的工具包;它也是一个通用加密库,OpenSSL是根据Apache样式的许可证授权的,这基本上意味着您可以在一些简单的许可证条件下自由地将其用于商业和非商业目的;用户可以使用OpenSSL工具将TLS和SSL加密协议实现到您的项目中,这基本上是一个开放源代码库,可与多个作系统兼容,以保护您在线传输的数据;Internet数据传输安全,SSL和TSL协议通常用于保护在线通信的安全,用户使用身份验证密钥和数据加密来做到这一点,从而使重要消息保持机密;该软件为用户提供了一种生成安全密钥和加密数据的可方法,这样,敏感可以安全地在线传输,C语言用于开发主库,甚至还有一个命令行工具,可以让您访问可用的每个密码和算法!

OpenSSL是一个用于传输层安全(TLS)和SSL协议的商业和全功能工具包;它也是一个通用的加密库,OpenSSL是根据Apache风格的许可证进行许可的,这基本上意味着你可以在一些简单的许可条件下自由地将其用于商业和非商业目的;用户可以使用OpenSSL工具在您的项目中实现TLS和SSL加密协议。这基本上是一个开源库,可以兼容很多操作系统,保护你的在线传输数据。互联网数据传输安全,通常使用SSL和TSL协议来保护在线通信的安全,用户使用认证密钥和数据加密来做到这一点,从而对重要消息保密;这个软件为用户提供了一个生成安全密钥和加密数据的方法,让敏感信息可以安全的在线传输,用C语言开发主库,甚至还有一个命令行工具,可以让你访问每一个可用的密码和算法!

OpenSSL软件功能

该工具支持多种加密算法。

该控制台可用于通过AES、DES、SHA-1或MD5生成个人证书和密钥。

该库还支持使用公钥的加密算法,包括DSA和RSA。

下载包不包含文档。然而,有许多在线资源可以描述如何实现该算法。

因为它是一个开源社区,你也可以为它贡献素材。

控制台是这个包中使用工具的地方。

在这种情况下,只熟悉图形界面的没有经验的用户可能会遇到麻烦。

此外,用户必须了解很多加密标准和加密算法,才能成功使用该库。

总的来说,OpenSSL是一个强大的实用程序。

用于管理和创建各种项目的公钥、私钥和证书。

OpenSSL软件特色

OpenSSL分为四个主要部分:

Libcrypto这是提供各种加密原语实现的核心库。

此外,它还为libssl和libcrypto提供了一套支持服务。

和OCSP等协议的实现。

引擎和libcrypto的功能可以通过引擎API进行扩展。

通常,该引擎是一个在libcrypto中注册的动态可加载模块,并通过使用可用的钩子来提供加密算法来实现。

通常,这些是libcrypto已经提供的算法的替代实现(例如,实现算法的硬件加速)。

但是它们也可以包括未在默认OpenSSL中实现的算法

例如,GOST引擎实现了GOST算法系列。

一些引擎是作为OpenSSL发行版的一部分提供的,而其他引擎是由外部第三方(也是GOST)提供的。

libssl .该库依赖于libcrypto并实现了TLS和DTLS协议。

应用程序。这些应用程序是一组命令行工具。

这些工具使用基础的libssl和libcrypto组件来提供一组密码和其他功能,例如:

以及密钥参数生成和检查、证书生成和

SSL/TLS测试工具、ASN.1验证等。

OpenSSL软件优势

执行副总裁,EVP (Envelope) API级别为加密功能提供高级图像接口。

不考虑具体的实现绑定。

不建议直接通过EVP层以外的接口使用特定的密码算法。

EVP层还提供复杂的协作,例如签名和验证。

一些复杂的合作也作为电动汽车等级的工作提供(如HMAC-SHA256)。

EVP还允许以独立于算法的方式使用密码算法。

例如,EVP_DigestSign可以同时用于RSA和ECDSA算法。

不支持FIPS140。FIPS140它仅在OpenSSL1 . 0 . 2版本中提供

而OpenSSL-1.0.2比现有架构更早,与API或a不兼容。

OpenSSL安装步骤

1.用户可以点击本网站提供的下载路径下载相应的程序安装包。

2.只需使用解压功能打开压缩包,双击主程序进行安装,弹出程序安装界面。

3.同意上述协议的条款,继续安装应用程序,并单击同意按钮。

4.您可以根据自己的需要点击浏览按钮来更改应用程序的安装路径。

5.弹出如下界面,用户可以直接用鼠标点击下一步按钮。

6.桌面快捷键可以根据用户需求创建,也可以不创建。

7.现在准备安装主程序,单击安装按钮开始安装。

8.弹出应用安装进度条加载界面,只需等待加载完成即可。

9.根据提示,点击安装,弹出程序安装完成界面,然后点击完成按钮。

OpenSSL使用教程

组件视图

现有的体系结构是一个简单的4层层次结构,加密层位于底部。TLS层依赖于加密层,而应用程序依赖于TLS和加密层。

注意:图中组件的存在并不意味着该组件是公共的应用编程接口,也不意味着最终用户可以直接访问或使用该组件。

包装图纸

上述组件被打包成库(libcrypto和libssl)和相关的引擎接口,以及用于运行各种应用程序的“openssl”命令行可执行文件。如下图所示。

未来建筑

未来的架构具有以下特征:

核心服务构成了应用程序和提供商可用的构件。(例如O、X509、SEEM、ASN1等。).

提供者实现加密算法和支持服务。该提供程序具有以下一个或多个实现:

算法的密码原语,如如何加密/解密/签名/哈希等。

比如如何将私钥转换成PEM文件。序列化可以采用当前不支持的格式,也可以采用当前不支持的格式。

存放装载机的后端。OpenSSL目前有一个从文件中读取密钥、参数和其他项目的存储加载器。提供程序可以有一个加载器从另一个位置加载(如LDAP目录)。

提供商可以完全或使用其他提供商提供的服务或核心服务。例如,应用程序可以对硬件加速提供程序实现的算法使用加密原语,但可以使用其他提供程序的序列化服务将密钥导出为PKCS#12格式。

默认提供程序(包含当前OpenSSL加密算法实现的核心)将是“内置的”,但其他提供程序将能够在运行时动态加载。

传统的提供商模块将为较旧的算法(如DES、MDC2、MD2、Blowfish、CAST)提供加密实现。OMC将发布一项政策,说明如何以及何时将算法从默认提供商过渡到传统提供商。

体现OpenSSL FIPS加密模块的FIPS提供商将能够在运行时动态加载。

通过Core,您可以访问提供者(和其他提供者)向应用程序提供的服务。提供程序向核心提供方法。核心是一种机制,通过这种机制可以具体定位算法等东西。

Core将实现基于亏格的搜索函数来寻找算法。例如,它可能允许您找到fips = true或keysize = 128,constant_time = true的算法。具体细节将在未来的设计文件中确定。

协议的执行。例如DTLS的TLS。

未来的架构具有以下特征:

EVP层成为在提供者中实现的服务的紧凑包装。大多数调用都是直接进行的,几乎没有预处理。

将提供一个新的EVP应用编程接口,以便在内核中为任何给定的EVP调用找到算法的实现。

将以独立于实现的方式在核心库和提供者之间传递。

旧的API(如不通过EVP层的低级加密API)将被丢弃。请注意,非传统算法有传统的API(例如,AES是非传统算法,AES_encrypt是传统API)。

OpenSSL FIPS加密模块将作为动态加载的提供程序实现。可以(即只能依赖Core提供的系统运行时库和服务)。

随着时间的推移,其他接口也可能改变为使用Core(例如,考虑使用OSSL_STORE)。

引擎的使用将演变成提供者。再见了,发动机,你好。

组件视图

下图(粉色魔法)显示了OpenSSL准架构中概念组件的概述。

注意:图中组件的存在并不意味着该组件是公共的应用编程接口,也不意味着最终用户可以直接访问或使用该组件。

此处显示的组件如下:

应用:命令行应用,如ca、密码、cms、dgst等。

协议:根据标准协议提供端点之间的通信功能。

TLS协议:实施所有支持的TLS/DTLS协议和支持的基础设施,例如:

SSL: O用于使用TLS的通信

状态:TLS状态机

记录:TLS记录层

其他协议

加密消息语法标准的实现

OCSP:实施在线证书状态协议

时间协议的实现

支持服务:旨在支持协议代码实现的组件。

数据包:用于读取协议消息的内部组件。

Wpacket:用于编写协议消息的内部组件。

核心:这是一个基本组件,用于将服务请求(如加密)连接到服务提供者。它实现了提供者注册其服务和这些服务的种类的能力。它还提供给定服务必须满足的一组类别来定位服务的能力。例如,加密服务的类别可能包括aead、aes-gcm、fips、secure-bits = 128等。

默认提供者:实现一组在核心中注册的默认服务。

充分和系统的服务

低级实现:这是一组实际实现加密原语的组件。

FIPS提供商:实施一套经过FIPS验证并可由核心使用的服务。包括以下支持服务:

发布:发布

凯特:已知答案测试

完成

低级实现:这是一组实际实现加密原语的组件(以满足FIPS的要求)。

遗留提供者:提供将通过EVP API公开的旧算法的实现。

第三方提供者:不属于OpenSSL分发。第三方可以实现他们自己的提供者。

公共服务:这些构成了应用程序和提供者可以使用的构件。(例如O、X509、SEEM、ASN1等。).

旧的API。低级API。这里的老版本指的是API,不是算法本身。例如,AES不是传统算法,但它有传统的API(如AES_encrypt)。

包装图纸

上述概念组件视图中描述的各种组件在物理上封装如下:

用户可执行的应用程序。

供应用程序使用的库

核心的动态可加载模块。

这里显示的物理包有:

OpenSL可执行文件。命令行应用。

Libssl .它包含了与TLS和DTLS直接相关的所有内容。它的内容将与原样架构中的libssl大致相同。请注意,一些支持服务将被移动到libcrypto。

Libcrypto .该库包含以下组件:

核心服务的实现,如X509、ASN1、EVP、OSSL_STORE等。

核心

与顶级域名系统或DTLS无关的协议

协议支持服务(如数据包和数据包)

包含所有默认算法实现的默认提供程序。

Libcrypto的遗产。提供遗留的“低级”API。这些APIS的算法实现可以来自任何提供者。

FIPS模块它包含FIPS提供商,该提供商实现了一套经过FIPS验证并在Core注册的服务。

旧模块。这包含旧的提供程序。

OpenSSL使用说明

算法,有时称为密码算法,是执行一组操作(如加密或解密)的方法。我们这样使用这个术语,通常用它的名字来表示一种算法,比如“aes-128-cbc”。

算法的实现或者有时仅仅是实现是算法的具体实现。这主要是以一组函数的形式在代码中表达出来的。

它是一个CS密码算法验证系统。用于测试加密实现是否符合FIPS标准的工具。

是VP加密模块验证程序。验证密码以符合FIPS标准的过程。

EVP是由libcrypto实现的API系列,它使应用程序能够执行加密。EVP API是使用Core和Pvider组件实现的。

的核心是libcrypto组件,它使应用程序能够访问提供程序提供的算法的实现。

CSP是一个关键的安全参数。这包括任何未经授权的披露或修改(例如,私钥、密码、个人识别码等)。)这可能会损害模块的安全性。

显式抽取是一种寻找算法实现的方法,其中应用程序进行显式调用来寻找实现并提供搜索条件。

FIPS是联邦处理标准。这是一套明确的标准。特别是,FIPS标准140-2适用于加密软件。

FIPS模块A是加密算法的实现,已被VP证明符合FIPS标准。在OpenSSL中,FIPS模块作为提供程序实现,并作为动态可加载模块提供。

隐式提取是一种查找算法实现的方法,其中应用程序不显式调用定位实现,因此使用默认的搜索条件。

这是为了在加载FIPS模块时自动运行测试。模块会对自身进行校验和检查,并验证其没有被意外更改。

KAS是关键的协议计划。两个通信者可以协商他们之间共享密钥的方法。

KAT是一个已知的答案测试。一组测试,用于执行FIPS模块的运行状态。

Libcrypto是一个由OpenSSL实现的共享库,可以为应用程序提供对各种密码相关功能的访问。

Libssl是由OpenSSL实现的共享库,它使应用程序能够以客户端或的形式创建SSL/TLS连接。

库上下文是保存库的“全局”数据的不透明结构。

是要对数据执行的一种功能,如计算汇总、加密、解密等。算法可以提供一个或多个操作。例如,RSA提供非对称加密、非对称解密、签名、验证等。

参数是一组独立于实现的键值对,用于在核心和提供者之间传输对象数据。例如,它们可以用于传输私钥数据。

开机自检是指在安装、开机(即每次为应用程序加载FIPS模块时)或按需运行的FIPS模块开机自检(也称为开机自检)。这些测试包括完整性和KAT。如果KAT在安装过程中运行成功,则无需在通电时再次运行,但它将始终是完整的。

提供者使用亏格来描述由他们的算法实现的函数。它们也在应用程序查询中用来查找特定的实现。

提供者是提供一个或多个算法实现的单元。

提供程序模块是动态可加载模块形式的提供程序。

建设

该体系结构应具有以下特征:

公共服务构成了应用程序和提供者可以使用的构件。(如O、X509、SEEM、ASN.1等。).

提供者实现加密算法和支持服务。一个算法可以包含多个任务(例如,RSA可以有加密、解密、签名、验证等。).同样,动作(如“符号”)可以通过各种算法(如RSA和ECDSA)来实现。提供程序实现了算法的加密原语。此版本将包括以下提供商:

默认值,包含当前非常规OpenSSL加密算法;这将是内置的(也就是libcrypto的一部分)

旧版本,以及旧算法(如DES、MDC2、MD2、Blowfish、CAST)的实现。

引擎,包括为旧版本OpenSSL设计的引擎和新的基于提供程序的方法之间的兼容层。

FIPS,实现OpenSSL FIPS加密模块3.0;可以在运行时动态加载。

通过核心,您可以将提供者提供的工作访问给应用程序(和其他提供者)。核心是一种机制,通过它可以定位的具体实现。

协议的执行。例如DTLS的TLS。

本文档中有许多对“EVP API”的引用。这是指“应用层”的工作,如公钥签名、生成摘要等。功能包括EVP_DigestSign、EVP_Digest、EVP_MAC_init等。EVP API还封装了用于执行这些服务的密码对象,如EVP_PKEY、EVP_CIPHER、EVP_MD、EVP_MAC等。提供者为后一组实现后端功能。根据应用程序的要求,这些对象的实例可以隐式或显式绑定到提供程序。这将在下面的提供商设计中详细讨论。

该架构具有以下特征:

EVP层是在提供者中实现的工作的紧凑封装。大多数调用都是直接进行的,几乎没有预处理。

将提供一个新的EVP API来影响核心如何为任何给定的EVP调用选择(或找到)实现。

将以独立于实现的方式在libcrypto和提供程序之间传递。

旧的API(如不通过EVP层的低级加密API)将被丢弃。请注意,非传统算法有一些传统的API(例如,AES不是传统算法,而是AES_encrypt传统API)。

OpenSSL FIPS加密模块将作为动态加载的提供程序实现。可以(即只能依赖Core提供的系统运行时库和服务)。

组件视图

下图显示了OpenSSL架构中概念组件的概述。请注意,图中组件的存在并不意味着该组件是公共的应用编程接口或由最终用户直接访问或使用。

这里显示的新组件(在以前的体系结构中不存在)如下:

核心:这是将请求(如加密)连接到作业提供者的基本组件。它提供了实现定位算法的能力,算法的实现提供了实现必须具备的一组属的条件下的指定工作。例如,加密算法的种类可以至少包括“fip”。

默认提供程序:实现一组默认算法。

FIPS·普维德:实现一套已经被FIPS验证过的算法,可以被Core使用。包括以下支持服务:

发布:发布

凯特:已知答案测试

完成

低级实现:这是一组实际实现加密原语的组件(以满足FIPS的要求)。

引擎提供者:当通过核心调用时,允许现有引擎工作的垫片。

遗留提供者:提供将通过EVP API公开的旧算法的实现。

第三方提供商:最后,第三方可以提供自己的提供商。像任何其他提供商一样,第三方提供商也实现了一组算法,应用程序和其他提供商可以通过核心访问这些算法。

包装图纸

上述概念组件视图中描述的各种组件在物理上封装如下:

用户可执行的应用程序。

供应用程序使用的库

核心的动态可加载模块。

/[/k0/

哪些动态可加载模块已注册、已使用或可用,并且可以在运行时配置。

下图以物理包的形式描述了体系结构。

此版本中的新物理包包括:

FIPS模块它包含FIPS提供商,该提供商实现了一套经过FIPS验证的算法,并可由Core使用。FIPS提供商是OpenSSL FIPS加密模块3.0。

我们不会试图阻止用户犯错,但我们会记住典型的用户用法和“安全性”。默认情况下,将构建和安装FIPS提供商。

除非提供覆盖选项,否则我们将能够实现安全性,以检测用户是否从发布版本开始以受FIPS影响的方式修改了源代码,并阻止FIPS提供程序的构建(基于最大努力)。

我们需要确保有一个机制,使最终用户能够确定他们对FIPS模块的使用是否在正式核查的允许范围内。

验证时,FIPS模块的版本将与基本OpenSSL版本号保持一致。并非所有OpenSSL版本都需要更新FIPS模块。因此,当新版本的FIPS模块发布时,其版本号可能会高于以前的版本。

旧模块。这包括传统算法的实现。

ENGINEER将使用提供者填充器来构建,以便在向某些函数传递ENGINEER指针时使它们正常运行,并在充当默认实现时充当提供者。3.0.0之前版本OpenSSL的引擎需要重新编译才能与OpenSSL 3.0.0一起使用。引擎应用编程接口中的细节更进一步。

和核心提供商设计。

下图显示了与核心和提供者设计相关的交互。主要有四个组件:用户应用程序、EVP组件、核心和加密提供商。(可能有多个提供者,但它们在这里无关紧要)。

核心具有以下特征:

它支持提供商发现、加载、初始化和卸载。

它支持基于亏格的算法查询。

实现了算法查询和实现细节的缓存。

它运行在包含全局属、搜索缓存和调度表等数据的库上下文中。

该提供商具有以下特征:

它们提供对特定算法实现的访问。

他们将算法实现与一组定义明确的类别相关联。

它们支持以独立于实现的方式传递参数。

它们可以在任何时间点加载。

他们有一个著名的模块入口点。

下一节描述应用程序用来加载提供程序、获取算法实现并使用它的过程。此外,本节详细描述了算法、属和参数的命名方法。如何处理算法查询;如何注册和初始化算法;以及如何加载提供程序。

为了让应用程序使用算法,它必须首先通过算法查询“获得”它的实现。我们的设计目标是支持显式(预)采集算法和正在使用的算法采集。默认情况下,我们在使用算法时要抓取算法(例如,使用EVP_sha256()),以便在“init”函数期间抓取算法并将其绑定到上下文对象(通常称为ctx)。显式提取选项将通过新的API调用(如EVP_MD_fetch())来实现。

上图显示了显式提取方法。步骤如下:

需要加载每个提供程序。这将隐式发生(默认提供程序或由配置指定),也可能由应用程序显式请求。包括动态共享对象的加载(根据需要)和初始化。

Core会将模块物理加载到内存中(如果默认提供程序已经在内存中,则不需要)。

Core调用提供程序的入口点来初始化提供程序。

在入口点函数中,提供程序用从核心传入的值初始化一些提供程序变量。如果初始化成功,由提供者算法实现的查询回调将返回给核心。

用户应用程序通过调用获取例程来请求算法。

通过EVP搜索,将全局亏格与特定调用者和算法的身份相结合,找到相应的算法实现,并创建和库句柄(如返回EVP_MD、EVP_CIPHER)给应用。

第一次在内部缓存中搜索实现表。

如果第一次搜索失败,则通过询问提供者所查询的属的算法是否已经实现来执行第二次搜索。在此搜索之后,除非提供者选择不使用缓存,否则结果数据将在第一次搜索时缓存(2.1.1)。例如,PKCS#11提供商可能会选择退出缓存,因为随着时间的推移,其算法可能会变得可用或不可用。

,用户的应用程序通过EVP的API(例如,EVP_DigestInit()、EVP_DigestUpdate()、EVP_DigestFinal()等)使用算法。).

函数指针将被调用,并最终被提供给提供程序中的实现,以执行所请求的加密算法。

对于现有的EVP_{algothm}()函数(如EVP_sha256(),等。),大部分内容保持不变。特别是,当EVP_{algothm}()调用返回时,不会执行提取调用,但当上下文对象(如EVP_MD_CTX)绑定到相应的EVP初始化函数时,提取调用将隐式发生。具体来说,步骤2.1发生在步骤3.1之前。这叫做“隐式抽取”。隐式提取总是在默认的库上下文中运行(参见下面的库上下文)。

赋值表是一个成对的列表——其中函数id是OpenSSL公开定义和已知的——以及一组可用于识别每个特定实现的属。Core可以查询成员资格,并为适用的操作找到相应的时间表。此方法允许提供程序灵活地将引用传递给OpenSSL代码的函数,该代码可用于动态创建其方法结构。

提供程序可以在任何时间点加载。可以在任何时间点请求卸载。由应用程序决定卸载时当前是否没有使用或引用该提供程序。如果您尝试使用不再可用的实现,将返回一个错误。

目前,应用程序可以做出的关于获得EVP_{algothm}()而不是新的获取方法的好处的假设是:

常量指针

不需要被应用程序释放。

可以安全使用算法是相同的(即将特定指针与EVP_CIPHER、EVP_MD等进行比较。)

直接对应用程序使用显式提取(而不是使用现有的EVP_{algothm}()函数)的语义会有所不同:

非常数指针

需要由应用程序发布。

指针不能安全地相互比较(更多信息见下一段)

将会有一个新的API来测试可以显式提取的对象和静态变量对象的相等性。这些应用编程接口将使仅比较算法识别或特定算法实现成为可能。

图书馆背景

上下文是包含库的“全局”数据的不透明结构。OpenSSL将提供这样的结构,仅限于Core必须保留的全局数据。未来的扩展可能包括其他现有的全球数据。应用程序将能够创建和销毁一个或多个库上下文,所有后续与核心的交互都将在这些上下文中进行。如果应用程序没有创建和提供自己的库上下文,将使用内部默认库上下文。

OPENSSL _ CTX * OPENSSL _ CTX _新();

void OPENSSL _ CTX _ free(OPENSSL _ CTX * CTX);

您可以将库上下文传递给显式提取函数。如果将空值传递给它们,将使用内部默认上下文。

可以分配多个库上下文,这意味着任何提供程序模块都可以多次初始化。这样,应用程序可以直接与libcrypto链接,加载它感兴趣的提供程序,或者使用它自己的提供程序模块轻松地与其他库链接。

收起介绍展开介绍
  • 安卓合集
  • 软件合集
  • 浏览器
  • 电脑管家
  • 安卓游戏
更多 >> 安卓合集安卓合计

热门推荐

装机必备软件