Hmac
kerberos 在 Windows 中使用什麼經過身份驗證的加密?
我了解了 kerberos 協議,並看到 windows 版本使用了幾個經過身份驗證的加密模式(如 rc4-hmac-md5)。
它是什麼類型的經過身份驗證的加密?是不是一個:
- 加密然後 MAC
- 加密和 MAC
- MAC然後加密
謝謝
這取決於算法。Kerberos 規範聲明加密和解密函式必須處理完整性檢查,但指定的算法必須定義此行為。
Windows 支持的唯一合理安全的 Kerberos 算法類型是
aes128-cts-hmac-sha1-96
和aes256-cts-hmac-sha1-96
. 這些都不是很好的選擇,因為它們使用 SHA-1,但 HMAC-SHA-1 在這種情況下仍然是安全的,儘管總體上仍應避免使用 SHA-1。在這些算法中,它是加密和 MAC:明文前面附加了一個隨機字元串,MAC 和加密都在該預置的明文上完成,並附加了 MAC。對於使用更現代的
aes128-cts-hmac-sha256-128
and的系統aes256-cts-hmac-sha384-192
,它們是 encrypt-then-MAC:MAC 是通過密文計算的。然而,Windows 不支持這一點,儘管大多數 Unix 系統都支持。Windows 還支持用於 Kerberos 的各種舊的、不安全的算法,這些算法都不應該使用。這些算法在 CBC 模式下使用帶有 CRC (!) 或 HMAC-MD5 的單個 DES,以及帶有 HMAC-MD5 的 RC4。儘管 HMAC-MD5 在用作 MAC 時被認為是安全的,但責任方根本不使用 MD5,而且 RC4 具有在許多協議中實際上可以攻擊的弱點。單個 DES 可在商業上以 20 美元的價格破解,因此它完全不安全。如果您對他們的加密感興趣,我建議您參考相關的 RFC。