第一章:加密、算法和密钥

现代计算机驱动的加密算法处理文本块,并执行复杂的转换。

大多数加密算法使用密钥;用于加密消息的文本、数字、符号或数据块。

密钥可以由用户选择或随机生成。

人们习惯性地选择容易猜到的密钥,因此OpenSSH甚至没有给用户创建自己的密钥的选项。

加密算法使用密钥对文本进行加密,使外部人员更难解密。即使你知道加密算法,如果没有密钥,也无法解密消息。

将加密算法视为一种锁,密钥是一个特定的钥匙。锁有很多不同的类型,每种锁都是用某种类型的钥匙。但即使类型相同,不匹配的钥匙也无法打开错误的锁。加密密钥的工作原理类似。


OpenSSH对流量进行加密。这是什么意思,它是如何工作的?我在我的书《PGP&GPG》(No Starch Press,2006)中给出了详细的解释,但这里是简短的版本。

加密将可读明文转换为攻击者无法理解的不可读密文。解密会反转转换,从明显的乱码中产生可读的文本。加密算法是执行此转换的确切方法。大多数孩子都会发现用数字代替字母的密码,所以A等于1,B等于2,Z等于26,以此类推。这是一个简单的加密算法。现代计算机驱动的加密算法一次处理文本块,并执行更复杂的转换。

大多数加密算法使用密钥;用于加密消息的文本、数字、符号或数据块。密钥可以由用户选择或随机生成。(人们习惯性地选择容易猜到的密钥,因此OpenSSH甚至没有给用户创建自己的密钥的选项。)加密算法使用密钥对文本进行加密,使外部人员更难解密。即使你知道加密算法,如果没有秘密加密密钥,你也无法解密消息。

将加密算法视为一种锁,密钥是一个特定的密钥。锁有很多不同的类型:房门、自行车、工厂等等。每种锁都使用某种类型的钥匙——你的门钥匙可能形状不适合任何车辆点火装置。但即使是正确类型的钥匙也无法在错误的锁中使用。你的前门钥匙可以打开前门,而且只能打开前门。加密密钥的工作原理类似。

第一章:加密、算法和密钥算法类型SSH如何使用加密

算法类型

加密算法有两种,对称和非对称。

SSH如何使用加密

对称加密速度很快,但主机无法安全地交换密钥。非对称加密允许主机交换公钥,但速度慢且计算成本高。如何有效地加密以前从未通信过的两个主机之间的会话?

每个SSH服务器都有一个密钥对。每当客户端连接时,服务器和客户端都会使用此密钥对来协商仅在这两个主机之间共享的临时密钥对。客户端和服务器都使用这个临时密钥对来导出对称密钥,他们将在会话期间使用该对称密钥交换数据,以及提供连接完整性的相关密钥。如果会话长时间运行或交换大量数据,计算机将间歇性地协商新的临时密钥对和新的对称密钥。SSH协议比这更复杂,包括防止许多不同加密攻击的保护措施,但加密密钥交换是协议的核心

SSH支持许多对称和非对称加密算法。客户端和服务器在每次连接时协商双方都同意的算法。虽然OpenSSH提供了一些选项,可以轻松更改支持的算法及其对每种算法的偏好,但不要!拥有比我们两人加起来更多加密经验的程序员经过深思熟虑、故障排除和痛苦后,得出了OpenSSH的加密偏好。流言蜚语、谣言和影射可能会将Blowfish称为当今最棒的加密算法,但这并不意味着你应该调整你的OpenSSH服务器,使其只使用该算法而不使用其他算法。

人们改变加密算法的最常见原因是提高速度。SSH的主要目的是安全,而不是速度。不要为了提高速度而放弃安全。您可能会遇到只使用旧加密算法的设备。我们将在 【第15章OpenSSH 废料】中处理这些问题

既然您已经了解了SSH加密的工作原理,就不要再讨论加密设置了。