我有一个分发并安装在许多机器上的应用程序。有一台中央机器可以请求其他机器安装应用程序,其他机器可以请求中央机器。因此,每个安装都将充当服务器和客户端。我想使用ssh公钥加密来保护访问权限。
为简单起见,我们假设服务器A(管理员 - 首先安装)和服务器B安装了应用程序。
让我们说服务器B安装后,服务器A的公钥将在服务器B中可用。
同样假设服务器A将向服务器B发出第一个请求。当这样做时,服务器A将在握手期间获得服务器B的公钥(通过验证指纹,密钥将保存在服务器A中) )和服务器A将其公钥发送到服务器B进行身份验证。由于服务器B已经拥有服务器A的公钥,验证成功吗?。
当服务器B想要请求服务器A时,服务器A将在握手期间发送其公钥,并且根据服务器A在服务器B中可用的公钥进行验证。对于认证,服务器B将发送其公钥,将根据服务器A在上一次请求握手期间获得的公钥(从服务器A到服务器B)进行验证。
需要注意的一点是,没有涉及用户。该应用程序可供本机的所有用户访问。
我的查询是,我们是否需要单独的密钥进行握手和身份验证,或者我所描述的单个密钥是否足够?
还请让我知道上面解释的安全模型会有什么特别的安全问题吗?
如果您需要更多信息,请与我们联系。
谢谢, 纳加
答案 0 :(得分:0)
是。这被称为Host-Based authentication,如RFC4252第9节中所述。但请注意,这构成了几个安全线程,并且使用正确的(openssh)证书这些天(或Kerberos)更有意义。