受保护:签名

Unlock business potential through effective first dataset management solutions.
Post Reply
roseline371274
Posts: 932
Joined: Mon Dec 23, 2024 7:00 am

受保护:签名

Post by roseline371274 »

目前,开发领域的热门话题之一是零信任。这是一个很容易解释的话题:永不相信,始终要核实。在做任何事情(或所有事情)之前,请验证用户/数据/等是否真实且正确。例如,验证用户是否被允许查看某些数据。另一个例子是验证您从第三方 API 收到的数据是否确实来自该第三方 API。其中一种方法就是使用签名。

在我的一个最新项目中,我必须将加密消息语法(CMS) 标准与 Java (Spring-Boot) RESTful 应用程序结合使用。 API 的所有响应都必须使用符合 CMS 标准的 X.509 证书进行签名,以便接收方可以确信地证实该消息来自我 喀麦隆 数字数据 们的部门,因此是有效信息。

在这篇文章中,我将向您展示签署响应是多么容易,以及如何使用 Java + bouncycastle验证签名。

Maven坐标:


实际签名的创建相对容易:


现在,我尝试做的第一件事是通过在我的类的构造函数中创建 DataGenerator 来优化代码,以最大限度地提高重用率和运行时性能。然而,经过一些测试后,我发现我的签名变得无效,甚至我的代码由于空指针而崩溃!快速搜索证实了我的怀疑,CMSSignedDataGenerator 不是线程安全的,我必须为每个请求创建一个新的。这意味着您可以在对象中“缓存”的唯一内容是证书本身(您不必在每次调用时都从磁盘获取它们)。

因此,当此代码运行时,您将收到一条具有 base64 编码的有效负载和 base64 编码的签名的消息。

验证签名
现在我们知道如何制作签名,我们希望能够验证该签名。为此,我们首先要查看签名中的内容。在这篇文章中您可以找到 CMS 以及签名内容的完整解释。
Post Reply