로그인이 틀리면 왜 '아이디 혹은 비밀번호가 틀렸습니다'라고 할까?
그답은 로그인 프로세스의 개인정보 및 보안에 있다.
대부분의 웹사이트에서 로그인을 하면 나타나는 오류가 있는데,

위와 같이 로그인 실패시 'Incorrect username or password' 메시지를 나타내는 경우가 많은데,
왜 username이나 password 둘중 어디가 틀렸는지 지정해주지 않고 or을 붙여서 틀렸다고만 설명해주는 걸까?
답은 사용자의 개인정보 보안에 있다.

Most of us, while developing sites swear to the rule of making error messages shown to the end-user as specific as possible, which goes a long way in creating a friendly UX. But the same rule if used
tarunbatra.com
위의 포스트 내용을 참고해보면 오류메시지의 모호함은 사용자의 개인정보 보안을 위해 있는데,
사용자의 개인정보를 사용해 로그인을 시도하는 공격자가 있을 경우 오류 메시지의 모호함에 따라
보안의 강도가 달라지게 된다.
로그인 메시지가 명확할 시(username이나 password 중 틀린곳을 지정) 공격자는 오류메시지를 분석하여 규칙을 만들어낸다.
- 암호가 잘못되었다는 오류 메시지는 사용자 이름이 유효한 것임을 나타내며 -> 사용자 이름이 잘못되었다는 오류 메시지는 비밀번호 조합이 성공하지 못할 것임을 나타낸다. => 결정적이지 않은 오류 메시지는 무시되고 다음 조합이 시도된다.
파란색은 오류메시지가 모호할때 공격자의 계정 칩입 시도,
빨간색은 오류메시지가 명확할때 공격자의 계정 칩입 시도,
노란색은 시도할 수 있는 조합의 숫자
결론적으로 오류메시지가 모호하면, 공격자의 계정 칩입 시도의 횟수는 오류메시지가 명확할 때보다 공격자의 계정 칩입 시도가 어려워지는 결과를 만들기 때문에, 이러한 방법을 사용하여 사용자의 개인정보를 보호 할 수 있다.
'IT' 카테고리의 다른 글
[JAVA] Spring Security 설정하기 (0) | 2023.02.20 |
---|---|
JAVA -Interceptor를 이용한 controller 가로채기 (0) | 2023.02.20 |
디버깅이란? (0) | 2023.02.18 |
SQL -REPLACE를 이용한 문자열 치환(MYSQL, ORACLE) (0) | 2023.02.17 |
JAVA SQL 중복 쿼리 사용 방법 (0) | 2023.02.15 |