DB + SQL
[SQL] - Maria DB , SQL 암호화 (password, md5 함수)
dev_SiWoo
2020. 8. 21. 10:29
Maria DB에서 sql을 사용할 때 암호화를 지원하는 함수들을 사용할 수 있다.
만약 어떤 A라는 계정의 비밀번호가 'test1243'라고 하자.
만약 DB가 해킹되어 해커가 데이터를 긁어갔다 하더라도 만약 암호화가 되어있으면 복호화를 하지않는이상 문제가 발생할 여지가 없다.
SELECT PASSWORD('test1234');
위와 같이 실행해서 보면 다음과 같이 비밀번호가 암호화된다.
하지만 이 PASSWORD 함수를 통한 암호화는 취약하다는 평가(복호화가 쉽다는)가 존재하여
1990~2000년대 초반에는 아래와 같이 MD5라는 해시 함수를 사용하였다.
SELECT MD5('test1234');
이러한 MD5 조차 2004년에는 해시 충돌에 취약하고, 빠른 계산 속도로 인해 레인보우 테이블을 통한
무차별 대입공격(brute-force_attacks)에 취약하다는 것이 밝혀졌다.
그렇기 때문에 비밀번호 저장에 MD5를 사용하는 것은 권장되지 않는다.
SHA-2, SHA-3 또는 Bcrypt와 같은 더 강력하고 느린 해시 알고리즘을 사용하고 salt 값을 추가하여 레인보우 테이블 공격을 방어하는 등의 조치가 필요하다.