SFTP如何使用密钥?

时间:2017-04-07 19:34:44

标签: security ssh

我是SFTP的新手,需要帮助了解以下内容。我在网上研究了半天,但找不到相关的问题。

SFTP中密钥的作用是什么?它只是用于身份验证还是加密数据?

我的假设是 可以说我使用的是计算机名称" SOURCE"我需要将一些文件发送到另一个计算机名称" DESTINATION"。

现在我觉得这台名为" SOURCE"将生成一对公钥和私钥。它将公钥发送到计算机" DESTINATION"并确保私钥安全。

现在我很困惑,因为如果SFTP使用密钥加密数据,那么如果计算机" SOURCE"使用公钥加密数据并发送到计算机名称" DESTINATION",目标计算机没有私钥来解密文件,那么这一切是如何工作的?

另一方面,如果KEYS仅用于验证,那么它是如何工作的。 电脑" SOURCE"有私人和公共密钥和计算机" DESTINATION"只有公钥。 现在我的理解是任何人都可以拥有一个公钥,所以如果中间的人有公钥,如果他在他的PC上安装它,那么安全性如何起作用呢?

2 个答案:

答案 0 :(得分:0)

有两个不同的概念需要理解:

  1. 使用对称密钥算法(如3DES,AES,..)的数据加密。
  2. 使用非对称算法的公钥认证,如RSA,ECDSA,..
  3. 来自sftp man page

      

    sftp是一个交互式文件传输程序,类似于ftp,它通过加密的ssh传输执行所有操作。它也可能使用ssh的许多功能,例如公钥认证 [...]

    来自ssh man page

      

    公钥认证的工作原理如下:该方案基于公钥加密,使用加密系统,使用单独的密钥进行加密和解密,从中导出解密密钥是不可行的。加密密钥。这个想法是每个用户创建一个公钥/私钥对用于身份验证。服务器知道公钥,只有用户知道私钥。

    可以使用-c选项选择数据加密算法:

      

    -c cipher_spec                选择加密会话的密码规范。

         

    支持的密码是:    - 3des-cbc    - aes128-cbc    - aes192-cbc    - aes256-cbc   [...]

    • 身份验证密钥(不对称)存储在~/.ssh/目录中,不用于数据加密
    • 数据加密密钥(对称)是通过密钥交换算法在每个会话中创建的,即使在通信的两端都存在相同的密钥,也不会在客户端和服务器之间进行通信。

    有关详细信息,请阅读Digital Ocean:Understanding the SSH Encryption and Connection Process

    中的这篇文章

答案 1 :(得分:0)

在我开始纠正误解之前,我们先介绍一些基础知识。

密钥是一个由公用密钥和专用密钥组成的密钥对。他们听起来像。私钥应始终保持私密。如果您永远发现自己正在传输私钥,您做错了。老实说,除了删除公钥外,您对公钥的处理几乎没有关系。

使用公钥加密并使用私钥解密

不是对称加密。公钥甚至无法解密自己的加密消息。

让我们说我正在使用计算机名称“ SOURCE”,并且需要将文件发送到另一台计算机名称“ DESTINATION”

不是。让我们将它们重命名为 SOURCE client DESTINATION server

密钥在SFTP中的作用是什么?只是用于身份验证还是用于加密数据?

两者。但是,它们不是相同的密钥对。初始密钥对用于身份验证,然后客户端和服务器一起工作以生成对称密钥,该对称密钥用于加密连接。

现在我认为 名为“ SOURCE”的计算机 客户端将生成一对公钥和私钥。它将公钥发送到 计算机“目的地” 服务器,并保持私钥的安全。

是的,这是最佳且唯一的做法。

现在我很困惑,因为如果SFTP使用密钥对数据进行加密,那么... 目标计算机 服务器没有用于解密文件的私钥,那么这一切如何运作?

连接过程的一部分涉及客户端和服务器的两者,生成另一个密钥对每个,这些密钥对用于创建对称密钥,该对称密钥对会话期间发送的数据进行加密。这是原因的原因,为什么SFTP如此安全,协商和对称密钥生成过程受到相同密钥对技术的保护,甚至更好,人类实体甚至没有机会尝试传输其私钥

...现在我的理解是任何人都可以拥有一个公钥,因此如果中间的人拥有一个公钥并将其安装在PC上,那么安全性如何工作?

这就是为什么我说,在本文开头,您对公钥的处理基本上没有关系,唯一的例外是删除公钥(不发送给任何人)。拥有私钥的人是发起人。从理论上讲,中间人可能会拦截您的初始请求,阻止其到达目的地,然后假装成为服务器,但这不太可能*。如果您是高价值目标,则还可以进一步认证证书以确认身份。

我在那儿切线,但是如果其他人试图启动的连接,他们将需要一个单独密钥对因为加密是单向的。 (通过这种连接的方式,您将被视为服务器,而它们将成为客户端)。本质上,MitM所做的所有工作都使您能够通过SSH与他连接,如果选择

*尤其是如果您是低价值目标。没人会使用MitM的SSH连接,因此他们可以使用家庭自制的家庭自动化工具破解rasberry pi并打开和关闭灯。一个更好,更轻松的目标是对银行客户服务部门进行社会工程,以向他们提供密码。吓人,不是吗?