[10분 테코톡] 조로의 해커도 손절하는 안전한 비밀번호 저장 방법
- 최근 통신사 해킹 사례는 평문 비밀번호 저장의 위험성을 명확히 보여주며, 계정 보안의 중요성을 강조합니다. 🚨
- 비밀번호를 암호화하여 저장하는 것은 양방향 프로세스이므로, 복호화 키가 탈취되면 쉽게 원본 비밀번호가 노출될 수 있어 안전하지 않습니다. 🔑
- 단방향 해싱은 원본으로 복호화가 불가능하지만, 동일 입력에 동일 해시값이 나오는 특성 때문에 레인보우 테이블 공격에 취약합니다. 🌈
- 솔트(Salt)를 사용하여 비밀번호에 임의의 값을 더한 후 해싱하면, 해시값의 눈사태 효과로 레인보우 테이블 공격을 무력화할 수 있습니다. 🧂
- 하드웨어 발전으로 인한 연산 속도 증가는 공격 속도 증가로 이어지므로, 키 스트레칭(Key Stretching)을 통해 의도적으로 해싱 연산을 느리게 만들어 공격을 어렵게 해야 합니다. ⏳
- BCrypt는 Blowfish 기반의 알고리즘으로 스프링 표준이며, 개발 편의성과 방대한 자료를 고려할 때 좋은 선택지입니다. 🐡
- SCrypt는 메모리 하드 특성을 추가하여 GPU 공격에 강력하게 방어하며, Argon2는 무작위/데이터 종속적 메모리 접근으로 SCrypt보다 더 강력한 GPU 방어 기능을 제공합니다. 🧠
- 새로운 대규모 프로젝트에서는 BCrypt보다 보안성이 더 높은 Argon2 또는 SCrypt를 고려하는 것이 장기적인 관점에서 권장됩니다. 🛡️
- 결론적으로, 프로젝트의 특성과 보안 요구사항에 맞춰 가장 적절한 비밀번호 저장 알고리즘을 선택하는 것이 중요합니다. ✅
데브허브 | DEVHUB | [10분 테코톡] 조로의 해커도 손절하는 안전한 비밀번호 저장 방법