대형 사이트에서 비밀번호를 저장하는 방식, 왜 비밀번호가 해킹되는지...

jj의 이미지

안녕하세요?

가끔 대형 사이트들이 해킹당해서 password(혹은 그의 hash)가 대량 유출되었다는 기사를 봅니다.

사이트들이 해킹당한다고 하더라도, 패스워드만 별도의 서버에 저장하고, 해당 서버의 인터페이스를 최소화 한다면 비밀번호 유출 사고는 없을것 같은데 이해가 되지 않습니다.

대형 사이트들은 패스워드를 어디에 저장하나요? 그냥 DB의 user table의 하나의 컬럼으로 저장하나요? LDAP같은 전문화된 서버를 쓰나요? 이런 LDAP서버 자체가 해킹당해서 문제인건가요??

red10won의 이미지

자체적인 hash 암호화체계를 가진다면 그나마 덜한텐데
걍 함수 하나 쓰는 관리자도 문제죠..

jj의 이미지

관점에 따라 다르겠지만, 알고리즘을 숨기는것도 보안을 높이는 방법이 될수도 있겠죠 (자체 hash알고리즘이 정말 안전하고-하지만 쉽지 않은것 같아요 md5 같은것도 안정성문제가 제기되는걸 보면-, 알고리즘을 잘 숨긴다는 가정하에)

그런데 제 관심은 시스템구성적인 측면입니다.

--
Life is short. damn short...

김정균의 이미지

인터넷 뱅킹등의 금융권의 경우 plain text로 password를 저장한다고 합니다. password encryption 부하가 엄청난 비용을 유발하기 때문에 예외처리를 한다고 하더군요. 믿거나 말거나.. 제 경험상으로는.. 정말 암호화 되지 않은 평문 저장이 맞는 듯 싶더군요.

jj의 이미지

뱅킹이 그정도라니, 흐... 정말인가요?? 김정균님이 그렇다면 그럴것 같으면서도, 뱅킹 같은 경우에는, 그냥 일반적인 transaction 자체도 SSL을 쓰지 않나요? 패스워드 암호화/hash에 부하 얘기는 그냥 개발자들의 핑계가 아닐까요... ;;;

별도의 인증서버를 구성하고, 인증서버의 인터페이스를 매우 단순하게 제약한다면 (password match, password update 정도만 제공), hash값도 빠져나가지 않는 구성을 할수 있을것 같은데, 그렇다면 비밀번호(혹은 hash) 유출에서 좀 자유롭지 않을까해서~ 궁금하네요~

포탈 사이트가 궁금하네요, 그냥 일반적인 유저DB에 같이 보관하는건지...

--
Life is short. damn short...

includex의 이미지

단방향 암호화만 사용하더라도 원문이 유출되지는 않을텐데...

preisner의 이미지

그것 조차 하지 않았다는 말이죠.. 그런데 많아요.
요즘이나 법률규정이 생겨서 암호화 시키지만 예전에는 그것조차 하지 않은데들 많았습니다..

maddie의 이미지

128 bit AES 암호화를 초 덕지덕지 붙여 씁니다. password encryption이 성능에 영향을 준다는 말씀은 맞아요. 그래서 ssl을 쓰긴 합니다만... 뭐 요즘에 보안사고가 하두 많이 터져서.. 생각하시는 것보다 허접하게 하지는 않습니다.. 그리고 어지간한 개인정보는 몽땅 암호화해서 내부에서도 확인하기 힘들게 하고 있으니 패스워드가 깨진다고 해도 들고 갈게 없다능;;

힘없는자의 슬픔