2022년 6월, 연구자 제임스 포쇼(James Forshaw)는 커버로스(Kerberos)에서 RC4 암호화 처리에 대한 취약점을 발견했습니다. 이 취약점은 사용자 위장(user impersonation)을 허용합니다. 커버로스는 사용자 자격 증명을 증명하기 위해 암호화 알고리즘을 사용하며, 클라이언트와 서버 간의 협상을 허용합니다. RC4는 구식이고 취약한 알고리즘입니다. 그러나 윈도우에서는 DES가 제거되었음에도 불구하고 기본적으로 활성화되어 있습니다. 마이크로소프트는 RC4의 약점을 완화하기 위해 키화된 MD5 HMAC 해시(keyed MD5 HMAC hash), 무작위화된 "혼란(confounder)" 및 사용자의 암호에서 메시지 유형 값으로 파생된 키를 사용하여 보호를 구현했습니다. 그러나 가장 큰 취약점은 사용자의 암호에서 사용자의 키를 생성하는 것입니다. 마이크로소프트는 NTLM과 동일한 해시 값을 사용했으며, 이는 무차별 공격(brute-force attack)에 대한 보호가 부족합니다. 공격자는 커버로스팅(Kerberoasting) 또는 AS-REP 로스팅(AS-REP Roasting)을 사용하여 RC4-HMAC 키로 암호화된 암호문을 얻고 키를 무차별 공격으로 시도할 수 있습니다. 이러한 공격을 방지하기 위해 윈도우에서는 사전 인증(pre-authentication)이 필요하지만, "커버로스 사전 인증 요구하지 않음" 플래그를 사용하여 이를 비활성화할 수 있습니다. 무차별 공격의 성공 여부는 암호 복잡성에 따라 다르며, 서비스 사용자 계정은 긴 랜덤 암호로 인해 더 안전합니다. 위험을 완화하기 위해 네트워크 전체에서 RC4를 비활성화하거나 민감한 사용자를 보호 사용자 그룹(Protected Users Group)에 추가할 수 있습니다. 암호화 알고리즘은 CRYPTDLL.DLL에 구현되어 있으며, 음의 암호화 유형 값으로 표시되는 개인 유형이 있습니다.
googleprojectzero.blogspot.com
RC4 Is Still Considered Harmful
