비밀번호에 대하여

내 비밀번호를 개발자는 알아낼 수 있을까?

로그인할 때 비밀번호가 맞는지 확인하는 과정이 있는데, 그렇다는건 비밀번호를 컴퓨터가 알고있는 것이고 해당 DB 관리자는 조회할 수 있는게 아닐까?

 


비밀번호와 관련된 정보

 

1. 회원가입시 데이터를 입력하면 유저의 정보가 해당 업체의 회원정보 DB에 저장된다.

 

2. 하지만 모든 개발이 그렇듯이 최악의 경우(worst case)를 고려하여 시스템이 개발되므로 절대 회원 정보를 사용자가 입력한 그대로 저장하는 경우는 없다.

 

3. 일반적으로 비밀번호 정보는 해시값으로 저장된다.
해시의 종류는 엄청 많지만 대표적으로 이러한 것들이 있다. - ex. 32글자 (MD5) / 64글자 (SHA-256)

 

4. 그래서 운영자는 유저의 비밀번호를 알 수 없으며, 해킹을 당해도 해커가 알 수 없다.

 

5. 그러므로 해시값을 비교하여 입력값이 동일한지 동일하지 않은지만 확인할 수 있다.

 

6. 운영자들도 비밀번호를 모르므로 아이디 찾기의 경우 아이디를 알려주지만, 비밀번호 찾기 진행시 비밀번호를 알려주는 것이 아니라 새로운 비밀번호를 설정할 수 있도록 안내해준다. - 만약 비밀번호를 알려주는 사이트가 있다면... 허허... 걸러내시면 됩니다.

 

 


Q1. 암호화된 해시값을 역으로 추적해서 비밀번호를 알아낼 수도 있는거 아니냐?
 - 어떤 종류의 해시이냐에 따라 역추적을 통해 기존값을 알아내는 작업이 가능한 경우도 있다. 하지만 대부분의 경우 불가능한 해시값을 사용한다고 보면 된다. 이는 최악의 경우를 감안한 시스템 설계로 인한 결과로 보면 된다. 만약 회원정보가 질 나쁜 해커에 의해 해킹당했을 경우 회원들의 비밀번호 정보가 직접적으로 노출되면 큰 문제가 발생할 수 있기때문에 이와 같이 해시를 이용한다고 볼 수 있다.

 

Q2. 그런 시스템이 갖춰져있음에도 불구하고 비밀번호가 해커 혹은 타인에 의해 발견되는 사례가 있던데, 그 이유는 무엇인가?

 - 근래에 이런 경우는 잘 없지만 과거에 동일한 비밀번호를 사용하는 경우가 많았다. 예를들어 123123 과 같이 추측하기 쉬운 비밀번호로 설정하였을 경우, 이러한 비밀번호를 가진 사용자들이 다른 비밀번호를 가진 사용자들에 비해서 많기때문에 '동일한 해시값인 비밀번호'를 가진 사용자들을 대상으로 비밀번호 조합기를 통한 로그인 시도 Automation 프로그램을 돌리거나 123123과 같이 간단한 형태의 비밀번호의 해시값들을 모두 알고 이들로 매핑하여 회원정보 DB의 비밀번호 해시값과 비교해보는 작업을 통해 비밀번호를 알아낼 수 있다. 그 많은 걸 사람이 어떻게 다 하냐?고 물을 수 있으나 사람이 하지 않고 컴퓨터가 하므로 가능하다.

 - 필자가 근무한 회사에서 보안을 위해 세팅해주는 시스템들이 있는데, 신규 입고된 서버에 대한 작업 중 퇴근시간이 지나 네트워크 활성화만 해두고 보안설정을 추가적으로 진행하지 않고 밴더사에서 설정해둔 123123만큼은 아니지만 아주 간단한 비밀번호 외에 특별한 보안 세팅을 하지 않은 적이 있었다. 12시간이 채 되지 않아서 해당 서버에 외부 해커에 의한 침입이 성공하였고 정상이던 서버가 완전 비정상 상태의 서버로 바뀌어 OS를 밀고 재설치 및 재설정한 적이 있었다. 

 > 가능하면 비밀번호는 복잡하게 설정해주도록 하자. 현재 이시간에도 수많은 해커들이 해킹을 시도하고있다. 대소문자와 기호, 숫자를 적절히 섞는 것이 가장 좋은 비밀번호 설정이다.

+ Recent posts