可追踪的匿名证书

2014-07-16 18:35王兵
电脑知识与技术 2014年14期
关键词:匿名性

王兵

摘要:该文介绍了可追踪匿名证书,并对提出的可追踪匿名证书的发布和追踪协议进行了详细的分析,可追踪匿名证书应该具有匿名性和不可否认性两个核心特点,这两个特点保证了用户可以在不泄露自己的真实身份的情况下来证明用户的身份,这样的证书可以被用于需要提供匿名服务的网络应用中。

关键词:可追踪匿名证书;匿名性;不可否认性

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2014)14-3260-03

Abstract: This paper introduces the traceable anonymous certificate, and analyzes the proposed traceable anonymous certificate issuing and tracing protocol in detail, the traceable anonymous certificate should possess two core characteristics: anonymity and non-repudiation, the two features ensure that users can prove the identity himself but without revealing his true identity, this certificate can be used to provide anonymous service in network application.

Key words: traceable anonymous certificate; anonymity; non-repudiation

1 概述

本文对RFC中提到的可追踪匿名证书(TAC)所使用的密码技术作了总结和概述,RFC是由互联网工程工作小组发布的一系列以编号排定的文件,这些文件收集了有关因特网的相关资讯,以及UNIX和因特网社群的软件文件,这些文件为以x.509为标准的PKI体系提供了详细的技术支持,并通过应用盲签名和门限密码学来保护证书的持有者,防止通过证书链接到证书持有者的真实身份。在实体间的通信信道安全的情况下,TAC具有两个核心特点:匿名性和不可否认性。匿名性是指证书的主体域中使用匿名来标识实体,只有在很严格的条件下才允许匿名链接到用户的真实身份。这点是TAC最重要的一个特点,如果达不到匿名性,那么使用TAC就没有什么意义了。用户可以自己选择证书中包含的匿名,如果这个匿名已经被CA公布,那么,AI可以选择一个随机数作为新的匿名或者停止被公布的这个匿名的使用。不可否认性是指证书的持有者不能否认他参加了证书申请与使用,基于这个特性,一个用户为另一个用户申请TAC是不可能的。

2 PKI中的TAC

在RFC5636中,介绍了基于X.509标准的匿名证书发布方案。通常,发布的基于X.509标准的普通证书的实体域中会使用真实名字,而TAC的实体域中会使用匿名来代替真实名字,因此,就不能暴露证书持有者的真实身份信息。

作为一般的终端用户希望使用这样的匿名证书,因为它具有普通证书的功能,而且还不能由证书链接到用户的真实名字,这点是可行的,因为终端用户的名字对于可信机构去验证证书的真实性通常不重要,它并不同于公司企业所使用的证书,公司名字作为公共信息一般不会链接到个人。但是值得注意的是,TAC不能给用户提供一种完全的匿名,一个权威机构仍然可以得到用户的真实身份信息。

使用TAC来代替普通的证书,TAC通过隐藏真实名字来为用户提供额外的安全保护,为了获得证书,用户像往常一样发起获得证书的程序。为了进行签名过程,用户会从盲签名发布者(BI)那里得到一个匿名,这个符号会被传递给匿名证书发布者(AI)。AI和BI共同证明这个匿名的唯一性和正确性,验证通过后它们使用门限签名方法对证书签名。

为了完成证书的追踪BI保持了实名与匿名间的联系,AI则完成实际的签名。因此,BI知道用户的真实身份,但是AI是不知道的。在这种情况下,BI相当于一个普通的证书注册机构(RA),AI则完成了作为证书颁发机构(CA)的工作。这个模型的前题是RA和CA必须分离,否则就实现不了匿名性。

另外一个需要注意的是在可追踪的匿名证书方案中,一个用户不能为了不同的应用使用同一个匿名来获得不同的证书。这虽然限制了可追踪匿名证书的应用,但却确保了证书不能被滥用。为了不同的应用而申请多个匿名证书,这是可以实现的。一个用户在注册过程中可以申请多个证书,例如证书个数最多为K,BI中设置一个计数器,初始值为K,只有当AI收到K时,BI记录盲签名哈希值。为了防止证书被滥用,BI应该知道证书的个数,而且AI和用户之间也要求更严格的身份认证,来防止黑客获得这些证书的部分信息。

