服务器 > 网络安全 > 企业安全

OpenSSL 3.0.0 设计(一)|介绍、术语与架构

170人参与 2024-08-04 企业安全

译|王祖熙(花名:金九 )

蚂蚁集团开发工程师
负责国产化密码库 tongsuo 的开发和维护**专注于密码学、高性能网络、网络安全等领域

本文 4830 字 阅读 13 分钟

本文翻译 openssl 官网文档:https://www.openssl.org/docs/openssl300design.html

tongsuo-8.4.0 是基于 openssl-3.0.3 开发,所以本文对 tongsuo 开发者同样适用,内容丰富,值得一读!

由于文章篇幅较长,今天发布的是介绍术语架构三部分内容,后续内容将随每周推送完整发布,请持续关注铜锁公众号。

1►介绍

这份文件概述了 openssl 3.0 的设计,它是在 1.1.1 版本之后的又一个版本。阅读本文需要您已经熟悉名为“openssl 战略架构”的文件,并具备对 openssl 1.1.x 的工作知识。

openssl 3.0 版本对大多数现有应用程序影响很小;几乎所有性能良好的应用程序都只需重新编译即可。

openssl 3.0 中的大部分改动都是内部架构重组,以促进建立一个可长期支持的加密框架,从而更好地将算法实现与算法 api 分离开来。这些结构性改动还有助于提高 openssl fips 密码模块 3.0 的可维护性。

在 openssl 3.0 中,目前标记为弃用 (deprecated) 的 api 不会被移除。

在 openssl 3.0 中,许多额外的低级函数将被标记为弃用 (deprecated) 的 api。

openssl 3.0 将同时支持应用程序具有处于 fips 模式 (使用 openssl fips 密码模块 3.0) 和非 fips 模式的 tls 连接。

有关 3.0 版本的更多最新信息,请参考 https://www.openssl.org/docs 上的链接。

2►术语

以下术语按字母顺序在本文中使用,简要定义如下:

3►架构

架构应具备以下特性:

本文档中有许多关于“evp api”的引用。这指的是“应用级别”的操作,例如公钥签名、生成摘要等。这些函数包括 evp_digestsign、evp_digest、evp_mac_init 等。evp api 还封装了执行这些服务所使用的密码对象,例如 evp_pkey、evp_cipher、evp_md、evp_mac 等等。provider 为后者集合实现了后端功能。这些对象的实例可以根据应用程序的需求隐式或显式地绑定到 provider 上。下面的 provider 设计部分将详细讨论。

架构具有以下特点:

概念组件视图

openssl 架构中的概念组件概述如下图所示。请注意,图中组件的存在并不意味着该组件是公共 api 或用于直接访问或使用的最终用户的组件。

新的组件 (在先前架构中不存在) 如下所示:

打包视图

上述概念组件视图中描述的各个组件在物理上打包为:

openssl 3.0 将提供多种不同的打包选项 (例如一个名为 libcrypto 的单一库,包含除 fips provider 之外的所有内容,以及所有 provider 作为单独的可动态加载模块)

哪些可动态加载模块被注册、使用或可用可以在运行时进行配置,以下图示根据物理打包描述了架构:

本版本引入的物理打包如下:

最初的计划是使用 provider 的封装来构建引擎 (engines) ,以便在将 engine 指针传递给某些函数时,使其像往常一样工作,并在充当默认实现时作为 provider。在开发过程中的调查显示,这种方法存在问题的边缘情况。目前的解决方法是,当进行 evp 调用时,目前存在两个代码路径。对于引擎 (engines) 的支持,使用“遗留密钥”的旧代码。长期计划是从代码库中删除引擎 (engines) 和遗留代码路径。一旦删除引擎 (engines) ,任何作为引擎 (engines) 编写的内容都需要重新编写为 provider。

下周我们将带来 "core 和 provider 设计" 部分内容,等不及的小伙伴,可以查看铜锁语雀中的全篇文档哦:https://www.yuque.com/tsdoc/ts/openssl-300-design#ap9lt

铜锁/tongsuo star 一下✨: https://github.com/tongsuo-project/tongsuo

(0)
打赏 微信扫一扫 微信扫一扫

您想发表意见!!点此发布评论

推荐阅读

OSCS开源安全周报第 56 期:Apache Airflow Spark Provider 任意文件读取漏洞

08-04

GOTC 2023 “开源安全”专题论坛议程曝光

08-04

恶意爬虫防护 | 京东云技术团队

08-04

公开比拼硬实力,华为众多议题入选 GOTC 2023

08-04

记一次“有手就行”的从SQL注入到文件上传Getshell的简单过程

08-04

倒数计时,全球开源技术峰会 GOTC 要来了

08-04

猜你喜欢

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论