高品质的音视频能力是怎样的? | Qcon 全球软件开发大会·上海站邀请函 了解详情
写点什么

U-Prove: 在保护隐私的情况下提供安全性

  • 2010-03-19
  • 本文字数:2454 字

    阅读完需:约 8 分钟

微软最近公开了 U-Prove 的 CTP 版本的源码,它是一种用来实施认证的加密的解决方案,并且不会透露关于用户的个人信息。CTP 版本包括 U-Prove 加密规范 V1.0 、对该规范的 C# Java 实现、对 WIF AD FS2 CardSpace 2 的扩展,此外还有大量用来说明该项技术的白皮书。

当前的安全解决方案是基于透露从相关安全服务获益的人的信息的。此外,很多网站都倾向于尽可能多地发现它们的用户的信息,以便于提高它们的业务模型,从而得到更好的效率和收益。U-Prove 技术想要提供更高级别的安全性,只透露用户想要透露的信息。这与匿名活动是类似的,比方说只需要投币,就可以从公共售卖机购买商品,或者匿名投票等等。

U-Prove 技术最初是由 Stefan Brands 在 Credentica 开发的,在 2007 年发布了第一个 SDK 之后,越来越被人们所熟悉。 2008 年微软收购了该项技术以及相关的专利,并且将其包含在 Windows Identity Foundation 中。最近,微软发布了 Microsoft U-Prove CTP ,这项加密技术包括以下内容:

U-Prove 技术是基于 _U-Prove_ 令牌的想法创建的,这个令牌是包含加密的、被保护的信息的二进制字符串,我们把这种信息叫做属性。在使用 U-Prove 令牌的过程中会涉及到三类组织:发布方——发布令牌的实体组织,验证方——需要令牌的用户,校验方——与认证用户相关的第三方组织。发布方与验证方通过 _ 发布协议(Issuance Protocol)_ 通信,而验证方与校验方通过 _ 表现协议(Presentation Protocol)_ 通信,如下图所示:

当验证方想要得到令牌的时候,它会通过发布协议与发布方联系,以一种秘密的形式来展现他的属性。这与现今使用的标准安全令牌有所不同,因为验证方可以得到令牌,而不需要将他所有的属性都透露给发布方:

为了让验证方从发布方获得 U-Prove 令牌,这两个组织必须位于 U-Prove 发布协议的同一实例中。这是在一部分输入和属性需要编码到令牌中的时候所要采用的加密协议。U-Prove 技术中的创新技术在于对发布协议的加密设计,它基于当代密码学的发展。为了达到概览的目的,它可以知道发布者的签名不是传统的 RSA 或者 DSA 的签名,并且发布方是 3-leg 的交互协议,支持验证方针对发布方隐藏特定的令牌元素。

发布方可能会使用各种方法来对验证方进行认证,包括访问包含在 U-Prove 令牌中由其它发布方生成的信息。发布方会通过对其进行签名并且包含只有验证方才知道的公钥来保护令牌。

  • 每个发布的 U-Prove 令牌都包含了发布方关于所有内容的不可伪造的数字签名,这是通过使用它的私钥由发布方创建的。发布方签名后的 U-Prove 会成为 U-Prove 令牌上的可信赖标记。这使得任何人都能够校验出来 U-Prove 令牌是由发布者所发布的,并且其中的内容没有被篡改过。
  • 重放攻击(Replay attack)防护:每个发布的 U-Prove 令牌中还包含专门针对每个令牌的公钥,这只有验证方才知道。验证方会在发布协议中随机生成公钥,此时会使用针对 U-Prove 令牌的相关私钥。与令牌的公钥不同的是,这个私钥并不是 U-Prove 令牌的一部分;验证方永远不会在使用 U-Prove 令牌的时候透露它。在下一节中,我们会说明这是如何防止校验方重放已经存在的 U-Prove 令牌的。

在获得了令牌之后,验证方会与校验放取得联系并通过表现协议在二者之间确立可信任的关系:

为了向校验方描述 U-Prove 令牌,验证方和校验方会处于 U-Prove 描述协议的同一个实例中。除了提供令牌属性(或者正如我们在 4.3 节中看到的,只是属性的一个子集)、发行方的签名以及验证方为令牌指定的公钥之外,验证方还将对校验方的响应一起发送过来。为了对这个响应进行计算,验证方会把针对 U-Prove 令牌的私钥应用于校验方的表现请求。这个表现请求必须包含一个迄今为止从未用过的唯一数字,一个大的随机数就可以。同样还会向唯一的校验方身份附加时间戳或者计数器。 我们使用验证方计算的响应作为表示的证据。它是拥有私钥的加密的证据,而私钥是与当前的 U-Prove 令牌相关的。它证实私钥已经被应用给表现请求,但私钥本身会保持私密性。即便所有的校验方和发行方联合,检查很多和相同的 U-Prove 令牌一起创建的二进制表现证据,并且从发布和表现协议脱离,这种安全保证也会保持。结果,校验方就无法重放指定给他们的 U-Prove 令牌。

