我必须执行https://datatracker.ietf.org/doc/html/draft-cavage-http



我是密码学的新手,我想实现https://datatracker.ietf.org/doc/html/draft-cavage-http-signatures-10到我的spring-boot应用程序(客户端的要求(。客户要求我实现一个类似这样的头,

Authorization: Signature keyId="Test",algorithm="rsa-sha256",
signature="SjWJWbWN7i0wzBvtPl8rbASWz5xQW6mcJmn+ibttBqtifLN7Sazz
6m79cNfwwb8DMJ5cou1s7uEGKKCs+FLEEaDV5lp7q25WqS+lavg7T8hc0GppauB
6hbgEKTwblDHYGEtbGmtdHgVCk9SuS13F0hZ8FD0k/5OxEPXe5WozsbM="

我不知道基于此规范的身份验证签名生成。任何人都可以帮助我以简单的方式理解这些术语

  1. 什么是KeyId&它的用法
  2. 什么是签名值以及如何生成它

我不知道如何帮助我理解这个

您在这里看到的是另一层保护,以防有人制动TLS。文件是这样描述的:

对于高安全性事务,在HTTP标头允许客户端确保即使传输信道已被破坏,消息的内容已没有受到损害。

因此,您真正想做的是使用某种消息身份验证码(MAC(,这样即使活动攻击者能够操纵发送的消息,MAC也不会匹配,整个消息也会被服务器拒绝。

我看过文档,实现这些东西不是一件小事。但看起来已经有一些库可以帮助你实现这一点。谷歌首次点击:

  • https://github.com/tomitribe/http-signatures-java
  • https://github.com/joyent/java-http-signature

关于密钥ID:

keyId字段是一个不透明字符串,服务器可以用于查找验证签名所需的组件。它可以是SSH密钥指纹、机器可读密钥数据的URL,LDAP DN等。密钥的管理和keyId的分配结束属于本文件的范围。

简而言之,你可以决定它将是什么。它需要是允许你识别主题并能够首先验证签名的东西。

相关内容

最新更新