关注功能好像只是一个名单,将来有没有什么特别的作用?
补充一下,公钥验证也有类似的风险。举个例子,我在某处用GPG签名消息:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
我是沉默的广场
-----BEGIN PGP SIGNATURE-----
iHUEARYIAB0WIQTF8OptO5XfOiJV/ShY4kD6KqTWnwUCX2xi4AAKCRBY4kD6KqTW
n+lLAP9u0pwiha8PAwUg(。。省略)
-----END PGP SIGNATURE-----
别人截取这段消息,就可以保存起来,日后贴出来冒用账户主人的身份。其它人没法判断这个消息是由本人贴出来的,还是别人复制过去冒用的。
这是重放攻击的一个简单例子。解决办法是,和签名日期章一样,消息里加上当前时间就可以防止冒用,例如:
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA256
我是沉默的广场
1989年6月4日,05:00
-----BEGIN PGP SIGNATURE-----
iHUEARYIAB0WIQTF8OptO5XfOiJV/ShY4kD6KqTWnwUCX2xjKQAKCRBY4kD6KqTW
n7KpAQCDdAO80d/K/K(。。省略)
-----END PGP SIGNATURE-----
这样其它人可以比对签名里的时间和当前时间,验证是不是有人冒用了消息。
另一种防止冒充身份的方法是challenge-response认证,和@thphd 所说的一样。原理是让账户的主人用私钥签名一段指定文字(比如自己的新ID名),其它人再用公钥去验证这段消息。只要私钥不泄露,没有私钥的人就没法给指定文字签名。
总之,设计完善的加密系统,比如公钥认证,都有考虑到这些问题,不用担心它们的安全性。
onion服务本身就提供端到端加密。
实现端到端加密,需要互相交换公钥。https依靠证书体系,解决交换公钥的验证问题;而洋葱地址本身就是公钥,因此不需要证书就可以做到端到端加密和端到端认证,https并不能提供额外的好处。
https://community.torproject.org/onion-services/overview/
谈一下我自己的观点:
服务器【知道】IP地址和【记录】IP地址是两回事。很显然,如果要正常浏览网页,服务器就必须【知道】IP。此外,CDN必然会记录IP。为了方便维护,网页服务器软件(比如Nginx)也会自动生成包含访客IP的log。
我自己理解而且也希望做到的是:
网站不搜集canvas,webrtc等不必要的信息;
网站数据库不记录IP等信息,因为记录这些数据是不必要的。
不关联敏感信息和账户。
零日志最好。如有维护必要留存,尽量定时清空日志。
举个例子,很多国内论坛会永久记录注册IP和发贴IP,这些信息对论坛正常的功能来说完全不必要,显然是为了满足国内某些“规定”的要求。
当然,从log和账户活动时间做关联不是不行,但这显然要攻击者投入相当大的精力,站长也可以简单的采取滚动日志,离线保存等等方式避免这类攻击。
总之匿名不能完全依靠网站的承诺,网站对用户的义务是有限度的。但是网站可以在限度之内做好保护信息的工作,尽可能提高追踪的成本。