写点什么

针对 HTTP 数字签名协议和 API 的提议

  • 2011-02-21
  • 本文字数:1118 字

    阅读完需:约 4 分钟

数字签名在遭遇十年多的冷遇后重新回到了我们的视野。这次回归归因于复合应用的出现,复合应用在移动领域中又称为聚合应用。复合应用是一场架构的盛宴,组成复合应用的部分和服务分属不同拥有者的不同域,由不同的团队开发,有着不同的发布周期,使用不同的技术,具有不同的伸缩性、可用性或安全模型。

信任是复合应用的核心问题之一。从身份识别和访问权限的角度来说,所有协同工作的部分和服务都需要彼此信任,以便交付共同的解决方案,这些部分和服务也经常会组成涉及范围颇广的解决方案。鉴于此,HTTP 的核心问题之一就是,HTTP 的认证机制会假定一个由请求处理器验证的单一身份(一个用户或一台服务器)。这样,建立请求涉及各方的身份识别就是HTTP 最大的困难,比如使用应用胖/ 瘦客户端的用户、构建应用的某开发人员。随着大型“独立供应商”将他们受信任的服务逐渐暴露给几乎所有的开发人员,这种情况变得越来越普遍。问题继而成为,HTTP 该如何附带用户、客户端、应用(类型)或应用开发人员的身份识别信息?

Bill Burke提议对 HTTP 协议进行扩展,以支持数字签名和 RESTEasy 里对应的 API。他解释道:

签名确实是 OAuth 协议的一部分,但我曾经希望与认证互相垂直的某些内容能作为客户端、而服务器可以不用 OAuth 进行认证。

我们希望协议能具备以下目标和功能: - 简单的头信息。所有的签名信息都存储在 HTTP 请求或响应头中。这通常能简化框架、客户端、服务器代码对签名的验证。

  • 过期。我们希望能让签名过期。
  • 签名者的信息。我们想知道是谁对消息进行了签名。这可以让接收者在内部注册表里查找验证键值。
  • 你要是不关心签名信息,可以忽略它。
  • 可以将消息和请求转发到多个端点或接收者。
  • 允许多个不同的 URL 发布相同的签名消息。
  • 这并不意味着要去取代能保证消息完整性的 OAuth 或 Digest 协议。

基于 DSig 的协议有个很主要的优势——断定身份的同时还能创建消息内容的防篡改信封,这两个功能通常都要求同时出现。

Bill 建议创建一个特定的 HTTP 头 Content-Signature,示例如下:

复制代码
Content-Signature: type=redhat;
values=signer:expiration;
headers=Content-Type:Date;
signer=bill;
expiration="Sunday, 06-Nov-11 08:49:37 GMT";
signature=0f341265ffa32211333f6ab2d1

真正的问题与其说是如何采用包含数字签名的 HTTP 协议(这仅仅是个“消息信封”的问题),还不如说是“业界该如何解决阻碍 DSig 推广的问题”,特别是互操作性问题。你有没有发现对HTTP 里的认证和防篡改机制有了越来越多的需求?你找到什么解决方案了么?

查看英文原文: A Proposal for an HTTP Digital Signature Protocol and API

2011-02-21 12:283285
用户头像

发布了 151 篇内容, 共 69.5 次阅读, 收获喜欢 18 次。

关注

评论

发布
暂无评论
发现更多内容

TDS构建数据湖、数据仓库应用介绍

星环科技

Java 开发中常见的 10 个错误

编程江湖

JAVA开发 java编程

极客时间算法训练营 Week03

jjn0703

Git进阶(九):Git 命令实现提交指定文件

No Silver Bullet

git 12月日更

大厂算法面试之leetcode精讲21.树

全栈潇晨

算法 LeetCode

让设计如语言一般自然

鲸品堂

设计 通信 运营商

陈齐彦 Roby:开源也许是中国未来IT行业最重要的统战对象 I OpenTEKr 大话开源 Vol.1

OpenTEKr

大话开源

Linux系统学习《Linux一学就会》Linux文件系统结构

侠盗安全

Linux linux运维 运维工程师 云计算架构师

Flutter 自定义 ACERaido 单选框 & ACECheckBox 复选框

阿策小和尚

28天写作 内容合集 签约计划第二季 12月日更

学习心得 - 架构训练营 - 毕业设计项目

Fm

quarkus微服务+istio+k8s云原生devops持续集成演示( Tekton(ci/cd) + quarkus + harbor + Nexus)

weir威尔

Kubernetes istio 持续集成 Tekton Quarkus

爱奇艺基础数据平台演进

爱奇艺技术产品团队

架构训练营 模块五 作业

dog_brother

「架构实战营」

大厂算法面试之leetcode精讲22.字典树

全栈潇晨

LeetCode 算法面试

异构组网如何解决共享资源冲突?|HDC2021技术分论坛

HarmonyOS开发者

HarmonyOS

聊聊工作界面

Justin

工作效率 沟通 28天写作 沟通界面

模块七作业

bob

「架构实战营」

分布式系统中,权限设计实践

架构 分布式 权限设计

react源码解析15.scheduler&Lane

buchila11

React React Hooks

网络协议之:还在用HTTP代理?弱爆了!快试试SOCKS5

程序那些事

网络协议 HTTP 程序那些事 12月日更 SOCKS5

Java 动态代理之 InvocationHandler 最简单的入门教程

汪子熙

Java 动态代理 28天写作 SAP 12月日更

Kotlin 初学者教程【Kotlin专题1】

坚果

kotlin 28天写作 12月日更

深度解读|Spark 中 CodeGen 与向量化技术的研究

Kyligence

给弟弟的信第4封|你需要尽早知道的理财知识

大菠萝

28天写作

全面适配DPDK 20.11,DPVS发布v1.9.0版本

爱奇艺技术产品团队

瞰源 | 当我们谈论开源时,我们在谈论什么?

OpenTEKr

狄安瞰源

react源码解析16.concurrent模式

buchila11

React React Hooks

[Pulsar] 消息从Broker到Consumer的历程

Zike Yang

Apache Pulsar 12月日更

如何查看Java进程和线程

李子捌

28天写作 JAV A 12月日更

说了半天跨平台,今儿咱就来跨跨!(上)

为自己带盐

Docker dotnet 28天写作 签约计划第二季 12月日更

node服务端渲染

编程江湖

node.js 大前端

针对HTTP数字签名协议和API的提议_REST_Jean-Jacques Dubray_InfoQ精选文章