2011-05-12 4 views
2

소금에 절인 해시 버전의 사용자 비밀번호 저장에 관해서는
해시 된 해시 비밀번호와 해싱하기 전에 사용 된 소금을 DB에 저장합니다.암호를 해싱 할 때 해시 함수 이름을 DB에 저장해야합니까?

DB에서 소금에 절인 암호 (예 : SHA1 또는 MD5 [MD5 사용 안 함])를 해시하는 데 사용되는 알고리즘의 이름을 저장해야합니다. 누군가 내가 알고리즘에서 위반 사항을 발견 한 경우, 미래의 사용자를 위해 다른 알고리즘을 사용하도록 전환 할 수 있습니까?

공지 사항 : 당신이 처음부터 강력한 암호 해시 함수를 사용하면 임의의 해시에게

+0

암호 저장에 bcrypt 또는 scrypt를 사용하십시오. –

답변

3

네, 좋습니다. 매우 적은 비용 (항목 당 몇 바이트)으로 나중에 암호를 저장하는 방법을 변경하고 향상시킬 수 있음을 의미합니다. 예를 들어 몇 년 전에 MD5에서이 방법을 사용하기 시작했다고 가정하면 다음에 로그인 할 때 각 사용자의 암호 해시를 업데이트하여 SHA1 또는 다른 것으로 더 안전하게 업그레이드하는 것이 중요합니다.

유의하시기 바랍니다 PBKDF2 암호 해시뿐만 아니라 소금에 절인 해시와 같은 것을 사용해야합니다.

0

을 생성하는 데 사용되는 알고리즘에 대해 이야기하고 있지 않다, 아마 강한 해시 기능으로 전환 할 이유가 없을 것 .

컴퓨팅에서 정보 보안을위한 가장 중요한 권장 사항을 요약 한 웹 사이트 keylength.com이 있습니다. 현재 선택된 해시 함수의 길이는 160 비트 이상이어야합니다.

다양한 형식을 찾고있는 경우 해시 함수의 식별자, 사용한 소금, 다이제스트 및 추가 정보 (예 : 비용 요소)가

modular crypt format을 사용할 수 있습니다
$<id>$[<parameters>$]<salt><digest> 

Many suggest to use bcrypt for passwords 추가 비용 매개 변수는 해싱의 계산 비용을 조정하는 것입니다.

+0

첫 번째 문장에서 주어진 조언은 MD5 또는 SHA1에 대해 첫 번째 취약점이 발견되기 전에 동일하게 그럴듯하게 말했을 것입니다. 현재의 암호화 기본 원리를 무기한으로 사용하도록하는 것은 좋지 않은 전략입니다. –

0

개인 취향 중 하나입니다. 해싱 알고리즘의 약점이 발견되면 사용자 암호 저장 및 확인 방법을 변경해야합니다. 이를 수행하는 여러 가지 방법이 있으며 해시 이름을 저장하는 것이 유효한 대안입니다. 당신은 더 나은 해싱 대안 전환 할

  • 약점은 당신이 (당신이 경우, 당신은 더 큰 문제를 가지고있는)
일반 텍스트 암호를 저장하지 않는
  • 발견되면 가정하면

    당신은 새로운 해싱 알고리즘을 사용하여 사용자를 위해 새 암호를 자동으로 생성 (및 알리거나)하거나 다음에 로그인 할 때 암호를 변경하거나 확인하게해야합니다. 알고리즘을 저장하는 접근 방식은 두 번째 대안 (나는 더 나은 선택이라고 생각합니다)을 용이하게합니다.

    기술적으로 해시 알고리즘을 저장해도 데이터베이스가 침투하면 암호가 덜 안전 해지지 않으므로 알고리즘을 변경하고자 할 때 유연성이 향상됩니다.

    HTH

  • 관련 문제