Authentication ssh身份验证概念问题

Authentication ssh身份验证概念问题,authentication,ssh,signature,key-pair,Authentication,Ssh,Signature,Key Pair,无论我读到哪里,他们都说ssh密钥对身份验证比简单密码身份验证更安全,因为发送到服务器的签名总是不同的。所以,如果有人得到我的签名,他下次就不能用它代表我登录 现在我的问题是这个签名是如何唯一的 服务器是否首先发送一些随机字符串,我的计算机使用我的私钥对其签名并将其发回。因为这是我看到签名每次都是独一无二的唯一方式。但在网络上的任何地方,他们都说客户端首先发送签名(因为这是第一步),但我认为服务器应该首先发送随机字符串 我不是安全专家,但以下是我对基于密钥的身份验证工作原理的理解:服务器发送一个

无论我读到哪里,他们都说ssh密钥对身份验证比简单密码身份验证更安全,因为发送到服务器的签名总是不同的。所以,如果有人得到我的签名,他下次就不能用它代表我登录

现在我的问题是这个签名是如何唯一的


服务器是否首先发送一些随机字符串,我的计算机使用我的私钥对其签名并将其发回。因为这是我看到签名每次都是独一无二的唯一方式。但在网络上的任何地方,他们都说客户端首先发送签名(因为这是第一步),但我认为服务器应该首先发送随机字符串

我不是安全专家,但以下是我对基于密钥的身份验证工作原理的理解:服务器发送一个使用您的私钥加密的随机数。客户端解密该质询并将其发送回服务器,验证它是否拥有私钥

然而,我认为基于密码的身份验证也使用了类似的技术:服务器发送一个随机数。客户端将随机数附加到密码中,计算散列,并将其发送到服务器,服务器通过同样的方式进行计算来验证


因此,这似乎不是基于公钥的身份验证“更安全”的原因。

对于密钥身份验证,您的私钥永远不会泄露给服务器(因此不会泄露给攻击者),只有您的公钥。同样,服务器的私钥永远不会透露给您(或攻击者),只有公钥

用于派生两个密钥对(每一方一个),然后用于来回发送应用程序数据,无论身份验证是使用简单密码还是使用公钥身份验证完成的

在的情况下,会话密钥对是在用户/密码通过线路发送之前计算的。这可以防止简单的窃听,但当然不能阻止攻击者尝试直接连接和猜测用户/密码组合。当然

在的情况下,计算会话密钥对,然后使用或类似的算法进行简单对话(通常是数学问题/答案),以验证声明的用户与公钥匹配。如果不猜测其中一个私钥,就无法伪造此对话。如果操作正确,这比使用最强大的密码要困难得多。即使公钥身份验证(如中)存在弱点,但由此产生的弱公钥身份验证仍可能比密码身份验证强得多