SQL SERVER 2012 의 패스워드는 32 비트의 salt 와 함께 SHA_512 hashing algorithm 을 사용하여 저장되어 왔습니다. SHA_512 는 12년 동안 사용되어 왔으며, 약간의 노화(ageing)?의 징후를 보여주기 시작했습니다.
모든 SHA 알고리즘은 여러 라운드(rounds) 를 기반으로합니다.전체 rounds 수 (80)에 대한 성공적인 공격은 없었지만, 깨질 수 있는 라운드(rounds) 수가 증가하고 있습니다.이제 실제 응용 프로그램에서는 항상 80 라운드를 모두 사용하며, 그렇게 하면 알고리즘이 여전히 안전합니다.그러나, 깨진 라운드 수가 증가하면 향후 몇 년 내에 중단 될 가능성이 있습니다.
해시 값 계산 (Calculating the Hash Value)
hash 값을 계산하는 첫 번째 단계는 비밀번호를NVARCHAR에서VARBINARY로 변환하는 것입니다.이후 SQL Server는CSPRNG 를 사용하여 32 bit 의 salt를 생성하고 변환 된 암호에 추가합니다.이 새로운 연결된VARBINARY값 중에서 SQL Server는 SHA_512 hash를 계산합니다.
마지막 단계는0x0200 을 salt 및 계산 된 hash 와 함께 연결하여 해시 값을 최종 생성하는 것입니다.