非对称加密和证书认证体系


#1

关于重启avim社区项目的倡议 继续讨论:

Dr想给Jack发个消息,可是QQ能监控所有的聊天交给gcd。dr和jack发的任何消息gcd都能看到。 于是 Jack 创建了一个密钥对,包含一个公钥和一个私钥。 Jack 把公钥发给了 Dr . 现在, gcd 也有这份公钥。 dr 把消息用这个公钥加密后发给了 jack 现在 gcd 也拿到了加密后的消息 但是只有 jack 拿出了私钥,然后吧密文解开了,看到了要说的骂 gcd 的话 … gcd 也有密文,也有公钥,可是却什么也做不了,因为 gcd 木有 jack 的私钥。


这就是非对称加密的巨大优势

AVIM 就建立在牛逼哄哄的非对称加密基础之上。

这样1来,任何消息监控体系都无法工作。


#2

但是,这里有一个潜在的漏洞,有没有发现呢?


#3

是设计上的漏洞还是指的安全上的漏洞?


#4

是设计上的漏洞.

那么问题来了, 如果 gcd 能监控 dr 发给 jack 的消息, 当然也能截获消息!

jack 向 dr 发送公钥的时候, 这个消息被 TX 扣留了,不发送, 没办法, gcd 拿着抢顶着 麻花疼的脑袋.

然后 gcd 生成了一个新的密钥对, 并把这个公钥发给 dr . 当然,发送人在 dr 这里看来还是 jack .

然后 cai 发给 jack 的每一条信息, 都通过 gcd 解密看了,gcd 再重新用 jack 的公钥加密后转给 jack , 当然咯,发送人在 jack 那里还是显示成 dr.

这样, dr 自以为自己发过去的消息只有 jack 才能看到,其实全部都被 gcd 看光了他还不知道!!


#5

如此说来, 不仅仅要非对称加密, 还要确保 jack 发来的公钥真的是 jack 的公钥. 而不是 gcd 伪造出来的.

这个怎么办呢? 假设 dr 和 jack 曾经 face to face 见面过, 那么这个时候自然可以充分信任的交换彼此的公钥.

但是如果一个在杭州,一个在米国呢? 怎么办? 没有见面的机会了.

这种情况下,就需要一个权威的第三方机构对公钥进行 “公证” . 这个公证人, 就是所谓的 CA 了.


#6

但是, 也不能随便一个 CA 说这个公钥是 jack 的, 你就信它是 jack 的, 对吧? 在这些 CA 里,有一部分 CA 是得到了所有人的信任,并且把 CA 的公钥内置到了软件里. 这个 CA 就是 ROOT CA .

ROOT CA 可以给 jack 的公钥颁发证书 (其实就是拿 ca 的私钥给 jack 的公钥签名一下) 或者 ROOT CA 可以给 另一个 CA 颁发证书,然后 另一个 CA 再给 jack 颁发证书. 这样也是可以的. 这种操作就组成了公钥的一条证书链. 逐级信任.

注意, CA 的证书并不是 “好人卡” 只是告诉你公钥没有被伪造. 这个信任指的是你 相信 公钥的所有人就是 jack . 并 表示你 信任 jack 本人 .

CA 证书体系的信任, 指的是证书所证明的公钥背后的那个人不是别人, 信任证书并不表示你相信那个人


#7

其实CA也是可以伪造的


#8

所以 CA 需要一开始就内置进程序里. 这样就没法伪造了.


#9

这就是所说的中间人攻击


#10

所以说如果IPV6一旦流行起来GCD是很悲剧的,因为现在国内的最大对GCD威胁的不是墙,而是一般P民无法做自媒体,用技术一点的话说,就是很多人在NAT的后面,他们只能主动连接,不能被动连接,能被动连接的都是被自律和审核了的公司,它们会记录你的聊天历史等等,境外不受控制的平台全都被墙。

其实如果说像IPv6那样的结构的话,就比如说点对点的基于SSL的聊天,如果做个好前端以及用户操作接口,这样的聊天软件很可能火起来。然后每个人的IP就像手机号码一样,那就是另外一番景象了。即使你搞个中华大局域网也没用。至于搞中间人攻击,只能针对你觉得敏感的人花费很高的人力去做,但是规模无法扩大。其实就RSA 2048的密钥就够你穷举了,想批量监控基本不可能,所以我个人认为这些让它们不爽的原因也一定成度促成了IPv6在中国发展缓慢,不过我相信历史的车轮是谁也挡不住的。


#11

传统加密手段不管怎么做都是有漏洞的,关于非对称加密的安全性,一是依赖于计算性能不够,破解消息的成本太大,二是依赖于密钥的派发必须保密。

等量子计算和量子信息成熟以后,传统的非对称加密可能就会逐渐消失在历史中了。一个是量子计算的强大计算能力可以轻而易举破解非对称加密;另外一方面通过量子加密传输则可以实现一次一密,并且传输过程中真正杜绝中间人攻击。

以上。