在阅读 OpenVPN 2.3 的手册时,我遇到了这个--auth alg
选项。手册说:
使用消息摘要算法使用 HMAC 验证数据包
alg
。(默认为 SHA1 )。HMAC 是一种常用的消息认证算法 (MAC),它使用数据字符串、安全哈希算法和密钥来生成数字签名。
据我了解,HMAC 只是从散列函数制作 MAC 的首选方式,同时可能避免某些散列函数的长度扩展特性。
所以--auth
选项中指定的算法应该是哈希函数。
现在,如果我确实openvpn --show-digests
知道可以使用该--auth
选项使用哪些算法,我还会获得以下条目:
RSA-SHA, DSA-SHA, ECDSA-WITH-SHA1... etc.
这些是数字签名算法,为什么要在 HMAC 中使用它们?获得某种“双重身份验证”?是不是有点矫枉过正?
或者这是否意味着在这种情况下 HMAC 实际上被数字签名取代以实现身份验证?如果是这种情况,在安全性方面使用什么更好?