同样也是防止证书被滥用,RFC中也不允许用户自己更新TAC。一个用户允许从CA那获得多个TAC,所以,获得足够的密钥信息应该不成问题。当TAC达到了证书的有效期,考虑到可信实体和用户之间的交互,用户可以申请一个新的证书,使用现有(这个)的证书来链接两个TAC。

3 TAC的发布与追踪

TAC中需要解决的问题是怎样仍然使用X.509标准,但是却可以提供更多的匿名性。为了给证书提供适当的签名又不泄露用户的真实姓名,这里使用了密码学中的盲签名技术。盲签名允许消息发送者先将消息盲化,签名者对盲化后的消息进行签名,消息的接收者对消息去除盲化因子,最后得到签名者对原消息的签名。为了阻止黑客的攻击,同时也为了通过证书追踪到真实的用户,证书的匿名与用户的真实名之间的链接需要分别存储在不同的实体中。

3.1 TAC的发布协议endprint

TAC的发布过程如图1所示。

第1步 证书申请者即用户向BI证明自己身份的真实性。BI与RA相似,BI验证用户的真实身份并存储用户的身份信息,同时设置用户的密钥及证书的效期,而且不能由这个用户的密钥链接到用户的真实身份,为此,BI可以向用户发送一个信息,这个信息包含用户的密钥和证书的有效期,并用自己的私有密钥进行签名。

第2步 BI通过一个安全信道将签名后的信息发送给用户,用户收到信息之后需要在开始下一步之前验证这个签名,以后由TAC追踪到用户过程中会用到这个信息,用来防止用户不在BI那注册就申请证书。

第3步 用户根据通用的标准形式来制定证书申请证书,如常用的PKCS10格式。在申请书的格式中,主体域中应该包含一个用户自己选择的匿名。为了避免主体域名的冲突,这个匿名也可以由CA提供的程序自动生成。然后用户就通过一个安全信道把请求信息发送给AI,而用户从BI那接收到的信息作为这个请求信息的一部份。注意,这个信道不能用于认证用户,因为这会暴露用户的真实身份,减少了匿名性。

第4步 AI检查接收到的信息的格式并验证信息中的签名,然后验证证书的有效期,如果是合法的,与最近已存储的合法的信息进行比较,来防止重放攻击。如果主体域名已经被另一个证书所使用,那么AI或者拒绝申请,或者选择一个随机的匿名。AI设置所有的域,包括证书的签名数据,对这个数据计算哈希值,对这个哈希值再进行盲签名。注意,如果想要实现匿名的话,那么BI就不应该知道进行盲签名的密钥对。随后,AI对盲签名后的哈希值进行签名,连同用户提供的信息,并对过双向认证的安全信道发送给BI,AI签名用的证书也应该包括在内。

第5步 BI验证AI对盲签名哈希值的签名,以及自己的签名。然后验证匿名确保它以前没有被用来申请过证书。为了实现TAC的追踪,这个匿名是与数据库中用户的信息相联系的。然后BI使用自己的门限签名密钥对盲签名哈希值进行签名,在这之后,用自己的签名密钥对结果进行签名,然后把它发送给AI。

第6步 AI验证BI对盲签名哈希值的签名,然后AI对结果去除盲化因子,最后使用自己的门限签名密钥来完成对TAC的签名。TAC与匿名间的关系会被存储,以便以后由TAC追踪到用户。最后,AI把TAC发送给用户,现在用户可以使用TAC了。

3.2 TAC的追踪协议

当发现证书被滥用时,为了获得证书持有者的真实身份信息,一个可信机构通过分别与AI和BI通信的方法启动证书的追踪协议,如图2所示。

Step A 首先可信息实体向AI提供匿名证书被滥用的证明。现行的IP地址系统很大程度上取决于服务提供商为它的用户提供的保护有多好。对于CA而言,规则应该更严格,因为公布证书的匿名会比公布用户的IP地址泄露更多的信息。之后,TAC就由权威机构提供给AI,然后,AI撤销TAC并添加到证书撤销列表(CRL)中。

Step B 接下来,AI搜索与TAC相对应的匿名,并通过双向认证的安全信道把它发送给可信实体。

Step C 可信实体把匿名发送给BI,并且要求得到用户的身份信息。BI可以根据协议独立验证可信实体的投诉的正确性。

Step D BI验证匿名中它自己的签名,检索TAC证书用户的身份信息并把身份信息发送给可信实体。

