웹 개발
bcrypt vs argon2
용찬
2024. 3. 5. 11:35
보다 강한 보안성과 빠른 처리 속도를 위해 argon 사용
bcrypt
blowfish 해시 함수 기반의 해시 함수
대표적으로 안전하고 일반적으로 사용되는 해시 함수 中 하나
장점
- 오랜 기간 사용되어 안전성이 검증되었고 많은 프로젝트에서 사용됌, 안정성
- 상대적으로 오래된 알고리즘으로써 구형 시스템에서 잘 동작함, 호환성
단점
- 의도적인 지연을 포함하여 비밀번호 해싱을 진행, 느린 계산 속도
- 적은 메모리 사용량으로 인해 GPU를 사용한 공격에 취약
argon2
최신 해시 함수 中 하나로 2015년에 나온 비밀번호 해시 함수
장점
- 병렬처리 및 고성능 하드웨어에 안전하게 동작
- 하드웨어의 발전에 대응할 수 있도록 설계, 적응형 해시 함수
- 메모리 사용량을 조절해 부르트 포스 및 레인보우 테이블 공격을 어렵게 만듦, 메모리 사용량 조절 가능
단점
- bcrypt보다 상대적으로 더 많은 계산을 필요로 함, 계산 비용이 높음
- 리소스 사용에 제한이 있는 환경에서 부적합, 리소스 사용량이 큼
- 최근에 등장한 알고리즘으로 일부 구형 시스템에서는 지원 및 호환성 문제가 있을 수 있음, 구형 시스템 호환차이점
차이점 | ||
bcrypt | argon2 | |
보안 | 안전하지만 argon2 대비 다소 아쉬운 보안을 제공 | bcrypt 대비 더 강력한 보안을 제공 |
병렬처리 | 대응하기 어려움, 더 적은 메모리를 사용 | 대응이 가능함, 고메모리 요구에 강점을 가짐 |
호환성 | 더 오래된 시스템에서 잘 동작, 호환성이 좋음 | 최근에 나와 일부 구형 시스템에서는 호환에 문제가 있을 수 있음 |