
보안 강화로 인해 로깅 시 사용자 이름 및/또는 비밀번호 오류에 대한 일반적인 응답은 항상 "사용자 이름 또는 비밀번호가 올바르지 않습니다"로 반환되므로 시스템이 사용자 이름 및 비밀번호 조합을 해시하여 저장하지 않는 이유는 무엇입니까? 특히 비밀번호 길이에 최대 한도가 있을 때 내가 어떤 이메일을 사용하고 있는지 모르고 다른 이메일을 시도해야 하는 것보다 더 짜증나는 일은 없습니다.
답변1
같은 이유로 우리는 실제 이름을 비밀로 유지하지 않습니다. 이름은 우리를 식별하는 데 사용되며 설계상 공유 가능합니다.
이는 잠재적인 공격자가 기존 사용자 이름을 사용하고 있는지 여부를 공유하지 않음으로써 잠재적인 공격자가 가질 수 있는 정보를 줄이는 것입니다. 즉, "사용자 이름 또는 비밀번호가 올바르지 않습니다" 스타일 메시지를 활용하는 시스템은 일반적으로 이러한 메시지가 없는 시스템만큼 취약합니다. 가입 양식(때때로 비밀번호 재설정 양식)을 통해 계정 존재 여부를 알 수 있으므로 사용자 이름이 존재하는지 확인하는 것이 쉽지 않습니다. 따라서 이 접근 방식은 공격자를 방해하는 것보다 합법적인 사용자에게 더 실망스러울 수 있습니다.
또한 일반 텍스트 사용자 이름이 저장되지 않은 경우 플랫폼에서 친구를 찾으려고 한다고 상상해 보세요. 문자별로 올바른 사용자 이름을 가져와야 합니다. 그러한 시스템은 끔찍할 정도로 비실용적입니다. 비밀 사용자 이름을 갖는 것은 두 번째 비밀번호를 갖는 것과 유사하며, 그보다 계정을 보호하는 훨씬 더 나은 방법이 있습니다.