2016年论文《Universally Composable Direct Anonymous Attestation》中提到了Direct Anonymous Attestation (DAA)。

1. DAA基本概念

【以下内容摘自[1] 博客Direct Anonymous Attestation 解析(1)
[2] 博客Direct Anonymous Attestation 解析(2)】

DAA(Direct Anonymous Attestation)是一种特殊的远程身份认证协议,该协议存在于具有可信模块的平台上。

DAA是一个签名方案,由TCG组织颁发其标准。它名字源于:

  • Direct Proof - 不采用可信第三方的介入;
  • Anonymous - 不会泄露签名者的身份;
  • Attestation - 对来至于TPM的陈述进行证明。

那么DAA既然是签名方案,首先我们要回顾一下签名的几种类型(从校验者的角度来看):

1. 1对1的签名方案:即,普通的签名方案。校验者可以根据签名者的认证公钥即可判断该签名的归属;
2. 1对N的签名方案:例如,环签名、指定校验者的签名、并行签名等。这种情况下,校验者需要知道所有潜在签名者的认证公钥,即1对N;
3. 1对一组的签名方案:例如,群签名、DAA等。校验者需要一个认证的群公钥。

当然,DAA是一种特殊的群签名,它和群签名的区别是:群签名具有签名可跟踪性以及不可关联性,也就是说,管理员可以根据签名来揭示真正的签名者是谁;而DAA签名方案则具有灵活的可跟踪性以及可关联性,这是因为该协议中没有用于揭露身份的授权者(例如,群中的管理员或其他可信第三方),然而,DAA签名协议可以提供一种机制,这种机制叫做“用户可控匿名性”和“用户可控关联性”。该机制可以使得来至于同一个签名者的多个既定签名对于同一个或多个校验者来说是可关联的(因为对于某些应用来讲需要这样做,如图:)。

该图中我们可以看到,对于不同的几个服务器上的同一种应用且基于同一个bsn的签名是可关联的。一旦,服务器对该用户提供的某一个应用服务终止,例如Verifier_1上的App_3,那么与该应用相关的其他应用也会同时终止,例如Verifier_2上的App_1以及Verifier_3上的App_1和App_2。其具体实现的方法,在DAA协议构建的方案中可以看到。

1.1 TCG目标

TCG体系结构的目标主要将以下几个方面加以平衡:1.保护用户的信息;2.保护用户的计算环境;3.确保用户所选择使用的安全机制;4.保护用户的隐私。很显然在认证过程中,隐私和安全性从根本上说是矛盾的,如图所示:

这是因为:若确保安全性,那么校验者必须知道证明者拥有一个真实而确切的TPM,例如,可以用公钥密码体制进行验证,但是这样做会使得证明者的隐私性得不到保证。那么,如果确保了证明者的隐私性,那么校验者就仅仅只能知道该证明者拥有一个有效的TPM,但不知道确切的是哪个TPM以及是不是真实的,这样安全性就得不到了保证,例如,如果有一个TPM的私钥被敌手得到,那么该敌手就可以冒充该TPM与校验者进行成功的访问。基于以上的问题,E.Brickell 和 L.Chen等人提出了DAA方案。

2. 2016年论文《Universally Composable Direct Anonymous Attestation》代码实现

代码实现见:https://github.com/cliqz-oss/anonymous-credentials

参考资料:
[1] 博客Direct Anonymous Attestation 解析(1)
[2] 博客Direct Anonymous Attestation 解析(2)
[3] 博客Direct Anonymous Attestation 解析(3)
[4] 博客Direct Anonymous Attestation 解析(4)
[5] 博客Direct Anonymous Attestation 解析(5)
[6] 2016年论文《Universally Composable Direct Anonymous Attestation》

Direct Anonymous Attestation (DAA)相关推荐

  1. 《TPM原理及应用指南》学习 —— TPM历史1

    本文对应<A Practical Guide to TPM 2.0 - Using the Trusted Platform Module in the New Age of Security& ...

  2. 可信计算的功能与技术

    参考内容:<龙芯自主可信计算及应用> 3 可信计算的功能 可信计算平台的主要应用目标是风险管理.数字资源管理的安全监控和应急响应.为了实现这些目标,可信计算支撑平台在计算机系统中的功能如图 ...

  3. 「史上最全的 TCG 规范解读」TCG 工作组规范预览

    可信计算组织(Ttrusted Computing Group,TCG)是一个非盈利的工业标准组织,它的宗旨是加强不同计算机平台上计算环境的安全性.TCG于2003年春成立,并采纳了由可信计算平台联盟 ...

  4. 谈谈 WebAuthn

    WebAuthn,即 Web Authentication,是一个用于在浏览器上进行认证的 API,W3C 将其表述为 "An API for accessing Public Key Cr ...

  5. FIDO与WebAuthn

    文章目录 FIDO 背景 FIDO是什么 fido1.0 fido2.0 FIDO2能做什么 FIDO2实现 介绍一些概念 1.什么是WebAuthn 2.FIDO2的组件 3.常用术语和概念 使用流 ...

  6. 「史上最全的 TCG 规范解读」词汇表

    可信计算组织(Ttrusted Computing Group,TCG)是一个非盈利的工业标准组织,它的宗旨是加强不同计算机平台上计算环境的安全性.TCG于2003年春成立,并采纳了由可信计算平台联盟 ...

  7. CAS5.3自定义密码(LADP)认证(三)

    自定义登录验证器 重写ldap认证方式,方便增加账号安全检测 1.首先配置pom.xml文件 <dependency><groupId>org.apereo.cas</g ...

  8. 【密码学篇】密码行业标准汇总(GM)

    [密码学篇]密码行业标准汇总(GM) 截止到2023年03月10日,共130个密码行业标准,适用商用密码应用与安全性评估等密码行业,可点击链接预览或下载标准-[蘇小沐] 文章目录 [密码学篇]密码行业 ...

  9. Intel SGX Remote Attestation实例代码安装和执行,笔记

    Windows10, x64,安装了visual studio,已经安装好了Intel SGX JDK. 源码下载:https://github.com/intel/sgx-ra-sample 源码说 ...

最新文章

  1. python的datetime举例_Python datetime.timedelta()用法及代码示例
  2. PHP-FPM对比Swoole:Swoole多了Reactor线程监听Socket 句柄的变化 代码初始化一次不结束进程 ws tcp mqtt服务
  3. 基于DBUtils实现数据库连接池
  4. Bootstrap 列嵌套
  5. QWT错误static struct QMetaObject const QwtPlot
  6. vector的学习(系统的学习)
  7. APIView和View的区别
  8. android 创建目录/文件/读写文件
  9. Android屏幕共享与直播-red5流媒体服务器搭建
  10. ubuntu磁盘分区与挂载
  11. 如何开好项目kickoff会议
  12. ecshop与shopex哪个更好?
  13. Android,iOS应用适配IPv6之网络配置
  14. 既是消费者也是管理者:纽约州分布式能源改革
  15. 2020icpc上海赛G题 Fibonacci详解
  16. imx7d 通过imx7d-sdb.dts 添加 spi设备
  17. 解决小米手机用Android studio安装不了app的问题
  18. 什么是mmc和emmc(mmcblkxxx、sdxx的关系)
  19. testtesttesttesttesttesttest
  20. 海康威视的监控软件 手机端

热门文章

  1. forword_list学习之创建,初始化assign,赋值操作operator=, 元素访问front,交换内容swap,检查容器是否为空empty
  2. 基于51单片机的简易霓虹灯
  3. python编程入门(适合初学者)
  4. java中实现与USB硬件通信
  5. B站排行,如何高效查看B站榜单排行数据?
  6. 想创业,就别输不起!
  7. gitlab配置公钥
  8. 三句话感受一本书,让脑子变聪明的7本书,每本只需理解3句话!
  9. 限流算法之----滑动窗口
  10. 最佳并发数和最大并发数