一种无 HTTPS 的安全通信方式

2021-10-09 20:09:36 +08:00
 copymaster

今天整理 HTTPS 相关内容,想到之前没有 HTTPS 时我的安全通信方式,感觉除了 server 、client 麻烦一点外还挺好用的

server 端生成一对非对称加密密钥对,pk 公开;再生成一个对称加密的密钥保存中 server 端不公开 client 端第一次请求 server 时用 pk 加密,里面存储一个 client 端生成的对称加密密钥及算法参数,server 端接到请求之后把 client 发来的密钥信息存储在 token 中(token 也可以带一些其他的信息)用 server 端独有的对称加密密钥进行加密发给 client 。client 每次请求都带着 token,可以用它生成的密钥进行加密,server 可以从 token 中拿到解密的密钥,当然了,也可以把 client 的密钥放在 session 或 redis 中。

我感觉这样挺安全的,你们觉得呢?

5487 次点击
所在节点    信息安全
27 条回复
cnnblike
2021-10-10 07:00:16 +08:00
ca 意义挺大的,如果是安卓别人也可以重打包的
0o0o0o0
2021-10-10 07:27:39 +08:00
安卓有签名,可以通过系统级的 ca 防止包被篡改,所以 ca 在哪都很重要
hcocoa
2021-10-10 11:51:38 +08:00
想起来我本科毕业设计的时候,其中一个部分是我“独立设计”自认为炫酷吊炸天的防重放机制。

结果答辩的时候:

老师:这不就是一个挑战应答吗?

我:……(等了 10 秒钟),是的,这就是一个挑战应答……
stevenhawking
2021-10-10 20:38:52 +08:00
你放 JS,怎么保证 JS 不被劫持?
eason1874
2021-10-10 21:10:35 +08:00
楼主这个方法在 APP 是可行的,其实就是在应用层实现 TLS 简化版。在网页不可行,网页不像 APP 可以提前内置证书,用户访问时才下发证书,所以得有 CA 去验证证书的真实性。

不过 HTTPS 的意义不仅是防监听,还有防劫持,防缓存
leiakun
2021-10-12 03:39:57 +08:00
可以看看 quic 或者 http/3,还有 ECH 。可能会解答你的问题。
copymaster
2021-10-12 09:38:11 +08:00
@leiakun 感谢,前两天看 https 的时候了解了一下 ECH 算法,感觉挺厉害的

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

https://www.v2ex.com/t/806753

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

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

© 2021 V2EX