Direct Anonymous Attestation (DAA)

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

猜你喜欢

转载自blog.csdn.net/mutourend/article/details/104118414