使用假名密钥的挑战不仅在于匿名性,还在于匿名性。还有一个额外的问题是您的身份不唯一且难以证明。考虑到您的假名/昵称已经确立(也就是说,您使用的是现有身份,而不是根据散列或这些行中的其他内容组成新身份),仅凭您的昵称不足以证明您的身份和声誉。
如果你的昵称是 Sam,如果你朋友的昵称是 Sam,并且如果你们俩都有一个“可信”的假名密钥,那么你们谁都不能对对方大喊大叫告诉他:“嘿,你不是真正的 Sam! "
一种解决方案是将有关您在线身份的所有信息重新组合到某个独特的地方(您告诉“我是 StackExchange 上的 Sam”、“我拥有samlanning.com
域和网站”等),然后让几个人验证并确认所有这些身份。我可以想到两种方法:
加入Keybase 之类的网站(或自己制作/托管),它完全按照我的描述进行,并且基于 OpenPGP。尽管是内部的,但所有这些“中心唯一身份”为身份/假名建立了信任网络。个人资料看起来像这样(是的,即使是 GnuPG 的主要作者也使用这个网站)。
使用 OpenPGP(尤其是 GnuPG),找到愿意签署(认证)假名密钥的人,遵守他们验证您的假名身份的个人方式,并要求他们在他们的认证中包含策略 URL 和符号数据。
当我验证其他人的密钥时,我个人会这样做:
gpg --ask-cert-level \
--cert-policy-url http://diti.me/pgp/\#policy \
--cert-notation CD42FF00@diti.me=http://diti.me/pgp/certs/%f.notes.asc \
--sign-key
策略 URL是一个URL(此处为 Internet 文档),您可以在其中向世界描述您的 OpenPGP 密钥认证策略是什么。签署您的假名密钥的人应该告诉(在本文档中)他们实际上证明了假名密钥,以及如何证明。
关键符号是形式的任意文本key=value
。OpenPGP 规范实际上并没有具体说明实现应该如何使用这些,但它们的一个用途是将 URL 作为value
. 但是,如果您愿意,您可以简单地让签名者输入一些文本,例如“我仔细检查了 Sam 的假名身份”。
使用我上面的命令,您可以看到,在 keyservers上,默认显示策略 URL 和符号数据:
sig sig1 CD42FF00 2014-04-07 __________ __________ []
Policy URL: http://diti.me/pgp/#policy
Notation data: CD42FF00@diti.me http://diti.me/pgp/certs/A31D4F81EF4EBD07B456FA04D2BB0D0165D0FD58.notes.asc
作为记录,这是我签署 CAcert.org 的自动 GPG 签名密钥,我将在此处留下一个指向符号数据的 Web 存档链接。
只要可以读取签名者生成的符号数据,任何人都可以/可以决定他们是否信任您的假名身份。使用这些,任何愿意仔细检查您的假名的信誉和可信度的人实际上都可以这样做。
编辑:实际上,我想我在第 2 点可能有点跑题了。您的问题只是关于假名认证过程,还是它的审计?