写点什么

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

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

关注

评论

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

解锁淘宝商品详情新境界:利用item_get API打造个性化智能购物之旅

代码忍者

淘宝API接口

跨界融合:人工智能与区块链如何重新定义数据安全?

天津汇柏科技有限公司

区块链 AI 人工智能

一天搭建开发游戏直播软件网站平台的方法

软件开发-梦幻运营部

Blackmagic Disk Speed Test for Mac:专业硬盘测速,性能一目了然

理理

电子书制作软件Jutoh for Mac激活版

iMac小白

设计模式-策略模式

京东科技开发者

Docker 网络模式实战:从 Bridge 到 Host 再到 Container 的配置与应用

测吧(北京)科技有限公司

测试

年度重磅 |《2024华为开发者宝典》免费下载,多维度解读华为根生态技术

华为云开发者联盟

人工智能 鸿蒙 华为云 鲲鹏

手把手教你为Docker Compose启动的Milvus部署监控

Zilliz

Grafana Milvus Promethues 监控部署

阿里巴巴1688 API接口深度解析:商品详情获取与按图搜索商品(拍立淘)实用指南

代码忍者

1688API接口

Proxyman Premium for Mac(网络调试和分析工具)v5.12.2激活版

理理

Reader for mac(快速且简约的 PDF 查看器)v5.0激活版

理理

OpenAI故障复盘 - 阿里云容器服务与可观测产品如何保障大规模K8s集群稳定性

阿里技术

阿里云 容器 最佳实践 k8s openai

Milvus×全诊通:从导诊到智能超声,如何将人效比翻倍

Zilliz

医疗行业 向量检索 多模态 Milvus rag

分布式 UI 自动化测试环境部署实践:使用 Docker 快速构建测试平台

测吧(北京)科技有限公司

测试

选择合适的虚拟化技术:Docker vs 虚拟机的使用场景分析

测吧(北京)科技有限公司

测试

短视频APP的开发难点

北京木奇移动技术有限公司

软件外包公司 APP外包公司 短视频APP

OpenSPG/KAG v0.6 发布,兼顾事实推理与摘要生成,支持用户自定义 Schema2025

可信AI进展

知识图谱 大模型 rag

血泪教训,8 个线程池最佳实践和坑

采菊东篱下

编程 计算机

PDF Reader Pro for mac(全能pdf编辑阅读软件)v4.7.5直装激活版

理理

Docker 网络模式实战:从 Bridge 到 Host 再到 Container 的配置与应用

测吧(北京)科技有限公司

测试

说出来你可能不信!我靠着这套Java面试笔记成功拿到了5个大厂offer

采菊东篱下

编程 java面试

「零售数据通道」数据炼金术:千亿级流量资产湖仓架构转型

京东科技开发者

什么时候选择 Docker,什么时候选择虚拟机?

测吧(北京)科技有限公司

测试

Docker 容器网络模式详解:Bridge、Host 与 Container 的区别

测吧(北京)科技有限公司

测试

zMaticoo ADX网关系统多云架构解决方案入选CSDN年度榜单

新消费日报

2025-01-08:找到按位或最接近 K 的子数组。用go语言,给定一个数组 nums 和一个整数 k,你的目标是找到一个子数组,使得该子数组中所有元素进行按位或运算后的结果与 k 之间的绝对差值尽

福大大架构师每日一题

福大大架构师每日一题

全方位赋能创意工作流程:西部数据推出全新消费级存储解决方案

Geek_2d6073

iMazing和iTunes功能差异点 iMazing比iTunes好用在哪里?

阿拉灯神丁

imazing iTunes 苹果手机备份 iOS 设备数据清除软件

还有谁不会如此优雅的状态机模式?

架构师之道

编程 计算机

Visual Studio Code:全能代码编辑器,高效编程新选择

理理

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