1
lty1993 2017-04-19 04:10:07 +08:00 via iPad
Cloudflare 做了套工具叫 cfssl ,你可以拿这个自建 CA 体系,相关文章还是挺多的。不过 CA 难在管理和审计,并不在证书签发。
|
2
ryd994 2017-04-19 07:36:43 +08:00 via Android
绝大多数情况,服务器 SSL+账号密码登录就够了,安全性足够的
你这个做法我看到有几个问题: 1. #2.2 怎么验证客户端身份?这里可以中间人 2. 你是不是忘了部署根证书这一步,这里也可以中间人 3. 验证证书不需要和 CA 通讯,只需要根证书 4. CRL 呢? 5. 怎么保护 CA 密钥? 6. 签发记录 /日志 7. #2.4 应用服务器有一个证书就够了,域名相同的话多个服务器也可以共享 真心不建议自建 CA ,签发用 OpenSSL 就能搭出来。管理不好才是大坑。 |
3
hanguofu 2017-04-20 22:45:33 +08:00
我觉得楼主的想法没什么大的问题, 我的建议是使用 OpenSSL 自己签发 , 搞双证书认证 。至于 ryd994 说的管理不好,我不是很明白什么意思。
一家之言,仅供参考。 |
4
aaronzheng OP @lty1993 我研究了下 cfssl 那套,总体是可行的,不过一些业务场景满足不了,最后还是采取自己建立一套类 PKI 的体系。
@ryd994 感谢你的建议啊!!!一般情况下,的确是单向 SSL 就够了。但目前是我们有自己的终端,所以必须走双向 SSL 。中间人这个问题,我们考虑了很久,最后决定, CA 在局域网,在终端出厂前,终端公钥和密钥在 CA 生成,签名数字证书,包成密钥库,然后直接安装 CA 信任链 到终端,和放 密钥库 到终端。最后通过现场方式发放 密钥库的 通行码。至于 CRL 那部分,目前通过业务去解决,不在技术层面完成。(还考虑了其他一些攻击,例如密钥库被盗用了,在验证的时候,在传输层验证后,还会上升到应用层做验证的) @hanguofu 对的,目前就是打算 OpenSSL + keytool 来完成签发等任务。其实 ryd994 说的管理,是因为要考虑到 证书的撤销 和 证书的更新,等流程。 |
5
ryd994 2017-04-21 00:38:10 +08:00 via Android
@aaronzheng 规模大的话不要直接拿根 CA 签
签个中级 CA 平时用,根 CA 冷储存,出事了就可以 crl revoke 中级 CA ,但不需要重新部署根 CA @hanguofu 正规 CA 怎么说也要硬件储存和各种安全审计吧………不做好这一套标准还不如不做,不要给其他人虚假的安全感 |