写点什么

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

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

关注

评论

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

Android Binder 的主要内容概述以及特性和原理,Android开发前景怎么样

android 程序员 移动开发

android LifeCycle-简单使用和详细原理解析,2021大厂Android面试经历

android 程序员 移动开发

Android 12体验!新的黑夜模式、影音格式,详解系列文章

android 程序员 移动开发

Android 6,android网络开发技术实战详解

android 程序员 移动开发

android activity Intent 传值 传对象(1),头条三面技术四面HR

android 程序员 移动开发

Android Dialog 的一些使用和优化心得(DialogFragment的使用和优化)

android 程序员 移动开发

Android Framework学习笔记(七)AMS全家桶,剖析Android开发未来的出路在哪里

android 程序员 移动开发

Android Glide 3,flutter小程序

android 程序员 移动开发

android Jetpack Navigation组件——堆栈操作和动画效果

android 程序员 移动开发

云原生:详解|K8s技术栈解析, 一文读懂K8s工作原理

息之

架构 容器 云原生 k8s 集群

Android Activity 启动出现白屏带标题或闪屏问题解决,移动开发者社区

android 程序员 移动开发

Android APK反编译就这么简单 详解(附图),字节跳动大神讲座

android 程序员 移动开发

Android Launcher——ui框架,嵌入式音视频方向

android 程序员 移动开发

Android - 定位方式,火星坐标系统,一键锁屏,字节Android高工面试

android 程序员 移动开发

怎么用EasyRecovery恢复sd卡中的数据

淋雨

EasyRecovery

华为云GaussDB持续深耕创新与开放,打造企业核心数据上云信赖之选

华为云数据库小助手

GaussDB GaussDB(for openGauss) 华为云数据库 GaussDB(for MySQL) UGO

软件测试常用工具总结(测试管理、单元测试、接口测试、自动化测试、性能测试、负载测试...)

六十七点五

程序员 软件测试 自动化测试 接口测试 测试工程师

Android Jsoup:实现HTML解析和Epub解析,论程序员成长的正确姿势

android 程序员 移动开发

Android Material Design尝鲜,阿里P8面试官都说太详细了

android 程序员 移动开发

Android 3年外包工面试笔记,有机会还是要去大厂学习提升

android 程序员 移动开发

Android App Bundle探索,android系统软件开发

android 程序员 移动开发

android hxgsecurity 常用的集中加密方式封装,android项目开发案例

android 程序员 移动开发

Android App关于应用程序升级的一点内容,app软件开发课程

android 程序员 移动开发

Android NDK 开发之 CMake 必知必会,后台开发Android岗

android 程序员 移动开发

Android 8 通知渠道(Notification Channels),美团移动端开发工程师

android 程序员 移动开发

android activity Intent 传值 传对象,android开发框架开源登录界面

android 程序员 移动开发

墨刀发布企业版v3.5 ! 再度赋能“团队协同”新模式

Android MTK 设置默认启动 Launcher,android实战pdf

android 程序员 移动开发

Android - 在线浏览源码,电话短信相关,文本变化监听器

android 程序员 移动开发

Android 11 Beta 版正式发布!以及众多面向开发者的重磅更新

android 程序员 移动开发

读完这些“Java技术栈”,拿下阿里Offer没问题

Java MySQL spring 程序员 JVM

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