← 질문 목록
#331깊이 0

비밀번호를 그냥 해시하면 왜 안 되는가?

인프라 · 보안기초암호화

같은 비밀번호가 같은 해시가 되고, 해시 함수가 너무 빠르기 때문이다.

  1. 1. 공격자에서 유출된 표로: 같은 해시끼리 묶는다
  2. 2. 공격자에서 미리 만든 표로: 흔한 비밀번호의 해시를 대조한다
  3. 3. 미리 만든 표에서 공격자로: 초당 수십억 번 맞춰 본다

소금을 섞으면 첫 번째가 막힌다. 사용자마다 다른 값을 붙여 해시하므로 같은 비밀번호여도 결과가 달라진다. 미리 만든 표가 쓸모없어진다.

소금만으로는 부족하다. 한 사람을 노리고 그 사람의 소금으로 다시 만들면 된다. 빠른 함수라면 그게 오래 안 걸린다.

그래서 일부러 느린 함수를 쓴다. 반복 횟수를 올려 한 번 맞춰 보는 값을 비싸게 만든다. 메모리를 많이 쓰게 만드는 것도 같은 뜻이다.

느리게 만드는 정도는 서버가 견디는 선에서 정한다. 로그인 한 번에 수백 밀리초쯤이 흔한 기준이다.

추천 꼬리질문

0/300

적은 내용은 AI 학습에 쓰일 수 있습니다. 이름이나 연락처는 넣지 말아 주세요.

관련 질문

비밀번호를 그냥 해시하면 왜 안 되는가?