基本上你要求太多。如果您正确使用公钥,公钥是安全的。如果你做了一个听起来不安全的“公共私人密钥交换”。私钥永远不会离开它们生成的主机。
公钥是公共的,只是字节。这是一对数字!没有其他信息。所以在这里你需要选择:
- 有一个值得信赖第三方与公钥与身份相关联的共享服务器。这就是所谓的CA :)
- 以其他安全方式交换公钥。示例:在自己的Facebook个人资料上发帖(使用HTTPS浏览它!),与其他人会面等。
您可能想了解PGP和Web of Trust的工作原理。通过WOT,您可以通过社交网络进行非常好的安全P2P聊天。基本上,您仍然可以永远不会通过输入IP地址首次加入P2P聊天,但是在完成初始工作后,您可以获得一个好的结果。
首先,获取某人的公钥:遇见他/她。那时,你可以认证那个派对,他可以认证你而不会受到攻击。
阶段2在于建立信任链。我将以社交网络的形式解释这一点。你是派对A,你遇见派对B,你彼此认识。B知道C,D,E,后来遇到F不知道的F。
问B谁是他的朋友(并获得他们的公钥),你知道C,D和E,你可以联系他们到那时。告诉B你知道F,他可以联系他们。
您可能想告诉F关于您通过A知道的C,D和E。这非常敏感,因为如果不加区别地重复该过程,坏人可以轻松地进入网络。如果您将信任限制在“朋友的朋友”或某种程度的间接知识上,则可以平衡安全性。
我建议你这样,因为你告诉你这样做是为了好玩,而你并不处于业务场景!
为什么你不能在https上使用自签名证书? – thatidiotguy 2012-07-27 17:36:32
我可以也不会成为一个问题......但这会如何帮助我? – Zeveso 2012-07-27 17:39:20
哦,我看到,B/C,那么你将不得不包括证书与程序,允许有人下载证书。 – thatidiotguy 2012-07-27 18:12:32