4 结束语

在网络应用中,很多情况都可以用到RFC中提到的匿名数字证书,如果需要提供临时或永久的身份证明而又不想泄露自己的身份信息,如在线的匿名投票、电子政务及网络交易等。TAC的使用,使现行的PKI体系有了一个全新的发展,相信会成为未来研究的热点。该文就是基于PKI体系发布TAC的,TAC对于外部的攻击者充分地达到了匿名的目标,但对于来自于AI内部的攻击,就不能很好地保护TAC的用户,如果AI内部的攻击者想要攻击系统,他可以发送一个对应不同匿名的盲签名哈希值,这就会导致最终的证书被链接到其它的用户而不是想要得到TAC的用户。为了解决这样的问题,该文建议AI的员工不能在相关的BI中注册,考虑到AI的角色类似CA,CA是一个可信任的实体,所以应该在实际的应用中限制发生这种攻击的可能性。

参考文献:

[1] AndrewNash,williamDuane,CeliaJoseph,DerekBrink,张玉清,陈建奇,杨波,薛伟,等,译.公钥基础设施(PKl)实现和管理电子安全[M].北京:清华大学出版社,2002:45-65.

[2] Michael Spalding. Deciding Whether or not to use a Third Party Certificate Authority [J].Network Security, 2000,(20):7-8.

[3] 王建业,周振国,陈森发.Internet X.509 PKI深入讨论与分析[J].计算机应用研究,2003,(2): 97-99.

[4] 宋玲.基于证书实现多媒体会议安全身份认证的方案[J].计算机工程,2006,32(1):166-168.

[5] 杜炜,王行刚.构造基于X.509公钥证书的密钥管理系统[J].计算机工程,2006,25,(10):133-135.

[6] 刘知贵,杨立春,蒲洁,张霜.基于PKI技术的数字签名身份认证系统[J].计算机应用研究,2004,(9):158-160.endprint

TAC的发布过程如图1所示。

第1步 证书申请者即用户向BI证明自己身份的真实性。BI与RA相似,BI验证用户的真实身份并存储用户的身份信息,同时设置用户的密钥及证书的效期,而且不能由这个用户的密钥链接到用户的真实身份,为此,BI可以向用户发送一个信息,这个信息包含用户的密钥和证书的有效期,并用自己的私有密钥进行签名。

第2步 BI通过一个安全信道将签名后的信息发送给用户,用户收到信息之后需要在开始下一步之前验证这个签名,以后由TAC追踪到用户过程中会用到这个信息,用来防止用户不在BI那注册就申请证书。

第3步 用户根据通用的标准形式来制定证书申请证书,如常用的PKCS10格式。在申请书的格式中,主体域中应该包含一个用户自己选择的匿名。为了避免主体域名的冲突,这个匿名也可以由CA提供的程序自动生成。然后用户就通过一个安全信道把请求信息发送给AI,而用户从BI那接收到的信息作为这个请求信息的一部份。注意,这个信道不能用于认证用户,因为这会暴露用户的真实身份,减少了匿名性。

第4步 AI检查接收到的信息的格式并验证信息中的签名,然后验证证书的有效期,如果是合法的,与最近已存储的合法的信息进行比较,来防止重放攻击。如果主体域名已经被另一个证书所使用,那么AI或者拒绝申请,或者选择一个随机的匿名。AI设置所有的域,包括证书的签名数据,对这个数据计算哈希值,对这个哈希值再进行盲签名。注意,如果想要实现匿名的话,那么BI就不应该知道进行盲签名的密钥对。随后,AI对盲签名后的哈希值进行签名,连同用户提供的信息,并对过双向认证的安全信道发送给BI,AI签名用的证书也应该包括在内。

第5步 BI验证AI对盲签名哈希值的签名,以及自己的签名。然后验证匿名确保它以前没有被用来申请过证书。为了实现TAC的追踪,这个匿名是与数据库中用户的信息相联系的。然后BI使用自己的门限签名密钥对盲签名哈希值进行签名,在这之后,用自己的签名密钥对结果进行签名,然后把它发送给AI。

第6步 AI验证BI对盲签名哈希值的签名,然后AI对结果去除盲化因子,最后使用自己的门限签名密钥来完成对TAC的签名。TAC与匿名间的关系会被存储,以便以后由TAC追踪到用户。最后,AI把TAC发送给用户,现在用户可以使用TAC了。

