---
author: Catalin Cimpanu
category: 新闻
comments_data: []
count:
  commentnum: 0
  favtimes: 0
  likes: 0
  sharetimes: 0
  viewnum: 3890
date: '2020-05-28 17:57:07'
editorchoice: false
excerpt: 破坏一个 SHA-1 生成的 SSH 验证密钥，现在的成本大约为 5 万美元，使得重要的远程服务器面临着被攻击的风险。
fromurl: https://www.zdnet.com/article/openssh-to-deprecate-sha-1-logins-due-to-security-risk/
id: 12260
islctt: true
largepic: /images/p/202005/28/175710huryrfkqfzfbufrk.png
permalink: /article-12260-1.html
pic: /images/p/202005/28/175710huryrfkqfzfbufrk.png.thumb.jpg
related: []
reviewer: ''
selector: ''
summary: 破坏一个 SHA-1 生成的 SSH 验证密钥，现在的成本大约为 5 万美元，使得重要的远程服务器面临着被攻击的风险。
tags:
- OpenSSH
- SHA-1
thumb: false
title: 出于安全原因，OpenSSH 决定弃用 SHA-1 验证算法
titlepic: true
translator: wxy
updated: '2020-05-28 17:57:07'
---


> 
> 破坏一个 SHA-1 生成的 SSH 验证密钥，现在的成本大约为 5 万美元，使得重要的远程服务器面临着被攻击的风险。
> 
> 
> 


![OpenSSH SSH](/images/p/202005/28/175710huryrfkqfzfbufrk.png)


最受欢迎的连接和管理远程服务器的实用工具 OpenSSH 今天宣布，计划放弃对其 SHA-1 验证方案的支持。在这个宣布当中，OpenSSH 团队列举了 SHA-1 散列算法的安全问题，该算法目前被认为是不安全的。


SHA-1 算法在 2017 年 2 月的一次实际的、真实世界的攻击中被破解，当时谷歌密码学家披露的 [SHAttered](https://shattered.it/) 技术可以使两个不同的文件拥有相同的 SHA-1 文件签名（这称之为“碰撞”）。


在当时，创建一个 SHA-1 碰撞被认为需要非常昂贵的计算成本，谷歌的专家认为 SHA-1 在实际应用中至少还能用上五年，直到成本下降。


然而，随后在 2019 年 5 月和 2020 年 1 月发布的研究报告中，详细介绍了一种更新的方法，将 SHA-1 选择-前缀碰撞攻击chosen-prefix collision attack的成本分别降低到 [11 万美元](https://www.zdnet.com/article/sha-1-collision-attacks-are-now-actually-practical-and-a-looming-danger/)和 [5 万美元](https://eprint.iacr.org/2020/014.pdf)以下。


对于高级威胁攻击者，例如国家黑客和高端网络犯罪集团，如果他们能够生成一个 SSH 认证密钥，使他们能够远程不被发现地访问关键服务器，那么 5 万美元是一个很小的代价。


### OpenSSH 关闭 ssh-rsa 模式


“由于这个原因，我们将在不久的未来版本中默认禁用 ssh-rsa 公钥签名算法。”OpenSSH 开发者今天表示。


OpenSSH 应用程序使用 ssh-rsa 模式来[生成 SSH 验证密钥](https://www.ssh.com/ssh/public-key-authentication)。这些密钥中的一个存储在用户要登录的服务器上，另一个存储在用户的本地 OpenSSH 客户端中，这样用户就可以在每次登录时不需要输入密码就可以访问服务器，而是以本地认证密钥来代替。


在默认情况下，OpenSSH ssh-rsa 模式通过使用 SHA-1 哈希函数生成这些密钥，这意味着这些密钥容易受到 SHAterred 攻击，使攻击者能够生成重复的密钥。


“遗憾的是，尽管有更好的替代方案存在，但这种算法仍然被广泛使用，它是原始的 SSH RFC 规定的唯一剩下的公钥签名算法”，OpenSSH 的开发人员今天表示。


OpenSSH 团队现在要求服务器所有者检查他们的密钥是否已经使用默认的 ssh-rsa 模式生成，并使用不同的模式生成新的密钥。


OpenSSH 团队表示，推荐的模式是 rsa-sha2-256/512（从 OpenSSH 7.2 开始支持）、ssh-ed25519（从 OpenSSH 6.5 开始支持）或 ecdsa-sha2-nistp256/384/521（从 OpenSSH 5.7 开始支持）。



> 
> 这里是最近公告中的最好的消息。让我们为所有的嵌入式系统和设备永远不会看到 OpenSSH 中废弃的 ssh-rsa SHA-1 密钥的升级而默哀一分钟。
> 
> 
> - Julio (@juliocesarfort) 2020 年 5 月 27 日
> 
> 
> 


OpenSSH 项目将在未来（目前还未确定）的版本中默认禁用 ssh-rsa 模式，但是在此之前，他们还计划默认启用 UpdateHostKeys 功能，让服务器所有者可以轻松自动地从旧的 ssh-rsa 模式迁移到更好的验证算法。


依赖 OpenSSH 管理远程系统的服务器管理员可以在 [OpenSSH 8.3 的变更日志](http://www.openssh.com/txt/release-8.3)中找到更多关于如何测试他们的服务器是否有基于弱 SHA-1 的密钥的详细信息。


在之前的一个版本中，在 8.2 版本中，OpenSSH 团队还增加了对[基于 FIDO/U2F 的硬件安全密钥的支持](https://www.zdnet.com/article/openssh-adds-support-for-fidou2f-security-keys/)，这也可以用来更安全地登录远程服务器。




---


via: <https://www.zdnet.com/article/openssh-to-deprecate-sha-1-logins-due-to-security-risk/>


作者：[Catalin Cimpanu](https://www.zdnet.com/meet-the-team/us/catalin.cimpanu/) 选题：[wxy](https://github.com/wxy) 译者：[wxy](https://github.com/wxy) 校对：[wxy](https://github.com/wxy)


本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译，[Linux中国](/article-12257-1.html) 荣誉推出