如何设计一个安全的登录系统

2015-12-20 09:04:15 +08:00
 AToMatriX

客户端与服务器端如何做到安全地传输数据,请考虑以下两点:

  1. 可能有第三方会话劫持,通过嗅探、伪装成功登录系统;
  2. 用户量,并发量大。
2770 次点击
所在节点    问与答
8 条回复
kidding
2015-12-20 09:12:34 +08:00
请自己完成作业,谢谢。(Just kidding.)
gamexg
2015-12-20 09:19:52 +08:00
上 tls( https) 即可。
对了别跟 12306 一样连 100 元都不舍得。
VeryEase
2015-12-20 09:31:36 +08:00
楼上说的,上 tls 就够用了,不想买证书,自己简单实现客户端和服务端之间的非对称加密和对称加密交互过程,不过真没必要这么省钱。

第二点说起来就太复杂了,建议还是先自己了解一些大厂的开源项目,看看别人怎么做的,借鉴一下就可。
AToMatriX
2015-12-20 10:26:49 +08:00
@kidding 哈哈,这真不是作业,只是与朋友聊起
多谢 @gamexg @VeryEase , 原以为弄 CA 证书有多复杂,这 12306 还真节约经费啊。。
@VeryEase 客户端和服务端之间的非对称加密和对称加密交互过程,这个被嗅探到好像也是没什么用的吧,第三方拿到客户端发出的数据再转发到服务器也是比较难识别
VeryEase
2015-12-20 11:24:55 +08:00
呵呵,实际上肯定不会这么简单。 我所了解的,一般服务端还会配合部署硬件防火墙,业务服务还会有自带的安全机制,比如白名单,黑名单,安全组,会话校验之类的。
gamexg
2015-12-20 12:30:54 +08:00
@AToMatriX 是可以转发,但是无法解密内容,毫无用处。程序内置服务器证书(公钥),也可以购买正规的证书,这样第三方在没有服务器私钥的情况下无法解密内容的。

目前 go 写 tls 程序实在太简单了,和普通 tcp 程序基本没区别。相关文档: https://golang.org/pkg/crypto/tls/#Listen

测试时可以用 wosign 提供的的免费 https(ssl 、 tls) 证书。

对了, https 其实就是 http 协议外面套了一层 tls 加密协议,自己的私有协议也可以套 tls 这层壳的。
hyuwang
2015-12-20 12:32:18 +08:00
HSTS ?
wbsdty331
2015-12-20 12:39:11 +08:00
你们觉得 gpg 如何?

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

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

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

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

© 2021 V2EX