有没有不利用证书也能安全通信的方案

2015-08-02 08:48:25 +08:00
 benjiam
证书虽好,关键是证书预制问题,第二点根节点的私钥其实是不安全的,zf一句话就拿到了。所以其实不安全。有无安全的通信机制,可以防止中间人。
7262 次点击
所在节点    程序员
100 条回复
chenshaoju
2015-08-02 22:39:37 +08:00
@benjiam 那你说说吧,这种挑战认证,中间人能得到什么信息。最多只能得到两个随机数,以及混合了密码的散列值。
yajiedesign
2015-08-02 22:40:39 +08:00
@noli 量子密钥分发可以....虽然离进入千家万户还很远,但毕竟不是空想了.
yajiedesign
2015-08-02 22:43:07 +08:00
@chenshaoju 挑战认证没什么问题.然而只能认证,不能用来协商密钥啊...
xierch
2015-08-02 22:49:31 +08:00
如果你有一个安全的信道,可以用它再确认一遍对方的证书。比如两个人面对面确认。
(Telegram 就是这样,它会根据 public key 生成一个图案,可以让用户肉眼辨认

那个「事后得到 private key 但无法破解之前截获的流量」的技术,叫 PFS,Perfect Forward Secrecy
Gandum
2015-08-02 23:18:21 +08:00
等到量子加密实际应用的时候,也许能够解决楼主的问题。通过量子加密发送密钥,然后根据量子纠缠判断这个密钥是否被监听,如果没有,则使用此密钥,否则就弃用当前密钥,并生成新密钥重新发送,直到发送成功为止。
但是这也只是也许,因为如果在不安全的信道中,你每一次发送都会被监控的话,那么密钥就永远发送不成功,量子加密也解决不了这个问题
yajiedesign
2015-08-02 23:29:21 +08:00
我之前表述有些不准确,应该说在面对高度掌握信道的攻击者时,量子密钥分发,有机会解决"中间人攻击"的问题.而不是已经解决了.现在已经有协议宣称可以抵御"中间人攻击",然而毕竟没有实战检验.
chenshaoju
2015-08-02 23:39:49 +08:00
@yajiedesign 怎么不能,直接用用用户的密码(或者散列后的密码),加上时间戳(年月日时分),再散列一下,等等作为信息作为密钥进行加密。
benjiam
2015-08-02 23:48:17 +08:00
@9hills root证书被攻破,但是通信双方是安全的,通信网络被攻破,但是不代表就能破解通信。
wy315700
2015-08-02 23:49:39 +08:00
任何加密都有一个预置的信任关系为前提,证书恰恰是这种实体
datocp
2015-08-03 00:04:05 +08:00
证书解密是有时效性的,花了大量cpu时间去解密一个一分钟前过时的信息。

一个常用软件对用户证书认证过程。至少在这个软件下面访问页面100%绿色状态。
With certificate authentication, when the connection source computer attempts to connect to the Virtual Hub it presents a user name together with an X.509 electronic certificate. The SoftEther VPN Server checks whether is correct and the connection source computer is only allowed to connect if it passes.
The connection source computer must possess certificate data and a private key (RSA private key) that corresponds to the public key in the certificate to present. Certificate data is sent from the connection source computer to the VPN Server by private key data is not transmitted. Next the VPN Server sends random number data (called challenge values) to the client. When the client receives the data, it signs it by the private key it possesses and returns the data. VPN Server verifies the signature data sent by the client using the public key in the electronic certificate initially received and makes sure that the client computer has the certificate and corresponding private key (if it can't be confirmed, user authentication fails on the spot). It subsequently checks if the certificate subsequently presented by the client matches the attributed defined for each user as user authentication data. You can select either individual certificate authentication or signed certificate authentication as the test method at this time.
benjiam
2015-08-03 00:05:30 +08:00
如同在非对称加密出现以前,我们认为这是不可能的一样。不过没用良好的数学基础,基本也就是痴人说梦了。
wy315700
2015-08-03 00:07:56 +08:00
@chenshaoju
这个认证弱了点,要求密码是明文存储的
PPTP就是基本上这个协议
wy315700
2015-08-03 00:10:47 +08:00
@chenshaoju
和公钥系统结合起来会比较好,
服务器保存用户公钥,客户端拥有私钥

服务器发送挑战值到客户端,客户端使用私钥加上时间戳签名以后,发送给服务器端,
breeswish
2015-08-03 00:21:32 +08:00
客户端与客户端之间建立点对点加密,使用 root CA(其实只要可以公钥私钥就行)确认加密请求可靠性,这样:
1, root CA 被破解了不会影响已经建立起来的点对点加密
2, 仅破解单个客户端不会影响其他客户端之间的通信
jiongxiaobu
2015-08-03 00:22:39 +08:00
密码学原理欢迎你
breeswish
2015-08-03 00:22:43 +08:00
3, 在 root CA 被破解前客户端与客户端建立的点对点加密不会被 MITM 攻击
breeswish
2015-08-03 00:26:46 +08:00
@realpg 这个有人做了: http://priv.ly
breeswish
2015-08-03 00:33:29 +08:00
其实吧,这些非对称加密啊什么的..面对国家机器可能都是没什么用的,鬼知道灯塔国在加密算法里藏了多少后门呢..

体系中只要有一个后门,那整个体系就是不安全的,更何况灯塔国还到处都安插过后门——从最底层算法的依赖(如随机数),到算法相关(如曲线参数),到具体实现(如 OpenSSL 函数),可是都被藏过后门的…还有更多没有爆料出来的:我相信只要被 NSA 盯上了你的加密数据一定可以被解密 =。=
vibbow
2015-08-03 07:29:18 +08:00
@lianyue base64 两遍就无法识别了,我试过...
kaneg
2015-08-03 08:34:56 +08:00
@chenshaoju 一般来说明文密码都要加盐后再做某种散列后存储,总不能让客户端知道盐是什么吧

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/210179

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX