사이트마다 하나씩 있는 기능이 바로 "비밀번호 찾기"이다.
그러나 이름과 다르게 "비밀번호 찾기"를 누르면 원래 비밀번호를 찾아주는게 아니라 항상 재설정을 해야 한다.
"아 왜 근데 "비밀번호 찾기"냐고!"
왜 그럴까?
그건 서버가 비밀번호를 저장하는 원리에 있다.
만약 회원가입을 할 때 입력한 비밀번호를 원본 그대로 서버에 저장한다고 생각해보자.
그때, 나쁜 해킹맨이 나타나 비번 파일을 털어버렸다!
털린 비번으로 사이트에 로그인하는데 성공한 해커는
유게이 계정으로 돌고래 짤을 달릴 수 있게 되는 것이다.
따라서 서버 비번파일(데이터베이스)이 해커에게 털린다고 해도 안전하게 저장할 방법이 필요하다.
"아니 그게 어떻게 가능함?"
"이미 비번 파일이 털렸는데 어떻게 비밀번호 유출을 막는다는거야!"
적절하게 비밀번호를 "변형"해서 넣는다면 이것이 가능하다!
서버는 비밀번호를 "해싱"이라는 기법으로 변환한다. 쉽게 말하면 원래 비번을 못 알아보게 암호화하는 거라고 보면 된다.
이 암호는 단방향이라서, 해싱을 하면 알아볼 수 없는 고유한 문자열로 바뀌고, 원래 비밀번호로 다시 되돌리는 것이 불가능하다.
(수학적으로 불가능하다. 그러나 구식 해싱 알고리즘은 파훼법이 있기도 해서 서버 개발자는 항상 해싱 알고리즘을 최신으로 유지해야한다.)
예를 들어 burari1234라는 비밀번호를 해싱하면 c6a2d7f213d3654b7bf61fdfbba34b0b471768edd7ab51fd991ea00f53c28ef0라는 문자열이 된다. 그런데 위 문자열을 가지고 원래의 burari1234를 알아내는 것은 불가능하다.
"와 그럼 서버가 해싱한 비번을 저장하면 비번 파일이 털려도 원본 비번을 모르겠네요?"
"근데 서버도 원본 비밀번호를 모르는데 인증을 도대체 어떻게 하는거죠?"
사실 서버는 사용자가 로그인할 때 마다 네트워크 상으로 원본 비밀번호를 넘겨 받기는 한다.
다만 서버가 비번을 해싱한 뒤 대조해본 다음 원본 비번을 디스크에 저장하지 않고 바로 버리기 때문에 안전한 것이다.
"와 그럼 해싱만 하면 천하무적이네요! 그런거죠?"

사실 그렇지는 않다. 유명한 문자열에 대해서는 그것과 대응되는 해싱값이 사전에 널리 알려져있기 때문이다.
이를 "레인보우 테이블"이라고 한다.
예를 들면 "burari"같은 쉬운 비밀번호는 이미 대응되는 해싱값이 널리 알려져있어, 쉽게 유추가 가능하다.

그래서 실제 보안 권고에서는 salt라고 해서 레인보우 테이블 공격을 막는 랜덤한 값을 함께 추가해서 해싱을 하도록 되어있다.
(마치 음식에 소금을 뿌리듯이 비밀번호에 문자열을 뿌리기 때문)
비밀번호를 암호화하는 것은 가장 기초적인 보안 수단이며, 국내에서 서비스하는 모든 사이트들은 이를 의무적으로 적용해야 한다. 그렇기에 비밀번호 원문을 알려주는 사이트가 있다면 그건 원본 비밀번호를 서버에 저장한다는 의미이다.
즉 기초적인 보호수단을 적용해놓지 않았다는 막장 사이트인걸 인정하는 것이다!
참고로 웹사이트가 이런 보호 조치를 안한다면 KISA 개인정보침해신고센터에서 이놈! 합니다.
웃기게도 불과 몇년 전 페이스북이 무려 6억명의 비밀번호를 자사 데이터베이스 내부에 원본으로 저장해놓고 방치했단 사실이 알려저 큰 파문을 일으켰다.
https://www.bbc.com/korean/news-47663169
그러므로 비밀번호 찾기를 눌렀을 때 원본 비번을 안알려준다고 해도 보안조치 때문에 그런 것이니 너그러이 넘어가주자.
근데 비밀번호 재설정인데 비밀번호 찾기라고 해놓는건 좀 빡치긴 함
3줄 요약
1. 보통 비번 까먹었을 때 비밀번호 찾기를 누르면 원래 비번을 알려주는게 아니라 비밀번호를 재설정해야 함.
2. 그 이유는 비밀번호를 저장할 때 암호화를 하기 때문이며, 이 때문에 서버는 원본 비밀번호를 전혀 알지 못함.
3. 만약 비밀번호 찾기를 눌렀을 때 원본 비번을 알려주는 사이트가 있다면 암호화를 하지 않는다는 뜻이며, '고객님 정보 털려도 나 몰라요~'하는 막장 사이트라고 보면 된다.






