Gravatar是一种基于md5(email_address)为用户提供化身服务的服务。散列被嵌入到网站上,所以它是公开的。
这个解决方案的一个问题是很容易在网站上跟踪用户,因为相同的电子邮件会有相同的散列。
我想知道这个问题是否有密码解决方案?要求:
答:仅通过阿凡达URL将不同网站的用户联系起来是不切实际的(同一电子邮件的散列/标识符在不同网站上必须不同)。
给出一个哈希/标识符后,服务器可以在一个比线性时间更好的时间内对它进行解码,并在大型数据库中查找用户。
没有时钟同步,没有质询响应协议(必须能够脱机生成标识符).理想情况下,它不应该要求每个网站的预共享密钥。
我想到的唯一解决方案是像salt + hash(email_address + salt)这样的解决方案,它可以满足A和C的要求,但不能满足B:盐析散列会迫使服务器重新散列所有用户的电子邮件,以找到相关的邮件。
发布于 2015-02-14 08:30:08
使用化身服务器的公钥使用ECC加密哈希。它的空间开销为32个字节(43个Base64字符)。一个现代的CPU应该能够解密大约每秒10000条消息。如果一个网站对所有的化身使用固定的密钥,双方都可以缓存共享密钥,所以他们不必一直支付密钥交换的费用。
虽然这解决了“每个人都可以做一个离线搜索来猜测与散列匹配的电子邮件”的问题,但它并不能解决所有的隐私问题。特别是,化身服务可以跟踪用户,并且图片数据本身允许跨站点之间的相关性,即使散列不同。
https://crypto.stackexchange.com/questions/22936
复制相似问题