본문 바로가기
dev/webDev

기존 MD5 암호화된 패스워드의 보안성을 SHA256으로 강화하기

by Kelvin™ 2020. 1. 18.

사실 아래의 내용은 꽤나 오래전에 사용했었던 개념이긴 하나,

제 블로그에 asp 관련으로 아직도 많은(많지는 않고 하루에 10건 정도. ) 분이 유입되고 있어 간단히 적습니다.

 

운영중인 상황

우리는 아직도 MD5 암호화를 사용하는 DB 패스워드 필드를 운영중이다.

개선해야하는 상황

레인보드 코드가 워낙 많이 퍼져있어 단순 코드로 사용하는 고객들의 비밀번호가 레인보드 코드를 이용하여 복호화 할 수 있는 여지가 크다.

그에 따라 고객의 개인정보가 위험하다.

좀더 복잡한 SHA256 으로 변경하고 싶으나 MD5 를 평문으로 변경할 수 없으니 고객의 비번을 SHA256 으로 변환할 수 없다.

말도 안되는 해결안 하나.

고객이 로그인할때 MD5 로 기존 비번과 비교하고 맞으면 고객이 입력한 비번을 다시 SHA256 으로 변환해서 DB 에 넣자.

( 그 동안 로그인 하지 않는 회원들의 정보는 어떻게 할 것인가? )

괜찮은 해결안 하나

그냥 기존 MD5 암호화된 코드를 다시한번 SHA256 으로 싸서 보관하게 일괄 변경하고

고객이 로그인할때도 MD5 한번 변환 후 다시 한번 SHA256으로 변환해서 비교하면 문제 해결.

더 괜찮은 해결안.

그런데 SHA256 도 레인보드 코드가 존재할 가능성 농후.

그래서 salt 암호화를 약간 사용해서 MD5 변환된 암호에 개인의 아이디를 넣거나 uniqueID 를 추가한 후 다시 SHA256으로 변환하여 사용하는 방법으로 진행한 경험이 있슴.

아래는 위의 상황을 도식화 해본 내용입니다.