【发布时间】:2018-01-27 02:34:01
【问题描述】:
我正在使用旧版本的 netbsd。我想将 openssh 配置为使用强密码和 mac,但是当看到可用的 mac 时,它不支持 SHA256 及更高版本。支持的mac是
macs[] = {
{ "hmac-sha1", SSH_EVP, EVP_sha1, 0, -1, -1 },
{ "hmac-sha1-96", SSH_EVP, EVP_sha1, 96, -1, -1 },
{ "hmac-md5", SSH_EVP, EVP_md5, 0, -1, -1 },
{ "hmac-md5-96", SSH_EVP, EVP_md5, 96, -1, -1 },
{ "hmac-ripemd160", SSH_EVP, EVP_ripemd160, 0, -1, -1 },
{ "hmac-ripemd160@openssh.com", SSH_EVP, EVP_ripemd160, 0, -1, -1 },
#ifdef UMAC_HAS_BEEN_UNBROKEN
{ "umac-64@openssh.com", SSH_UMAC, NULL, 0, 128, 64 },
#endif
{ NULL, 0, NULL, 0, -1, -1 }
};
但是当我检查支持的密钥交换密码时,我发现可以使用 SHA256
#define KEX_DH1 "diffie-hellman-group1-sha1"
#define KEX_DH14 "diffie-hellman-group14-sha1"
#define KEX_DHGEX_SHA1 "diffie-hellman-group-exchange-sha1"
#define KEX_DHGEX_SHA256 "diffie-hellman-group-exchange-sha256"
怎么样。如果我的 netbsd openssh 中有 SHA256 的实现,为什么它不能作为 mac 密码使用?
【问题讨论】:
-
那里的 OpenSSH 版本是什么? MAC 和密钥交换中的 SHA2 使用是完全不同的,一个不会影响另一个。如果在其中任何一个中使用 SHA2,则取决于底层 OpenSSL 中此哈希的可用性,以及 OpenSSH 是否实现了此类算法。
-
@Jakuje,我的 netbsd 有 Openssh V5.0
-
不要将在消息身份验证代码 (HMAC) 中使用散列算法与在 PKI 证书签名或密钥交换中使用散列算法相混淆。他们是不同的。请参阅 Why is HMAC-SHA1 still considered secure? 和 HMAC-SHA1 vs HMAC-SHA256 在我写这篇文章时,没有已知的理由要求 HMAC-SHA256 优于 HMAC-SHA1