写点什么

针对 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:282980
用户头像

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

关注

评论

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

vivo营销自动化技术解密|开篇

vivo互联网技术

Java 后端 软件架构设计 电商营销 平台搭建

「TEG+系列」破局者 - 腾讯金融级数据库TDSQL

腾讯云数据库

数据库 tdsql

明道云在工程项目行业中的应用场景

明道云

开放原子全球开发者峰会「开源治理」论坛预告(更新中)

开放原子开源基金会

云资源生命周期管理怎么做?用什么软件好?

行云管家

云计算 云服务 云资源 生命周期管理

Vue进阶(幺幺零):ant-design-vue

No Silver Bullet

Vue 9月日更

Java基础知识查漏补缺

IT蜗壳-Tango

9月日更

【LeetCode】下一个更大元素 IJava题解

Albert

算法 LeetCode 9月日更

只需3步,快来用AI预测你爱的球队下一场能赢吗?

华为云开发者联盟

机器学习 AI 华为云 modelarts 球赛

数字化转型的终局:赛博朋克?社会主义?

龙归科技

数字化 软件系统 软件经济 赛博朋克

TDSQL inside之路

腾讯云数据库

数据库 tdsql

简化IT运维工作,就要学会使用自动化运维工具!

行云管家

运维 云服务 IT运维

TDSQL 全时态数据库系统 -- 典型案例

腾讯云数据库

数据库 tdsql

华为云与北大BIOPIC联合发布蛋白质多序列比对开源数据集

华为云开发者联盟

AI 华为云 蛋白质 多序列 开源数据集

必示科技加入云计算标准和开源推进委员会,助力AIOps行业标准建设

BizSeer必示科技

AIOPS 智能运维 必示科技

Tensorflow保存神经网络参数有妙招:Saver和Restore

华为云开发者联盟

神经网络 tensorflow 变量 Saver Restore

酷家乐 UI 自动化测试平台实践

CPPAlien

测试框架 selenium BDD UI测试 活文档

小游戏如何应对大流量?Shopee Shake 的大促实践

Shopee技术团队

后端 高并发 游戏 电商大促 Shopee

统信软件张磊:国产操作系统如何获得大众市场的认可?

Jessie

开源 最佳实践 新基建 企业动态 文化 & 方法

对话华为云专家,摆脱无意义“内卷”

华为云开发者联盟

面试 华为云 就业 内卷

大数据包围你我,技术人如何走知识分享之路

华为云开发者联盟

大数据 开发者 技术人 华为云 知识分享

常见的安全应用识别技术有哪些?

郑州埃文科技

快速提升Golang编程能力:那就一起用Go做项目吧

博文视点Broadview

MYSQL离线迁移至分布式TDSQL

腾讯云数据库

数据库 tdsql

GraphQL 快速入门【2】环境设置

码语者

Rest graphql

安全系列之:跨域资源共享CORS

程序那些事

Java HTTP CORS 程序那些事 跨域资源共享

纵观移动云对象存储发展历程,也少不了 Apache APISIX 的能力加持

API7.ai 技术团队

Apache api 网关 APISIX 企业案例 移动云

Android正确的保活方案,不要掉进保活需求死循环陷进

Halifax

android 大前端 kotlin 移动开发 语言 & 开发

鲲鹏展翅|SphereEx 获华为鲲鹏技术认证

SphereEx

华为云GaussDB:发挥生态优势,培养应用型DBA

华为云开发者联盟

数据库 开源 GaussDB 云数据库 dba

TDSQL是什么:腾讯如何打造一款金融级分布式数据库

腾讯云数据库

数据库 tdsql

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