운영자는 내 비밀번호를 알고 있을까?

dev.dave·2023년 7월 26일

개발지식

목록 보기
13/53

운영자는 내 비밀번호를 알고 있을까?

답은 알수 없다?

자. 일단
운영자는 (프로그래머) 처음에 회원가입하는 웹페이지를 만들어야겠죠.
그러면 이제 유저들이 가입을 해야되니까,
아이디도 입력 받고, 비번도 입력 받고, 이름도 입력 받고, 이메일 등,,, 정보를 입력 받겠죠,,,
그러면
운영자 측에서는 데이터 베이스가 이렇게 있겠죠,
그래서
DB에 저장이 됩니다.
(뭐 해커가 DB를 해킹하면 다 털리는거지만...)

대부분의 개발자는 한알고리즘의 속도를 평가할떄
보통은 퇴악의 상황에서 동작하는 속도를 보고,
그 알고리즘을 평가를 합니다.
개발자들은 항상 최악의 상황 worst case를 대비해야합니다.
그래서 이 DB를 해킹당했을떄도 , 대비를 해야겠죠.
그래서 사실 이런 table처럼 비밀번호같은 걸 문자그대로 저장하는 개발자는 절대로 없습니다.
그럼 비밀번호는 어떤방식으로 저장되냐?하실텐데,
바로 해시 라는 방법이 쓰입니다.
해시가 뭐냐면
해시라는 박스가 하나있으면, 유저가 이 해시박스를 거쳐서 결과값이 나오는거죠, 즉 해시를 거쳐 아웃풋이 나간다 라고보면된니다.
예를들어 왼쪽에서 유저가 어떤문자(안녕하세요)를 패스하며는 해시를 거쳐서 아주랜덤한 64글자의 랜덤한문자조합으로 변경되어 나오게 됩니다.(2c68318e35297113645bc72861e1e,,,,이런식으로..)
이런게 바로 해시값이다.
해시값은,,,정말,,다르게 결과값이 나온다.(진짜랜덤값으로,,)
a1을 넣어서나온 해시결과값이랑 a2를 넣어서나온 해시결과값은 엄청다르다. 뭐,,한글자만 달라도 결과가 완전히 달라진다.
그리고
심지어 이 해시에 넣을수 있는 문자열의 길이도 엄청길다.
제한이 거의 없다고 보시면 된다.
예를들어 전화번호부의 두꺼운책의 문자열을 복사해 해시값으로 넘겨도 64글자의 문자조합이 나온다는 것이다.
그리고
이 해시는 정직합니다.
즉 a1이라는 걸 해시로 넘겨서 나온 해시값은 23123이라치면
또a1이라는 같은 걸 해시로 넘기면 똑같이 23123이라는 해시값이 나온다.
즉, 같은 값은 같게 나온다.
그러면,
여기서 드는 의문은?
저 해시라는 놈은 데이터를 다루는 방법/법칙/과정이 있다는 건데 어떤방식으로 데이터를 다루나?법칙이 뭔가?어떠한 방법으로 데이터를 변환을 하나?

답은 해시의 방법은 엄청 많다. SHA-256 (미국정부에서 만든 변환 알고리즘&해시 규칙 )/ MD5 / 그외 다양한 자매품들,,의 해시(규칙)알고리즘이 있다.

여튼,,,다시 이야기로 돌아가서,,,

유저가 회원정보를 입력하고,가입을 할때
비밀번호가 해시를 통과하여서 암호화가 되어서 데이터베이스에 저장이 된다.

즉, 이렇게 저장을 해놓으면, 해킹을 당하더라도, 최악의 상황에서 비밀번호 유출만은 막을수가 있다.
왜냐면 해시값으로 암호화를해서 저장을 해놨기떄문이다.

결론은 운영자는 여러분의 비밀번호를 모릅니다.

그냥 유저들이 로그인할때 운영자들이 비교를 하는거는 ,
유저가 입력한 그 입력된 비번이 해시를 지나쳤을때 , 원래 설정한 비번 해시값이랑이랑 지금입력한 해시값이랑 똑같은지 동일한지만 확인이 가능하다는 말이다.
왜냐면 해시는 같은 문자열을 넣으면 매번 같은 해시결과값이 나오기때문이다.
고로 운영자는 예전에 입력된 해시값과 지금입력한 해시값만 비교를 할수 있는거죠.
같으면 로그인 성공 틀리면 로그인 실패.
그리고
비번을 잊어먹었는데,,,그냥 예전 비번을 알려주면되지 왜 새롭게 바꾸라고 하냐?
그건 운영자도 모릅니다...알면 알려주겠죠 ㅋㅋ
여튼 모르기떄문에 새로운 비번을 발급받으라는 거죠,,
그리고
운영자들이 말하길 너무쉬운 패턴의 비번을 설정하지 말라고 하죠
예를들어 1111 이런거는 너무 패턴이 뻔하죠,,
아무리 해시알고리즘을 좋은걸해놔도,,
1111 이런건 해시값으로 해커들에게 알기 좋게 하는거죠,,
운영자가 DB를 살펴보다가 똑같은 중복된 패턴의 해시값 (비번) 이있는걸 발견하면 100% 1234 이런겁니다 ㅋㅋ
해커들은 그래서 자주사용하는 비밀번호 즉, 단순한 패턴의 해시값을 이미 다 가지고 있다.
뭐 그래서 매칭을 해보면 바로 나오죠...
그래서,,
이 대문자 소문자 하나만 바껴도 다른값이 나오는 해시값의 특성상,,
조금이라도 어렵게 비번 설정을 해줘라 라는 운영자의 당부/부탁이가 있다...

정리하자면,,
운영자는 해시값을 알수가 있고,
동일한지 아닌지를 알수가있다...
그러나
진짜 비번은 모른다...

profile
🔥개인 메모 / 다른블로그 자료 참조 / 다른블로그 자료 퍼옴 (출처표기) /여기저기서 공부 했던 내용 개인메모 & 참고 / 개인 기록 용도 블로그 입니다.🔥

0개의 댓글