2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

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

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

关注

评论

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

[译] 改善 Android Studio 的构建速度,掌握这6大技能体系

android 程序员 移动开发

{Android}一行代码起飞,2021年百度Android面试真题

android 程序员 移动开发

“我是培训 + 外包出来的,先收藏了

android 程序员 移动开发

「安卓高级架构师」教你一种更清晰的Android架构,android原生开发技术

android 程序员 移动开发

【 Flutter 手势探索】我的第二本小册来了,嵌入式音视频方向

android 程序员 移动开发

[译] 充分利用多摄像头 API,30分钟轻松入门flutter

android 程序员 移动开发

[译] 全新 Android 注入器 _ Dagger 2(三),android开发架构方案

android 程序员 移动开发

{Android}面对最近的话题,kotlin库

android 程序员 移动开发

“我是培训 + 外包出来的(1),flutter与android混合开发

android 程序员 移动开发

「Android高工面试之旅」疫情失业裸面失败后,深入分析

android 程序员 移动开发

_Android 项目中 shape 标签的整理和思考,面试官不讲武德

android 程序员 移动开发

[译] Android 的 Java 9,10,11,作为程序员一定不要仅仅追求物质

android 程序员 移动开发

[译] Plaid 应用迁移到 AndroidX 的实践经历,安卓卡顿优化方法

android 程序员 移动开发

会议管理系统减少大中型企业的会议矛盾

低代码小观

企业管理 企业应用 管理系统 管理工具 会议管理

[译][2(1),android开发计算器源码

android 程序员 移动开发

6.0反序列化漏洞分析

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

[译] Android 的多摄像头支持,flutter登录

android 程序员 移动开发

“阿里钉钉“Android 岗无缘二面,有幸内推进入“美团“送外

android 程序员 移动开发

「大厂Android面试解析」20道面试灵魂拷问题,论程序员成长的正确姿势

android 程序员 移动开发

[译]内存泄露的八种花样,快速从入门到精通

android 程序员 移动开发

“吹Kotlin协程的,可能吹错了,谈谈我认为的高级Android开发到底应该是怎样的

android 程序员 移动开发

Logback基本使用

平凡人生

[译] 改善 Android Studio 的构建速度(1),美团移动端开发工程师

android 程序员 移动开发

[译][2,安卓应用开发项目

android 程序员 移动开发

_ Dart 里的类型系统,android自定义控件开发入门与实战

android 程序员 移动开发

“新常态”下的Android程序员要面对哪些压力,终于有人把安卓程序员必学知识点全整理出来了

android 程序员 移动开发

阿里云EMAS发布套餐订阅云服务

移动研发平台EMAS

[Android-Gradle]-搞定Groovy闭包这一篇就够了,小程序开发步骤

android 程序员 移动开发

可视化全埋点系列文章之元素标识篇

神策技术社区

可视化 全埋点

[译]掌握Kotlin中的标准库函数_ run、with、let,搞懂开源框架设计思想真的这么重要吗

android 程序员 移动开发

“终于懂了” 系列,android面试简历模板

android 程序员 移动开发

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