问题描述
我之前的设计是使用rest API将post请求(或者我应该使用get?)发送到后端,然后生成密钥对并将其返回给前端。然后为下载的私钥文件创建 URL。
但似乎以这种方式可能会导致一些安全问题。我对安全不熟悉,所以我实际上不知道可能会导致什么安全问题,以及会在哪里发生。
我希望我能对解决方案有所了解,任何建议或解释都会有所帮助。 谢谢!
解决方法
你不能这样做,除非......
- 您已经拥有发送私钥的安全通道,或者
- 客户端和服务器已经拥有可用于创建此类通道的共享密钥或密钥对。
但好消息是,如果您的服务器实现了 HTTPS(或类似的基于 SSL 的协议)并且具有正确的 SSL 证书和正确的根 CA,那么由客户端创建到 HTTPS 端点的通道应该是安全的。然后,您只需要一种服务器对客户端进行身份验证的方法;例如帐户名 + 密码或客户端证书。 (但这意味着一个共享秘密......用于向服务器验证客户端。)
一般来说,解决方案涉及某种引导,从“带外”注入的共享秘密开始;例如在启动映像、首次启动注入或 U 盘中。
注意这种事情真的应该由懂安全的人来设置,因为如果你弄错了,造成的损失是无法估量的。
所以……
我想为服务器上的客户端生成一个 SSH 密钥对。
简单的答案是不要那样做。反过来实施它。在客户端生成密钥对并将公钥发送给服务器。