본문 바로가기

노트북/노트북 기초

인터넷 사이트의 비밀번호 암호화 안전하다?

번 옥션의 해킹에 의한 개인정보 유출은 단순히 개인정보 유출이라는것뿐만 아니라, 대형 쇼핑몰에서의 해킹이라는데 의미가 있습니다.
그만큼 정보보호에 신경을쓰는 그런 사이트에서 해킹이 일어난다는 말은, 다른 중,소규모 사이트(물론 꼭그런건 아닙니다.)는 거의 무방비 상태로 놓여있다고 해도 과언이 아닐것입니다.
물론, 이번 해킹은 이제껏 없던 새로운 방법의 해킹이라고는 하지만,
언제까지 기존의 방법만 보완을 해서도 안되겠지요.
이번 사건으로 인해, 옥션에서는 전화번호, 생년월일등으로 조합된 비밀번호를 사용하는
사용자는 비밀번호를 변경할것을 권하고있습니다.
그이유는, 옥션을 비롯한 거의 대부분의 사이트에서는 사용자의 비밀번호를
해쉬기반의 암호화 방식을 사용하고 있기때문입니다.
해쉬기반의 암호화는 MD5,SHA등이 있는데 최근에는 주로 SHA등이 사용됩니다.
(제로보드는 MD5기반이라고 들었습니다.)
SHA는 해쉬테이블을 이용하는 암호화 기술입니다.
가끔 이런생각을 할수 있습니다. 비록 해킹을 막는다고는 하지만, 서버(DB)관리자라면
내 비밀번호를 알기가 쉽지 않을까?
물론, 그래서는 안되겠지만 서버관리자라면 마음만 먹으면 데이터베이스 조회는 간단한 일입니다.
그래서 비밀번호 만큼은 해쉬변환(암호화)를 해서 데이터 베이스에 저장을 합니다.
그렇게 하면 해킹또는 관리자등이 데이터베이스를 조회해 보아도 비밀번호는 알수 가없는것입니다.
여기서 다시 의문이 생깁니다.
그럼, 암호화된것을 다시 풀어서 볼수도 있지 않겠느냐?
해쉬테이블을 이용하여 암호화하기때문에 다시 복호화를 할수가 없습니다.
예를 들어 'MagnetT'라문자열을 MD5변환하면 'BE8C5EA40F5D9D287F71DBA23AC3DF64'
라는 32길이의 문자열로 변환됩니다.(MD5는 1글자를 넣든 100글자를 넣든 변환된 길이는 32입니다.)
이 변환된 문자열을 DB에 저장하게 되는것입니다.
이렇게 변환된 문자열은 원래 'MagnetT'라는 문자열로 변환은 불가능합니다.
이런식으로 비밀번호를 저장해놓으면 로그인시 사용자가 비밀번호를 입력하면
입력한 비밀번호를 MD5로 변환하여 DB의 변환된 문자열과 동일하면 비밀번호가 일치하는것으로 인식합니다.
즉, MagnetT -> BE8C5EA40F5D9D287F71DBA23AC3DF64 라고 DB에 저장 되어있으면 사용자가 Magnet 이라고 입력을 하였을 경우 '6C72AA4DE620DDFE18B992AE82C0D92F'로 변환이 되고 일치하지 않기 때문에 인증을 실패하는것입니다.
해쉬기반의 암호화는 복호화가 불가능하기 때문에 원래 비밀번호를 알아내기 위해서는
무차별 대입법이 가장 많이 사용됩니다.
모든 경우의 수를 열어놓고 무작위 문자열을 집어넣어 변환하여 일치하는지 비교하는 것입니다.
핸드폰의 비밀번호를 알아내기 위해 0000 부터 9999까지 입력해보는것과 같은 방법이지요.
다만, 이런 비밀번호같은경우는 비밀번호의 길이를 알수 없고 문자,숫자등이 입력되기 때문에 엄청난 시간이 걸립니다.
그래서 비밀번호는 길수록,문자,숫자의 조합일수록 좋다고 말하는것입니다.
(5~6자리의 비밀번호는 하루종일 컴퓨터로 계산하면 알수있다고는 합니다.)
이런식으로 하면 이번 유출된 정보가 1000명이라고 하더라도 몇년이 걸릴지 모르는 것입니다.
만약, 유출된 개인정보가 이름,주민등록번호,전화번호,생년월일,주소등이있는데 비밀번호가 위와같은것에서 조합된 것이라면 알아내기 쉽습니다.
개인적인생각으로는 유출된 정보가 비밀번호를 알아낸 금융관련 범죄에 사용되기보다는
텔레마케팅같은 스팸광고등의 자료로 사용될거같아서 직접적인 피해는 없을것으로 보여집니다.
사용자 삽입 이미지

그러나, 개인정보 하나만으로 무슨범죄든 만들어낼수있는 세상입니다.
개인차원에서도 그에대한 대비는 잊지말아야 하겠습니다.
업체에서 계좌번호등의 정보는 포함하고 있지 않다고는 하지만 우리가 알수는 없으니
믿는수밖에 없겠죠.