有很多与使用 U-Prove 令牌相关的安全特性:不可跟踪性、不可链接性、可撤销性、可重用性等等、其中最有趣的是选择性地暴露、在令牌中包含加密属性的能力,即便对发布者也不会公开信息,除非验证方想要那样做。

据微软所说,事实上 U-Prove 可以用于任何通信和事务系统,例如:“数字权限管理、电子投票、电子支付设备、电子健康记录、电子邮费、在线拍卖、公共运输售票、道路收费定价、忠实顾客奖励计划以及电子游戏等等。”它还可以被应用于“非人实体,像计算机过程、软件应用程序、硬件设备等等”。U-Prove 帮助我们方便地通过不可信任的组织来共享信息,使得“我们可以不在现实世界模拟就可以设计新的应用程序;与之相关的领域是云计算服务,它可以在来自于不同源头的整合性保护的输入数据上执行有限的操作。”

关于 U-Prove 更多的信息: U-Prove 主页微软的U-Prove 社区技术预览(CTP)的发布以及深入探索U-Prove 加密协议,还有Channel 9 上两次对Stefan Brands 的采访, U-Prove CTP:从开发者的视角

查看英文原文: U-Prove Offers Security while Protecting Privacy

2010-03-19 21:581366
用户头像

发布了 340 篇内容, 共 120.3 次阅读, 收获喜欢 12 次。

关注

评论

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

浅析“分布式锁”的实现方式丨C++后端开发丨底层原理

Linux服务器开发

redis zookeeper 分布式锁 Linux服务器开发 C++后端开发

阿里内部热捧“Spring全线笔记”,不止是全家桶,太完整了

Java架构追梦

Java spring 源码 架构 微服务

Substrate 合约书之合约模型

Patract

智能合约 rust polkadot Patract Wasm

勇夺桂冠!百度智能云获山东电力输电人工智能技术竞赛第一名

百度大脑

百度智能云

Nacos 2.0 性能提升十倍,贡献者 80% 以上来自阿里之外

阿里巴巴云原生

微服务 开发者 云原生 dubbo 中间件

函数计算助力高德地图平稳支撑亿级流量高峰

阿里巴巴中间件

腾讯大神为什么会对这份“redis深度笔记”如此爱不释手?

Java架构师迁哥

你管这破玩意叫哨兵?

Java 数据库 redis 程序员 架构

Java开发9年经验,三轮技术面+HR面试成功砍下阿里巴巴Offer!

Java架构追梦

Java 阿里巴巴 架构 面试

交易所合约跟单软件搭建,火币合约跟单平台开发

Java该怎么学?阿里大佬呕心沥血之作,Java全线成长宝典,从P5到P8一应俱全

Java架构师迁哥

中国数字人民币试点有序扩大至“10+1” 拜登政府正加强研究数字人民币计划

CECBC

数字货币

怎么拥有个人磁力

leoay

IP 个人磁力 KOL 思想 吸引力法则

TcaplusDB直播回顾 | 数据库架构和实战分析

TcaplusDB

数据库 nosql 后端 TcaplusDB

图查询语言的历史回顾短文

NebulaGraph

数据库 数据库设计 图数据库

《彩食鲜 CTO 乔新亮:程序员如何从技术走向管理》(采访提纲)

这就是编程

函数计算助力语雀构建稳定且安全的业务架构

阿里巴巴中间件

文档 企业架构和云服务 业务架构

2年进入苏宁,第5年入职阿里,专科学历的他是如何做到?

Java架构师迁哥

聊聊十种常见的软件架构模式

架构精进之路

4月日更

融云 CTO 杨攀:技术人员如何创业?

Yano

【科创人】贝锐创始人陈宇晔:花生壳诞生自一次挫折,15年坚守有温度不作恶

科创人

金融科技数据链的DNA

博睿数据

金融科技 博睿数据 数据链DNA

一个极简的冲突管理工具

石云升

28天写作 职场经验 管理经验 4月日更 冲突管理

云原生技术及可观测实践

滴滴云

重读《重构2》- 改变函数声明

顿晓

重构 4月日更

曾国藩:人生惟有常是第一美德

leoay

曾国藩 坚持 有常 天赋 成事心法

微服务转型系列2:微服务转型的三大误区,避坑指南

BoCloud博云

微服务

汽车之家基于 Flink 的数据传输平台的设计与实践

Apache Flink

flink

区块链技术重新定义 物联网的物与物之间的交易

CECBC

发展空间

Coinbase上市,对加密市场将带来哪些影响?

CECBC

货币

云存储中不可不知的五个安全问题及应对措施

浪潮云

云计算

U-Prove:在保护隐私的情况下提供安全性_Java_Abel Avram_InfoQ精选文章