개발 일기

해시 암호화가 충분하지 않을 때 - BCrypt (솔트) 적용 본문

Tech/배워서 남주기

해시 암호화가 충분하지 않을 때 - BCrypt (솔트) 적용

flow123 2022. 9. 9. 09:50

상황

비밀번호 암호화를 구현하는 기술을 고민하고 있었습니다. 해시를 적용하고자 했으나, 해시는 같은 입력 값에 대해, 항상 같은 결과 다이제스트가 나오는 취약점이 있습니다.

문제

위의 취약점 때문에, 해시 알고리즘은 레인보우 테이블을 사용해서 해킹 당할 위험이 있었습니다.

해결/결과

솔트는 해싱 하기 전에, 랜덤 문자열을 비밀번호에 더합니다.

솔트와 함께 암호화 하면, 솔트가 임의 값이기 때문에 원래 값을 찾아내기 어렵습니다.

즉, 사용자 별로 다른 솔트를 사용한다면, 동일한 패스워드를 사용하더라도 다이제스트가 다르게 생성됩니다.

자바에서 지원하는 BCrypt 라이브러리를 사용하여 솔트를 구현했습니다.

해시와 비교할 때, 결과값이 예측 불가능하기 때문에, 보안을 강화하는 이점을 얻을 수 있었습니다.

Comments