(IP보기클릭)39.113.***.***
굉장히 유익하다 굉장히 유익하다1234 굉장히유익하다1234!
(IP보기클릭)211.231.***.***
그거는 해싱된 과거 비번 목록을 저장해두기 때문이야. 그래도 원문 비번은 몰라. 즉, 서버는 이전에 사용했던 비번인지 아닌지는 아는데, 그 비번의 원문은 모르게 되는거지
(IP보기클릭)121.152.***.***
(IP보기클릭)104.28.***.***
컴공 놈들의 네이밍 센스를 볼 수도 있다 해싱: 막 으깨놓아서 형태도 알아볼 수 없게 만드니까 솔팅: 해시브라운 먹는데 소금도 쳐 먹어야지 (본문에는 안 나오는데) 페퍼링: 거기다가 후추도 더 넣어서
(IP보기클릭)59.16.***.***
근데 전에 사용한 비번이라고 알던데?
(IP보기클릭)121.152.***.***
(IP보기클릭)119.192.***.***
원본은 몰라도 해시가 같은지 아닌지 정도는 비교할 수 있으니까 가능함
(IP보기클릭)211.212.***.***
(IP보기클릭)39.113.***.***
굉장히 유익하다 굉장히 유익하다1234 굉장히유익하다1234!
(IP보기클릭)211.36.***.***
굉장히유익하다1234!@ [@, &, $, {, } 특수 문자는 사용하실 수 없습니다.] | 26.03.22 16:30 | | |
(IP보기클릭)27.35.***.***
요즘은 대문자도 넣어야해서 꾕장히유익하다1234! | 26.03.22 16:44 | | |
(IP보기클릭)59.16.***.***
근데 전에 사용한 비번이라고 알던데?
(IP보기클릭)211.231.***.***
그거는 해싱된 과거 비번 목록을 저장해두기 때문이야. 그래도 원문 비번은 몰라. 즉, 서버는 이전에 사용했던 비번인지 아닌지는 아는데, 그 비번의 원문은 모르게 되는거지 | 26.03.22 16:27 | | |
(IP보기클릭)119.192.***.***
외계고양이
원본은 몰라도 해시가 같은지 아닌지 정도는 비교할 수 있으니까 가능함 | 26.03.22 16:29 | | |
(IP보기클릭)220.93.***.***
(IP보기클릭)104.28.***.***
(IP보기클릭)104.28.***.***
해시된 비밀번호의 내역을 가지고 있으면 확인할 수 있지 | 26.03.22 16:29 | | |
(IP보기클릭)124.111.***.***
아무리 해시가 역함수가 불가능해도 같은 입력에는 같은 출력이 나오니까 이전 비밀번호 해시값을 별도 저장하면 비교대조 가능 | 26.03.22 16:46 | | |
(IP보기클릭)218.158.***.***
(IP보기클릭)211.230.***.***
(IP보기클릭)61.254.***.***
(IP보기클릭)104.28.***.***
컴공 놈들의 네이밍 센스를 볼 수도 있다 해싱: 막 으깨놓아서 형태도 알아볼 수 없게 만드니까 솔팅: 해시브라운 먹는데 소금도 쳐 먹어야지 (본문에는 안 나오는데) 페퍼링: 거기다가 후추도 더 넣어서
(IP보기클릭)14.42.***.***
근데 외우는 입장에선 오히려 좋더라 이름의 유래와 기술특성이 ㅈㄴ 무식하게 잘 매칭되섴ㅋㅋㅋㅋㅋㅋㅋㅋ | 26.03.22 16:34 | | |
(IP보기클릭)218.154.***.***
해싱에다가 이것저것 추가하는거라는 느낌이 잘 살아 | 26.03.22 16:39 | | |
(IP보기클릭)121.152.***.***
(IP보기클릭)116.34.***.***
(IP보기클릭)211.225.***.***
그건 너가 유게이라서야 | 26.03.22 16:32 | | |
(IP보기클릭)222.234.***.***
(IP보기클릭)125.133.***.***
(IP보기클릭)119.192.***.***
해싱으로 으깨버린값은 절대로 복구 못 함. 원본을 비교할 필요도 없음.해싱 된 값 비교하는 거지 | 26.03.22 16:31 | | |
(IP보기클릭)125.133.***.***
그럼 개네들은 그냥 원본 그대로 보관한거였구나 | 26.03.22 16:31 | | |
(IP보기클릭)60.90.***.***
그건 옛날 사이트거나 보안 신경 안 쓰는 사이트라는 소리. 그런 사이트에 다른 사이트랑 같은 비밀번호 쓰다가 털리는 거임 저런 거 명칭이 "비밀번호 찾기"인 게 다른 게 아니라 예전에는 저런 보안 전혀 신경 안 써서 실제로 원문 그대로 저장했기 때문에 실제로 알려줬던 시절이 있었고, 그 때 명칭 그대로 유지하고 있는 느낌 | 26.03.22 16:32 | | |
(IP보기클릭)119.192.***.***
단순히 '이전에 사용했던 비밀번호입니다' 말고, 원본 그대로 알려주는 건 평문을 그대로 저장 했거나, 대칭형 암호키로 저장했을 가능성이 큼... | 26.03.22 16:34 | | |
(IP보기클릭)118.32.***.***
(IP보기클릭)118.235.***.***
(IP보기클릭)14.52.***.***
(IP보기클릭)222.118.***.***
(IP보기클릭)121.152.***.***
해시값이 같은 건 확인이 가능해서 | 26.03.22 16:32 | | |
(IP보기클릭)58.148.***.***
(IP보기클릭)14.42.***.***
(IP보기클릭)211.178.***.***
(IP보기클릭)121.152.***.***
(IP보기클릭)121.129.***.***
(IP보기클릭)112.171.***.***
(IP보기클릭)119.192.***.***
1. 평문을 그대로 (혹은 대칭형 암호키로 암호화 해서) 저장 했거나 2. 윗댓에도 썼는데, 이전에 쓴 비밀번호 해시를 저장하면 이전에 썼던 건지 아닌 지 정도는 비교할 수 있음. 원본을 굳이 저장 안 해도 가능한 거임. | 26.03.22 16:35 | | |
(IP보기클릭)211.213.***.***
(IP보기클릭)106.101.***.***
(IP보기클릭)219.104.***.***
(IP보기클릭)39.7.***.***
(IP보기클릭)140.248.***.***