사용자 이름 또는 비밀번호가 올바르지 않습니다 : 왜 어떤 것을 지정하지 않습니까? [닫은]


2

웹 사이트 나 모바일 응용 프로그램에 로그인 할 때 잘못된 사용자 이름 / 이메일 또는 암호를 입력하면 "사용자 이름 또는 암호가 잘못되었습니다"라는 메시지 만 표시됩니다. 사용자 이름 / 이메일 또는 비밀번호가 올바르지 않은지를 사용자에게 구체적으로 알리는 대신 왜 이렇게하는 것이 일반적인 관행입니까?

내 생각에 그것은 보안에 어느 정도까지 영향을 미쳤지 만, 그렇다면 사용자에게 제공된 자격 증명의 일부가 잘못되었다는 것을 모호하게 말함으로써 위협 방지에 얼마나 큰 차이가 있습니까?

예를 들어, 오래되었거나 자주 방문하지 않는 웹 사이트에서 인스턴스가 많았습니다. 여기서 잘못된 부분이 내 이메일인지, 비밀번호인지 또는 둘 다인지 알 수 없습니다.


안타깝게도 Windows 기반 시스템에서는 다음 중 하나를 쉽게 찾을 수 있습니다. 동일한 사용자 이름을 3-4 번 시도하고 잠긴 경우 사용자 이름이 유효합니다. 그렇지 않으면 유효하지 않습니다 (지난 몇 년 동안 변경되었을 수 있습니다. 조사하지 않았습니다).
Carl Witthoft

답변:


7

이것은 IT 보안 스택 교환 사이트에서 해결되었습니다 .

공격자가 암호만으로 유효한 사용자 이름 암호 조합을 추측하기가 훨씬 어렵습니다. 계정의 존재가 확인되면 Facebook과 같은 사이트에 대한 외부 조사를 통해 대상을 지정할 수 있습니다.

또한 웹 사이트가 사용자 자격 증명의 두 부분 (사용자 이름 및 비밀번호 해시)에 대해 데이터베이스를 동시에 쿼리하거나 인증 계층이 불투명하고 일반 인증 실패를 반환하는 경우 일반 인증 실패를 반환하는 것이 훨씬 편리합니다. 사용자는 합법적입니다.

일반적으로 필요한 것보다 더 많은 정보를 공개하는 것은 좋지 않습니다. 일부 공격자는 피싱을 위해 ( "열거") 사용자 목록을 잡고 싶어 할 수 있습니다.

또한 사용자가 다른 사용자 이름을 생성하기 위해 사용자 이름을 잘못 입력했지만 다른 사용자의 암호가 아닌 고유 한 암호를 얻는 경우 어떻게해야합니까? 그런 다음 사용자 이름에 실수가 있었음에도 불구하고 메시지에 "잘못된 비밀번호"라고 표시됩니다.


" 사용자가 사용자 자격 증명의 두 부분을 동시에 데이터베이스에 쿼리하는 경우 "를 어떻게 읽어야합니까? 나에게 암호가 명확하게 저장되어 있다고 가정하는 것 같습니다.
kasperd

@kasperd 서버가과 같은 작업을 수행 select * from users where username='USERNAME HERE' and passhash='COMPUTED HASH HERE'하면 0 개 또는 1 개의 결과 가 나오며 , 아무것도없는 경우 어떤 것이 잘못되었는지 알 수 없습니다. (Sec.SE 질문에 대한 답변 중 하나의 예)
Ben N

1
암호를 명확하게 저장하는 것보다 낫습니다. 그러나 안전한 비밀번호 해시에는 소금이 포함되며 이는 사용자마다 다릅니다. 따라서 데이터베이스에서 솔트를 먼저 찾지 않으면 비밀번호 해시를 계산할 수 없습니다.
kasperd

10

당신의 추측은 맞습니다. 사용자 이름을 잘못 지정하면 정보 유출 형식이 됩니다. 침입자는 로그인 양식 만 사용하여 특정 전자 메일 주소 / 사용자 이름이 웹 사이트에 계정을 가지고 있는지 확인할 수 있습니다.


옳은. 당신이 보호하려는 공격이 암호와 사용자 이름의 무작위 시행과 오류라면, 이것은 두 번 크래킹 / 추측을 어렵게 만듭니다.
Jan Doggen

2
뭔가 빠진 것 같습니다. 왜 침입자가 등록 페이지를 통해 같은 이름의 계정을 만들려고 시도하여 계정이 있는지 여부를 확인할 수 없었습니까?
Andrew Sun

@AndrewSun은이 취약점을 악용하기위한 일반적인 벡터이며이를 완화 할 수있는 방법이 있습니다. 여기를 참조하십시오
진하게

3

그것은 단지 보안 및 개인 정보 보호 중심입니다 ... 개인 정보 측면은 대부분의 사람들이 여러 사이트에서 공통적으로 사용자 이름을 사용하기 때문에 사용자 이름이 존재하는지 확인하면 개인이 해당 시스템에 계정을 가지고 있음을 나타냅니다. 사이트 또는 사용자이지만 여전히 일부 개인 정보를 제공합니다. 임의의 사용자 이름과 암호 인증을 시도하면 사용자 이름이 정확하다고 말하면 해킹의 가능한 조합이 줄어들어 시간이 크게 단축되고 해킹의 가능성이 높아집니다. 다른 의미가 있지만 가장 중요합니다.


1
사용자 이름을 알면 검색 공간이 반으로 줄어드는 것은 아닙니다. 10 ^ 8 개의 가능한 사용자 이름과 10 ^ 20 개의 가능한 암호가 있다고 가정하십시오. 침입자가 사용자의 존재 여부를 알 수 없으면 시도 할 10 ^ 28 쌍이 있습니다. 공격자가 사용자가 존재한다는 것을 알게되면 10 ^ 20 쌍만 남게되므로 8 배의 크기가 줄어 듭니다. (큰 검색 공간이 두 개 이상의 조회수를 갖기 때문에 확률이 약간 더 복잡하지만 아이디어를 얻을 수 있습니다.)
Ben N

1
사실, 내 수학은 틀릴 수도 있지만 일반적으로 나는 나의 진술을지지합니다
acejavelin
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.