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

2015-08-02 08:48:25 +08:00
 benjiam
证书虽好,关键是证书预制问题,第二点根节点的私钥其实是不安全的,zf一句话就拿到了。所以其实不安全。有无安全的通信机制,可以防止中间人。
7263 次点击
所在节点    程序员
100 条回复
comicfans44
2015-08-03 08:35:45 +08:00
这更多的是个社会问题而不是技术问题,假如他们想知道,那探讨技术问题是没有意义的,直接约谈你就可以了,还是一句话。

但假如你还没那么惹眼,那么自定义的协议就好了,他们懒得(也不可能)去针对每一种自定义的协议。
realpg
2015-08-03 09:54:49 +08:00
@laotaitai

用这种技术的要么是涉及敏感(色情/政治),要么是论坛。基本不靠吸引大众。那种搭个论坛拼命去拉流量,吸引人注册,拼命SEO的要么是管理欲变态(中国这种人特别多),要么是想套现撸钱。

大众的东西基本我都不碰,有太多成型的网站、论坛没意思。我做的站东西基本上很多程度都有禁止将本站告诉给大众,禁止在外网发表链接到本站的链接,基本靠其他渠道获取,比如线下交流,比如真朋友关系介绍。你能知道有我的站存在,那你就达到门槛了,对于这种情况,我设置多复杂的限制(甚至有些里面会流传一些比较机密信息的我都强制给客户发ssl客户端证书)他们都可以理所当然的视为正常的一部分,别说个简单的扩展了。

早年其实很多人觉得禁止IE6不可实现,其实一点也不难。我早期也做过一些比较大众的网站,我就写明白了禁止IE6(后来chrome流传广泛+chrome壳浏览器多了以后直接IE核心给个不正常乱码,然后提示禁止IE)都不会流失用户,特别小白的用户也会去度娘知道问,为啥我访问XXX是错乱的,然后就会有人替我回答你去下载个firefox 后面附网址 访问就好了…… 前提是,你的站真有内容,别管大众小众,你的站真能吸引他们去看,去访问,去讨论,那就不怕。

而我自己做的非大众东西,从chrome版本号发展到20那一天就开始屏蔽IE访问了,后来,jquery2不支持IE旧版本我太高兴了,可以让IE这种逗比都不正常,都不用再去做额外分析限制了,反正jquery2跑不起来网站肯定不正常。

而且我的小圈子论坛,很多都是无管理的,靠大家VOTE实现管理的功能,狗操的管这个叫人民民主专政……反正因为有简单的防止旁路收集敏感词,哪怕有轮子在里面传教、贩卖军火都不怕,很快就会被人民民主专政掉,在专政掉之前,也不会被一些特定的监管采集到对网站造成关站等恶劣影响。
chenshaoju
2015-08-03 09:55:43 +08:00
@kaneg 加盐意义不是很大,现在的泄漏其实绝大多数都包含了盐。如果觉得MD5太容易破解,换一个呗,那么多散列算法。
SHA1()
SHA256()
SHA512()
MD5(SHA1()+SHA256())
……
@wy315700 没错,这就类似于PPTP。但是预共享密钥本身也需要通过不安全的方式传递,所以考虑0信任的方法,挑战认证安全系数仍然相当高。
wy315700
2015-08-03 10:27:00 +08:00
@chenshaoju
其实都一样,这里面的预共享秘钥其实就起到了证书的作用,只不过加密比较弱
laotaitai
2015-08-03 10:51:26 +08:00
@realpg 看样子你网站真的很牛逼! 估计市面上都不超过3个像你这样的网站. 我简单看了下你个人信息, 咱俩有点类似, 至少我也是FreeLancer, 也是不用第三方程序的站长. 握爪!
realpg
2015-08-03 11:16:07 +08:00
@laotaitai

2013年以前我还有做一些大众的东西,后来都放弃了或者转给他人维护了。

现在我自己做的东西都是给小众爱好者圈子的,我自己就是最重度的用户,大多数没有竞争对手,或者有竞争对手的情况下我还做这个是从用户体验出发他们的东西太难用了,我作为用户都受不了的时候我才自己做。而且我的用户有大半至少是跟我在某些方面能达到一个level的能混到一起去的,一些技术上的限制,教教就会了,都不缺学习能力。


其实我做网站,最大的原因就是我的服务器、带宽都不要钱,除了自己写代码外没有成本,没有挣钱压力,做的东西质量就好。我给很多公字头单位朋友做义务技术支持,往他们那里丢个三五十台服务器用个百八十兆带宽都不是事儿。
laotaitai
2015-08-03 11:51:44 +08:00
@realpg 看样子是火车或者飞机类型的网站咯.
caoyue
2015-08-03 12:26:27 +08:00
你从开始都不能保证客户端连接的服务器不是中间人,所以在此之后的一切机制都无效了吧
所以还是必须有证书,或者类似于证书的东西通过可信渠道交换才行
invite
2015-08-03 13:52:16 +08:00
@realpg 求分享服务器资源。
Smartype
2015-08-03 14:21:18 +08:00
@chenshaoju 这里的关键是密码如何可靠设置。这又是鸡和蛋的问题了。
benjiam
2015-08-03 15:23:52 +08:00
我认为这里有一个前提,客户端是可以有一张预设证书的,但是这张证书可能会丢失私钥。

目前的安全体系都无法安全的交换秘药,所以得靠证书认证,并保证,证书私钥不丢。
realpg
2015-08-03 15:24:12 +08:00
@laotaitai
不是 这两个也很大众……
还有更小众的……
fishioon
2015-08-03 17:02:20 +08:00
@chenshaoju 还有一个问题,客户端如何识别服务器?中间人模拟成服务器和你通信,你如何识别?
chenshaoju
2015-08-03 17:43:14 +08:00
@fishioon 不需要识别,假服务器只能拿到一个散列值,不具备有效性。如同刚才的中间人一样。你拿着这个散列,也做不了任何事情,你没有办法知道这个散列值后对应的密码是什么。

@Smartype 是的,无论无何都得有一个方式来设置密码。。。所以,在一个小群体范围内,比如,企业内部,这种认证方式足以。
fishioon
2015-08-04 13:30:08 +08:00
@chenshaoju 假如你要逛淘宝,中间人劫持了并冒充淘宝服务器,然后你连接到了中间人这边,然后你输入了账号密码,然后钱就木有了
chenshaoju
2015-08-04 13:36:09 +08:00
@fishioon 你最好仔细想想挑战认证的协商过程。你认为服务器和中间人会产生相同的随机数?
fishioon
2015-08-04 13:51:55 +08:00
@chenshaoju 就问认证通过了然后呢?你和服务端后续的通信内容需要加密吧,同时客户端与服务端需要对传输的内容解密吧!还有我冒充服务端与你通信,我直接告诉你认证通过啦,然后你就和我通信了?然后就传输了?你这个都防不了钓鱼
chenshaoju
2015-08-04 14:01:13 +08:00
@fishioon 可以啊,通信也是密文啊,你无法解密啊。看67楼。
fishioon
2015-08-04 14:10:59 +08:00
@chenshaoju 明白了,你这种就相当于最开始就已经协商好了密钥(密码作为密钥),这样基本没啥意义了,整个安全系统最困难的就是如何协商并交换密钥
noli
2015-08-07 20:35:01 +08:00

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

https://tanronggui.xyz/t/210179

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

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

© 2021 V2EX