3.2 TAC的追踪协议

当发现证书被滥用时,为了获得证书持有者的真实身份信息,一个可信机构通过分别与AI和BI通信的方法启动证书的追踪协议,如图2所示。

Step A 首先可信息实体向AI提供匿名证书被滥用的证明。现行的IP地址系统很大程度上取决于服务提供商为它的用户提供的保护有多好。对于CA而言,规则应该更严格,因为公布证书的匿名会比公布用户的IP地址泄露更多的信息。之后,TAC就由权威机构提供给AI,然后,AI撤销TAC并添加到证书撤销列表(CRL)中。

Step B 接下来,AI搜索与TAC相对应的匿名,并通过双向认证的安全信道把它发送给可信实体。

Step C 可信实体把匿名发送给BI,并且要求得到用户的身份信息。BI可以根据协议独立验证可信实体的投诉的正确性。

Step D BI验证匿名中它自己的签名,检索TAC证书用户的身份信息并把身份信息发送给可信实体。

4 结束语

在网络应用中,很多情况都可以用到RFC中提到的匿名数字证书,如果需要提供临时或永久的身份证明而又不想泄露自己的身份信息,如在线的匿名投票、电子政务及网络交易等。TAC的使用,使现行的PKI体系有了一个全新的发展,相信会成为未来研究的热点。该文就是基于PKI体系发布TAC的,TAC对于外部的攻击者充分地达到了匿名的目标,但对于来自于AI内部的攻击,就不能很好地保护TAC的用户,如果AI内部的攻击者想要攻击系统,他可以发送一个对应不同匿名的盲签名哈希值,这就会导致最终的证书被链接到其它的用户而不是想要得到TAC的用户。为了解决这样的问题,该文建议AI的员工不能在相关的BI中注册,考虑到AI的角色类似CA,CA是一个可信任的实体,所以应该在实际的应用中限制发生这种攻击的可能性。

参考文献:

[1] AndrewNash,williamDuane,CeliaJoseph,DerekBrink,张玉清,陈建奇,杨波,薛伟,等,译.公钥基础设施(PKl)实现和管理电子安全[M].北京:清华大学出版社,2002:45-65.

[2] Michael Spalding. Deciding Whether or not to use a Third Party Certificate Authority [J].Network Security, 2000,(20):7-8.

[3] 王建业,周振国,陈森发.Internet X.509 PKI深入讨论与分析[J].计算机应用研究,2003,(2): 97-99.

[4] 宋玲.基于证书实现多媒体会议安全身份认证的方案[J].计算机工程,2006,32(1):166-168.

[5] 杜炜,王行刚.构造基于X.509公钥证书的密钥管理系统[J].计算机工程,2006,25,(10):133-135.

[6] 刘知贵,杨立春,蒲洁,张霜.基于PKI技术的数字签名身份认证系统[J].计算机应用研究,2004,(9):158-160.endprint

TAC的发布过程如图1所示。

第1步 证书申请者即用户向BI证明自己身份的真实性。BI与RA相似,BI验证用户的真实身份并存储用户的身份信息,同时设置用户的密钥及证书的效期,而且不能由这个用户的密钥链接到用户的真实身份,为此,BI可以向用户发送一个信息,这个信息包含用户的密钥和证书的有效期,并用自己的私有密钥进行签名。

第2步 BI通过一个安全信道将签名后的信息发送给用户,用户收到信息之后需要在开始下一步之前验证这个签名,以后由TAC追踪到用户过程中会用到这个信息,用来防止用户不在BI那注册就申请证书。

第3步 用户根据通用的标准形式来制定证书申请证书,如常用的PKCS10格式。在申请书的格式中,主体域中应该包含一个用户自己选择的匿名。为了避免主体域名的冲突,这个匿名也可以由CA提供的程序自动生成。然后用户就通过一个安全信道把请求信息发送给AI,而用户从BI那接收到的信息作为这个请求信息的一部份。注意,这个信道不能用于认证用户,因为这会暴露用户的真实身份,减少了匿名性。

第4步 AI检查接收到的信息的格式并验证信息中的签名,然后验证证书的有效期,如果是合法的,与最近已存储的合法的信息进行比较,来防止重放攻击。如果主体域名已经被另一个证书所使用,那么AI或者拒绝申请,或者选择一个随机的匿名。AI设置所有的域,包括证书的签名数据,对这个数据计算哈希值,对这个哈希值再进行盲签名。注意,如果想要实现匿名的话,那么BI就不应该知道进行盲签名的密钥对。随后,AI对盲签名后的哈希值进行签名,连同用户提供的信息,并对过双向认证的安全信道发送给BI,AI签名用的证书也应该包括在内。

第5步 BI验证AI对盲签名哈希值的签名,以及自己的签名。然后验证匿名确保它以前没有被用来申请过证书。为了实现TAC的追踪,这个匿名是与数据库中用户的信息相联系的。然后BI使用自己的门限签名密钥对盲签名哈希值进行签名,在这之后,用自己的签名密钥对结果进行签名,然后把它发送给AI。

第6步 AI验证BI对盲签名哈希值的签名,然后AI对结果去除盲化因子,最后使用自己的门限签名密钥来完成对TAC的签名。TAC与匿名间的关系会被存储,以便以后由TAC追踪到用户。最后,AI把TAC发送给用户,现在用户可以使用TAC了。

3.2 TAC的追踪协议

当发现证书被滥用时,为了获得证书持有者的真实身份信息,一个可信机构通过分别与AI和BI通信的方法启动证书的追踪协议,如图2所示。

Step A 首先可信息实体向AI提供匿名证书被滥用的证明。现行的IP地址系统很大程度上取决于服务提供商为它的用户提供的保护有多好。对于CA而言,规则应该更严格,因为公布证书的匿名会比公布用户的IP地址泄露更多的信息。之后,TAC就由权威机构提供给AI,然后,AI撤销TAC并添加到证书撤销列表(CRL)中。

Step B 接下来,AI搜索与TAC相对应的匿名,并通过双向认证的安全信道把它发送给可信实体。

Step C 可信实体把匿名发送给BI,并且要求得到用户的身份信息。BI可以根据协议独立验证可信实体的投诉的正确性。

Step D BI验证匿名中它自己的签名,检索TAC证书用户的身份信息并把身份信息发送给可信实体。

4 结束语

在网络应用中,很多情况都可以用到RFC中提到的匿名数字证书,如果需要提供临时或永久的身份证明而又不想泄露自己的身份信息,如在线的匿名投票、电子政务及网络交易等。TAC的使用,使现行的PKI体系有了一个全新的发展,相信会成为未来研究的热点。该文就是基于PKI体系发布TAC的,TAC对于外部的攻击者充分地达到了匿名的目标,但对于来自于AI内部的攻击,就不能很好地保护TAC的用户,如果AI内部的攻击者想要攻击系统,他可以发送一个对应不同匿名的盲签名哈希值,这就会导致最终的证书被链接到其它的用户而不是想要得到TAC的用户。为了解决这样的问题,该文建议AI的员工不能在相关的BI中注册,考虑到AI的角色类似CA,CA是一个可信任的实体,所以应该在实际的应用中限制发生这种攻击的可能性。

参考文献:

[1] AndrewNash,williamDuane,CeliaJoseph,DerekBrink,张玉清,陈建奇,杨波,薛伟,等,译.公钥基础设施(PKl)实现和管理电子安全[M].北京:清华大学出版社,2002:45-65.

[2] Michael Spalding. Deciding Whether or not to use a Third Party Certificate Authority [J].Network Security, 2000,(20):7-8.

[3] 王建业,周振国,陈森发.Internet X.509 PKI深入讨论与分析[J].计算机应用研究,2003,(2): 97-99.

[4] 宋玲.基于证书实现多媒体会议安全身份认证的方案[J].计算机工程,2006,32(1):166-168.

[5] 杜炜,王行刚.构造基于X.509公钥证书的密钥管理系统[J].计算机工程,2006,25,(10):133-135.

[6] 刘知贵,杨立春,蒲洁,张霜.基于PKI技术的数字签名身份认证系统[J].计算机应用研究,2004,(9):158-160.endprint

猜你喜欢
匿名性
论网络直播行为的规制
基于环签名的数字货币隐私保护技术
基于区块链的可追踪匿名电子投票方案
基于区块链的可追踪匿名电子投票方案
匿名社交软件Soul的受众满足策略问题与思考
相对剥夺感和匿名性对网络集群行为倾向的影响
微信弹性社交中的失范行为分析
基于概率论的发送者匿名性度量模型