회원 비밀번호를 저장할 때 사용자마다 서로 다른 무작위 값을 생성하여 비밀번호와 함께 해시 함수에 입력하고, 그 무작위 값은 해시 결과와 함께 저장한다. 이 값의 명칭과 이를 사용하는 주된 이유를 설명하시오.
모범답안
솔트(Salt)이다. 사용자마다 다른 솔트를 사용하면 같은 비밀번호도 서로 다른 해시값이 생성되므로 미리 계산된 해시 목록이나 레인보 테이블을 여러 계정에 재사용하는 공격을 어렵게 한다.
풀이와 판단 근거
솔트는 비밀번호를 해시하기 전에 사용자별로 추가하는 무작위 값이다. 솔트가 다르면 동일한 비밀번호를 사용한 사용자도 서로 다른 해시 결과를 가지므로 공격자가 하나의 사전 계산 결과를 여러 계정에 재사용하기 어렵다.
솔트는 보통 해시와 함께 저장하며 비밀일 필요는 없다. 서버 전체에서 별도로 비밀로 관리하는 pepper와 구분해야 하며, 느린 비밀번호 전용 해시 함수와 적절한 작업 비용도 함께 사용해야 한다.
자주 틀리는 지점
- 솔트를 복호화 키로 설명
- 페퍼와 동일한 값으로 이해
- 솔트만 사용하면 무차별 대입 공격도 완전히 차단된다고 설명
자동 판정 방식
한글·영문 동의어와 문항별 필수 개념을 확인하며, 정답 단어가 부정되거나 반대 개념과 함께 쓰이면 자동 정답으로 확정하지 않습니다. 부분점수는 ITPASSLAB의 학습용 예상 점수입니다.